diff --git a/tests/baselines/reference/genericInheritedDefaultConstructors.js b/tests/baselines/reference/genericInheritedDefaultConstructors.js index 9c12ed6839..170ef89abb 100644 --- a/tests/baselines/reference/genericInheritedDefaultConstructors.js +++ b/tests/baselines/reference/genericInheritedDefaultConstructors.js @@ -1,4 +1,5 @@ //// [genericInheritedDefaultConstructors.ts] +// repro from #8166 interface Constructor { new(...args: any[]): T; prototype: T; @@ -6,12 +7,7 @@ interface Constructor { class A { a: U; } class B extends A { b: V; } -var c:Constructor> = B; // error here -var x = new B(); - -//class A1 { a: boolean; } -//class B1 extends A1 { b: boolean; } -//var c1:Constructor = B1; // no error here +var c:Constructor> = B; // shouldn't error here //// [genericInheritedDefaultConstructors.js] @@ -32,8 +28,4 @@ var B = (function (_super) { } return B; }(A)); -var c = B; // error here -var x = new B(); -//class A1 { a: boolean; } -//class B1 extends A1 { b: boolean; } -//var c1:Constructor = B1; // no error here +var c = B; // shouldn't error here diff --git a/tests/baselines/reference/genericInheritedDefaultConstructors.symbols b/tests/baselines/reference/genericInheritedDefaultConstructors.symbols index 408abf1ef0..42a98b54c1 100644 --- a/tests/baselines/reference/genericInheritedDefaultConstructors.symbols +++ b/tests/baselines/reference/genericInheritedDefaultConstructors.symbols @@ -1,42 +1,35 @@ === tests/cases/compiler/genericInheritedDefaultConstructors.ts === +// repro from #8166 interface Constructor { >Constructor : Symbol(Constructor, Decl(genericInheritedDefaultConstructors.ts, 0, 0)) ->T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 0, 22)) +>T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 1, 22)) new(...args: any[]): T; ->args : Symbol(args, Decl(genericInheritedDefaultConstructors.ts, 1, 8)) ->T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 0, 22)) +>args : Symbol(args, Decl(genericInheritedDefaultConstructors.ts, 2, 8)) +>T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 1, 22)) prototype: T; ->prototype : Symbol(Constructor.prototype, Decl(genericInheritedDefaultConstructors.ts, 1, 27)) ->T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 0, 22)) +>prototype : Symbol(Constructor.prototype, Decl(genericInheritedDefaultConstructors.ts, 2, 27)) +>T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 1, 22)) } class A { a: U; } ->A : Symbol(A, Decl(genericInheritedDefaultConstructors.ts, 3, 1)) ->U : Symbol(U, Decl(genericInheritedDefaultConstructors.ts, 5, 8)) ->a : Symbol(A.a, Decl(genericInheritedDefaultConstructors.ts, 5, 12)) ->U : Symbol(U, Decl(genericInheritedDefaultConstructors.ts, 5, 8)) +>A : Symbol(A, Decl(genericInheritedDefaultConstructors.ts, 4, 1)) +>U : Symbol(U, Decl(genericInheritedDefaultConstructors.ts, 6, 8)) +>a : Symbol(A.a, Decl(genericInheritedDefaultConstructors.ts, 6, 12)) +>U : Symbol(U, Decl(genericInheritedDefaultConstructors.ts, 6, 8)) class B extends A { b: V; } ->B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 5, 20)) ->V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 6, 8)) ->A : Symbol(A, Decl(genericInheritedDefaultConstructors.ts, 3, 1)) ->V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 6, 8)) ->b : Symbol(B.b, Decl(genericInheritedDefaultConstructors.ts, 6, 25)) ->V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 6, 8)) +>B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 6, 20)) +>V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 7, 8)) +>A : Symbol(A, Decl(genericInheritedDefaultConstructors.ts, 4, 1)) +>V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 7, 8)) +>b : Symbol(B.b, Decl(genericInheritedDefaultConstructors.ts, 7, 25)) +>V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 7, 8)) -var c:Constructor> = B; // error here ->c : Symbol(c, Decl(genericInheritedDefaultConstructors.ts, 7, 3)) +var c:Constructor> = B; // shouldn't error here +>c : Symbol(c, Decl(genericInheritedDefaultConstructors.ts, 8, 3)) >Constructor : Symbol(Constructor, Decl(genericInheritedDefaultConstructors.ts, 0, 0)) ->B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 5, 20)) ->B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 5, 20)) - -var x = new B(); ->x : Symbol(x, Decl(genericInheritedDefaultConstructors.ts, 8, 3)) ->B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 5, 20)) - -//class A1 { a: boolean; } -//class B1 extends A1 { b: boolean; } -//var c1:Constructor = B1; // no error here +>B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 6, 20)) +>B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 6, 20)) diff --git a/tests/baselines/reference/genericInheritedDefaultConstructors.types b/tests/baselines/reference/genericInheritedDefaultConstructors.types index 0f68e9d7ec..e0b4b7251f 100644 --- a/tests/baselines/reference/genericInheritedDefaultConstructors.types +++ b/tests/baselines/reference/genericInheritedDefaultConstructors.types @@ -1,4 +1,5 @@ === tests/cases/compiler/genericInheritedDefaultConstructors.ts === +// repro from #8166 interface Constructor { >Constructor : Constructor >T : T @@ -26,18 +27,9 @@ class B extends A { b: V; } >b : V >V : V -var c:Constructor> = B; // error here +var c:Constructor> = B; // shouldn't error here >c : Constructor> >Constructor : Constructor >B : B >B : typeof B -var x = new B(); ->x : B ->new B() : B ->B : typeof B - -//class A1 { a: boolean; } -//class B1 extends A1 { b: boolean; } -//var c1:Constructor = B1; // no error here - diff --git a/tests/cases/compiler/genericInheritedDefaultConstructors.ts b/tests/cases/compiler/genericInheritedDefaultConstructors.ts index dfe21f418e..9b0bb94e87 100644 --- a/tests/cases/compiler/genericInheritedDefaultConstructors.ts +++ b/tests/cases/compiler/genericInheritedDefaultConstructors.ts @@ -1,3 +1,4 @@ +// repro from #8166 interface Constructor { new(...args: any[]): T; prototype: T; @@ -5,9 +6,4 @@ interface Constructor { class A { a: U; } class B extends A { b: V; } -var c:Constructor> = B; // error here -var x = new B(); - -//class A1 { a: boolean; } -//class B1 extends A1 { b: boolean; } -//var c1:Constructor = B1; // no error here +var c:Constructor> = B; // shouldn't error here