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