TypeScript/tests/cases/compiler/privacyInterface.ts
2014-07-12 17:30:19 -07:00

265 lines
5 KiB
TypeScript

//@module: commonjs
export module m1 {
export class C1_public {
private f1() {
}
}
class C2_private {
}
export interface C3_public {
(c1: C1_public);
(c1: C2_private);
(): C1_public;
(c2: number): C2_private;
new (c1: C1_public);
new (c1: C2_private);
new (): C1_public;
new (c2: number): C2_private;
[c: number]: C1_public;
[c: string]: C2_private;
x: C1_public;
y: C2_private;
a?: C1_public;
b?: C2_private;
f1(a1: C1_public);
f2(a1: C2_private);
f3(): C1_public;
f4(): C2_private;
}
interface C4_private {
(c1: C1_public);
(c1: C2_private);
(): C1_public;
(c2: number): C2_private;
new (c1: C1_public);
new (c1: C2_private);
new (): C1_public;
new (c2: number): C2_private;
[c: number]: C1_public;
[c: string]: C2_private;
x: C1_public;
y: C2_private;
a?: C1_public;
b?: C2_private;
f1(a1: C1_public);
f2(a1: C2_private);
f3(): C1_public;
f4(): C2_private;
}
}
module m2 {
export class C1_public {
private f1() {
}
}
class C2_private {
}
export interface C3_public {
(c1: C1_public);
(c1: C2_private);
(): C1_public;
(c2: number): C2_private;
new (c1: C1_public);
new (c1: C2_private);
new (): C1_public;
new (c2: number): C2_private;
[c: number]: C1_public;
[c: string]: C2_private;
x: C1_public;
y: C2_private;
a?: C1_public;
b?: C2_private;
f1(a1: C1_public);
f2(a1: C2_private);
f3(): C1_public;
f4(): C2_private;
}
interface C4_private {
(c1: C1_public);
(c1: C2_private);
(): C1_public;
(c2: number): C2_private;
new (c1: C1_public);
new (c1: C2_private);
new (): C1_public;
new (c2: number): C2_private;
[c: number]: C1_public;
[c: string]: C2_private;
x: C1_public;
y: C2_private;
a?: C1_public;
b?: C2_private;
f1(a1: C1_public);
f2(a1: C2_private);
f3(): C1_public;
f4(): C2_private;
}
}
export class C5_public {
private f1() {
}
}
class C6_private {
}
export interface C7_public {
(c1: C5_public);
(c1: C6_private);
(): C5_public;
(c2: number): C6_private;
new (c1: C5_public);
new (c1: C6_private);
new (): C5_public;
new (c2: number): C6_private;
[c: number]: C5_public;
[c: string]: C6_private;
x: C5_public;
y: C6_private;
a?: C5_public;
b?: C6_private;
f1(a1: C5_public);
f2(a1: C6_private);
f3(): C5_public;
f4(): C6_private;
}
interface C8_private {
(c1: C5_public);
(c1: C6_private);
(): C5_public;
(c2: number): C6_private;
new (c1: C5_public);
new (c1: C6_private);
new (): C5_public;
new (c2: number): C6_private;
[c: number]: C5_public;
[c: string]: C6_private;
x: C5_public;
y: C6_private;
a?: C5_public;
b?: C6_private;
f1(a1: C5_public);
f2(a1: C6_private);
f3(): C5_public;
f4(): C6_private;
}
export module m3 {
export interface m3_i_public {
f1(): number;
}
interface m3_i_private {
f2(): string;
}
interface m3_C1_private extends m3_i_public {
}
interface m3_C2_private extends m3_i_private {
}
export interface m3_C3_public extends m3_i_public {
}
export interface m3_C4_public extends m3_i_private {
}
interface m3_C5_private extends m3_i_private, m3_i_public {
}
export interface m3_C6_public extends m3_i_private, m3_i_public {
}
}
module m4 {
export interface m4_i_public {
f1(): number;
}
interface m4_i_private {
f2(): string;
}
interface m4_C1_private extends m4_i_public {
}
interface m4_C2_private extends m4_i_private {
}
export interface m4_C3_public extends m4_i_public {
}
export interface m4_C4_public extends m4_i_private {
}
interface m4_C5_private extends m4_i_private, m4_i_public {
}
export interface m4_C6_public extends m4_i_private, m4_i_public {
}
}
export interface glo_i_public {
f1(): number;
}
interface glo_i_private {
f2(): string;
}
interface glo_C1_private extends glo_i_public {
}
interface glo_C2_private extends glo_i_private {
}
export interface glo_C3_public extends glo_i_public {
}
export interface glo_C4_public extends glo_i_private {
}
interface glo_C5_private extends glo_i_private, glo_i_public {
}
export interface glo_C6_public extends glo_i_private, glo_i_public {
}