added tests

This commit is contained in:
Arthur Ozga 2015-06-18 16:07:10 -07:00
parent d596bb750f
commit 868138834b
10 changed files with 173 additions and 0 deletions

View file

@ -0,0 +1,3 @@
abstract class A {
abstract constructor() {}
}

View file

@ -0,0 +1,25 @@
declare abstract class A {
abstract constructor() {}
}
declare abstract class AA {
abstract foo();
}
declare abstract class BB extends AA {}
declare class CC extends AA {}
declare class DD extends BB {}
declare abstract class EE extends BB {}
declare class FF extends CC {}
declare abstract class GG extends CC {}
declare abstract class AAA {}
declare abstract class BBB extends AAA {}
declare class CCC extends AAA {}

View file

@ -0,0 +1,21 @@
abstract class A {}
abstract class B extends A {}
class C extends A {}
abstract class AA {
abstract foo();
}
abstract class BB extends AA {}
class CC extends AA {}
class DD extends BB {}
abstract class EE extends BB {}
class FF extends CC {}
abstract class GG extends CC {}

View file

@ -0,0 +1,3 @@
abstract class A {
abstract foo() {}
}

View file

@ -0,0 +1,15 @@
abstract class A {
abstract foo_a();
public abstract foo_b();
protected abstract foo_c();
private abstract foo_d();
abstract public foo_bb();
abstract protected foo_cc();
abstract private foo_dd();
abstract static foo_d();
static abstract foo_e();
}

View file

@ -0,0 +1,24 @@
abstract class A {
abstract foo();
abstract foo() : number;
abstract foo();
abstract bar();
bar();
abstract bar();
abstract baz();
baz();
abstract baz();
baz() {}
qux();
}
abstract class B {
abstract foo() : number;
abstract foo();
x : number;
abstract foo();
abstract foo();
}

View file

@ -0,0 +1,11 @@
abstract class A {
abstract x : number;
public abstract y : number;
protected abstract z : number;
private abstract w : number;
abstract foo_x() : number;
public abstract foo_y() : number;
protected abstract foo_z() : number;
private abstract foo_w() : number;
}

View file

@ -0,0 +1,26 @@
class A {
foo() { return 1; }
}
abstract class B extends A {
abstract foo();
bar() { super.foo(); }
baz() { return this.foo; }
}
class C extends B {
foo() { return 2; }
qux() { return super.foo(); } // error, super is abstract
norf() { return super.bar(); }
}
class AA {
foo() { return 1; }
bar() { return this.foo(); }
}
abstract class BB extends AA {
abstract foo();
// inherits bar. But BB is abstract, so this is OK.
}

View file

@ -0,0 +1,18 @@
abstract class A {}
class B extends A {}
abstract class C extends B {}
new A;
new B;
new C;
var a : A;
var b : B;
var c : C;
a = new B;
b = new B;
c = new B;

View file

@ -0,0 +1,27 @@
class A {
abstract foo();
}
class B extends A {}
abstract class C extends A {}
class D extends A {
foo() {}
}
abstract class E extends A {
foo() {}
}
abstract class AA {
abstract foo();
}
class BB extends AA {}
abstract class CC extends AA {}
class DD extends AA {
foo() {}
}