diff --git a/dust-lang/src/abstract_tree/logic.rs b/dust-lang/src/abstract_tree/logic.rs index 9d181b2..1db1391 100644 --- a/dust-lang/src/abstract_tree/logic.rs +++ b/dust-lang/src/abstract_tree/logic.rs @@ -214,8 +214,8 @@ impl AbstractNode for Logic { left_boolean || right_boolean } - Logic::Not(statement) => { - let boolean = run_and_expect_boolean(statement)?; + Logic::Not(expression) => { + let boolean = run_and_expect_boolean(expression)?; !boolean } diff --git a/dust-lang/src/value.rs b/dust-lang/src/value.rs index 9520b79..01e305e 100644 --- a/dust-lang/src/value.rs +++ b/dust-lang/src/value.rs @@ -820,6 +820,8 @@ impl Function { debug!("Calling function"); + self.body + .define_and_validate(&self.context, false, SourcePosition(0, usize::MAX))?; self.body .evaluate(&self.context, false, SourcePosition(0, usize::MAX)) } diff --git a/dust-lang/tests/functions.rs b/dust-lang/tests/functions.rs index 82da220..11e4535 100644 --- a/dust-lang/tests/functions.rs +++ b/dust-lang/tests/functions.rs @@ -105,7 +105,7 @@ fn recursion() { } } - fib(4) + fib(8) " ), Ok(Some(Value::integer(13)))