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
|
=== tests/cases/compiler/mutuallyRecursiveInference.ts ===
class T<A> {
>T : Symbol(T, Decl(mutuallyRecursiveInference.ts, 0, 0))
>A : Symbol(A, Decl(mutuallyRecursiveInference.ts, 0, 8))
a: A;
>a : Symbol(T.a, Decl(mutuallyRecursiveInference.ts, 0, 12))
>A : Symbol(A, Decl(mutuallyRecursiveInference.ts, 0, 8))
b: any
>b : Symbol(T.b, Decl(mutuallyRecursiveInference.ts, 1, 9))
}
class L<RT extends { a: 'a' | 'b', b: any }> extends T<RT[RT['a']]> {
>L : Symbol(L, Decl(mutuallyRecursiveInference.ts, 3, 1))
>RT : Symbol(RT, Decl(mutuallyRecursiveInference.ts, 4, 8))
>a : Symbol(a, Decl(mutuallyRecursiveInference.ts, 4, 20))
>b : Symbol(b, Decl(mutuallyRecursiveInference.ts, 4, 34))
>T : Symbol(T, Decl(mutuallyRecursiveInference.ts, 0, 0))
>RT : Symbol(RT, Decl(mutuallyRecursiveInference.ts, 4, 8))
>RT : Symbol(RT, Decl(mutuallyRecursiveInference.ts, 4, 8))
m() { this.a }
>m : Symbol(L.m, Decl(mutuallyRecursiveInference.ts, 4, 69))
>this.a : Symbol(T.a, Decl(mutuallyRecursiveInference.ts, 0, 12))
>this : Symbol(L, Decl(mutuallyRecursiveInference.ts, 3, 1))
>a : Symbol(T.a, Decl(mutuallyRecursiveInference.ts, 0, 12))
}
class X extends L<X> {
>X : Symbol(X, Decl(mutuallyRecursiveInference.ts, 6, 1))
>L : Symbol(L, Decl(mutuallyRecursiveInference.ts, 3, 1))
>X : Symbol(X, Decl(mutuallyRecursiveInference.ts, 6, 1))
a: 'a' | 'b'
>a : Symbol(X.a, Decl(mutuallyRecursiveInference.ts, 7, 22))
b: number
>b : Symbol(X.b, Decl(mutuallyRecursiveInference.ts, 8, 16))
m2() {
>m2 : Symbol(X.m2, Decl(mutuallyRecursiveInference.ts, 9, 13))
this.a
>this.a : Symbol(X.a, Decl(mutuallyRecursiveInference.ts, 7, 22))
>this : Symbol(X, Decl(mutuallyRecursiveInference.ts, 6, 1))
>a : Symbol(X.a, Decl(mutuallyRecursiveInference.ts, 7, 22))
}
}
|