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,13 @@
class Foo {
getClosure() {
fun closure() {
return this.toString();
}
return closure;
}
toString() { return "Foo"; }
}
var closure = Foo().getClosure();
print closure(); // expect: Foo

View file

@ -0,0 +1,20 @@
class Outer {
method() {
print this; // expect: Outer instance
fun f() {
print this; // expect: Outer instance
class Inner {
method() {
print this; // expect: Inner instance
}
}
Inner().method();
}
f();
}
}
Outer().method();

View file

@ -0,0 +1,19 @@
class Foo {
getClosure() {
fun f() {
fun g() {
fun h() {
return this.toString();
}
return h;
}
return g;
}
return f;
}
toString() { return "Foo"; }
}
var closure = Foo().getClosure();
print closure()()(); // expect: Foo

View file

@ -0,0 +1 @@
this; // Error at 'this': Can't use 'this' outside of a class.

View file

@ -0,0 +1,6 @@
class Foo {
bar() { return this; }
baz() { return "baz"; }
}
print Foo().bar().baz(); // expect: baz

View file

@ -0,0 +1,3 @@
fun foo() {
this; // Error at 'this': Can't use 'this' outside of a class.
}