diff --git a/src/ast.rs b/src/ast.rs index ed59891..3e9026b 100644 --- a/src/ast.rs +++ b/src/ast.rs @@ -225,6 +225,9 @@ impl Function { pub fn new(declaration: &std::rc::Rc, arguments: Vec>) -> Self { + assert_eq!(declaration.arity, arguments.len(), + "function has a different number of arguments then declared"); + Self { declaration: std::rc::Rc::clone(declaration), @@ -377,6 +380,9 @@ impl Predicate { pub fn new(declaration: &std::rc::Rc, arguments: Vec>) -> Self { + assert_eq!(declaration.arity, arguments.len(), + "predicate has a different number of arguments then declared"); + Self { declaration: std::rc::Rc::clone(declaration),