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,14 @@
class A {
init(param) {
this.field = param;
}
test() {
print this.field;
}
}
class B < A {}
var b = B("value");
b.test(); // expect: value

View file

@ -0,0 +1,3 @@
fun foo() {}
class Subclass < foo {} // expect runtime error: Superclass must be a class.

View file

@ -0,0 +1,2 @@
var Nil = nil;
class Foo < Nil {} // expect runtime error: Superclass must be a class.

View file

@ -0,0 +1,2 @@
var Number = 123;
class Foo < Number {} // expect runtime error: Superclass must be a class.

View file

@ -0,0 +1,14 @@
class Foo {
methodOnFoo() { print "foo"; }
override() { print "foo"; }
}
class Bar < Foo {
methodOnBar() { print "bar"; }
override() { print "bar"; }
}
var bar = Bar();
bar.methodOnFoo(); // expect: foo
bar.methodOnBar(); // expect: bar
bar.override(); // expect: bar

View file

@ -0,0 +1,4 @@
class Foo {}
// [line 4] Error at '(': Expect superclass name.
class Bar < (Foo) {}

View file

@ -0,0 +1,38 @@
class Foo {
foo(a, b) {
this.field1 = a;
this.field2 = b;
}
fooPrint() {
print this.field1;
print this.field2;
}
}
class Bar < Foo {
bar(a, b) {
this.field1 = a;
this.field2 = b;
}
barPrint() {
print this.field1;
print this.field2;
}
}
var bar = Bar();
bar.foo("foo 1", "foo 2");
bar.fooPrint();
// expect: foo 1
// expect: foo 2
bar.bar("bar 1", "bar 2");
bar.barPrint();
// expect: bar 1
// expect: bar 2
bar.fooPrint();
// expect: bar 1
// expect: bar 2