=== tests/cases/compiler/hidingConstructSignatures.ts ===
interface C {
>C : Symbol(C, Decl(hidingConstructSignatures.ts, 0, 0))

    (a: string): string;
>a : Symbol(a, Decl(hidingConstructSignatures.ts, 1, 5))
}

interface D extends C {
>D : Symbol(D, Decl(hidingConstructSignatures.ts, 2, 1))
>C : Symbol(C, Decl(hidingConstructSignatures.ts, 0, 0))

    new (a: string): number; // Should be ok
>a : Symbol(a, Decl(hidingConstructSignatures.ts, 5, 9))
}

interface E {
>E : Symbol(E, Decl(hidingConstructSignatures.ts, 6, 1))

    new (a: string): {};
>a : Symbol(a, Decl(hidingConstructSignatures.ts, 9, 9))
}

interface F extends E {
>F : Symbol(F, Decl(hidingConstructSignatures.ts, 10, 1))
>E : Symbol(E, Decl(hidingConstructSignatures.ts, 6, 1))

    new (a: string): string;
>a : Symbol(a, Decl(hidingConstructSignatures.ts, 13, 9))
}

var d: D;
>d : Symbol(d, Decl(hidingConstructSignatures.ts, 16, 3))
>D : Symbol(D, Decl(hidingConstructSignatures.ts, 2, 1))

d(""); // string
>d : Symbol(d, Decl(hidingConstructSignatures.ts, 16, 3))

new d(""); // should be number
>d : Symbol(d, Decl(hidingConstructSignatures.ts, 16, 3))

var f: F;
>f : Symbol(f, Decl(hidingConstructSignatures.ts, 20, 3))
>F : Symbol(F, Decl(hidingConstructSignatures.ts, 10, 1))

new f(""); // string
>f : Symbol(f, Decl(hidingConstructSignatures.ts, 20, 3))

var e: E;
>e : Symbol(e, Decl(hidingConstructSignatures.ts, 23, 3))
>E : Symbol(E, Decl(hidingConstructSignatures.ts, 6, 1))

new e(""); // {}
>e : Symbol(e, Decl(hidingConstructSignatures.ts, 23, 3))

