|
1 | 1 | === tests/cases/compiler/genericInheritedDefaultConstructors.ts ===
|
| 2 | +// repro from #8166 |
2 | 3 | interface Constructor<T> {
|
3 | 4 | >Constructor : Symbol(Constructor, Decl(genericInheritedDefaultConstructors.ts, 0, 0))
|
4 |
| ->T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 0, 22)) |
| 5 | +>T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 1, 22)) |
5 | 6 |
|
6 | 7 | new(...args: any[]): T;
|
7 |
| ->args : Symbol(args, Decl(genericInheritedDefaultConstructors.ts, 1, 8)) |
8 |
| ->T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 0, 22)) |
| 8 | +>args : Symbol(args, Decl(genericInheritedDefaultConstructors.ts, 2, 8)) |
| 9 | +>T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 1, 22)) |
9 | 10 |
|
10 | 11 | prototype: T;
|
11 |
| ->prototype : Symbol(Constructor.prototype, Decl(genericInheritedDefaultConstructors.ts, 1, 27)) |
12 |
| ->T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 0, 22)) |
| 12 | +>prototype : Symbol(Constructor.prototype, Decl(genericInheritedDefaultConstructors.ts, 2, 27)) |
| 13 | +>T : Symbol(T, Decl(genericInheritedDefaultConstructors.ts, 1, 22)) |
13 | 14 | }
|
14 | 15 |
|
15 | 16 | class A<U> { a: U; }
|
16 |
| ->A : Symbol(A, Decl(genericInheritedDefaultConstructors.ts, 3, 1)) |
17 |
| ->U : Symbol(U, Decl(genericInheritedDefaultConstructors.ts, 5, 8)) |
18 |
| ->a : Symbol(A.a, Decl(genericInheritedDefaultConstructors.ts, 5, 12)) |
19 |
| ->U : Symbol(U, Decl(genericInheritedDefaultConstructors.ts, 5, 8)) |
| 17 | +>A : Symbol(A, Decl(genericInheritedDefaultConstructors.ts, 4, 1)) |
| 18 | +>U : Symbol(U, Decl(genericInheritedDefaultConstructors.ts, 6, 8)) |
| 19 | +>a : Symbol(A.a, Decl(genericInheritedDefaultConstructors.ts, 6, 12)) |
| 20 | +>U : Symbol(U, Decl(genericInheritedDefaultConstructors.ts, 6, 8)) |
20 | 21 |
|
21 | 22 | class B<V> extends A<V> { b: V; }
|
22 |
| ->B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 5, 20)) |
23 |
| ->V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 6, 8)) |
24 |
| ->A : Symbol(A, Decl(genericInheritedDefaultConstructors.ts, 3, 1)) |
25 |
| ->V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 6, 8)) |
26 |
| ->b : Symbol(B.b, Decl(genericInheritedDefaultConstructors.ts, 6, 25)) |
27 |
| ->V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 6, 8)) |
28 |
| - |
29 |
| -var c:Constructor<B<boolean>> = B; // error here |
30 |
| ->c : Symbol(c, Decl(genericInheritedDefaultConstructors.ts, 7, 3)) |
| 23 | +>B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 6, 20)) |
| 24 | +>V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 7, 8)) |
| 25 | +>A : Symbol(A, Decl(genericInheritedDefaultConstructors.ts, 4, 1)) |
| 26 | +>V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 7, 8)) |
| 27 | +>b : Symbol(B.b, Decl(genericInheritedDefaultConstructors.ts, 7, 25)) |
| 28 | +>V : Symbol(V, Decl(genericInheritedDefaultConstructors.ts, 7, 8)) |
| 29 | + |
| 30 | +var c:Constructor<B<boolean>> = B; // shouldn't error here |
| 31 | +>c : Symbol(c, Decl(genericInheritedDefaultConstructors.ts, 8, 3)) |
31 | 32 | >Constructor : Symbol(Constructor, Decl(genericInheritedDefaultConstructors.ts, 0, 0))
|
32 |
| ->B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 5, 20)) |
33 |
| ->B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 5, 20)) |
34 |
| - |
35 |
| -var x = new B<number>(); |
36 |
| ->x : Symbol(x, Decl(genericInheritedDefaultConstructors.ts, 8, 3)) |
37 |
| ->B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 5, 20)) |
38 |
| - |
39 |
| -//class A1 { a: boolean; } |
40 |
| -//class B1 extends A1 { b: boolean; } |
41 |
| -//var c1:Constructor<B1> = B1; // no error here |
| 33 | +>B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 6, 20)) |
| 34 | +>B : Symbol(B, Decl(genericInheritedDefaultConstructors.ts, 6, 20)) |
42 | 35 |
|
0 commit comments