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 53 54
|
=== tests/cases/compiler/recursiveTypeParameterReferenceError1.ts ===
class X<T> { }
>X : Symbol(X, Decl(recursiveTypeParameterReferenceError1.ts, 0, 0))
>T : Symbol(T, Decl(recursiveTypeParameterReferenceError1.ts, 0, 8))
interface Foo<T> {
>Foo : Symbol(Foo, Decl(recursiveTypeParameterReferenceError1.ts, 0, 14))
>T : Symbol(T, Decl(recursiveTypeParameterReferenceError1.ts, 1, 14))
z: Foo<X<T>>; // error
>z : Symbol(Foo.z, Decl(recursiveTypeParameterReferenceError1.ts, 1, 18))
>Foo : Symbol(Foo, Decl(recursiveTypeParameterReferenceError1.ts, 0, 14))
>X : Symbol(X, Decl(recursiveTypeParameterReferenceError1.ts, 0, 0))
>T : Symbol(T, Decl(recursiveTypeParameterReferenceError1.ts, 1, 14))
}
var f: Foo<number>;
>f : Symbol(f, Decl(recursiveTypeParameterReferenceError1.ts, 4, 3))
>Foo : Symbol(Foo, Decl(recursiveTypeParameterReferenceError1.ts, 0, 14))
var r = f.z;
>r : Symbol(r, Decl(recursiveTypeParameterReferenceError1.ts, 5, 3))
>f.z : Symbol(Foo.z, Decl(recursiveTypeParameterReferenceError1.ts, 1, 18))
>f : Symbol(f, Decl(recursiveTypeParameterReferenceError1.ts, 4, 3))
>z : Symbol(Foo.z, Decl(recursiveTypeParameterReferenceError1.ts, 1, 18))
class C2<T> {
>C2 : Symbol(C2, Decl(recursiveTypeParameterReferenceError1.ts, 5, 12))
>T : Symbol(T, Decl(recursiveTypeParameterReferenceError1.ts, 8, 9))
x: T;
>x : Symbol(C2.x, Decl(recursiveTypeParameterReferenceError1.ts, 8, 13))
>T : Symbol(T, Decl(recursiveTypeParameterReferenceError1.ts, 8, 9))
}
interface Foo2<T> {
>Foo2 : Symbol(Foo2, Decl(recursiveTypeParameterReferenceError1.ts, 10, 1))
>T : Symbol(T, Decl(recursiveTypeParameterReferenceError1.ts, 11, 15))
ofC4: C2<{ x: T }> // ok
>ofC4 : Symbol(Foo2.ofC4, Decl(recursiveTypeParameterReferenceError1.ts, 11, 19))
>C2 : Symbol(C2, Decl(recursiveTypeParameterReferenceError1.ts, 5, 12))
>x : Symbol(x, Decl(recursiveTypeParameterReferenceError1.ts, 12, 14))
>T : Symbol(T, Decl(recursiveTypeParameterReferenceError1.ts, 11, 15))
}
var f2: Foo2<number>;
>f2 : Symbol(f2, Decl(recursiveTypeParameterReferenceError1.ts, 14, 3))
>Foo2 : Symbol(Foo2, Decl(recursiveTypeParameterReferenceError1.ts, 10, 1))
var r2 = f2.ofC4;
>r2 : Symbol(r2, Decl(recursiveTypeParameterReferenceError1.ts, 15, 3))
>f2.ofC4 : Symbol(Foo2.ofC4, Decl(recursiveTypeParameterReferenceError1.ts, 11, 19))
>f2 : Symbol(f2, Decl(recursiveTypeParameterReferenceError1.ts, 14, 3))
>ofC4 : Symbol(Foo2.ofC4, Decl(recursiveTypeParameterReferenceError1.ts, 11, 19))
|