diff options
| -rw-r--r-- | src/lib.rs | 14 | ||||
| -rw-r--r-- | src/vm.rs | 9 |
2 files changed, 20 insertions, 3 deletions
@@ -856,6 +856,20 @@ mod tests { assert_errs!(run_string("a :: B()\n", true, Vec::new()), [ErrorKind::SyntaxError(_, _)]); } + #[test] + fn unused_variable() { + assert_errs!(run_string("a := 1", true, Vec::new()), [ErrorKind::SyntaxError(1, _)]); + } + + #[test] + fn unused_upvalue() { + assert_errs!(run_string("a := 1\nf :: fn { a = 2 }\nf()", true, Vec::new()), [ErrorKind::SyntaxError(1, _)]); + } + + #[test] + fn unused_function() { + assert_errs!(run_string("a := 1\nf := fn { a }\n", true, Vec::new()), [ErrorKind::SyntaxError(2, _)]); + } macro_rules! test_multiple { ($mod:ident, $( $fn:ident : $prog:literal ),+ $( , )? ) => { @@ -831,15 +831,18 @@ mod tests { test_string!(uncallable_type, " f := fn i: int { i() - }", + } + f", [ErrorKind::TypeError(_, _)]); test_string!(wrong_params, " - f : fn -> int = fn a: int -> int {}", + f : fn -> int = fn a: int -> int {} + f", [ErrorKind::TypeError(_, _), ErrorKind::TypeError(_, _)]); test_string!(wrong_ret, " - f : fn -> int = fn {}", + f : fn -> int = fn {} + f", [ErrorKind::TypeError(_, _)]); } } |
