=== tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithIdenticalOverloads.ts === // Duplicate overloads of construct signatures should generate errors class C { >C : C constructor(x: number, y: string); >x : number >y : string constructor(x: number, y: string); // error >x : number >y : string constructor(x: number) { } >x : number } var r1 = new C(1, ''); >r1 : C >new C(1, '') : C >C : typeof C class C2 { >C2 : C2 >T : T constructor(x: T, y: string); >x : T >T : T >y : string constructor(x: T, y: string); // error >x : T >T : T >y : string constructor(x: T) { } >x : T >T : T } var r2 = new C2(1, ''); >r2 : C2 >new C2(1, '') : C2 >C2 : typeof C2 interface I { >I : I new (x: number, y: string): C; >x : number >y : string >C : C new (x: number, y: string): C; // error >x : number >y : string >C : C } var i: I; >i : I >I : I var r3 = new i(1, ''); >r3 : C >new i(1, '') : C >i : I interface I2 { >I2 : I2 >T : T new (x: T, y: string): C2; >x : T >T : T >y : string >C2 : C2 >T : T new (x: T, y: string): C2; // error >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 new (x: T, y: string): C2; // error >T : T >x : T >T : T >y : string >C2 : C2 >T : T } var i2: I2; >i2 : I2 >I2 : I2 var r4 = new i2(1, ''); >r4 : C2 >new i2(1, '') : C2 >i2 : I2 var a: { >a : { new (x: number, y: string): C; new (x: number, y: string): C; } new (x: number, y: string): C; >x : number >y : string >C : C new (x: number, y: string): C; // error >x : number >y : string >C : C } var r5 = new a(1, ''); >r5 : C >new a(1, '') : C >a : { new (x: number, y: string): C; new (x: number, y: string): C; } 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; // error >T : T >x : T >T : T >y : string >C2 : C2 >T : T } var r6 = new b(1, ''); >r6 : C2 >new b(1, '') : C2 >b : { new (x: T, y: string): C2; new (x: T, y: string): C2; }