aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdvard Thörnros <edvard.thornros@gmail.com>2021-02-16 23:45:45 +0100
committerEdvard Thörnros <edvard.thornros@gmail.com>2021-02-16 23:45:45 +0100
commit742c16dccef17a57494fe5846818cfc3324bbd45 (patch)
tree7a8286e1935a77c16b958a6cb8b6e34071497270
parenta668f98f725f27a9e9cdc40b75cc0f99b8f998a6 (diff)
downloadsylt-742c16dccef17a57494fe5846818cfc3324bbd45.tar.gz
add tests for unusued variables
-rw-r--r--src/lib.rs14
-rw-r--r--src/vm.rs9
2 files changed, 20 insertions, 3 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 77176c4..7ef13f9 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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 ),+ $( , )? ) => {
diff --git a/src/vm.rs b/src/vm.rs
index f5c1cf0..70cb5e4 100644
--- a/src/vm.rs
+++ b/src/vm.rs
@@ -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(_, _)]);
}
}