diff options
Diffstat (limited to 'src/eval')
| -rw-r--r-- | src/eval/library.rs | 5 | ||||
| -rw-r--r-- | src/eval/methods.rs | 7 |
2 files changed, 4 insertions, 8 deletions
diff --git a/src/eval/library.rs b/src/eval/library.rs index 45c23d17..0e0b38aa 100644 --- a/src/eval/library.rs +++ b/src/eval/library.rs @@ -90,9 +90,8 @@ pub struct LangItems { pub math_accent: fn(base: Content, accent: char) -> Content, /// A fraction in a formula: `x/2`. pub math_frac: fn(num: Content, denom: Content) -> Content, - /// Dispatch a method on a counter. This is hacky and should be superseded - /// by more dynamic method dispatch. - pub counter_method: fn( + /// Dispatch a method on a library value. + pub library_method: fn( dynamic: &Dynamic, method: &str, args: Args, diff --git a/src/eval/methods.rs b/src/eval/methods.rs index a449ac16..036f7ba2 100644 --- a/src/eval/methods.rs +++ b/src/eval/methods.rs @@ -135,11 +135,7 @@ pub fn call( }, Value::Dyn(dynamic) => { - if dynamic.type_name() == "counter" { - return (vm.items.counter_method)(&dynamic, method, args, span); - } - - return missing(); + return (vm.items.library_method)(&dynamic, method, args, span); } _ => return missing(), @@ -296,6 +292,7 @@ pub fn methods_on(type_name: &str) -> &[(&'static str, bool)] { ("step", true), ("update", true), ], + "state" => &[("get", true), ("final", true), ("update", true)], _ => &[], } } |
