=== tests/cases/compiler/hidingCallSignatures.ts === interface C { >C : C, Symbol(C, Decl(hidingCallSignatures.ts, 0, 0)) new (a: string): string; >a : string, Symbol(a, Decl(hidingCallSignatures.ts, 1, 9)) } interface D extends C { >D : D, Symbol(D, Decl(hidingCallSignatures.ts, 2, 1)) >C : C, Symbol(C, Decl(hidingCallSignatures.ts, 0, 0)) (a: string): number; // Should be ok >a : string, Symbol(a, Decl(hidingCallSignatures.ts, 5, 5)) } interface E { >E : E, Symbol(E, Decl(hidingCallSignatures.ts, 6, 1)) (a: string): {}; >a : string, Symbol(a, Decl(hidingCallSignatures.ts, 9, 5)) } interface F extends E { >F : F, Symbol(F, Decl(hidingCallSignatures.ts, 10, 1)) >E : E, Symbol(E, Decl(hidingCallSignatures.ts, 6, 1)) (a: string): string; >a : string, Symbol(a, Decl(hidingCallSignatures.ts, 13, 5)) } var d: D; >d : D, Symbol(d, Decl(hidingCallSignatures.ts, 16, 3)) >D : D, Symbol(D, Decl(hidingCallSignatures.ts, 2, 1)) d(""); // number >d("") : number >d : D, Symbol(d, Decl(hidingCallSignatures.ts, 16, 3)) >"" : string new d(""); // should be string >new d("") : string >d : D, Symbol(d, Decl(hidingCallSignatures.ts, 16, 3)) >"" : string var f: F; >f : F, Symbol(f, Decl(hidingCallSignatures.ts, 20, 3)) >F : F, Symbol(F, Decl(hidingCallSignatures.ts, 10, 1)) f(""); // string >f("") : string >f : F, Symbol(f, Decl(hidingCallSignatures.ts, 20, 3)) >"" : string var e: E; >e : E, Symbol(e, Decl(hidingCallSignatures.ts, 23, 3)) >E : E, Symbol(E, Decl(hidingCallSignatures.ts, 6, 1)) e(""); // {} >e("") : {} >e : E, Symbol(e, Decl(hidingCallSignatures.ts, 23, 3)) >"" : string