diff --git a/src/evaluator/macros.rs b/src/evaluator/macros.rs index 36d6532..9f48777 100644 --- a/src/evaluator/macros.rs +++ b/src/evaluator/macros.rs @@ -7,10 +7,12 @@ macro_rules! arg_count { }; (modulo: $modulo:expr, $given:expr) => { - Err(Error::MismatchedArgCount( - ($given / $modulo) * $modulo + $modulo, - $given, - ))? + if $given % $modulo != 0 { + Err(Error::MismatchedArgCount( + ($given / $modulo) * $modulo + $modulo, + $given, + ))? + } }; } diff --git a/src/evaluator/mod.rs b/src/evaluator/mod.rs index 3d05777..43dad4d 100644 --- a/src/evaluator/mod.rs +++ b/src/evaluator/mod.rs @@ -254,6 +254,7 @@ mod test { #[rstest] #[case("{:a}")] #[case("(not-a-func :uwu)")] + #[case("{:a}")] fn test_evaluator_fail(#[case] input: &str) { let env = core_environment(); let tokens = lexer::read(input).unwrap();