1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
=== tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractInstantiations1.ts ===
//
// Calling new with (non)abstract classes.
//
abstract class A {}
>A : Symbol(A, Decl(classAbstractInstantiations1.ts, 0, 0))
class B extends A {}
>B : Symbol(B, Decl(classAbstractInstantiations1.ts, 4, 19))
>A : Symbol(A, Decl(classAbstractInstantiations1.ts, 0, 0))
abstract class C extends B {}
>C : Symbol(C, Decl(classAbstractInstantiations1.ts, 6, 20))
>B : Symbol(B, Decl(classAbstractInstantiations1.ts, 4, 19))
new A;
>A : Symbol(A, Decl(classAbstractInstantiations1.ts, 0, 0))
new A(1); // should report 1 error
>A : Symbol(A, Decl(classAbstractInstantiations1.ts, 0, 0))
new B;
>B : Symbol(B, Decl(classAbstractInstantiations1.ts, 4, 19))
new C;
>C : Symbol(C, Decl(classAbstractInstantiations1.ts, 6, 20))
var a : A;
>a : Symbol(a, Decl(classAbstractInstantiations1.ts, 15, 3))
>A : Symbol(A, Decl(classAbstractInstantiations1.ts, 0, 0))
var b : B;
>b : Symbol(b, Decl(classAbstractInstantiations1.ts, 16, 3))
>B : Symbol(B, Decl(classAbstractInstantiations1.ts, 4, 19))
var c : C;
>c : Symbol(c, Decl(classAbstractInstantiations1.ts, 17, 3))
>C : Symbol(C, Decl(classAbstractInstantiations1.ts, 6, 20))
a = new B;
>a : Symbol(a, Decl(classAbstractInstantiations1.ts, 15, 3))
>B : Symbol(B, Decl(classAbstractInstantiations1.ts, 4, 19))
b = new B;
>b : Symbol(b, Decl(classAbstractInstantiations1.ts, 16, 3))
>B : Symbol(B, Decl(classAbstractInstantiations1.ts, 4, 19))
c = new B;
>c : Symbol(c, Decl(classAbstractInstantiations1.ts, 17, 3))
>B : Symbol(B, Decl(classAbstractInstantiations1.ts, 4, 19))
|