diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-05-25 13:50:33 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-05-25 13:59:06 +0200 |
| commit | c010cbc17dcbb2f0d6005d21530143bf57cb5871 (patch) | |
| tree | 937fe79f0c121bcc025480181287fd4a3d0c0f4f /src/eval/dict.rs | |
| parent | 6935cf8dfefff3d6cf234f077a7d61661fd5ca57 (diff) | |
Move route from context to VM
Diffstat (limited to 'src/eval/dict.rs')
| -rw-r--r-- | src/eval/dict.rs | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/eval/dict.rs b/src/eval/dict.rs index 22b73e76..35bd75d5 100644 --- a/src/eval/dict.rs +++ b/src/eval/dict.rs @@ -3,12 +3,11 @@ use std::fmt::{self, Debug, Formatter, Write}; use std::ops::{Add, AddAssign}; use std::sync::Arc; -use super::{Args, Array, Func, Value}; +use super::{Args, Array, Func, Machine, Value}; use crate::diag::{StrResult, TypResult}; use crate::parse::is_ident; use crate::syntax::Spanned; use crate::util::{ArcExt, EcoString}; -use crate::Context; /// Create a new [`Dict`] from key-value pairs. #[allow(unused_macros)] @@ -97,14 +96,12 @@ impl Dict { } /// Transform each pair in the array with a function. - pub fn map(&self, ctx: &mut Context, f: Spanned<Func>) -> TypResult<Array> { + pub fn map(&self, vm: &mut Machine, f: Spanned<Func>) -> TypResult<Array> { Ok(self .iter() .map(|(key, value)| { - f.v.call( - ctx, - Args::from_values(f.span, [Value::Str(key.clone()), value.clone()]), - ) + let args = Args::new(f.span, [Value::Str(key.clone()), value.clone()]); + f.v.call(vm, args) }) .collect::<TypResult<_>>()?) } |
