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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
=== tests/cases/compiler/wrappedRecursiveGenericType.ts ===
interface X<T> { e: T; }
>X : Symbol(X, Decl(wrappedRecursiveGenericType.ts, 0, 0))
>T : Symbol(T, Decl(wrappedRecursiveGenericType.ts, 0, 12))
>e : Symbol(X.e, Decl(wrappedRecursiveGenericType.ts, 0, 16))
>T : Symbol(T, Decl(wrappedRecursiveGenericType.ts, 0, 12))
interface A<T> {
>A : Symbol(A, Decl(wrappedRecursiveGenericType.ts, 0, 24))
>T : Symbol(T, Decl(wrappedRecursiveGenericType.ts, 1, 12))
a: B<T>;
>a : Symbol(A.a, Decl(wrappedRecursiveGenericType.ts, 1, 16))
>B : Symbol(B, Decl(wrappedRecursiveGenericType.ts, 4, 1))
>T : Symbol(T, Decl(wrappedRecursiveGenericType.ts, 1, 12))
val: T;
>val : Symbol(A.val, Decl(wrappedRecursiveGenericType.ts, 2, 12))
>T : Symbol(T, Decl(wrappedRecursiveGenericType.ts, 1, 12))
}
interface B<T> {
>B : Symbol(B, Decl(wrappedRecursiveGenericType.ts, 4, 1))
>T : Symbol(T, Decl(wrappedRecursiveGenericType.ts, 5, 12))
b: A<X<T>>;
>b : Symbol(B.b, Decl(wrappedRecursiveGenericType.ts, 5, 16))
>A : Symbol(A, Decl(wrappedRecursiveGenericType.ts, 0, 24))
>X : Symbol(X, Decl(wrappedRecursiveGenericType.ts, 0, 0))
>T : Symbol(T, Decl(wrappedRecursiveGenericType.ts, 5, 12))
val: T;
>val : Symbol(B.val, Decl(wrappedRecursiveGenericType.ts, 6, 15))
>T : Symbol(T, Decl(wrappedRecursiveGenericType.ts, 5, 12))
}
var x: A<number>;
>x : Symbol(x, Decl(wrappedRecursiveGenericType.ts, 9, 3))
>A : Symbol(A, Decl(wrappedRecursiveGenericType.ts, 0, 24))
x.val = 5; // val -> number
>x.val : Symbol(A.val, Decl(wrappedRecursiveGenericType.ts, 2, 12))
>x : Symbol(x, Decl(wrappedRecursiveGenericType.ts, 9, 3))
>val : Symbol(A.val, Decl(wrappedRecursiveGenericType.ts, 2, 12))
x.a.val = 5; // val -> number
>x.a.val : Symbol(B.val, Decl(wrappedRecursiveGenericType.ts, 6, 15))
>x.a : Symbol(A.a, Decl(wrappedRecursiveGenericType.ts, 1, 16))
>x : Symbol(x, Decl(wrappedRecursiveGenericType.ts, 9, 3))
>a : Symbol(A.a, Decl(wrappedRecursiveGenericType.ts, 1, 16))
>val : Symbol(B.val, Decl(wrappedRecursiveGenericType.ts, 6, 15))
x.a.b.val = 5; // val -> X<number> (This should be an error)
>x.a.b.val : Symbol(A.val, Decl(wrappedRecursiveGenericType.ts, 2, 12))
>x.a.b : Symbol(B.b, Decl(wrappedRecursiveGenericType.ts, 5, 16))
>x.a : Symbol(A.a, Decl(wrappedRecursiveGenericType.ts, 1, 16))
>x : Symbol(x, Decl(wrappedRecursiveGenericType.ts, 9, 3))
>a : Symbol(A.a, Decl(wrappedRecursiveGenericType.ts, 1, 16))
>b : Symbol(B.b, Decl(wrappedRecursiveGenericType.ts, 5, 16))
>val : Symbol(A.val, Decl(wrappedRecursiveGenericType.ts, 2, 12))
x.a.b.a.val = 5; // val -> X<number> (This should be an error)
>x.a.b.a.val : Symbol(B.val, Decl(wrappedRecursiveGenericType.ts, 6, 15))
>x.a.b.a : Symbol(A.a, Decl(wrappedRecursiveGenericType.ts, 1, 16))
>x.a.b : Symbol(B.b, Decl(wrappedRecursiveGenericType.ts, 5, 16))
>x.a : Symbol(A.a, Decl(wrappedRecursiveGenericType.ts, 1, 16))
>x : Symbol(x, Decl(wrappedRecursiveGenericType.ts, 9, 3))
>a : Symbol(A.a, Decl(wrappedRecursiveGenericType.ts, 1, 16))
>b : Symbol(B.b, Decl(wrappedRecursiveGenericType.ts, 5, 16))
>a : Symbol(A.a, Decl(wrappedRecursiveGenericType.ts, 1, 16))
>val : Symbol(B.val, Decl(wrappedRecursiveGenericType.ts, 6, 15))
|