=== tests/cases/compiler/recursiveTypeParameterReferenceError2.ts === interface List { >List : Symbol(List, Decl(recursiveTypeParameterReferenceError2.ts, 0, 0)) >T : Symbol(T, Decl(recursiveTypeParameterReferenceError2.ts, 0, 15)) data: T; >data : Symbol(data, Decl(recursiveTypeParameterReferenceError2.ts, 0, 19)) >T : Symbol(T, Decl(recursiveTypeParameterReferenceError2.ts, 0, 15)) next: List; >next : Symbol(next, Decl(recursiveTypeParameterReferenceError2.ts, 1, 12)) >List : Symbol(List, Decl(recursiveTypeParameterReferenceError2.ts, 0, 0)) >T : Symbol(T, Decl(recursiveTypeParameterReferenceError2.ts, 0, 15)) owner: List>; // Error, recursive reference with wrapped T >owner : Symbol(owner, Decl(recursiveTypeParameterReferenceError2.ts, 2, 18)) >List : Symbol(List, Decl(recursiveTypeParameterReferenceError2.ts, 0, 0)) >List : Symbol(List, Decl(recursiveTypeParameterReferenceError2.ts, 0, 0)) >T : Symbol(T, Decl(recursiveTypeParameterReferenceError2.ts, 0, 15)) } interface List2 { >List2 : Symbol(List2, Decl(recursiveTypeParameterReferenceError2.ts, 4, 1)) >T : Symbol(T, Decl(recursiveTypeParameterReferenceError2.ts, 6, 16)) data: T; >data : Symbol(data, Decl(recursiveTypeParameterReferenceError2.ts, 6, 20)) >T : Symbol(T, Decl(recursiveTypeParameterReferenceError2.ts, 6, 16)) next: List2; >next : Symbol(next, Decl(recursiveTypeParameterReferenceError2.ts, 7, 12)) >List2 : Symbol(List2, Decl(recursiveTypeParameterReferenceError2.ts, 4, 1)) >T : Symbol(T, Decl(recursiveTypeParameterReferenceError2.ts, 6, 16)) owner: List2>; // Ok >owner : Symbol(owner, Decl(recursiveTypeParameterReferenceError2.ts, 8, 19)) >List2 : Symbol(List2, Decl(recursiveTypeParameterReferenceError2.ts, 4, 1)) >List2 : Symbol(List2, Decl(recursiveTypeParameterReferenceError2.ts, 4, 1)) }