diff options
Diffstat (limited to 'src/eval')
| -rw-r--r-- | src/eval/function.rs | 24 | ||||
| -rw-r--r-- | src/eval/mod.rs | 14 | ||||
| -rw-r--r-- | src/eval/scope.rs | 4 |
3 files changed, 21 insertions, 21 deletions
diff --git a/src/eval/function.rs b/src/eval/function.rs index c45ac7ba..205690df 100644 --- a/src/eval/function.rs +++ b/src/eval/function.rs @@ -16,13 +16,13 @@ struct Inner<T: ?Sized> { func: T, } -type Func = dyn Fn(&mut EvalContext, &mut Arguments) -> TypResult<Value>; +type Func = dyn Fn(&mut EvalContext, &mut Args) -> TypResult<Value>; impl Function { /// Create a new function from a rust closure. pub fn new<F>(name: Option<EcoString>, func: F) -> Self where - F: Fn(&mut EvalContext, &mut Arguments) -> TypResult<Value> + 'static, + F: Fn(&mut EvalContext, &mut Args) -> TypResult<Value> + 'static, { Self(Rc::new(Inner { name, func })) } @@ -33,7 +33,7 @@ impl Function { } /// Call the function in the context with the arguments. - pub fn call(&self, ctx: &mut EvalContext, args: &mut Arguments) -> TypResult<Value> { + pub fn call(&self, ctx: &mut EvalContext, args: &mut Args) -> TypResult<Value> { (&self.0.func)(ctx, args) } } @@ -58,16 +58,16 @@ impl PartialEq for Function { /// Evaluated arguments to a function. #[derive(Clone, PartialEq)] -pub struct Arguments { +pub struct Args { /// The span of the whole argument list. pub span: Span, /// The positional and named arguments. - pub items: Vec<Argument>, + pub items: Vec<Arg>, } /// An argument to a function call: `12` or `draw: false`. #[derive(Clone, PartialEq)] -pub struct Argument { +pub struct Arg { /// The span of the whole argument. pub span: Span, /// The name of the argument (`None` for positional arguments). @@ -76,7 +76,7 @@ pub struct Argument { pub value: Spanned<Value>, } -impl Arguments { +impl Args { /// Find and consume the first castable positional argument. pub fn eat<T>(&mut self) -> Option<T> where @@ -169,11 +169,11 @@ impl Arguments { { let mut iter = self.items.into_iter(); let value = match iter.next() { - Some(Argument { name: None, value, .. }) => value.v.cast().at(value.span)?, + Some(Arg { name: None, value, .. }) => value.v.cast().at(value.span)?, None => { bail!(self.span, "missing {}", what); } - Some(Argument { name: Some(_), span, .. }) => { + Some(Arg { name: Some(_), span, .. }) => { bail!(span, "named pair is not allowed here"); } }; @@ -186,7 +186,7 @@ impl Arguments { } } -impl Debug for Arguments { +impl Debug for Args { fn fmt(&self, f: &mut Formatter) -> fmt::Result { f.write_char('(')?; for (i, arg) in self.items.iter().enumerate() { @@ -199,7 +199,7 @@ impl Debug for Arguments { } } -impl Debug for Argument { +impl Debug for Arg { fn fmt(&self, f: &mut Formatter) -> fmt::Result { if let Some(name) = &self.name { f.write_str(name)?; @@ -210,5 +210,5 @@ impl Debug for Argument { } dynamic! { - Arguments: "arguments", + Args: "arguments", } diff --git a/src/eval/mod.rs b/src/eval/mod.rs index f48312c8..d88dd2bb 100644 --- a/src/eval/mod.rs +++ b/src/eval/mod.rs @@ -393,7 +393,7 @@ impl Eval for CallExpr { } impl Eval for CallArgs { - type Output = Arguments; + type Output = Args; fn eval(&self, ctx: &mut EvalContext) -> TypResult<Self::Output> { let mut items = Vec::with_capacity(self.items.len()); @@ -402,14 +402,14 @@ impl Eval for CallArgs { let span = arg.span(); match arg { CallArg::Pos(expr) => { - items.push(Argument { + items.push(Arg { span, name: None, value: Spanned::new(expr.eval(ctx)?, expr.span()), }); } CallArg::Named(Named { name, expr }) => { - items.push(Argument { + items.push(Arg { span, name: Some((&name.string).into()), value: Spanned::new(expr.eval(ctx)?, expr.span()), @@ -417,14 +417,14 @@ impl Eval for CallArgs { } CallArg::Spread(expr) => match expr.eval(ctx)? { Value::Array(array) => { - items.extend(array.into_iter().map(|value| Argument { + items.extend(array.into_iter().map(|value| Arg { span, name: None, value: Spanned::new(value, span), })); } Value::Dict(dict) => { - items.extend(dict.into_iter().map(|(key, value)| Argument { + items.extend(dict.into_iter().map(|(key, value)| Arg { span, name: Some(key), value: Spanned::new(value, span), @@ -432,7 +432,7 @@ impl Eval for CallArgs { } v => { if let Value::Dyn(dynamic) = &v { - if let Some(args) = dynamic.downcast_ref::<Arguments>() { + if let Some(args) = dynamic.downcast_ref::<Args>() { items.extend(args.items.iter().cloned()); continue; } @@ -444,7 +444,7 @@ impl Eval for CallArgs { } } - Ok(Arguments { span: self.span, items }) + Ok(Args { span: self.span, items }) } } diff --git a/src/eval/scope.rs b/src/eval/scope.rs index 0d701687..eb057ae3 100644 --- a/src/eval/scope.rs +++ b/src/eval/scope.rs @@ -4,7 +4,7 @@ use std::fmt::{self, Debug, Formatter}; use std::iter; use std::rc::Rc; -use super::{Arguments, EvalContext, Function, Value}; +use super::{Args, EvalContext, Function, Value}; use crate::diag::TypResult; use crate::util::EcoString; @@ -91,7 +91,7 @@ impl Scope { /// Define a constant function. pub fn def_func<F>(&mut self, name: impl Into<EcoString>, f: F) where - F: Fn(&mut EvalContext, &mut Arguments) -> TypResult<Value> + 'static, + F: Fn(&mut EvalContext, &mut Args) -> TypResult<Value> + 'static, { let name = name.into(); self.def_const(name.clone(), Function::new(Some(name), f)); |
