=== tests/cases/compiler/typeParameterConstrainedToOuterTypeParameter2.ts === interface A { >A : Symbol(A, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 0, 0)) >T : Symbol(T, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 0, 12)) foo(x: A>) >foo : Symbol(foo, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 0, 16)) >U : Symbol(U, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 1, 8)) >T : Symbol(T, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 0, 12)) >x : Symbol(x, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 1, 21)) >A : Symbol(A, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 0, 0)) >A : Symbol(A, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 0, 0)) >U : Symbol(U, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 1, 8)) } interface B { >B : Symbol(B, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 2, 1)) >T : Symbol(T, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 4, 12)) foo(x: B>) >foo : Symbol(foo, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 4, 16)) >U : Symbol(U, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 5, 8)) >T : Symbol(T, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 4, 12)) >x : Symbol(x, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 5, 21)) >B : Symbol(B, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 2, 1)) >B : Symbol(B, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 2, 1)) >U : Symbol(U, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 5, 8)) } var a: A >a : Symbol(a, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 8, 3)) >A : Symbol(A, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 0, 0)) var b: B = a; >b : Symbol(b, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 9, 3)) >B : Symbol(B, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 2, 1)) >a : Symbol(a, Decl(typeParameterConstrainedToOuterTypeParameter2.ts, 8, 3))