//// [tests/cases/compiler/declarationEmitClassMemberNameConflict.ts] ////

=== declarationEmitClassMemberNameConflict.ts ===
export class C1 {
>C1 : C1
>   : ^^

    C1() { } // has to be the same as the class name
>C1 : () => void
>   : ^^^^^^^^^^

    bar() {
>bar : () => (t: typeof C1) => void
>    : ^^^^^^^            ^^^^^^^^^

        return function (t: typeof C1) {
>function (t: typeof C1) {        } : (t: typeof C1) => void
>                                   : ^ ^^         ^^^^^^^^^
>t : typeof C1
>  : ^^^^^^^^^
>C1 : typeof C1
>   : ^^^^^^^^^

        };
    }
}

export class C2 {
>C2 : C2
>   : ^^

    C2: any // has to be the same as the class name
>C2 : any
>   : ^^^

    bar() {
>bar : () => (t: typeof C2) => void
>    : ^^^^^^^            ^^^^^^^^^

        return function (t: typeof C2) {
>function (t: typeof C2) {        } : (t: typeof C2) => void
>                                   : ^ ^^         ^^^^^^^^^
>t : typeof C2
>  : ^^^^^^^^^
>C2 : typeof C2
>   : ^^^^^^^^^

        };
    }
}

export class C3 {
>C3 : C3
>   : ^^

    get C3() { return 0; } // has to be the same as the class name
>C3 : number
>   : ^^^^^^
>0 : 0
>  : ^

    bar() {
>bar : () => (t: typeof C3) => void
>    : ^^^^^^^            ^^^^^^^^^

        return function (t: typeof C3) {
>function (t: typeof C3) {        } : (t: typeof C3) => void
>                                   : ^ ^^         ^^^^^^^^^
>t : typeof C3
>  : ^^^^^^^^^
>C3 : typeof C3
>   : ^^^^^^^^^

        };
    }
}

export class C4 {
>C4 : C4
>   : ^^

    set C4(v) { } // has to be the same as the class name
>C4 : any
>   : ^^^
>v : any
>  : ^^^

    bar() {
>bar : () => (t: typeof C4) => void
>    : ^^^^^^^            ^^^^^^^^^

        return function (t: typeof C4) {
>function (t: typeof C4) {        } : (t: typeof C4) => void
>                                   : ^ ^^         ^^^^^^^^^
>t : typeof C4
>  : ^^^^^^^^^
>C4 : typeof C4
>   : ^^^^^^^^^

        };
    }
}
