diff options
Diffstat (limited to 'src/chomp/ast')
-rw-r--r-- | src/chomp/ast/error.rs | 12 | ||||
-rw-r--r-- | src/chomp/ast/substitute.rs | 14 |
2 files changed, 11 insertions, 15 deletions
diff --git a/src/chomp/ast/error.rs b/src/chomp/ast/error.rs index 12d7b90..9e4282b 100644 --- a/src/chomp/ast/error.rs +++ b/src/chomp/ast/error.rs @@ -27,8 +27,8 @@ impl From<SubstituteError> for syn::Error { fn from(e: SubstituteError) -> Self { let msg = e.to_string(); let span = match e { - SubstituteError::FreeParameter { span, .. } => span, - SubstituteError::WrongArgCount { span, .. } => span, + SubstituteError::FreeParameter { span, .. } + | SubstituteError::WrongArgCount { span, .. } => span, }; Self::new(span.unwrap_or_else(Span::call_site), msg) @@ -38,18 +38,14 @@ impl From<SubstituteError> for syn::Error { impl Display for SubstituteError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - Self::FreeParameter { param, span, name } => { + Self::FreeParameter { param, name, .. } => { if let Some(name) = name { write!(f, "unbound parameter: `{}`", name) } else { write!(f, "unbound parameter: '{}", param.index) } } - Self::WrongArgCount { - call, - expected, - span, - } => { + Self::WrongArgCount { call, expected, .. } => { if call.args.len() == 1 { write!( f, diff --git a/src/chomp/ast/substitute.rs b/src/chomp/ast/substitute.rs index 1a622e1..c7cc03f 100644 --- a/src/chomp/ast/substitute.rs +++ b/src/chomp/ast/substitute.rs @@ -418,13 +418,7 @@ impl Folder for InlineCalls { expr: call.into(), span, }) - } else if call.args.len() != self.function.params.len() { - Err(SubstituteError::WrongArgCount { - call, - expected: self.function.params.len(), - span, - }) - } else { + } else if call.args.len() == self.function.params.len() { let mut expr = self .function .expr @@ -434,6 +428,12 @@ impl Folder for InlineCalls { expr.span = expr.span.or(span); Ok(expr) + } else { + Err(SubstituteError::WrongArgCount { + call, + expected: self.function.params.len(), + span, + }) } } } |