=== tests/cases/conformance/types/namedTypes/genericInstantiationEquivalentToObjectLiteral.ts === interface Pair { first: T1; second: T2; } >Pair : Pair >T1 : T1 >T2 : T2 >first : T1 >T1 : T1 >second : T2 >T2 : T2 var x: Pair >x : Pair >Pair : Pair var y: { first: string; second: number; } >y : { first: string; second: number; } >first : string >second : number x = y; >x = y : { first: string; second: number; } >x : Pair >y : { first: string; second: number; } y = x; >y = x : Pair >y : { first: string; second: number; } >x : Pair declare function f(x: Pair); >f : (x: Pair) => any >T : T >U : U >x : Pair >Pair : Pair >T : T >U : U declare function f2(x: { first: T; second: U; }); >f2 : (x: { first: T; second: U; }) => any >T : T >U : U >x : { first: T; second: U; } >first : T >T : T >second : U >U : U f(x); >f(x) : any >f : (x: Pair) => any >x : Pair f(y); >f(y) : any >f : (x: Pair) => any >y : { first: string; second: number; } f2(x); >f2(x) : any >f2 : (x: { first: T; second: U; }) => any >x : Pair f2(y); >f2(y) : any >f2 : (x: { first: T; second: U; }) => any >y : { first: string; second: number; }