mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-28 22:21:50 +00:00
Implement calls to 'super()' (#445)
This commit is contained in:
66
tests/compiler/call-super.ts
Normal file
66
tests/compiler/call-super.ts
Normal file
@ -0,0 +1,66 @@
|
||||
import "allocator/arena";
|
||||
|
||||
class A {
|
||||
a: i32 = 1;
|
||||
constructor() {
|
||||
assert(this.a == 1);
|
||||
}
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
// a: i32 = 3; // FIXME: currently duplicate identifier
|
||||
b: i32 = 2;
|
||||
constructor() {
|
||||
super();
|
||||
assert(this.a == 1);
|
||||
assert(this.b == 2);
|
||||
}
|
||||
}
|
||||
|
||||
function test1(): void {
|
||||
var b = new B();
|
||||
assert(b.a == 1);
|
||||
assert(b.b == 2);
|
||||
}
|
||||
|
||||
test1();
|
||||
|
||||
class C {
|
||||
a: i32 = 1;
|
||||
}
|
||||
|
||||
class D extends C {
|
||||
b: i32 = 2;
|
||||
constructor() {
|
||||
super();
|
||||
assert(this.a == 1);
|
||||
assert(this.b == 2);
|
||||
}
|
||||
}
|
||||
|
||||
function test2(): void {
|
||||
var d = new D();
|
||||
assert(d.a == 1);
|
||||
assert(d.b == 2);
|
||||
}
|
||||
|
||||
test2();
|
||||
|
||||
class E {
|
||||
a: i32 = 1;
|
||||
constructor() {
|
||||
assert(this.a == 1);
|
||||
}
|
||||
}
|
||||
|
||||
class F extends E {
|
||||
b: i32 = 2;
|
||||
}
|
||||
|
||||
function test3(): void {
|
||||
var f = new F();
|
||||
assert(f.a == 1);
|
||||
// assert(f.b == 2); // FIXME: uses E#constructor, not initializing fields
|
||||
}
|
||||
|
||||
test3();
|
Reference in New Issue
Block a user