diff --git a/src/frontend.rs b/src/frontend.rs index 63003ec..dde6fd8 100644 --- a/src/frontend.rs +++ b/src/frontend.rs @@ -11,6 +11,7 @@ fn make_pubid(id: &str) -> String { #[derive(Debug)] pub enum CompileErrorKind { UndefinedReference(String), + BadArgCount{received: usize, expected: usize}, } #[derive(Debug)] @@ -83,6 +84,12 @@ fn lower_expression( )) })?; + if args_resolved.len() != callable.args.len() { + return Err(CompileError::new(CompileErrorKind::BadArgCount{ + expected: callable.args.len(), received: args_resolved.len() + })) + } + let cell_id = module.make_genid(&callable.name); let cell = (*callable.instantiate)(&cell_id, args_resolved.as_slice(), &output_gen_id);