added tests

This commit is contained in:
Moritz Gmeiner 2024-09-01 19:15:55 +02:00
commit 660464638f
255 changed files with 7220 additions and 3 deletions

View file

@ -0,0 +1,3 @@
fun foo(a) {
var a; // Error at 'a': Already a variable with this name in this scope.
}

View file

@ -0,0 +1,4 @@
{
var a = "value";
var a = "other"; // Error at 'a': Already a variable with this name in this scope.
}

View file

@ -0,0 +1,4 @@
fun foo(arg,
arg) { // Error at 'arg': Already a variable with this name in this scope.
"body";
}

View file

@ -0,0 +1,10 @@
var a = "outer";
{
fun foo() {
print a;
}
foo(); // expect: outer
var a = "inner";
foo(); // expect: outer
}

View file

@ -0,0 +1,10 @@
{
var a = "a";
print a; // expect: a
var b = a + " b";
print b; // expect: a b
var c = a + " c";
print c; // expect: a c
var d = b + " d";
print d; // expect: a b d
}

View file

@ -0,0 +1,6 @@
{
var a = "outer";
{
print a; // expect: outer
}
}

View file

@ -0,0 +1,9 @@
var foo = "variable";
class Foo {
method() {
print foo;
}
}
Foo().method(); // expect: variable

View file

@ -0,0 +1,3 @@
var a = "1";
var a;
print a; // expect: nil

View file

@ -0,0 +1,3 @@
var a = "1";
var a = "2";
print a; // expect: 2

View file

@ -0,0 +1,9 @@
{
var a = "first";
print a; // expect: first
}
{
var a = "second";
print a; // expect: second
}

View file

@ -0,0 +1,8 @@
{
var a = "outer";
{
print a; // expect: outer
var a = "inner";
print a; // expect: inner
}
}

View file

@ -0,0 +1,6 @@
var a = "global";
{
var a = "shadow";
print a; // expect: shadow
}
print a; // expect: global

View file

@ -0,0 +1,8 @@
{
var a = "local";
{
var a = "shadow";
print a; // expect: shadow
}
print a; // expect: local
}

View file

@ -0,0 +1 @@
print notDefined; // expect runtime error: Undefined variable 'notDefined'.

View file

@ -0,0 +1,3 @@
{
print notDefined; // expect runtime error: Undefined variable 'notDefined'.
}

View file

@ -0,0 +1,2 @@
var a;
print a; // expect: nil

View file

@ -0,0 +1,5 @@
if (false) {
print notDefined;
}
print "ok"; // expect: ok

View file

@ -0,0 +1,2 @@
// [line 2] Error at 'false': Expect variable name.
var false = "value";

View file

@ -0,0 +1,3 @@
var a = "value";
var a = a;
print a; // expect: value

View file

@ -0,0 +1,4 @@
var a = "outer";
{
var a = a; // Error at 'a': Can't read local variable in its own initializer.
}

View file

@ -0,0 +1,2 @@
// [line 2] Error at 'nil': Expect variable name.
var nil = "value";

View file

@ -0,0 +1,2 @@
// [line 2] Error at 'this': Expect variable name.
var this = "value";