=== tests/cases/compiler/privacyGetter.ts === export module m1 { >m1 : typeof m1 export class C1_public { >C1_public : C1_public private f1() { >f1 : () => void } } class C2_private { >C2_private : C2_private } export class C3_public { >C3_public : C3_public private get p1_private() { >p1_private : C1_public return new C1_public(); >new C1_public() : C1_public >C1_public : typeof C1_public } private set p1_private(m1_c3_p1_arg: C1_public) { >p1_private : C1_public >m1_c3_p1_arg : C1_public >C1_public : C1_public } private get p2_private() { >p2_private : C1_public return new C1_public(); >new C1_public() : C1_public >C1_public : typeof C1_public } private set p2_private(m1_c3_p2_arg: C1_public) { >p2_private : C1_public >m1_c3_p2_arg : C1_public >C1_public : C1_public } private get p3_private() { >p3_private : C2_private return new C2_private(); >new C2_private() : C2_private >C2_private : typeof C2_private } private set p3_private(m1_c3_p3_arg: C2_private) { >p3_private : C2_private >m1_c3_p3_arg : C2_private >C2_private : C2_private } public get p4_public(): C2_private { // error >p4_public : C2_private >C2_private : C2_private return new C2_private(); //error >new C2_private() : C2_private >C2_private : typeof C2_private } public set p4_public(m1_c3_p4_arg: C2_private) { // error >p4_public : C2_private >m1_c3_p4_arg : C2_private >C2_private : C2_private } } class C4_private { >C4_private : C4_private private get p1_private() { >p1_private : C1_public return new C1_public(); >new C1_public() : C1_public >C1_public : typeof C1_public } private set p1_private(m1_c3_p1_arg: C1_public) { >p1_private : C1_public >m1_c3_p1_arg : C1_public >C1_public : C1_public } private get p2_private() { >p2_private : C1_public return new C1_public(); >new C1_public() : C1_public >C1_public : typeof C1_public } private set p2_private(m1_c3_p2_arg: C1_public) { >p2_private : C1_public >m1_c3_p2_arg : C1_public >C1_public : C1_public } private get p3_private() { >p3_private : C2_private return new C2_private(); >new C2_private() : C2_private >C2_private : typeof C2_private } private set p3_private(m1_c3_p3_arg: C2_private) { >p3_private : C2_private >m1_c3_p3_arg : C2_private >C2_private : C2_private } public get p4_public(): C2_private { >p4_public : C2_private >C2_private : C2_private return new C2_private(); >new C2_private() : C2_private >C2_private : typeof C2_private } public set p4_public(m1_c3_p4_arg: C2_private) { >p4_public : C2_private >m1_c3_p4_arg : C2_private >C2_private : C2_private } } } module m2 { >m2 : typeof m2 export class m2_C1_public { >m2_C1_public : m2_C1_public private f1() { >f1 : () => void } } class m2_C2_private { >m2_C2_private : m2_C2_private } export class m2_C3_public { >m2_C3_public : m2_C3_public private get p1_private() { >p1_private : m2_C1_public return new m2_C1_public(); >new m2_C1_public() : m2_C1_public >m2_C1_public : typeof m2_C1_public } private set p1_private(m2_c3_p1_arg: m2_C1_public) { >p1_private : m2_C1_public >m2_c3_p1_arg : m2_C1_public >m2_C1_public : m2_C1_public } private get p2_private() { >p2_private : m2_C1_public return new m2_C1_public(); >new m2_C1_public() : m2_C1_public >m2_C1_public : typeof m2_C1_public } private set p2_private(m2_c3_p2_arg: m2_C1_public) { >p2_private : m2_C1_public >m2_c3_p2_arg : m2_C1_public >m2_C1_public : m2_C1_public } private get p3_private() { >p3_private : m2_C2_private return new m2_C2_private(); >new m2_C2_private() : m2_C2_private >m2_C2_private : typeof m2_C2_private } private set p3_private(m2_c3_p3_arg: m2_C2_private) { >p3_private : m2_C2_private >m2_c3_p3_arg : m2_C2_private >m2_C2_private : m2_C2_private } public get p4_public(): m2_C2_private { >p4_public : m2_C2_private >m2_C2_private : m2_C2_private return new m2_C2_private(); >new m2_C2_private() : m2_C2_private >m2_C2_private : typeof m2_C2_private } public set p4_public(m2_c3_p4_arg: m2_C2_private) { >p4_public : m2_C2_private >m2_c3_p4_arg : m2_C2_private >m2_C2_private : m2_C2_private } } class m2_C4_private { >m2_C4_private : m2_C4_private private get p1_private() { >p1_private : m2_C1_public return new m2_C1_public(); >new m2_C1_public() : m2_C1_public >m2_C1_public : typeof m2_C1_public } private set p1_private(m2_c3_p1_arg: m2_C1_public) { >p1_private : m2_C1_public >m2_c3_p1_arg : m2_C1_public >m2_C1_public : m2_C1_public } private get p2_private() { >p2_private : m2_C1_public return new m2_C1_public(); >new m2_C1_public() : m2_C1_public >m2_C1_public : typeof m2_C1_public } private set p2_private(m2_c3_p2_arg: m2_C1_public) { >p2_private : m2_C1_public >m2_c3_p2_arg : m2_C1_public >m2_C1_public : m2_C1_public } private get p3_private() { >p3_private : m2_C2_private return new m2_C2_private(); >new m2_C2_private() : m2_C2_private >m2_C2_private : typeof m2_C2_private } private set p3_private(m2_c3_p3_arg: m2_C2_private) { >p3_private : m2_C2_private >m2_c3_p3_arg : m2_C2_private >m2_C2_private : m2_C2_private } public get p4_public(): m2_C2_private { >p4_public : m2_C2_private >m2_C2_private : m2_C2_private return new m2_C2_private(); >new m2_C2_private() : m2_C2_private >m2_C2_private : typeof m2_C2_private } public set p4_public(m2_c3_p4_arg: m2_C2_private) { >p4_public : m2_C2_private >m2_c3_p4_arg : m2_C2_private >m2_C2_private : m2_C2_private } } } class C5_private { >C5_private : C5_private private f() { >f : () => void } } export class C6_public { >C6_public : C6_public } export class C7_public { >C7_public : C7_public private get p1_private() { >p1_private : C6_public return new C6_public(); >new C6_public() : C6_public >C6_public : typeof C6_public } private set p1_private(m1_c3_p1_arg: C6_public) { >p1_private : C6_public >m1_c3_p1_arg : C6_public >C6_public : C6_public } private get p2_private() { >p2_private : C6_public return new C6_public(); >new C6_public() : C6_public >C6_public : typeof C6_public } private set p2_private(m1_c3_p2_arg: C6_public) { >p2_private : C6_public >m1_c3_p2_arg : C6_public >C6_public : C6_public } private get p3_private() { >p3_private : C5_private return new C5_private(); >new C5_private() : C5_private >C5_private : typeof C5_private } private set p3_private(m1_c3_p3_arg: C5_private) { >p3_private : C5_private >m1_c3_p3_arg : C5_private >C5_private : C5_private } public get p4_public(): C5_private { // error >p4_public : C5_private >C5_private : C5_private return new C5_private(); //error >new C5_private() : C5_private >C5_private : typeof C5_private } public set p4_public(m1_c3_p4_arg: C5_private) { // error >p4_public : C5_private >m1_c3_p4_arg : C5_private >C5_private : C5_private } } class C8_private { >C8_private : C8_private private get p1_private() { >p1_private : C6_public return new C6_public(); >new C6_public() : C6_public >C6_public : typeof C6_public } private set p1_private(m1_c3_p1_arg: C6_public) { >p1_private : C6_public >m1_c3_p1_arg : C6_public >C6_public : C6_public } private get p2_private() { >p2_private : C6_public return new C6_public(); >new C6_public() : C6_public >C6_public : typeof C6_public } private set p2_private(m1_c3_p2_arg: C6_public) { >p2_private : C6_public >m1_c3_p2_arg : C6_public >C6_public : C6_public } private get p3_private() { >p3_private : C5_private return new C5_private(); >new C5_private() : C5_private >C5_private : typeof C5_private } private set p3_private(m1_c3_p3_arg: C5_private) { >p3_private : C5_private >m1_c3_p3_arg : C5_private >C5_private : C5_private } public get p4_public(): C5_private { >p4_public : C5_private >C5_private : C5_private return new C5_private(); >new C5_private() : C5_private >C5_private : typeof C5_private } public set p4_public(m1_c3_p4_arg: C5_private) { >p4_public : C5_private >m1_c3_p4_arg : C5_private >C5_private : C5_private } }