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