=== tests/cases/compiler/genericOverloadSignatures.ts === interface A { >A : A (x: T): void; >T : T >x : T >T : T (x: T): void; >T : T >x : T >T : T } function f(a: T); >f : { (a: T): any; (a: T): any; } >T : T >a : T >T : T function f(a: T); >f : { (a: T): any; (a: T): any; } >T : T >a : T >T : T function f(a) { } >f : { (a: T): any; (a: T): any; } >a : any interface I2 { >I2 : I2 f(x: T): number; >f : { (x: T): number; (x: T): string; } >T : T >x : T >T : T f(x: T): string; >f : { (x: T): number; (x: T): string; } >T : T >x : T >T : T } interface I3 { >I3 : I3 >T : T f(x: T): number; >f : { (x: T): number; (x: T): string; } >x : T >T : T f(x: T): string; >f : { (x: T): number; (x: T): string; } >x : T >T : T } class C2 { >C2 : C2 >T : T } var b: { >b : { new (x: T, y: string): C2; new (x: T, y: string): C2; } new (x: T, y: string): C2; >T : T >x : T >T : T >y : string >C2 : C2 >T : T new (x: T, y: string): C2; >T : T >x : T >T : T >y : string >C2 : C2 >T : T } interface D { >D : D (x: T): T; >T : T >x : T >T : T >T : T (x: T): T; >T : T >x : T >T : T >T : T }