diff --git a/tests/baselines/reference/aliasInaccessibleModule.js b/tests/baselines/reference/aliasInaccessibleModule.js
index a0ecf3361fc..6d22cf1a8b8 100644
--- a/tests/baselines/reference/aliasInaccessibleModule.js
+++ b/tests/baselines/reference/aliasInaccessibleModule.js
@@ -9,3 +9,21 @@ module M {
var M;
(function (M) {
})(M || (M = {}));
+
+
+//// [aliasInaccessibleModule.d.ts]
+declare module M {
+ export import X = N;
+}
+
+
+//// [DtsFileErrors]
+
+
+==== tests/cases/compiler/aliasInaccessibleModule.d.ts (1 errors) ====
+ declare module M {
+ export import X = N;
+ ~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'N'.
+ }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/aliasInaccessibleModule2.js b/tests/baselines/reference/aliasInaccessibleModule2.js
index b8b824d92ad..fd4fc6c737e 100644
--- a/tests/baselines/reference/aliasInaccessibleModule2.js
+++ b/tests/baselines/reference/aliasInaccessibleModule2.js
@@ -23,3 +23,21 @@ var M;
var R = N;
M.X = R;
})(M || (M = {}));
+
+
+//// [aliasInaccessibleModule2.d.ts]
+declare module M {
+ export import X = R;
+}
+
+
+//// [DtsFileErrors]
+
+
+==== tests/cases/compiler/aliasInaccessibleModule2.d.ts (1 errors) ====
+ declare module M {
+ export import X = R;
+ ~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'R'.
+ }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/aliasUsageInAccessorsOfClass.errors.txt b/tests/baselines/reference/aliasUsageInAccessorsOfClass.errors.txt
deleted file mode 100644
index 2fdccc7f49a..00000000000
--- a/tests/baselines/reference/aliasUsageInAccessorsOfClass.errors.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-==== tests/cases/compiler/aliasUsage1_main.ts (2 errors) ====
- import Backbone = require("aliasUsage1_backbone");
- import moduleA = require("aliasUsage1_moduleA");
- interface IHasVisualizationModel {
- VisualizationModel: typeof Backbone.Model;
- }
- class C2 {
- x: IHasVisualizationModel;
- get A() {
- ~
-!!! Accessors are only available when targeting ECMAScript 5 and higher.
- return this.x;
- }
- set A(x) {
- ~
-!!! Accessors are only available when targeting ECMAScript 5 and higher.
- x = moduleA;
- }
- }
-==== tests/cases/compiler/aliasUsage1_backbone.ts (0 errors) ====
- export class Model {
- public someData: string;
- }
-
-==== tests/cases/compiler/aliasUsage1_moduleA.ts (0 errors) ====
- import Backbone = require("aliasUsage1_backbone");
- export class VisualizationModel extends Backbone.Model {
- // interesting stuff here
- }
-
\ No newline at end of file
diff --git a/tests/baselines/reference/aliasUsageInAccessorsOfClass.js b/tests/baselines/reference/aliasUsageInAccessorsOfClass.js
new file mode 100644
index 00000000000..485aedc971d
--- /dev/null
+++ b/tests/baselines/reference/aliasUsageInAccessorsOfClass.js
@@ -0,0 +1,69 @@
+//// [tests/cases/compiler/aliasUsageInAccessorsOfClass.ts] ////
+
+//// [aliasUsage1_backbone.ts]
+export class Model {
+ public someData: string;
+}
+
+//// [aliasUsage1_moduleA.ts]
+import Backbone = require("aliasUsage1_backbone");
+export class VisualizationModel extends Backbone.Model {
+ // interesting stuff here
+}
+
+//// [aliasUsage1_main.ts]
+import Backbone = require("aliasUsage1_backbone");
+import moduleA = require("aliasUsage1_moduleA");
+interface IHasVisualizationModel {
+ VisualizationModel: typeof Backbone.Model;
+}
+class C2 {
+ x: IHasVisualizationModel;
+ get A() {
+ return this.x;
+ }
+ set A(x) {
+ x = moduleA;
+ }
+}
+
+//// [aliasUsage1_backbone.js]
+var Model = (function () {
+ function Model() {
+ }
+ return Model;
+})();
+exports.Model = Model;
+//// [aliasUsage1_moduleA.js]
+var __extends = this.__extends || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ __.prototype = b.prototype;
+ d.prototype = new __();
+};
+var Backbone = require("aliasUsage1_backbone");
+var VisualizationModel = (function (_super) {
+ __extends(VisualizationModel, _super);
+ function VisualizationModel() {
+ _super.apply(this, arguments);
+ }
+ return VisualizationModel;
+})(Backbone.Model);
+exports.VisualizationModel = VisualizationModel;
+//// [aliasUsage1_main.js]
+var moduleA = require("aliasUsage1_moduleA");
+var C2 = (function () {
+ function C2() {
+ }
+ Object.defineProperty(C2.prototype, "A", {
+ get: function () {
+ return this.x;
+ },
+ set: function (x) {
+ x = moduleA;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return C2;
+})();
diff --git a/tests/baselines/reference/cyclicModuleImport.js b/tests/baselines/reference/cyclicModuleImport.js
index 08f3c7d6147..1c9b74eea4f 100644
--- a/tests/baselines/reference/cyclicModuleImport.js
+++ b/tests/baselines/reference/cyclicModuleImport.js
@@ -20,3 +20,24 @@ declare module "MainModule" {
//// [cyclicModuleImport.js]
+
+
+//// [cyclicModuleImport.d.ts]
+declare module "SubModule" {
+ import MainModule = require('MainModule');
+ class SubModule {
+ static StaticVar: number;
+ InstanceVar: number;
+ main: MainModule;
+ constructor();
+ }
+ export = SubModule;
+}
+declare module "MainModule" {
+ import SubModule = require('SubModule');
+ class MainModule {
+ SubModule: SubModule;
+ constructor();
+ }
+ export = MainModule;
+}
diff --git a/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.js b/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.js
index 72b2a9295f5..32ac2d47290 100644
--- a/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.js
+++ b/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.js
@@ -1,5 +1,4 @@
//// [declarationEmit_nameConflictsWithAlias.ts]
-// Bug 887180
export module C { export interface I { } }
export import v = C;
export module M {
diff --git a/tests/baselines/reference/importDecl.errors.txt b/tests/baselines/reference/importDecl.errors.txt
deleted file mode 100644
index 2a43a4362c5..00000000000
--- a/tests/baselines/reference/importDecl.errors.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-==== tests/cases/compiler/importDecl_1.ts (1 errors) ====
- ///
- ///
- ///
- ///
- ///
- import m4 = require("importDecl_require"); // Emit used
- export var x4 = m4.x;
- export var d4 = m4.d;
- export var f4 = m4.foo();
-
- export module m1 {
- export var x2 = m4.x;
- export var d2 = m4.d;
- export var f2 = m4.foo();
-
- var x3 = m4.x;
- var d3 = m4.d;
- var f3 = m4.foo();
- }
-
- //Emit global only usage
- import glo_m4 = require("importDecl_require1");
- export var useGlo_m4_x4 = glo_m4.x;
- ~
-!!! Property 'x' does not exist on type 'typeof "tests/cases/compiler/importDecl_require1"'.
- export var useGlo_m4_d4 = glo_m4.d;
- export var useGlo_m4_f4 = glo_m4.foo();
-
- //Emit even when used just in function type
- import fncOnly_m4 = require("importDecl_require2");
- export var useFncOnly_m4_f4 = fncOnly_m4.foo();
-
- // only used privately no need to emit
- import private_m4 = require("importDecl_require3");
- export module usePrivate_m4_m1 {
- var x3 = private_m4.x;
- var d3 = private_m4.d;
- var f3 = private_m4.foo();
- }
-
- // Do not emit unused import
- import m5 = require("importDecl_require4");
- export var d = m5.foo2();
-
- // Do not emit multiple used import statements
- import multiImport_m4 = require("importDecl_require"); // Emit used
- export var useMultiImport_m4_x4 = multiImport_m4.x;
- export var useMultiImport_m4_d4 = multiImport_m4.d;
- export var useMultiImport_m4_f4 = multiImport_m4.foo();
-
-==== tests/cases/compiler/importDecl_require.ts (0 errors) ====
- export class d {
- foo: string;
- }
- export var x: d;
- export function foo(): d { return null; }
-
-==== tests/cases/compiler/importDecl_require1.ts (0 errors) ====
- export class d {
- bar: string;
- }
- var x: d;
- export function foo(): d { return null; }
-
-==== tests/cases/compiler/importDecl_require2.ts (0 errors) ====
- export class d {
- baz: string;
- }
- export var x: d;
- export function foo(): d { return null; }
-
-==== tests/cases/compiler/importDecl_require3.ts (0 errors) ====
- export class d {
- bing: string;
- }
- export var x: d;
- export function foo(): d { return null; }
-
-==== tests/cases/compiler/importDecl_require4.ts (0 errors) ====
- import m4 = require("importDecl_require");
- export function foo2(): m4.d { return null; }
-
\ No newline at end of file
diff --git a/tests/baselines/reference/importDecl.js b/tests/baselines/reference/importDecl.js
index b8ded724909..b6c9715df64 100644
--- a/tests/baselines/reference/importDecl.js
+++ b/tests/baselines/reference/importDecl.js
@@ -55,7 +55,6 @@ export module m1 {
//Emit global only usage
import glo_m4 = require("importDecl_require1");
-export var useGlo_m4_x4 = glo_m4.x;
export var useGlo_m4_d4 = glo_m4.d;
export var useGlo_m4_f4 = glo_m4.foo();
@@ -150,7 +149,6 @@ exports.f4 = m4.foo();
})(exports.m1 || (exports.m1 = {}));
var m1 = exports.m1;
var glo_m4 = require("importDecl_require1");
-exports.useGlo_m4_x4 = glo_m4.x;
exports.useGlo_m4_d4 = glo_m4.d;
exports.useGlo_m4_f4 = glo_m4.foo();
var fncOnly_m4 = require("importDecl_require2");
@@ -168,3 +166,57 @@ var multiImport_m4 = require("importDecl_require");
exports.useMultiImport_m4_x4 = multiImport_m4.x;
exports.useMultiImport_m4_d4 = multiImport_m4.d;
exports.useMultiImport_m4_f4 = multiImport_m4.foo();
+
+
+//// [importDecl_require.d.ts]
+export declare class d {
+ foo: string;
+}
+export declare var x: d;
+export declare function foo(): d;
+//// [importDecl_require1.d.ts]
+export declare class d {
+ bar: string;
+}
+export declare function foo(): d;
+//// [importDecl_require2.d.ts]
+export declare class d {
+ baz: string;
+}
+export declare var x: d;
+export declare function foo(): d;
+//// [importDecl_require3.d.ts]
+export declare class d {
+ bing: string;
+}
+export declare var x: d;
+export declare function foo(): d;
+//// [importDecl_require4.d.ts]
+import m4 = require("importDecl_require");
+export declare function foo2(): m4.d;
+//// [importDecl_1.d.ts]
+///
+///
+///
+///
+///
+import m4 = require("importDecl_require");
+export declare var x4: m4.d;
+export declare var d4: typeof m4.d;
+export declare var f4: m4.d;
+export declare module m1 {
+ var x2: m4.d;
+ var d2: typeof m4.d;
+ var f2: m4.d;
+}
+import glo_m4 = require("importDecl_require1");
+export declare var useGlo_m4_d4: typeof glo_m4.d;
+export declare var useGlo_m4_f4: glo_m4.d;
+import fncOnly_m4 = require("importDecl_require2");
+export declare var useFncOnly_m4_f4: fncOnly_m4.d;
+export declare module usePrivate_m4_m1 {
+}
+export declare var d: m4.d;
+export declare var useMultiImport_m4_x4: m4.d;
+export declare var useMultiImport_m4_d4: typeof m4.d;
+export declare var useMultiImport_m4_f4: m4.d;
diff --git a/tests/baselines/reference/internalAliasWithDottedNameEmit.js b/tests/baselines/reference/internalAliasWithDottedNameEmit.js
index d70da1ba16c..d6a4cfcfff7 100644
--- a/tests/baselines/reference/internalAliasWithDottedNameEmit.js
+++ b/tests/baselines/reference/internalAliasWithDottedNameEmit.js
@@ -18,3 +18,11 @@ var a;
})(a.b || (a.b = {}));
var b = a.b;
})(a || (a = {}));
+
+
+//// [internalAliasWithDottedNameEmit.d.ts]
+declare module a.b.c {
+ var d: any;
+}
+declare module a.e.f {
+}
diff --git a/tests/baselines/reference/multiImportExport.errors.txt b/tests/baselines/reference/multiImportExport.errors.txt
deleted file mode 100644
index 6237131d641..00000000000
--- a/tests/baselines/reference/multiImportExport.errors.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-==== tests/cases/compiler/consumer.ts (0 errors) ====
- import Drawing = require('./Drawing');
- var addr = new Drawing.Math.Adder();
-
-==== tests/cases/compiler/Drawing.ts (0 errors) ====
- export import Math = require('Math/Math')
-
-==== tests/cases/compiler/Math/Math.ts (0 errors) ====
- import Adder = require('Math/Adder');
-
- var Math = {
- Adder:Adder
- };
-
- export = Math
-
-==== tests/cases/compiler/Math/Adder.ts (1 errors) ====
- class Adder {
- add(a: number, b: number) {
-
- }
- }
-
- export = Adder;
- ~~~~~~~~~~~~~~~
-!!! Cannot compile external modules unless the '--module' flag is provided.
\ No newline at end of file
diff --git a/tests/baselines/reference/multiImportExport.js b/tests/baselines/reference/multiImportExport.js
new file mode 100644
index 00000000000..1d28d228704
--- /dev/null
+++ b/tests/baselines/reference/multiImportExport.js
@@ -0,0 +1,90 @@
+//// [tests/cases/compiler/multiImportExport.ts] ////
+
+//// [consumer.ts]
+import Drawing = require('./Drawing');
+var addr = new Drawing.Math.Adder();
+
+//// [Drawing.ts]
+export import Math = require('Math/Math')
+
+//// [Math.ts]
+import Adder = require('Math/Adder');
+
+var Math = {
+ Adder:Adder
+};
+
+export = Math
+
+//// [Adder.ts]
+class Adder {
+ add(a: number, b: number) {
+
+ }
+}
+
+export = Adder;
+
+//// [Adder.js]
+var Adder = (function () {
+ function Adder() {
+ }
+ Adder.prototype.add = function (a, b) {
+ };
+ return Adder;
+})();
+module.exports = Adder;
+//// [Math.js]
+var Adder = require('Math/Adder');
+var Math = {
+ Adder: Adder
+};
+module.exports = Math;
+//// [Drawing.js]
+exports.Math = require('Math/Math');
+//// [consumer.js]
+var Drawing = require('./Drawing');
+var addr = new Drawing.Math.Adder();
+
+
+//// [Adder.d.ts]
+declare class Adder {
+ add(a: number, b: number): void;
+}
+export = Adder;
+//// [Math.d.ts]
+import Adder = require('Math/Adder');
+declare var Math: {
+ Adder: typeof Adder;
+};
+export = Math;
+//// [Drawing.d.ts]
+export import Math = require('Math/Math');
+//// [consumer.d.ts]
+
+
+//// [DtsFileErrors]
+
+
+==== tests/cases/compiler/consumer.d.ts (0 errors) ====
+
+==== tests/cases/compiler/Drawing.d.ts (1 errors) ====
+ export import Math = require('Math/Math');
+ ~~~~~~~~~~~
+!!! Cannot find external module 'Math/Math'.
+
+==== tests/cases/compiler/Math.d.ts (1 errors) ====
+ import Adder = require('Math/Adder');
+ ~~~~~~~~~~~~
+!!! Cannot find external module 'Math/Adder'.
+ declare var Math: {
+ Adder: typeof Adder;
+ };
+ export = Math;
+
+==== tests/cases/compiler/Adder.d.ts (0 errors) ====
+ declare class Adder {
+ add(a: number, b: number): void;
+ }
+ export = Adder;
+
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyCheckAnonymousFunctionParameter.js b/tests/baselines/reference/privacyCheckAnonymousFunctionParameter.js
index 899f18693dc..f2f2ac9ae12 100644
--- a/tests/baselines/reference/privacyCheckAnonymousFunctionParameter.js
+++ b/tests/baselines/reference/privacyCheckAnonymousFunctionParameter.js
@@ -30,3 +30,7 @@ var Query;
});
}
})(Query || (Query = {}));
+
+
+//// [privacyCheckAnonymousFunctionParameter.d.ts]
+export declare var x: number;
diff --git a/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.js b/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.js
index ac899bbdf14..a1897ac05a3 100644
--- a/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.js
+++ b/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.js
@@ -31,3 +31,7 @@ define(["require", "exports"], function (require, exports) {
}
})(Q || (Q = {}));
});
+
+
+//// [privacyCheckAnonymousFunctionParameter2.d.ts]
+export declare var x: number;
diff --git a/tests/baselines/reference/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.js b/tests/baselines/reference/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.js
index 02a4b682d94..faaef563ebb 100644
--- a/tests/baselines/reference/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.js
+++ b/tests/baselines/reference/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.js
@@ -10,3 +10,11 @@ export interface B extends A {
//// [privacyCheckCallbackOfInterfaceMethodWithTypeParameter.js]
define(["require", "exports"], function (require, exports) {
});
+
+
+//// [privacyCheckCallbackOfInterfaceMethodWithTypeParameter.d.ts]
+export interface A {
+ f1(callback: (p: T) => any): any;
+}
+export interface B extends A {
+}
diff --git a/tests/baselines/reference/privacyCheckExportAssignmentOnExportedGenericInterface1.js b/tests/baselines/reference/privacyCheckExportAssignmentOnExportedGenericInterface1.js
index 1b02a38307b..7b5e63ce009 100644
--- a/tests/baselines/reference/privacyCheckExportAssignmentOnExportedGenericInterface1.js
+++ b/tests/baselines/reference/privacyCheckExportAssignmentOnExportedGenericInterface1.js
@@ -11,3 +11,14 @@ export = Foo;
//// [privacyCheckExportAssignmentOnExportedGenericInterface1.js]
var Foo;
module.exports = Foo;
+
+
+//// [privacyCheckExportAssignmentOnExportedGenericInterface1.d.ts]
+declare module Foo {
+ interface A {
+ }
+}
+interface Foo {
+}
+declare var Foo: new () => Foo.A>;
+export = Foo;
diff --git a/tests/baselines/reference/privacyCheckExportAssignmentOnExportedGenericInterface2.js b/tests/baselines/reference/privacyCheckExportAssignmentOnExportedGenericInterface2.js
index 2b4e9ddf833..11a51318230 100644
--- a/tests/baselines/reference/privacyCheckExportAssignmentOnExportedGenericInterface2.js
+++ b/tests/baselines/reference/privacyCheckExportAssignmentOnExportedGenericInterface2.js
@@ -24,3 +24,13 @@ define(["require", "exports"], function (require, exports) {
})(Foo || (Foo = {}));
return Foo;
});
+
+
+//// [privacyCheckExportAssignmentOnExportedGenericInterface2.d.ts]
+export = Foo;
+interface Foo {
+}
+declare function Foo(array: T[]): Foo;
+declare module Foo {
+ var x: string;
+}
diff --git a/tests/baselines/reference/privacyCheckExternalModuleExportAssignmentOfGenericClass.js b/tests/baselines/reference/privacyCheckExternalModuleExportAssignmentOfGenericClass.js
index 94aa5c28e92..eeaea58e0ab 100644
--- a/tests/baselines/reference/privacyCheckExternalModuleExportAssignmentOfGenericClass.js
+++ b/tests/baselines/reference/privacyCheckExternalModuleExportAssignmentOfGenericClass.js
@@ -22,3 +22,17 @@ var Foo = (function () {
})();
module.exports = Foo;
//// [privacyCheckExternalModuleExportAssignmentOfGenericClass_1.js]
+
+
+//// [privacyCheckExternalModuleExportAssignmentOfGenericClass_0.d.ts]
+export = Foo;
+declare class Foo {
+ a: A;
+ constructor(a: A);
+}
+//// [privacyCheckExternalModuleExportAssignmentOfGenericClass_1.d.ts]
+import Foo = require("privacyCheckExternalModuleExportAssignmentOfGenericClass_0");
+export = Bar;
+interface Bar {
+ foo: Foo;
+}
diff --git a/tests/baselines/reference/privacyCheckOnTypeParameterReferenceInConstructorParameter.js b/tests/baselines/reference/privacyCheckOnTypeParameterReferenceInConstructorParameter.js
index a1def385809..6e2ef744946 100644
--- a/tests/baselines/reference/privacyCheckOnTypeParameterReferenceInConstructorParameter.js
+++ b/tests/baselines/reference/privacyCheckOnTypeParameterReferenceInConstructorParameter.js
@@ -26,3 +26,12 @@ define(["require", "exports"], function (require, exports) {
})();
exports.B = B;
});
+
+
+//// [privacyCheckOnTypeParameterReferenceInConstructorParameter.d.ts]
+export declare class A {
+ constructor(callback: (self: A) => void);
+}
+export declare class B {
+ constructor(parent: T2);
+}
diff --git a/tests/baselines/reference/privacyCheckTypeOfFunction.errors.txt b/tests/baselines/reference/privacyCheckTypeOfFunction.errors.txt
deleted file mode 100644
index 3132a1c56a7..00000000000
--- a/tests/baselines/reference/privacyCheckTypeOfFunction.errors.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-==== tests/cases/compiler/privacyCheckTypeOfFunction.ts (1 errors) ====
- function foo() {
- }
- export var x: typeof foo;
- ~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Cannot compile external modules unless the '--module' flag is provided.
- export var b = foo;
-
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyCheckTypeOfFunction.js b/tests/baselines/reference/privacyCheckTypeOfFunction.js
new file mode 100644
index 00000000000..04063c62991
--- /dev/null
+++ b/tests/baselines/reference/privacyCheckTypeOfFunction.js
@@ -0,0 +1,17 @@
+//// [privacyCheckTypeOfFunction.ts]
+function foo() {
+}
+export var x: typeof foo;
+export var b = foo;
+
+
+//// [privacyCheckTypeOfFunction.js]
+function foo() {
+}
+exports.x;
+exports.b = foo;
+
+
+//// [privacyCheckTypeOfFunction.d.ts]
+export declare var x: () => void;
+export declare var b: () => void;
diff --git a/tests/baselines/reference/privacyCheckTypeOfInvisibleModuleError.errors.txt b/tests/baselines/reference/privacyCheckTypeOfInvisibleModuleError.errors.txt
new file mode 100644
index 00000000000..e09c933ce4f
--- /dev/null
+++ b/tests/baselines/reference/privacyCheckTypeOfInvisibleModuleError.errors.txt
@@ -0,0 +1,11 @@
+==== tests/cases/compiler/privacyCheckTypeOfInvisibleModuleError.ts (1 errors) ====
+ module Outer {
+ module Inner {
+ export var m: typeof Inner;
+ }
+
+ export var f: typeof Inner;
+ ~
+!!! Exported variable 'f' has or is using private name 'Inner'.
+ }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyGloImport.errors.txt b/tests/baselines/reference/privacyGloImport.errors.txt
index 38d31860a5b..049d8ee640c 100644
--- a/tests/baselines/reference/privacyGloImport.errors.txt
+++ b/tests/baselines/reference/privacyGloImport.errors.txt
@@ -1,4 +1,4 @@
-==== tests/cases/compiler/privacyGloImport.ts (21 errors) ====
+==== tests/cases/compiler/privacyGloImport.ts (4 errors) ====
module m1 {
export module m1_M1_public {
export class c1 {
@@ -20,27 +20,21 @@
export var v2: c1;
}
- declare export module "m1_M3_public" {
- ~~~~~~
-!!! 'export' modifier must precede 'declare' modifier.
- ~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //export declare module "m1_M3_public" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
- declare module "m1_M4_private" {
- ~~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //declare module "m1_M4_private" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
import m1_im1_private = m1_M1_public;
export var m1_im1_private_v1_public = m1_im1_private.c1;
@@ -55,51 +49,46 @@
import m1_im2_private = m1_M2_private;
export var m1_im2_private_v1_public = m1_im2_private.c1;
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Exported variable 'm1_im2_private_v1_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Exported variable 'm1_im2_private_v2_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
export var m1_im2_private_v3_public = m1_im2_private.f1;
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Exported variable 'm1_im2_private_v3_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
export var m1_im2_private_v4_public = m1_im2_private.f1();
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Exported variable 'm1_im2_private_v4_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
var m1_im2_private_v1_private = m1_im2_private.c1;
var m1_im2_private_v2_private = new m1_im2_private.c1();
var m1_im2_private_v3_private = m1_im2_private.f1;
var m1_im2_private_v4_private = m1_im2_private.f1();
- import m1_im3_private = require("m1_M3_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- ~~~~~~~~~~~~~~
-!!! Cannot find external module 'm1_M3_public'.
- export var m1_im3_private_v1_public = m1_im3_private.c1;
- export var m1_im3_private_v2_public = new m1_im3_private.c1();
- export var m1_im3_private_v3_public = m1_im3_private.f1;
- export var m1_im3_private_v4_public = m1_im3_private.f1();
- var m1_im3_private_v1_private = m1_im3_private.c1;
- var m1_im3_private_v2_private = new m1_im3_private.c1();
- var m1_im3_private_v3_private = m1_im3_private.f1;
- var m1_im3_private_v4_private = m1_im3_private.f1();
+ //import m1_im3_private = require("m1_M3_public");
+ //export var m1_im3_private_v1_public = m1_im3_private.c1;
+ //export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ //export var m1_im3_private_v3_public = m1_im3_private.f1;
+ //export var m1_im3_private_v4_public = m1_im3_private.f1();
+ //var m1_im3_private_v1_private = m1_im3_private.c1;
+ //var m1_im3_private_v2_private = new m1_im3_private.c1();
+ //var m1_im3_private_v3_private = m1_im3_private.f1;
+ //var m1_im3_private_v4_private = m1_im3_private.f1();
- import m1_im4_private = require("m1_M4_private");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- ~~~~~~~~~~~~~~~
-!!! Cannot find external module 'm1_M4_private'.
- export var m1_im4_private_v1_public = m1_im4_private.c1;
- export var m1_im4_private_v2_public = new m1_im4_private.c1();
- export var m1_im4_private_v3_public = m1_im4_private.f1;
- export var m1_im4_private_v4_public = m1_im4_private.f1();
- var m1_im4_private_v1_private = m1_im4_private.c1;
- var m1_im4_private_v2_private = new m1_im4_private.c1();
- var m1_im4_private_v3_private = m1_im4_private.f1;
- var m1_im4_private_v4_private = m1_im4_private.f1();
+ //import m1_im4_private = require("m1_M4_private");
+ //export var m1_im4_private_v1_public = m1_im4_private.c1;
+ //export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ //export var m1_im4_private_v3_public = m1_im4_private.f1;
+ //export var m1_im4_private_v4_public = m1_im4_private.f1();
+ //var m1_im4_private_v1_private = m1_im4_private.c1;
+ //var m1_im4_private_v2_private = new m1_im4_private.c1();
+ //var m1_im4_private_v3_private = m1_im4_private.f1;
+ //var m1_im4_private_v4_private = m1_im4_private.f1();
- // Parse error to export module
export import m1_im1_public = m1_M1_public;
export import m1_im2_public = m1_M2_private;
- export import m1_im3_public = require("m1_M3_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- export import m1_im4_public = require("m1_M4_private");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //export import m1_im3_public = require("m1_M3_public");
+ //export import m1_im4_public = require("m1_M4_private");
}
module glo_M1_public {
@@ -123,38 +112,26 @@
declare module "use_glo_M1_public" {
import use_glo_M1_public = glo_M1_public;
export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
- export var use_glo_M1_public_v2_public: use_glo_M1_public;
- ~~~~~~~~~~~~~~~~~
-!!! Cannot find name 'use_glo_M1_public'.
+ export var use_glo_M1_public_v2_public: typeof use_glo_M1_public;
export var use_glo_M1_public_v3_public: ()=> use_glo_M1_public.c1;
var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
- var use_glo_M1_public_v2_private: use_glo_M1_public;
- ~~~~~~~~~~~~~~~~~
-!!! Cannot find name 'use_glo_M1_public'.
+ var use_glo_M1_public_v2_private: typeof use_glo_M1_public;
var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
import use_glo_M2_public = require("glo_M2_public");
export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
- export var use_glo_M2_public_v2_public: use_glo_M2_public;
- ~~~~~~~~~~~~~~~~~
-!!! Cannot find name 'use_glo_M2_public'.
+ export var use_glo_M2_public_v2_public: typeof use_glo_M2_public;
export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
- var use_glo_M2_public_v2_private: use_glo_M2_public;
- ~~~~~~~~~~~~~~~~~
-!!! Cannot find name 'use_glo_M2_public'.
+ var use_glo_M2_public_v2_private: typeof use_glo_M2_public;
var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
module m2 {
- import errorImport = require("glo_M2_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //import errorImport = require("glo_M2_public");
import nonerrorImport = glo_M1_public;
module m5 {
- import m5_errorImport = require("glo_M2_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //import m5_errorImport = require("glo_M2_public");
import m5_nonerrorImport = glo_M1_public;
}
}
@@ -162,35 +139,23 @@
declare module "anotherParseError" {
module m2 {
- declare module "abc" {
- ~~~~~~~
-!!! A 'declare' modifier cannot be used in an already ambient context.
- ~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- }
+ //declare module "abc" {
+ //}
}
module m2 {
- module "abc2" {
- ~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- }
- }
- module "abc3" {
- ~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
+ //module "abc2" {
+ //}
}
+ //module "abc3" {
+ //}
}
module m2 {
- import m3 = require("use_glo_M1_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //import m3 = require("use_glo_M1_public");
module m4 {
var a = 10;
- import m2 = require("use_glo_M1_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //import m2 = require("use_glo_M1_public");
}
}
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyGloImport.js b/tests/baselines/reference/privacyGloImport.js
new file mode 100644
index 00000000000..537e1eb43fa
--- /dev/null
+++ b/tests/baselines/reference/privacyGloImport.js
@@ -0,0 +1,230 @@
+//// [privacyGloImport.ts]
+module m1 {
+ export module m1_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ module m1_M2_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ //export declare module "m1_M3_public" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
+
+ //declare module "m1_M4_private" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
+
+ import m1_im1_private = m1_M1_public;
+ export var m1_im1_private_v1_public = m1_im1_private.c1;
+ export var m1_im1_private_v2_public = new m1_im1_private.c1();
+ export var m1_im1_private_v3_public = m1_im1_private.f1;
+ export var m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+
+
+ import m1_im2_private = m1_M2_private;
+ export var m1_im2_private_v1_public = m1_im2_private.c1;
+ export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ export var m1_im2_private_v3_public = m1_im2_private.f1;
+ export var m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+
+ //import m1_im3_private = require("m1_M3_public");
+ //export var m1_im3_private_v1_public = m1_im3_private.c1;
+ //export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ //export var m1_im3_private_v3_public = m1_im3_private.f1;
+ //export var m1_im3_private_v4_public = m1_im3_private.f1();
+ //var m1_im3_private_v1_private = m1_im3_private.c1;
+ //var m1_im3_private_v2_private = new m1_im3_private.c1();
+ //var m1_im3_private_v3_private = m1_im3_private.f1;
+ //var m1_im3_private_v4_private = m1_im3_private.f1();
+
+ //import m1_im4_private = require("m1_M4_private");
+ //export var m1_im4_private_v1_public = m1_im4_private.c1;
+ //export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ //export var m1_im4_private_v3_public = m1_im4_private.f1;
+ //export var m1_im4_private_v4_public = m1_im4_private.f1();
+ //var m1_im4_private_v1_private = m1_im4_private.c1;
+ //var m1_im4_private_v2_private = new m1_im4_private.c1();
+ //var m1_im4_private_v3_private = m1_im4_private.f1;
+ //var m1_im4_private_v4_private = m1_im4_private.f1();
+
+ export import m1_im1_public = m1_M1_public;
+ export import m1_im2_public = m1_M2_private;
+ //export import m1_im3_public = require("m1_M3_public");
+ //export import m1_im4_public = require("m1_M4_private");
+}
+
+module glo_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+}
+
+declare module "glo_M2_public" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+}
+
+declare module "use_glo_M1_public" {
+ import use_glo_M1_public = glo_M1_public;
+ export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
+ export var use_glo_M1_public_v2_public: typeof use_glo_M1_public;
+ export var use_glo_M1_public_v3_public: ()=> use_glo_M1_public.c1;
+ var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
+ var use_glo_M1_public_v2_private: typeof use_glo_M1_public;
+ var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
+
+ import use_glo_M2_public = require("glo_M2_public");
+ export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
+ export var use_glo_M2_public_v2_public: typeof use_glo_M2_public;
+ export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
+ var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
+ var use_glo_M2_public_v2_private: typeof use_glo_M2_public;
+ var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
+
+ module m2 {
+ //import errorImport = require("glo_M2_public");
+ import nonerrorImport = glo_M1_public;
+
+ module m5 {
+ //import m5_errorImport = require("glo_M2_public");
+ import m5_nonerrorImport = glo_M1_public;
+ }
+ }
+}
+
+declare module "anotherParseError" {
+ module m2 {
+ //declare module "abc" {
+ //}
+ }
+
+ module m2 {
+ //module "abc2" {
+ //}
+ }
+ //module "abc3" {
+ //}
+}
+
+module m2 {
+ //import m3 = require("use_glo_M1_public");
+ module m4 {
+ var a = 10;
+ //import m2 = require("use_glo_M1_public");
+ }
+
+}
+
+//// [privacyGloImport.js]
+var m1;
+(function (m1) {
+ (function (m1_M1_public) {
+ var c1 = (function () {
+ function c1() {
+ }
+ return c1;
+ })();
+ m1_M1_public.c1 = c1;
+ function f1() {
+ return new c1;
+ }
+ m1_M1_public.f1 = f1;
+ m1_M1_public.v1 = c1;
+ m1_M1_public.v2;
+ })(m1.m1_M1_public || (m1.m1_M1_public = {}));
+ var m1_M1_public = m1.m1_M1_public;
+ var m1_M2_private;
+ (function (m1_M2_private) {
+ var c1 = (function () {
+ function c1() {
+ }
+ return c1;
+ })();
+ m1_M2_private.c1 = c1;
+ function f1() {
+ return new c1;
+ }
+ m1_M2_private.f1 = f1;
+ m1_M2_private.v1 = c1;
+ m1_M2_private.v2;
+ })(m1_M2_private || (m1_M2_private = {}));
+ var m1_im1_private = m1_M1_public;
+ m1.m1_im1_private_v1_public = m1_im1_private.c1;
+ m1.m1_im1_private_v2_public = new m1_im1_private.c1();
+ m1.m1_im1_private_v3_public = m1_im1_private.f1;
+ m1.m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+ var m1_im2_private = m1_M2_private;
+ m1.m1_im2_private_v1_public = m1_im2_private.c1;
+ m1.m1_im2_private_v2_public = new m1_im2_private.c1();
+ m1.m1_im2_private_v3_public = m1_im2_private.f1;
+ m1.m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+ m1.m1_im1_public = m1_M1_public;
+ m1.m1_im2_public = m1_M2_private;
+})(m1 || (m1 = {}));
+var glo_M1_public;
+(function (glo_M1_public) {
+ var c1 = (function () {
+ function c1() {
+ }
+ return c1;
+ })();
+ glo_M1_public.c1 = c1;
+ function f1() {
+ return new c1;
+ }
+ glo_M1_public.f1 = f1;
+ glo_M1_public.v1 = c1;
+ glo_M1_public.v2;
+})(glo_M1_public || (glo_M1_public = {}));
+var m2;
+(function (m2) {
+ var m4;
+ (function (m4) {
+ var a = 10;
+ })(m4 || (m4 = {}));
+})(m2 || (m2 = {}));
diff --git a/tests/baselines/reference/privacyGloImportParseErrors.errors.txt b/tests/baselines/reference/privacyGloImportParseErrors.errors.txt
new file mode 100644
index 00000000000..d681008e3b5
--- /dev/null
+++ b/tests/baselines/reference/privacyGloImportParseErrors.errors.txt
@@ -0,0 +1,185 @@
+==== tests/cases/compiler/privacyGloImportParseErrors.ts (16 errors) ====
+ module m1 {
+ export module m1_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ module m1_M2_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ export declare module "m1_M3_public" {
+ ~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ declare module "m1_M4_private" {
+ ~~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ import m1_im1_private = m1_M1_public;
+ export var m1_im1_private_v1_public = m1_im1_private.c1;
+ export var m1_im1_private_v2_public = new m1_im1_private.c1();
+ export var m1_im1_private_v3_public = m1_im1_private.f1;
+ export var m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+
+
+ import m1_im2_private = m1_M2_private;
+ export var m1_im2_private_v1_public = m1_im2_private.c1;
+ export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ export var m1_im2_private_v3_public = m1_im2_private.f1;
+ export var m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+
+ import m1_im3_private = require("m1_M3_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ ~~~~~~~~~~~~~~
+!!! Cannot find external module 'm1_M3_public'.
+ export var m1_im3_private_v1_public = m1_im3_private.c1;
+ export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ export var m1_im3_private_v3_public = m1_im3_private.f1;
+ export var m1_im3_private_v4_public = m1_im3_private.f1();
+ var m1_im3_private_v1_private = m1_im3_private.c1;
+ var m1_im3_private_v2_private = new m1_im3_private.c1();
+ var m1_im3_private_v3_private = m1_im3_private.f1;
+ var m1_im3_private_v4_private = m1_im3_private.f1();
+
+ import m1_im4_private = require("m1_M4_private");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ ~~~~~~~~~~~~~~~
+!!! Cannot find external module 'm1_M4_private'.
+ export var m1_im4_private_v1_public = m1_im4_private.c1;
+ export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ export var m1_im4_private_v3_public = m1_im4_private.f1;
+ export var m1_im4_private_v4_public = m1_im4_private.f1();
+ var m1_im4_private_v1_private = m1_im4_private.c1;
+ var m1_im4_private_v2_private = new m1_im4_private.c1();
+ var m1_im4_private_v3_private = m1_im4_private.f1;
+ var m1_im4_private_v4_private = m1_im4_private.f1();
+
+ export import m1_im1_public = m1_M1_public;
+ export import m1_im2_public = m1_M2_private;
+ export import m1_im3_public = require("m1_M3_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ export import m1_im4_public = require("m1_M4_private");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ }
+
+ module glo_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ declare module "glo_M2_public" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ declare module "use_glo_M1_public" {
+ import use_glo_M1_public = glo_M1_public;
+ export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
+ export var use_glo_M1_public_v2_public: typeof use_glo_M1_public;
+ export var use_glo_M1_public_v3_public: ()=> use_glo_M1_public.c1;
+ var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
+ var use_glo_M1_public_v2_private: typeof use_glo_M1_public;
+ var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
+
+ import use_glo_M2_public = require("glo_M2_public");
+ export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
+ export var use_glo_M2_public_v2_public: typeof use_glo_M2_public;
+ export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
+ var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
+ var use_glo_M2_public_v2_private: typeof use_glo_M2_public;
+ var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
+
+ module m2 {
+ import errorImport = require("glo_M2_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ import nonerrorImport = glo_M1_public;
+
+ module m5 {
+ import m5_errorImport = require("glo_M2_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ import m5_nonerrorImport = glo_M1_public;
+ }
+ }
+ }
+
+ declare module "anotherParseError" {
+ module m2 {
+ declare module "abc" {
+ ~~~~~~~
+!!! A 'declare' modifier cannot be used in an already ambient context.
+ ~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ }
+ }
+
+ module m2 {
+ module "abc2" {
+ ~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ }
+ }
+ module "abc3" {
+ ~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ }
+ }
+
+ module m2 {
+ import m3 = require("use_glo_M1_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ module m4 {
+ var a = 10;
+ import m2 = require("use_glo_M1_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ }
+
+ }
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyImport.errors.txt b/tests/baselines/reference/privacyImport.errors.txt
index bb22a0c398c..7264b4f306f 100644
--- a/tests/baselines/reference/privacyImport.errors.txt
+++ b/tests/baselines/reference/privacyImport.errors.txt
@@ -1,4 +1,4 @@
-==== tests/cases/compiler/privacyImport.ts (49 errors) ====
+==== tests/cases/compiler/privacyImport.ts (4 errors) ====
export module m1 {
export module m1_M1_public {
export class c1 {
@@ -20,25 +20,21 @@
export var v2: c1;
}
- export declare module "m1_M3_public" {
- ~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //export declare module "m1_M3_public" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
- declare module "m1_M4_private" {
- ~~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //declare module "m1_M4_private" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
import m1_im1_private = m1_M1_public;
export var m1_im1_private_v1_public = m1_im1_private.c1;
@@ -53,50 +49,46 @@
import m1_im2_private = m1_M2_private;
export var m1_im2_private_v1_public = m1_im2_private.c1;
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Exported variable 'm1_im2_private_v1_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Exported variable 'm1_im2_private_v2_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
export var m1_im2_private_v3_public = m1_im2_private.f1;
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Exported variable 'm1_im2_private_v3_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
export var m1_im2_private_v4_public = m1_im2_private.f1();
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Exported variable 'm1_im2_private_v4_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
var m1_im2_private_v1_private = m1_im2_private.c1;
var m1_im2_private_v2_private = new m1_im2_private.c1();
var m1_im2_private_v3_private = m1_im2_private.f1;
var m1_im2_private_v4_private = m1_im2_private.f1();
- import m1_im3_private = require("m1_M3_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- ~~~~~~~~~~~~~~
-!!! Cannot find external module 'm1_M3_public'.
- export var m1_im3_private_v1_public = m1_im3_private.c1;
- export var m1_im3_private_v2_public = new m1_im3_private.c1();
- export var m1_im3_private_v3_public = m1_im3_private.f1;
- export var m1_im3_private_v4_public = m1_im3_private.f1();
- var m1_im3_private_v1_private = m1_im3_private.c1;
- var m1_im3_private_v2_private = new m1_im3_private.c1();
- var m1_im3_private_v3_private = m1_im3_private.f1;
- var m1_im3_private_v4_private = m1_im3_private.f1();
+ //import m1_im3_private = require("m1_M3_public");
+ //export var m1_im3_private_v1_public = m1_im3_private.c1;
+ //export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ //export var m1_im3_private_v3_public = m1_im3_private.f1;
+ //export var m1_im3_private_v4_public = m1_im3_private.f1();
+ //var m1_im3_private_v1_private = m1_im3_private.c1;
+ //var m1_im3_private_v2_private = new m1_im3_private.c1();
+ //var m1_im3_private_v3_private = m1_im3_private.f1;
+ //var m1_im3_private_v4_private = m1_im3_private.f1();
- import m1_im4_private = require("m1_M4_private");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- ~~~~~~~~~~~~~~~
-!!! Cannot find external module 'm1_M4_private'.
- export var m1_im4_private_v1_public = m1_im4_private.c1;
- export var m1_im4_private_v2_public = new m1_im4_private.c1();
- export var m1_im4_private_v3_public = m1_im4_private.f1;
- export var m1_im4_private_v4_public = m1_im4_private.f1();
- var m1_im4_private_v1_private = m1_im4_private.c1;
- var m1_im4_private_v2_private = new m1_im4_private.c1();
- var m1_im4_private_v3_private = m1_im4_private.f1;
- var m1_im4_private_v4_private = m1_im4_private.f1();
+ //import m1_im4_private = require("m1_M4_private");
+ //export var m1_im4_private_v1_public = m1_im4_private.c1;
+ //export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ //export var m1_im4_private_v3_public = m1_im4_private.f1;
+ //export var m1_im4_private_v4_public = m1_im4_private.f1();
+ //var m1_im4_private_v1_private = m1_im4_private.c1;
+ //var m1_im4_private_v2_private = new m1_im4_private.c1();
+ //var m1_im4_private_v3_private = m1_im4_private.f1;
+ //var m1_im4_private_v4_private = m1_im4_private.f1();
export import m1_im1_public = m1_M1_public;
export import m1_im2_public = m1_M2_private;
- export import m1_im3_public = require("m1_M3_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- export import m1_im4_public = require("m1_M4_private");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //export import m1_im3_public = require("m1_M3_public");
+ //export import m1_im4_public = require("m1_M4_private");
}
module m2 {
@@ -120,25 +112,21 @@
export var v2: c1;
}
- export declare module "m2_M3_public" {
- ~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //export declare module "m2_M3_public" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
- declare module "m2_M4_private" {
- ~~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //declare module "m2_M4_private" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
import m1_im1_private = m2_M1_public;
export var m1_im1_private_v1_public = m1_im1_private.c1;
@@ -161,43 +149,31 @@
var m1_im2_private_v3_private = m1_im2_private.f1;
var m1_im2_private_v4_private = m1_im2_private.f1();
- import m1_im3_private = require("m2_M3_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- ~~~~~~~~~~~~~~
-!!! Cannot find external module 'm2_M3_public'.
- export var m1_im3_private_v1_public = m1_im3_private.c1;
- export var m1_im3_private_v2_public = new m1_im3_private.c1();
- export var m1_im3_private_v3_public = m1_im3_private.f1;
- export var m1_im3_private_v4_public = m1_im3_private.f1();
- var m1_im3_private_v1_private = m1_im3_private.c1;
- var m1_im3_private_v2_private = new m1_im3_private.c1();
- var m1_im3_private_v3_private = m1_im3_private.f1;
- var m1_im3_private_v4_private = m1_im3_private.f1();
+ //import m1_im3_private = require("m2_M3_public");
+ //export var m1_im3_private_v1_public = m1_im3_private.c1;
+ //export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ //export var m1_im3_private_v3_public = m1_im3_private.f1;
+ //export var m1_im3_private_v4_public = m1_im3_private.f1();
+ //var m1_im3_private_v1_private = m1_im3_private.c1;
+ //var m1_im3_private_v2_private = new m1_im3_private.c1();
+ //var m1_im3_private_v3_private = m1_im3_private.f1;
+ //var m1_im3_private_v4_private = m1_im3_private.f1();
- import m1_im4_private = require("m2_M4_private");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- ~~~~~~~~~~~~~~~
-!!! Cannot find external module 'm2_M4_private'.
- export var m1_im4_private_v1_public = m1_im4_private.c1;
- export var m1_im4_private_v2_public = new m1_im4_private.c1();
- export var m1_im4_private_v3_public = m1_im4_private.f1;
- export var m1_im4_private_v4_public = m1_im4_private.f1();
- var m1_im4_private_v1_private = m1_im4_private.c1;
- var m1_im4_private_v2_private = new m1_im4_private.c1();
- var m1_im4_private_v3_private = m1_im4_private.f1;
- var m1_im4_private_v4_private = m1_im4_private.f1();
+ //import m1_im4_private = require("m2_M4_private");
+ //export var m1_im4_private_v1_public = m1_im4_private.c1;
+ //export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ //export var m1_im4_private_v3_public = m1_im4_private.f1;
+ //export var m1_im4_private_v4_public = m1_im4_private.f1();
+ //var m1_im4_private_v1_private = m1_im4_private.c1;
+ //var m1_im4_private_v2_private = new m1_im4_private.c1();
+ //var m1_im4_private_v3_private = m1_im4_private.f1;
+ //var m1_im4_private_v4_private = m1_im4_private.f1();
// Parse error to export module
export import m1_im1_public = m2_M1_public;
export import m1_im2_public = m2_M2_private;
- export import m1_im3_public = require("m2_M3_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- export import m1_im4_public = require("m2_M4_private");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //export import m1_im3_public = require("m2_M3_public");
+ //export import m1_im4_public = require("m2_M4_private");
}
export module glo_M1_public {
@@ -210,15 +186,13 @@
export var v2: c1;
}
- export declare module "glo_M2_public" {
- ~~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //export declare module "glo_M2_public" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
export module glo_M3_private {
export class c1 {
@@ -230,15 +204,13 @@
export var v2: c1;
}
- export declare module "glo_M4_private" {
- ~~~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //export declare module "glo_M4_private" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
import glo_im1_private = glo_M1_public;
@@ -252,17 +224,15 @@
var glo_im1_private_v4_private = glo_im1_private.f1();
- import glo_im2_private = require("glo_M2_public");
- ~~~~~~~~~~~~~~~
-!!! Cannot find external module 'glo_M2_public'.
- export var glo_im2_private_v1_public = glo_im2_private.c1;
- export var glo_im2_private_v2_public = new glo_im2_private.c1();
- export var glo_im2_private_v3_public = glo_im2_private.f1;
- export var glo_im2_private_v4_public = glo_im2_private.f1();
- var glo_im2_private_v1_private = glo_im2_private.c1;
- var glo_im2_private_v2_private = new glo_im2_private.c1();
- var glo_im2_private_v3_private = glo_im2_private.f1;
- var glo_im2_private_v4_private = glo_im2_private.f1();
+ //import glo_im2_private = require("glo_M2_public");
+ //export var glo_im2_private_v1_public = glo_im2_private.c1;
+ //export var glo_im2_private_v2_public = new glo_im2_private.c1();
+ //export var glo_im2_private_v3_public = glo_im2_private.f1;
+ //export var glo_im2_private_v4_public = glo_im2_private.f1();
+ //var glo_im2_private_v1_private = glo_im2_private.c1;
+ //var glo_im2_private_v2_private = new glo_im2_private.c1();
+ //var glo_im2_private_v3_private = glo_im2_private.f1;
+ //var glo_im2_private_v4_private = glo_im2_private.f1();
import glo_im3_private = glo_M3_private;
export var glo_im3_private_v1_public = glo_im3_private.c1;
@@ -274,182 +244,122 @@
var glo_im3_private_v3_private = glo_im3_private.f1;
var glo_im3_private_v4_private = glo_im3_private.f1();
- import glo_im4_private = require("glo_M4_private");
- ~~~~~~~~~~~~~~~~
-!!! Cannot find external module 'glo_M4_private'.
- export var glo_im4_private_v1_public = glo_im4_private.c1;
- export var glo_im4_private_v2_public = new glo_im4_private.c1();
- export var glo_im4_private_v3_public = glo_im4_private.f1;
- export var glo_im4_private_v4_public = glo_im4_private.f1();
- var glo_im4_private_v1_private = glo_im4_private.c1;
- var glo_im4_private_v2_private = new glo_im4_private.c1();
- var glo_im4_private_v3_private = glo_im4_private.f1;
- var glo_im4_private_v4_private = glo_im4_private.f1();
+ //import glo_im4_private = require("glo_M4_private");
+ //export var glo_im4_private_v1_public = glo_im4_private.c1;
+ //export var glo_im4_private_v2_public = new glo_im4_private.c1();
+ //export var glo_im4_private_v3_public = glo_im4_private.f1;
+ //export var glo_im4_private_v4_public = glo_im4_private.f1();
+ //var glo_im4_private_v1_private = glo_im4_private.c1;
+ //var glo_im4_private_v2_private = new glo_im4_private.c1();
+ //var glo_im4_private_v3_private = glo_im4_private.f1;
+ //var glo_im4_private_v4_private = glo_im4_private.f1();
// Parse error to export module
export import glo_im1_public = glo_M1_public;
export import glo_im2_public = glo_M3_private;
- export import glo_im3_public = require("glo_M2_public");
- ~~~~~~~~~~~~~~~
-!!! Cannot find external module 'glo_M2_public'.
- export import glo_im4_public = require("glo_M4_private");
- ~~~~~~~~~~~~~~~~
-!!! Cannot find external module 'glo_M4_private'.
+ //export import glo_im3_public = require("glo_M2_public");
+ //export import glo_im4_public = require("glo_M4_private");
- export declare module "use_glo_M1_public" {
- ~~~~~~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- import use_glo_M1_public = glo_M1_public;
- export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
- export var use_glo_M1_public_v2_public: use_glo_M1_public;
- ~~~~~~~~~~~~~~~~~
-!!! Cannot find name 'use_glo_M1_public'.
- export var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
- var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
- var use_glo_M1_public_v2_private: use_glo_M1_public;
- ~~~~~~~~~~~~~~~~~
-!!! Cannot find name 'use_glo_M1_public'.
- var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
+ //export declare module "use_glo_M1_public" {
+ // import use_glo_M1_public = glo_M1_public;
+ // export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
+ // export var use_glo_M1_public_v2_public: use_glo_M1_public;
+ // export var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
+ // var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
+ // var use_glo_M1_public_v2_private: use_glo_M1_public;
+ // var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
- import use_glo_M2_public = require("glo_M2_public");
- ~~~~~~~~~~~~~~~
-!!! Cannot find external module 'glo_M2_public'.
- export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
- export var use_glo_M2_public_v2_public: use_glo_M2_public;
- export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
- var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
- var use_glo_M2_public_v2_private: use_glo_M2_public;
- var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
+ // import use_glo_M2_public = require("glo_M2_public");
+ // export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
+ // export var use_glo_M2_public_v2_public: use_glo_M2_public;
+ // export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
+ // var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
+ // var use_glo_M2_public_v2_private: use_glo_M2_public;
+ // var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
- module m2 {
- import errorImport = require("glo_M2_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- import nonerrorImport = glo_M1_public;
+ // module m2 {
+ // import errorImport = require("glo_M2_public");
+ // import nonerrorImport = glo_M1_public;
- module m5 {
- import m5_errorImport = require("glo_M2_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- import m5_nonerrorImport = glo_M1_public;
- }
- }
- }
+ // module m5 {
+ // import m5_errorImport = require("glo_M2_public");
+ // import m5_nonerrorImport = glo_M1_public;
+ // }
+ // }
+ //}
- declare module "use_glo_M3_private" {
- ~~~~~~~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- import use_glo_M3_private = glo_M3_private;
- export var use_glo_M3_private_v1_public: { new (): use_glo_M3_private.c1; };
- export var use_glo_M3_private_v2_public: use_glo_M3_private;
- ~~~~~~~~~~~~~~~~~~
-!!! Cannot find name 'use_glo_M3_private'.
- export var use_glo_M3_private_v3_public: () => use_glo_M3_private.c1;
- var use_glo_M3_private_v1_private: { new (): use_glo_M3_private.c1; };
- var use_glo_M3_private_v2_private: use_glo_M3_private;
- ~~~~~~~~~~~~~~~~~~
-!!! Cannot find name 'use_glo_M3_private'.
- var use_glo_M3_private_v3_private: () => use_glo_M3_private.c1;
+ //declare module "use_glo_M3_private" {
+ // import use_glo_M3_private = glo_M3_private;
+ // export var use_glo_M3_private_v1_public: { new (): use_glo_M3_private.c1; };
+ // export var use_glo_M3_private_v2_public: use_glo_M3_private;
+ // export var use_glo_M3_private_v3_public: () => use_glo_M3_private.c1;
+ // var use_glo_M3_private_v1_private: { new (): use_glo_M3_private.c1; };
+ // var use_glo_M3_private_v2_private: use_glo_M3_private;
+ // var use_glo_M3_private_v3_private: () => use_glo_M3_private.c1;
- import use_glo_M4_private = require("glo_M4_private");
- ~~~~~~~~~~~~~~~~
-!!! Cannot find external module 'glo_M4_private'.
- export var use_glo_M4_private_v1_public: { new (): use_glo_M4_private.c1; };
- export var use_glo_M4_private_v2_public: use_glo_M4_private;
- export var use_glo_M4_private_v3_public: () => use_glo_M4_private.c1;
- var use_glo_M4_private_v1_private: { new (): use_glo_M4_private.c1; };
- var use_glo_M4_private_v2_private: use_glo_M4_private;
- var use_glo_M4_private_v3_private: () => use_glo_M4_private.c1;
+ // import use_glo_M4_private = require("glo_M4_private");
+ // export var use_glo_M4_private_v1_public: { new (): use_glo_M4_private.c1; };
+ // export var use_glo_M4_private_v2_public: use_glo_M4_private;
+ // export var use_glo_M4_private_v3_public: () => use_glo_M4_private.c1;
+ // var use_glo_M4_private_v1_private: { new (): use_glo_M4_private.c1; };
+ // var use_glo_M4_private_v2_private: use_glo_M4_private;
+ // var use_glo_M4_private_v3_private: () => use_glo_M4_private.c1;
- module m2 {
- import errorImport = require("glo_M4_private");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- import nonerrorImport = glo_M3_private;
+ // module m2 {
+ // import errorImport = require("glo_M4_private");
+ // import nonerrorImport = glo_M3_private;
- module m5 {
- import m5_errorImport = require("glo_M4_private");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
- import m5_nonerrorImport = glo_M3_private;
- }
- }
- }
+ // module m5 {
+ // import m5_errorImport = require("glo_M4_private");
+ // import m5_nonerrorImport = glo_M3_private;
+ // }
+ // }
+ //}
- declare module "anotherParseError" {
- ~~~~~~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- module m2 {
- declare module "abc" {
- ~~~~~~~
-!!! A 'declare' modifier cannot be used in an already ambient context.
- ~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- }
- }
+ //declare module "anotherParseError" {
+ // module m2 {
+ // declare module "abc" {
+ // }
+ // }
- module m2 {
- module "abc2" {
- ~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- }
- }
- module "abc3" {
- ~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- }
- }
+ // module m2 {
+ // module "abc2" {
+ // }
+ // }
+ // module "abc3" {
+ // }
+ //}
- declare export module "anotherParseError2" {
- ~~~~~~
-!!! 'export' modifier must precede 'declare' modifier.
- ~~~~~~~~~~~~~~~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- module m2 {
- declare module "abc" {
- ~~~~~~~
-!!! A 'declare' modifier cannot be used in an already ambient context.
- ~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- }
- }
+ //declare export module "anotherParseError2" {
+ // module m2 {
+ // declare module "abc" {
+ // }
+ // }
- module m2 {
- module "abc2" {
- ~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- }
- }
- module "abc3" {
- ~~~~~~
-!!! Ambient external modules cannot be nested in other modules.
- }
- }
+ // module m2 {
+ // module "abc2" {
+ // }
+ // }
+ // module "abc3" {
+ // }
+ //}
module m2 {
- import m3 = require("use_glo_M1_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //import m3 = require("use_glo_M1_public");
module m4 {
var a = 10;
- import m2 = require("use_glo_M1_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //import m2 = require("use_glo_M1_public");
}
}
export module m3 {
- import m3 = require("use_glo_M1_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //import m3 = require("use_glo_M1_public");
module m4 {
var a = 10;
- import m2 = require("use_glo_M1_public");
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-!!! Import declarations in an internal module cannot reference an external module.
+ //import m2 = require("use_glo_M1_public");
}
}
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyImport.js b/tests/baselines/reference/privacyImport.js
new file mode 100644
index 00000000000..7b7e4c4977f
--- /dev/null
+++ b/tests/baselines/reference/privacyImport.js
@@ -0,0 +1,529 @@
+//// [privacyImport.ts]
+export module m1 {
+ export module m1_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ module m1_M2_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ //export declare module "m1_M3_public" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
+
+ //declare module "m1_M4_private" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
+
+ import m1_im1_private = m1_M1_public;
+ export var m1_im1_private_v1_public = m1_im1_private.c1;
+ export var m1_im1_private_v2_public = new m1_im1_private.c1();
+ export var m1_im1_private_v3_public = m1_im1_private.f1;
+ export var m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+
+
+ import m1_im2_private = m1_M2_private;
+ export var m1_im2_private_v1_public = m1_im2_private.c1;
+ export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ export var m1_im2_private_v3_public = m1_im2_private.f1;
+ export var m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+
+ //import m1_im3_private = require("m1_M3_public");
+ //export var m1_im3_private_v1_public = m1_im3_private.c1;
+ //export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ //export var m1_im3_private_v3_public = m1_im3_private.f1;
+ //export var m1_im3_private_v4_public = m1_im3_private.f1();
+ //var m1_im3_private_v1_private = m1_im3_private.c1;
+ //var m1_im3_private_v2_private = new m1_im3_private.c1();
+ //var m1_im3_private_v3_private = m1_im3_private.f1;
+ //var m1_im3_private_v4_private = m1_im3_private.f1();
+
+ //import m1_im4_private = require("m1_M4_private");
+ //export var m1_im4_private_v1_public = m1_im4_private.c1;
+ //export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ //export var m1_im4_private_v3_public = m1_im4_private.f1;
+ //export var m1_im4_private_v4_public = m1_im4_private.f1();
+ //var m1_im4_private_v1_private = m1_im4_private.c1;
+ //var m1_im4_private_v2_private = new m1_im4_private.c1();
+ //var m1_im4_private_v3_private = m1_im4_private.f1;
+ //var m1_im4_private_v4_private = m1_im4_private.f1();
+
+ export import m1_im1_public = m1_M1_public;
+ export import m1_im2_public = m1_M2_private;
+ //export import m1_im3_public = require("m1_M3_public");
+ //export import m1_im4_public = require("m1_M4_private");
+}
+
+module m2 {
+ export module m2_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ module m2_M2_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ //export declare module "m2_M3_public" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
+
+ //declare module "m2_M4_private" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
+
+ import m1_im1_private = m2_M1_public;
+ export var m1_im1_private_v1_public = m1_im1_private.c1;
+ export var m1_im1_private_v2_public = new m1_im1_private.c1();
+ export var m1_im1_private_v3_public = m1_im1_private.f1;
+ export var m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+
+
+ import m1_im2_private = m2_M2_private;
+ export var m1_im2_private_v1_public = m1_im2_private.c1;
+ export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ export var m1_im2_private_v3_public = m1_im2_private.f1;
+ export var m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+
+ //import m1_im3_private = require("m2_M3_public");
+ //export var m1_im3_private_v1_public = m1_im3_private.c1;
+ //export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ //export var m1_im3_private_v3_public = m1_im3_private.f1;
+ //export var m1_im3_private_v4_public = m1_im3_private.f1();
+ //var m1_im3_private_v1_private = m1_im3_private.c1;
+ //var m1_im3_private_v2_private = new m1_im3_private.c1();
+ //var m1_im3_private_v3_private = m1_im3_private.f1;
+ //var m1_im3_private_v4_private = m1_im3_private.f1();
+
+ //import m1_im4_private = require("m2_M4_private");
+ //export var m1_im4_private_v1_public = m1_im4_private.c1;
+ //export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ //export var m1_im4_private_v3_public = m1_im4_private.f1;
+ //export var m1_im4_private_v4_public = m1_im4_private.f1();
+ //var m1_im4_private_v1_private = m1_im4_private.c1;
+ //var m1_im4_private_v2_private = new m1_im4_private.c1();
+ //var m1_im4_private_v3_private = m1_im4_private.f1;
+ //var m1_im4_private_v4_private = m1_im4_private.f1();
+
+ // Parse error to export module
+ export import m1_im1_public = m2_M1_public;
+ export import m1_im2_public = m2_M2_private;
+ //export import m1_im3_public = require("m2_M3_public");
+ //export import m1_im4_public = require("m2_M4_private");
+}
+
+export module glo_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+}
+
+//export declare module "glo_M2_public" {
+// export function f1();
+// export class c1 {
+// }
+// export var v1: { new (): c1; };
+// export var v2: c1;
+//}
+
+export module glo_M3_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+}
+
+//export declare module "glo_M4_private" {
+// export function f1();
+// export class c1 {
+// }
+// export var v1: { new (): c1; };
+// export var v2: c1;
+//}
+
+
+import glo_im1_private = glo_M1_public;
+export var glo_im1_private_v1_public = glo_im1_private.c1;
+export var glo_im1_private_v2_public = new glo_im1_private.c1();
+export var glo_im1_private_v3_public = glo_im1_private.f1;
+export var glo_im1_private_v4_public = glo_im1_private.f1();
+var glo_im1_private_v1_private = glo_im1_private.c1;
+var glo_im1_private_v2_private = new glo_im1_private.c1();
+var glo_im1_private_v3_private = glo_im1_private.f1;
+var glo_im1_private_v4_private = glo_im1_private.f1();
+
+
+//import glo_im2_private = require("glo_M2_public");
+//export var glo_im2_private_v1_public = glo_im2_private.c1;
+//export var glo_im2_private_v2_public = new glo_im2_private.c1();
+//export var glo_im2_private_v3_public = glo_im2_private.f1;
+//export var glo_im2_private_v4_public = glo_im2_private.f1();
+//var glo_im2_private_v1_private = glo_im2_private.c1;
+//var glo_im2_private_v2_private = new glo_im2_private.c1();
+//var glo_im2_private_v3_private = glo_im2_private.f1;
+//var glo_im2_private_v4_private = glo_im2_private.f1();
+
+import glo_im3_private = glo_M3_private;
+export var glo_im3_private_v1_public = glo_im3_private.c1;
+export var glo_im3_private_v2_public = new glo_im3_private.c1();
+export var glo_im3_private_v3_public = glo_im3_private.f1;
+export var glo_im3_private_v4_public = glo_im3_private.f1();
+var glo_im3_private_v1_private = glo_im3_private.c1;
+var glo_im3_private_v2_private = new glo_im3_private.c1();
+var glo_im3_private_v3_private = glo_im3_private.f1;
+var glo_im3_private_v4_private = glo_im3_private.f1();
+
+//import glo_im4_private = require("glo_M4_private");
+//export var glo_im4_private_v1_public = glo_im4_private.c1;
+//export var glo_im4_private_v2_public = new glo_im4_private.c1();
+//export var glo_im4_private_v3_public = glo_im4_private.f1;
+//export var glo_im4_private_v4_public = glo_im4_private.f1();
+//var glo_im4_private_v1_private = glo_im4_private.c1;
+//var glo_im4_private_v2_private = new glo_im4_private.c1();
+//var glo_im4_private_v3_private = glo_im4_private.f1;
+//var glo_im4_private_v4_private = glo_im4_private.f1();
+
+// Parse error to export module
+export import glo_im1_public = glo_M1_public;
+export import glo_im2_public = glo_M3_private;
+//export import glo_im3_public = require("glo_M2_public");
+//export import glo_im4_public = require("glo_M4_private");
+
+
+//export declare module "use_glo_M1_public" {
+// import use_glo_M1_public = glo_M1_public;
+// export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
+// export var use_glo_M1_public_v2_public: use_glo_M1_public;
+// export var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
+// var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
+// var use_glo_M1_public_v2_private: use_glo_M1_public;
+// var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
+
+// import use_glo_M2_public = require("glo_M2_public");
+// export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
+// export var use_glo_M2_public_v2_public: use_glo_M2_public;
+// export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
+// var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
+// var use_glo_M2_public_v2_private: use_glo_M2_public;
+// var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
+
+// module m2 {
+// import errorImport = require("glo_M2_public");
+// import nonerrorImport = glo_M1_public;
+
+// module m5 {
+// import m5_errorImport = require("glo_M2_public");
+// import m5_nonerrorImport = glo_M1_public;
+// }
+// }
+//}
+
+
+//declare module "use_glo_M3_private" {
+// import use_glo_M3_private = glo_M3_private;
+// export var use_glo_M3_private_v1_public: { new (): use_glo_M3_private.c1; };
+// export var use_glo_M3_private_v2_public: use_glo_M3_private;
+// export var use_glo_M3_private_v3_public: () => use_glo_M3_private.c1;
+// var use_glo_M3_private_v1_private: { new (): use_glo_M3_private.c1; };
+// var use_glo_M3_private_v2_private: use_glo_M3_private;
+// var use_glo_M3_private_v3_private: () => use_glo_M3_private.c1;
+
+// import use_glo_M4_private = require("glo_M4_private");
+// export var use_glo_M4_private_v1_public: { new (): use_glo_M4_private.c1; };
+// export var use_glo_M4_private_v2_public: use_glo_M4_private;
+// export var use_glo_M4_private_v3_public: () => use_glo_M4_private.c1;
+// var use_glo_M4_private_v1_private: { new (): use_glo_M4_private.c1; };
+// var use_glo_M4_private_v2_private: use_glo_M4_private;
+// var use_glo_M4_private_v3_private: () => use_glo_M4_private.c1;
+
+// module m2 {
+// import errorImport = require("glo_M4_private");
+// import nonerrorImport = glo_M3_private;
+
+// module m5 {
+// import m5_errorImport = require("glo_M4_private");
+// import m5_nonerrorImport = glo_M3_private;
+// }
+// }
+//}
+
+//declare module "anotherParseError" {
+// module m2 {
+// declare module "abc" {
+// }
+// }
+
+// module m2 {
+// module "abc2" {
+// }
+// }
+// module "abc3" {
+// }
+//}
+
+//declare export module "anotherParseError2" {
+// module m2 {
+// declare module "abc" {
+// }
+// }
+
+// module m2 {
+// module "abc2" {
+// }
+// }
+// module "abc3" {
+// }
+//}
+
+module m2 {
+ //import m3 = require("use_glo_M1_public");
+ module m4 {
+ var a = 10;
+ //import m2 = require("use_glo_M1_public");
+ }
+
+}
+
+export module m3 {
+ //import m3 = require("use_glo_M1_public");
+ module m4 {
+ var a = 10;
+ //import m2 = require("use_glo_M1_public");
+ }
+
+}
+
+//// [privacyImport.js]
+(function (m1) {
+ (function (m1_M1_public) {
+ var c1 = (function () {
+ function c1() {
+ }
+ return c1;
+ })();
+ m1_M1_public.c1 = c1;
+ function f1() {
+ return new c1;
+ }
+ m1_M1_public.f1 = f1;
+ m1_M1_public.v1 = c1;
+ m1_M1_public.v2;
+ })(m1.m1_M1_public || (m1.m1_M1_public = {}));
+ var m1_M1_public = m1.m1_M1_public;
+ var m1_M2_private;
+ (function (m1_M2_private) {
+ var c1 = (function () {
+ function c1() {
+ }
+ return c1;
+ })();
+ m1_M2_private.c1 = c1;
+ function f1() {
+ return new c1;
+ }
+ m1_M2_private.f1 = f1;
+ m1_M2_private.v1 = c1;
+ m1_M2_private.v2;
+ })(m1_M2_private || (m1_M2_private = {}));
+ var m1_im1_private = m1_M1_public;
+ m1.m1_im1_private_v1_public = m1_im1_private.c1;
+ m1.m1_im1_private_v2_public = new m1_im1_private.c1();
+ m1.m1_im1_private_v3_public = m1_im1_private.f1;
+ m1.m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+ var m1_im2_private = m1_M2_private;
+ m1.m1_im2_private_v1_public = m1_im2_private.c1;
+ m1.m1_im2_private_v2_public = new m1_im2_private.c1();
+ m1.m1_im2_private_v3_public = m1_im2_private.f1;
+ m1.m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+ m1.m1_im1_public = m1_M1_public;
+ m1.m1_im2_public = m1_M2_private;
+})(exports.m1 || (exports.m1 = {}));
+var m1 = exports.m1;
+var m2;
+(function (m2) {
+ (function (m2_M1_public) {
+ var c1 = (function () {
+ function c1() {
+ }
+ return c1;
+ })();
+ m2_M1_public.c1 = c1;
+ function f1() {
+ return new c1;
+ }
+ m2_M1_public.f1 = f1;
+ m2_M1_public.v1 = c1;
+ m2_M1_public.v2;
+ })(m2.m2_M1_public || (m2.m2_M1_public = {}));
+ var m2_M1_public = m2.m2_M1_public;
+ var m2_M2_private;
+ (function (m2_M2_private) {
+ var c1 = (function () {
+ function c1() {
+ }
+ return c1;
+ })();
+ m2_M2_private.c1 = c1;
+ function f1() {
+ return new c1;
+ }
+ m2_M2_private.f1 = f1;
+ m2_M2_private.v1 = c1;
+ m2_M2_private.v2;
+ })(m2_M2_private || (m2_M2_private = {}));
+ var m1_im1_private = m2_M1_public;
+ m2.m1_im1_private_v1_public = m1_im1_private.c1;
+ m2.m1_im1_private_v2_public = new m1_im1_private.c1();
+ m2.m1_im1_private_v3_public = m1_im1_private.f1;
+ m2.m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+ var m1_im2_private = m2_M2_private;
+ m2.m1_im2_private_v1_public = m1_im2_private.c1;
+ m2.m1_im2_private_v2_public = new m1_im2_private.c1();
+ m2.m1_im2_private_v3_public = m1_im2_private.f1;
+ m2.m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+ m2.m1_im1_public = m2_M1_public;
+ m2.m1_im2_public = m2_M2_private;
+})(m2 || (m2 = {}));
+(function (glo_M1_public) {
+ var c1 = (function () {
+ function c1() {
+ }
+ return c1;
+ })();
+ glo_M1_public.c1 = c1;
+ function f1() {
+ return new c1;
+ }
+ glo_M1_public.f1 = f1;
+ glo_M1_public.v1 = c1;
+ glo_M1_public.v2;
+})(exports.glo_M1_public || (exports.glo_M1_public = {}));
+var glo_M1_public = exports.glo_M1_public;
+(function (glo_M3_private) {
+ var c1 = (function () {
+ function c1() {
+ }
+ return c1;
+ })();
+ glo_M3_private.c1 = c1;
+ function f1() {
+ return new c1;
+ }
+ glo_M3_private.f1 = f1;
+ glo_M3_private.v1 = c1;
+ glo_M3_private.v2;
+})(exports.glo_M3_private || (exports.glo_M3_private = {}));
+var glo_M3_private = exports.glo_M3_private;
+var glo_im1_private = glo_M1_public;
+exports.glo_im1_private_v1_public = glo_im1_private.c1;
+exports.glo_im1_private_v2_public = new glo_im1_private.c1();
+exports.glo_im1_private_v3_public = glo_im1_private.f1;
+exports.glo_im1_private_v4_public = glo_im1_private.f1();
+var glo_im1_private_v1_private = glo_im1_private.c1;
+var glo_im1_private_v2_private = new glo_im1_private.c1();
+var glo_im1_private_v3_private = glo_im1_private.f1;
+var glo_im1_private_v4_private = glo_im1_private.f1();
+var glo_im3_private = glo_M3_private;
+exports.glo_im3_private_v1_public = glo_im3_private.c1;
+exports.glo_im3_private_v2_public = new glo_im3_private.c1();
+exports.glo_im3_private_v3_public = glo_im3_private.f1;
+exports.glo_im3_private_v4_public = glo_im3_private.f1();
+var glo_im3_private_v1_private = glo_im3_private.c1;
+var glo_im3_private_v2_private = new glo_im3_private.c1();
+var glo_im3_private_v3_private = glo_im3_private.f1;
+var glo_im3_private_v4_private = glo_im3_private.f1();
+exports.glo_im1_public = glo_M1_public;
+exports.glo_im2_public = glo_M3_private;
+var m2;
+(function (m2) {
+ var m4;
+ (function (m4) {
+ var a = 10;
+ })(m4 || (m4 = {}));
+})(m2 || (m2 = {}));
+(function (m3) {
+ var m4;
+ (function (m4) {
+ var a = 10;
+ })(m4 || (m4 = {}));
+})(exports.m3 || (exports.m3 = {}));
+var m3 = exports.m3;
diff --git a/tests/baselines/reference/privacyImportParseErrors.errors.txt b/tests/baselines/reference/privacyImportParseErrors.errors.txt
new file mode 100644
index 00000000000..6889ad85e1b
--- /dev/null
+++ b/tests/baselines/reference/privacyImportParseErrors.errors.txt
@@ -0,0 +1,455 @@
+==== tests/cases/compiler/privacyImportParseErrors.ts (49 errors) ====
+ export module m1 {
+ export module m1_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ module m1_M2_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ export declare module "m1_M3_public" {
+ ~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ declare module "m1_M4_private" {
+ ~~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ import m1_im1_private = m1_M1_public;
+ export var m1_im1_private_v1_public = m1_im1_private.c1;
+ export var m1_im1_private_v2_public = new m1_im1_private.c1();
+ export var m1_im1_private_v3_public = m1_im1_private.f1;
+ export var m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+
+
+ import m1_im2_private = m1_M2_private;
+ export var m1_im2_private_v1_public = m1_im2_private.c1;
+ export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ export var m1_im2_private_v3_public = m1_im2_private.f1;
+ export var m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+
+ import m1_im3_private = require("m1_M3_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ ~~~~~~~~~~~~~~
+!!! Cannot find external module 'm1_M3_public'.
+ export var m1_im3_private_v1_public = m1_im3_private.c1;
+ export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ export var m1_im3_private_v3_public = m1_im3_private.f1;
+ export var m1_im3_private_v4_public = m1_im3_private.f1();
+ var m1_im3_private_v1_private = m1_im3_private.c1;
+ var m1_im3_private_v2_private = new m1_im3_private.c1();
+ var m1_im3_private_v3_private = m1_im3_private.f1;
+ var m1_im3_private_v4_private = m1_im3_private.f1();
+
+ import m1_im4_private = require("m1_M4_private");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ ~~~~~~~~~~~~~~~
+!!! Cannot find external module 'm1_M4_private'.
+ export var m1_im4_private_v1_public = m1_im4_private.c1;
+ export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ export var m1_im4_private_v3_public = m1_im4_private.f1;
+ export var m1_im4_private_v4_public = m1_im4_private.f1();
+ var m1_im4_private_v1_private = m1_im4_private.c1;
+ var m1_im4_private_v2_private = new m1_im4_private.c1();
+ var m1_im4_private_v3_private = m1_im4_private.f1;
+ var m1_im4_private_v4_private = m1_im4_private.f1();
+
+ export import m1_im1_public = m1_M1_public;
+ export import m1_im2_public = m1_M2_private;
+ export import m1_im3_public = require("m1_M3_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ export import m1_im4_public = require("m1_M4_private");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ }
+
+ module m2 {
+ export module m2_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ module m2_M2_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ export declare module "m2_M3_public" {
+ ~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ declare module "m2_M4_private" {
+ ~~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ import m1_im1_private = m2_M1_public;
+ export var m1_im1_private_v1_public = m1_im1_private.c1;
+ export var m1_im1_private_v2_public = new m1_im1_private.c1();
+ export var m1_im1_private_v3_public = m1_im1_private.f1;
+ export var m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+
+
+ import m1_im2_private = m2_M2_private;
+ export var m1_im2_private_v1_public = m1_im2_private.c1;
+ export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ export var m1_im2_private_v3_public = m1_im2_private.f1;
+ export var m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+
+ import m1_im3_private = require("m2_M3_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ ~~~~~~~~~~~~~~
+!!! Cannot find external module 'm2_M3_public'.
+ export var m1_im3_private_v1_public = m1_im3_private.c1;
+ export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ export var m1_im3_private_v3_public = m1_im3_private.f1;
+ export var m1_im3_private_v4_public = m1_im3_private.f1();
+ var m1_im3_private_v1_private = m1_im3_private.c1;
+ var m1_im3_private_v2_private = new m1_im3_private.c1();
+ var m1_im3_private_v3_private = m1_im3_private.f1;
+ var m1_im3_private_v4_private = m1_im3_private.f1();
+
+ import m1_im4_private = require("m2_M4_private");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ ~~~~~~~~~~~~~~~
+!!! Cannot find external module 'm2_M4_private'.
+ export var m1_im4_private_v1_public = m1_im4_private.c1;
+ export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ export var m1_im4_private_v3_public = m1_im4_private.f1;
+ export var m1_im4_private_v4_public = m1_im4_private.f1();
+ var m1_im4_private_v1_private = m1_im4_private.c1;
+ var m1_im4_private_v2_private = new m1_im4_private.c1();
+ var m1_im4_private_v3_private = m1_im4_private.f1;
+ var m1_im4_private_v4_private = m1_im4_private.f1();
+
+ // Parse error to export module
+ export import m1_im1_public = m2_M1_public;
+ export import m1_im2_public = m2_M2_private;
+ export import m1_im3_public = require("m2_M3_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ export import m1_im4_public = require("m2_M4_private");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ }
+
+ export module glo_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ export declare module "glo_M2_public" {
+ ~~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ export module glo_M3_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ export declare module "glo_M4_private" {
+ ~~~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+
+ import glo_im1_private = glo_M1_public;
+ export var glo_im1_private_v1_public = glo_im1_private.c1;
+ export var glo_im1_private_v2_public = new glo_im1_private.c1();
+ export var glo_im1_private_v3_public = glo_im1_private.f1;
+ export var glo_im1_private_v4_public = glo_im1_private.f1();
+ var glo_im1_private_v1_private = glo_im1_private.c1;
+ var glo_im1_private_v2_private = new glo_im1_private.c1();
+ var glo_im1_private_v3_private = glo_im1_private.f1;
+ var glo_im1_private_v4_private = glo_im1_private.f1();
+
+
+ import glo_im2_private = require("glo_M2_public");
+ ~~~~~~~~~~~~~~~
+!!! Cannot find external module 'glo_M2_public'.
+ export var glo_im2_private_v1_public = glo_im2_private.c1;
+ export var glo_im2_private_v2_public = new glo_im2_private.c1();
+ export var glo_im2_private_v3_public = glo_im2_private.f1;
+ export var glo_im2_private_v4_public = glo_im2_private.f1();
+ var glo_im2_private_v1_private = glo_im2_private.c1;
+ var glo_im2_private_v2_private = new glo_im2_private.c1();
+ var glo_im2_private_v3_private = glo_im2_private.f1;
+ var glo_im2_private_v4_private = glo_im2_private.f1();
+
+ import glo_im3_private = glo_M3_private;
+ export var glo_im3_private_v1_public = glo_im3_private.c1;
+ export var glo_im3_private_v2_public = new glo_im3_private.c1();
+ export var glo_im3_private_v3_public = glo_im3_private.f1;
+ export var glo_im3_private_v4_public = glo_im3_private.f1();
+ var glo_im3_private_v1_private = glo_im3_private.c1;
+ var glo_im3_private_v2_private = new glo_im3_private.c1();
+ var glo_im3_private_v3_private = glo_im3_private.f1;
+ var glo_im3_private_v4_private = glo_im3_private.f1();
+
+ import glo_im4_private = require("glo_M4_private");
+ ~~~~~~~~~~~~~~~~
+!!! Cannot find external module 'glo_M4_private'.
+ export var glo_im4_private_v1_public = glo_im4_private.c1;
+ export var glo_im4_private_v2_public = new glo_im4_private.c1();
+ export var glo_im4_private_v3_public = glo_im4_private.f1;
+ export var glo_im4_private_v4_public = glo_im4_private.f1();
+ var glo_im4_private_v1_private = glo_im4_private.c1;
+ var glo_im4_private_v2_private = new glo_im4_private.c1();
+ var glo_im4_private_v3_private = glo_im4_private.f1;
+ var glo_im4_private_v4_private = glo_im4_private.f1();
+
+ // Parse error to export module
+ export import glo_im1_public = glo_M1_public;
+ export import glo_im2_public = glo_M3_private;
+ export import glo_im3_public = require("glo_M2_public");
+ ~~~~~~~~~~~~~~~
+!!! Cannot find external module 'glo_M2_public'.
+ export import glo_im4_public = require("glo_M4_private");
+ ~~~~~~~~~~~~~~~~
+!!! Cannot find external module 'glo_M4_private'.
+
+
+ export declare module "use_glo_M1_public" {
+ ~~~~~~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ import use_glo_M1_public = glo_M1_public;
+ export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
+ export var use_glo_M1_public_v2_public: use_glo_M1_public;
+ ~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'use_glo_M1_public'.
+ export var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
+ var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
+ var use_glo_M1_public_v2_private: use_glo_M1_public;
+ ~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'use_glo_M1_public'.
+ var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
+
+ import use_glo_M2_public = require("glo_M2_public");
+ ~~~~~~~~~~~~~~~
+!!! Cannot find external module 'glo_M2_public'.
+ export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
+ export var use_glo_M2_public_v2_public: use_glo_M2_public;
+ export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
+ var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
+ var use_glo_M2_public_v2_private: use_glo_M2_public;
+ var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
+
+ module m2 {
+ import errorImport = require("glo_M2_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ import nonerrorImport = glo_M1_public;
+
+ module m5 {
+ import m5_errorImport = require("glo_M2_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ import m5_nonerrorImport = glo_M1_public;
+ }
+ }
+ }
+
+
+ declare module "use_glo_M3_private" {
+ ~~~~~~~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ import use_glo_M3_private = glo_M3_private;
+ export var use_glo_M3_private_v1_public: { new (): use_glo_M3_private.c1; };
+ export var use_glo_M3_private_v2_public: use_glo_M3_private;
+ ~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'use_glo_M3_private'.
+ export var use_glo_M3_private_v3_public: () => use_glo_M3_private.c1;
+ var use_glo_M3_private_v1_private: { new (): use_glo_M3_private.c1; };
+ var use_glo_M3_private_v2_private: use_glo_M3_private;
+ ~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'use_glo_M3_private'.
+ var use_glo_M3_private_v3_private: () => use_glo_M3_private.c1;
+
+ import use_glo_M4_private = require("glo_M4_private");
+ ~~~~~~~~~~~~~~~~
+!!! Cannot find external module 'glo_M4_private'.
+ export var use_glo_M4_private_v1_public: { new (): use_glo_M4_private.c1; };
+ export var use_glo_M4_private_v2_public: use_glo_M4_private;
+ export var use_glo_M4_private_v3_public: () => use_glo_M4_private.c1;
+ var use_glo_M4_private_v1_private: { new (): use_glo_M4_private.c1; };
+ var use_glo_M4_private_v2_private: use_glo_M4_private;
+ var use_glo_M4_private_v3_private: () => use_glo_M4_private.c1;
+
+ module m2 {
+ import errorImport = require("glo_M4_private");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ import nonerrorImport = glo_M3_private;
+
+ module m5 {
+ import m5_errorImport = require("glo_M4_private");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ import m5_nonerrorImport = glo_M3_private;
+ }
+ }
+ }
+
+ declare module "anotherParseError" {
+ ~~~~~~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ module m2 {
+ declare module "abc" {
+ ~~~~~~~
+!!! A 'declare' modifier cannot be used in an already ambient context.
+ ~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ }
+ }
+
+ module m2 {
+ module "abc2" {
+ ~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ }
+ }
+ module "abc3" {
+ ~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ }
+ }
+
+ declare export module "anotherParseError2" {
+ ~~~~~~
+!!! 'export' modifier must precede 'declare' modifier.
+ ~~~~~~~~~~~~~~~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ module m2 {
+ declare module "abc" {
+ ~~~~~~~
+!!! A 'declare' modifier cannot be used in an already ambient context.
+ ~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ }
+ }
+
+ module m2 {
+ module "abc2" {
+ ~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ }
+ }
+ module "abc3" {
+ ~~~~~~
+!!! Ambient external modules cannot be nested in other modules.
+ }
+ }
+
+ module m2 {
+ import m3 = require("use_glo_M1_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ module m4 {
+ var a = 10;
+ import m2 = require("use_glo_M1_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ }
+
+ }
+
+ export module m3 {
+ import m3 = require("use_glo_M1_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ module m4 {
+ var a = 10;
+ import m2 = require("use_glo_M1_public");
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Import declarations in an internal module cannot reference an external module.
+ }
+
+ }
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js b/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js
index f597ff7b1e7..b27bd2b9d26 100644
--- a/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js
+++ b/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js
@@ -291,3 +291,127 @@ var import_private;
var privateUse_im_private_mu_public;
import_private.publicUse_im_private_mu_public;
})(import_private || (import_private = {}));
+
+
+//// [privacyLocalInternalReferenceImportWithExport.d.ts]
+export declare module m_public {
+ class c_public {
+ }
+ enum e_public {
+ Happy = 0,
+ Grumpy = 1,
+ }
+ function f_public(): c_public;
+ var v_public: number;
+ interface i_public {
+ }
+ module mi_public {
+ class c {
+ }
+ }
+ module mu_public {
+ interface i {
+ }
+ }
+}
+export declare module import_public {
+ export import im_public_c_private = m_private.c_private;
+ export import im_public_e_private = m_private.e_private;
+ export import im_public_f_private = m_private.f_private;
+ export import im_public_v_private = m_private.v_private;
+ export import im_public_i_private = m_private.i_private;
+ export import im_public_mi_private = m_private.mi_private;
+ export import im_public_mu_private = m_private.mu_private;
+ var publicUse_im_public_c_private: im_public_c_private;
+ var publicUse_im_public_e_private: im_public_e_private;
+ var publicUse_im_public_f_private: im_public_c_private;
+ var publicUse_im_public_v_private: im_public_c_private;
+ var publicUse_im_public_i_private: im_public_i_private;
+ var publicUse_im_public_mi_private: im_public_mi_private.c;
+ var publicUse_im_public_mu_private: im_public_mu_private.i;
+ export import im_public_c_public = m_public.c_public;
+ export import im_public_e_public = m_public.e_public;
+ export import im_public_f_public = m_public.f_public;
+ export import im_public_v_public = m_public.v_public;
+ export import im_public_i_public = m_public.i_public;
+ export import im_public_mi_public = m_public.mi_public;
+ export import im_public_mu_public = m_public.mu_public;
+ var publicUse_im_public_c_public: im_public_c_public;
+ var publicUse_im_public_e_public: im_public_e_public;
+ var publicUse_im_public_f_public: im_public_c_public;
+ var publicUse_im_public_v_public: number;
+ var publicUse_im_public_i_public: im_public_i_public;
+ var publicUse_im_public_mi_public: im_public_mi_public.c;
+ var publicUse_im_public_mu_public: im_public_mu_public.i;
+}
+
+
+//// [DtsFileErrors]
+
+
+==== tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.d.ts (7 errors) ====
+ export declare module m_public {
+ class c_public {
+ }
+ enum e_public {
+ Happy = 0,
+ Grumpy = 1,
+ }
+ function f_public(): c_public;
+ var v_public: number;
+ interface i_public {
+ }
+ module mi_public {
+ class c {
+ }
+ }
+ module mu_public {
+ interface i {
+ }
+ }
+ }
+ export declare module import_public {
+ export import im_public_c_private = m_private.c_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_e_private = m_private.e_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_f_private = m_private.f_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_v_private = m_private.v_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_i_private = m_private.i_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_mi_private = m_private.mi_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_mu_private = m_private.mu_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ var publicUse_im_public_c_private: im_public_c_private;
+ var publicUse_im_public_e_private: im_public_e_private;
+ var publicUse_im_public_f_private: im_public_c_private;
+ var publicUse_im_public_v_private: im_public_c_private;
+ var publicUse_im_public_i_private: im_public_i_private;
+ var publicUse_im_public_mi_private: im_public_mi_private.c;
+ var publicUse_im_public_mu_private: im_public_mu_private.i;
+ export import im_public_c_public = m_public.c_public;
+ export import im_public_e_public = m_public.e_public;
+ export import im_public_f_public = m_public.f_public;
+ export import im_public_v_public = m_public.v_public;
+ export import im_public_i_public = m_public.i_public;
+ export import im_public_mi_public = m_public.mi_public;
+ export import im_public_mu_public = m_public.mu_public;
+ var publicUse_im_public_c_public: im_public_c_public;
+ var publicUse_im_public_e_public: im_public_e_public;
+ var publicUse_im_public_f_public: im_public_c_public;
+ var publicUse_im_public_v_public: number;
+ var publicUse_im_public_i_public: im_public_i_public;
+ var publicUse_im_public_mi_public: im_public_mi_public.c;
+ var publicUse_im_public_mu_public: im_public_mu_public.i;
+ }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js b/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js
index b799a464b62..044d318b021 100644
--- a/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js
+++ b/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js
@@ -293,3 +293,115 @@ define(["require", "exports"], function (require, exports) {
import_private.publicUse_im_private_mu_public;
})(import_private || (import_private = {}));
});
+
+
+//// [privacyLocalInternalReferenceImportWithoutExport.d.ts]
+export declare module m_public {
+ class c_public {
+ }
+ enum e_public {
+ Happy = 0,
+ Grumpy = 1,
+ }
+ function f_public(): c_public;
+ var v_public: number;
+ interface i_public {
+ }
+ module mi_public {
+ class c {
+ }
+ }
+ module mu_public {
+ interface i {
+ }
+ }
+}
+export declare module import_public {
+ import im_private_c_private = m_private.c_private;
+ import im_private_e_private = m_private.e_private;
+ import im_private_i_private = m_private.i_private;
+ import im_private_mi_private = m_private.mi_private;
+ import im_private_mu_private = m_private.mu_private;
+ var publicUse_im_private_c_private: im_private_c_private;
+ var publicUse_im_private_e_private: im_private_e_private;
+ var publicUse_im_private_f_private: im_private_c_private;
+ var publicUse_im_private_v_private: im_private_c_private;
+ var publicUse_im_private_i_private: im_private_i_private;
+ var publicUse_im_private_mi_private: im_private_mi_private.c;
+ var publicUse_im_private_mu_private: im_private_mu_private.i;
+ import im_private_c_public = m_public.c_public;
+ import im_private_e_public = m_public.e_public;
+ import im_private_i_public = m_public.i_public;
+ import im_private_mi_public = m_public.mi_public;
+ import im_private_mu_public = m_public.mu_public;
+ var publicUse_im_private_c_public: im_private_c_public;
+ var publicUse_im_private_e_public: im_private_e_public;
+ var publicUse_im_private_f_public: im_private_c_public;
+ var publicUse_im_private_v_public: number;
+ var publicUse_im_private_i_public: im_private_i_public;
+ var publicUse_im_private_mi_public: im_private_mi_public.c;
+ var publicUse_im_private_mu_public: im_private_mu_public.i;
+}
+
+
+//// [DtsFileErrors]
+
+
+==== tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.d.ts (5 errors) ====
+ export declare module m_public {
+ class c_public {
+ }
+ enum e_public {
+ Happy = 0,
+ Grumpy = 1,
+ }
+ function f_public(): c_public;
+ var v_public: number;
+ interface i_public {
+ }
+ module mi_public {
+ class c {
+ }
+ }
+ module mu_public {
+ interface i {
+ }
+ }
+ }
+ export declare module import_public {
+ import im_private_c_private = m_private.c_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ import im_private_e_private = m_private.e_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ import im_private_i_private = m_private.i_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ import im_private_mi_private = m_private.mi_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ import im_private_mu_private = m_private.mu_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ var publicUse_im_private_c_private: im_private_c_private;
+ var publicUse_im_private_e_private: im_private_e_private;
+ var publicUse_im_private_f_private: im_private_c_private;
+ var publicUse_im_private_v_private: im_private_c_private;
+ var publicUse_im_private_i_private: im_private_i_private;
+ var publicUse_im_private_mi_private: im_private_mi_private.c;
+ var publicUse_im_private_mu_private: im_private_mu_private.i;
+ import im_private_c_public = m_public.c_public;
+ import im_private_e_public = m_public.e_public;
+ import im_private_i_public = m_public.i_public;
+ import im_private_mi_public = m_public.mi_public;
+ import im_private_mu_public = m_public.mu_public;
+ var publicUse_im_private_c_public: im_private_c_public;
+ var publicUse_im_private_e_public: im_private_e_public;
+ var publicUse_im_private_f_public: im_private_c_public;
+ var publicUse_im_private_v_public: number;
+ var publicUse_im_private_i_public: im_private_i_public;
+ var publicUse_im_private_mi_public: im_private_mi_public.c;
+ var publicUse_im_private_mu_public: im_private_mu_public.i;
+ }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.errors.txt b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.errors.txt
deleted file mode 100644
index 7a102fce1f2..00000000000
--- a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.errors.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_core.ts (6 errors) ====
- // Privacy errors - importing private elements
- export import im_public_mi_private = require("privacyTopLevelAmbientExternalModuleImportWithExport_require");
- export import im_public_mu_private = require("privacyTopLevelAmbientExternalModuleImportWithExport_require1");
- export import im_public_mi_public = require("m");
- ~~~
-!!! Cannot find external module 'm'.
- export import im_public_mu_public = require("m2");
- ~~~~
-!!! Cannot find external module 'm2'.
-
- // Usage of privacy error imports
- var privateUse_im_public_mi_private = new im_public_mi_private.c_private();
- ~~~~~~~~~
-!!! Property 'c_private' does not exist on type 'typeof "tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require"'.
- export var publicUse_im_public_mi_private = new im_public_mi_private.c_private();
- ~~~~~~~~~
-!!! Property 'c_private' does not exist on type 'typeof "tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require"'.
- var privateUse_im_public_mu_private = new im_public_mu_private.c_private();
- ~~~~~~~~~
-!!! Property 'c_private' does not exist on type 'typeof "tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require1"'.
- export var publicUse_im_public_mu_private = new im_public_mu_private.c_private();
- ~~~~~~~~~
-!!! Property 'c_private' does not exist on type 'typeof "tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require1"'.
- var privateUse_im_public_mi_public = new im_public_mi_public.c_public();
- export var publicUse_im_public_mi_public = new im_public_mi_public.c_public();
- var privateUse_im_public_mi_public = new im_public_mi_public.c_public();
- export var publicUse_im_public_mi_public = new im_public_mi_public.c_public();
-
-==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require.ts (0 errors) ====
- // Public elements
- export class c_public {
- foo: string;
- }
-
-==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require1.ts (0 errors) ====
- export class c_public {
- bar: string;
- }
-
-==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require2.ts (0 errors) ====
- // private elements
- // Export - Error ambient modules allowed only in global
- declare module 'm' {
- export class c_private {
- baz: string;
- }
- }
-
-
-==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport_require3.ts (0 errors) ====
- declare module 'm2' {
- export class c_private {
- bing: string;
- }
- }
-
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.js b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.js
index af8681e7899..dac4c23eb81 100644
--- a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.js
+++ b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.js
@@ -29,6 +29,8 @@ declare module 'm2' {
}
//// [privacyTopLevelAmbientExternalModuleImportWithExport_core.ts]
+///
+///
// Privacy errors - importing private elements
export import im_public_mi_private = require("privacyTopLevelAmbientExternalModuleImportWithExport_require");
export import im_public_mu_private = require("privacyTopLevelAmbientExternalModuleImportWithExport_require1");
@@ -36,16 +38,18 @@ export import im_public_mi_public = require("m");
export import im_public_mu_public = require("m2");
// Usage of privacy error imports
-var privateUse_im_public_mi_private = new im_public_mi_private.c_private();
-export var publicUse_im_public_mi_private = new im_public_mi_private.c_private();
-var privateUse_im_public_mu_private = new im_public_mu_private.c_private();
-export var publicUse_im_public_mu_private = new im_public_mu_private.c_private();
-var privateUse_im_public_mi_public = new im_public_mi_public.c_public();
-export var publicUse_im_public_mi_public = new im_public_mi_public.c_public();
-var privateUse_im_public_mi_public = new im_public_mi_public.c_public();
-export var publicUse_im_public_mi_public = new im_public_mi_public.c_public();
+var privateUse_im_public_mi_private = new im_public_mi_private.c_public();
+export var publicUse_im_public_mi_private = new im_public_mi_private.c_public();
+var privateUse_im_public_mu_private = new im_public_mu_private.c_public();
+export var publicUse_im_public_mu_private = new im_public_mu_private.c_public();
+var privateUse_im_public_mi_public = new im_public_mi_public.c_private();
+export var publicUse_im_public_mi_public = new im_public_mi_public.c_private();
+var privateUse_im_public_mi_public = new im_public_mi_public.c_private();
+export var publicUse_im_public_mi_public = new im_public_mi_public.c_private();
+//// [privacyTopLevelAmbientExternalModuleImportWithExport_require2.js]
+//// [privacyTopLevelAmbientExternalModuleImportWithExport_require3.js]
//// [privacyTopLevelAmbientExternalModuleImportWithExport_require.js]
var c_public = (function () {
function c_public() {
@@ -64,11 +68,45 @@ exports.c_public = c_public;
exports.im_public_mi_private = require("privacyTopLevelAmbientExternalModuleImportWithExport_require");
exports.im_public_mu_private = require("privacyTopLevelAmbientExternalModuleImportWithExport_require1");
exports.im_public_mi_public = require("m");
-var privateUse_im_public_mi_private = new exports.im_public_mi_private.c_private();
-exports.publicUse_im_public_mi_private = new exports.im_public_mi_private.c_private();
-var privateUse_im_public_mu_private = new exports.im_public_mu_private.c_private();
-exports.publicUse_im_public_mu_private = new exports.im_public_mu_private.c_private();
-var privateUse_im_public_mi_public = new exports.im_public_mi_public.c_public();
-exports.publicUse_im_public_mi_public = new exports.im_public_mi_public.c_public();
-var privateUse_im_public_mi_public = new exports.im_public_mi_public.c_public();
-exports.publicUse_im_public_mi_public = new exports.im_public_mi_public.c_public();
+exports.im_public_mu_public = require("m2");
+var privateUse_im_public_mi_private = new exports.im_public_mi_private.c_public();
+exports.publicUse_im_public_mi_private = new exports.im_public_mi_private.c_public();
+var privateUse_im_public_mu_private = new exports.im_public_mu_private.c_public();
+exports.publicUse_im_public_mu_private = new exports.im_public_mu_private.c_public();
+var privateUse_im_public_mi_public = new exports.im_public_mi_public.c_private();
+exports.publicUse_im_public_mi_public = new exports.im_public_mi_public.c_private();
+var privateUse_im_public_mi_public = new exports.im_public_mi_public.c_private();
+exports.publicUse_im_public_mi_public = new exports.im_public_mi_public.c_private();
+
+
+//// [privacyTopLevelAmbientExternalModuleImportWithExport_require2.d.ts]
+declare module 'm' {
+ class c_private {
+ baz: string;
+ }
+}
+//// [privacyTopLevelAmbientExternalModuleImportWithExport_require3.d.ts]
+declare module 'm2' {
+ class c_private {
+ bing: string;
+ }
+}
+//// [privacyTopLevelAmbientExternalModuleImportWithExport_require.d.ts]
+export declare class c_public {
+ foo: string;
+}
+//// [privacyTopLevelAmbientExternalModuleImportWithExport_require1.d.ts]
+export declare class c_public {
+ bar: string;
+}
+//// [privacyTopLevelAmbientExternalModuleImportWithExport_core.d.ts]
+///
+///
+export import im_public_mi_private = require("privacyTopLevelAmbientExternalModuleImportWithExport_require");
+export import im_public_mu_private = require("privacyTopLevelAmbientExternalModuleImportWithExport_require1");
+export import im_public_mi_public = require("m");
+export import im_public_mu_public = require("m2");
+export declare var publicUse_im_public_mi_private: im_public_mi_private.c_public;
+export declare var publicUse_im_public_mu_private: im_public_mu_private.c_public;
+export declare var publicUse_im_public_mi_public: im_public_mi_public.c_private;
+export declare var publicUse_im_public_mi_public: im_public_mi_public.c_private;
diff --git a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.errors.txt b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.errors.txt
deleted file mode 100644
index 359ee29c2d7..00000000000
--- a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.errors.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts (2 errors) ====
- // Privacy errors - importing private elements
- import im_private_mi_private = require("m");
- ~~~
-!!! Cannot find external module 'm'.
- import im_private_mu_private = require("m2");
- ~~~~
-!!! Cannot find external module 'm2'.
- import im_private_mi_public = require("privacyTopLevelAmbientExternalModuleImportWithoutExport_require");
- import im_private_mu_public = require("privacyTopLevelAmbientExternalModuleImportWithoutExport_require1");
-
- // Usage of privacy error imports
- var privateUse_im_private_mi_private = new im_private_mi_private.c_private();
- export var publicUse_im_private_mi_private = new im_private_mi_private.c_private();
- var privateUse_im_private_mu_private = new im_private_mu_private.c_private();
- export var publicUse_im_private_mu_private = new im_private_mu_private.c_private();
- var privateUse_im_private_mi_public = new im_private_mi_public.c_public();
- export var publicUse_im_private_mi_public = new im_private_mi_public.c_public();
- var privateUse_im_private_mi_public = new im_private_mi_public.c_public();
- export var publicUse_im_private_mi_public = new im_private_mi_public.c_public();
-
-==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts (0 errors) ====
-
- // Public elements
- export class c_public {
- foo: string;
- }
-
-==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require1.ts (0 errors) ====
- export class c_public {
- bar: string;
- }
-
-==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.ts (0 errors) ====
- // private elements
- // Export - Error ambient modules allowed only in global
- declare module 'm' {
- export class c_private {
- baz: string
- }
- }
-
-==== tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.ts (0 errors) ====
- declare module 'm2' {
- export class c_private {
- bing: string;
- }
- }
-
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.js b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.js
index 5aa6b762a02..2f7e0691317 100644
--- a/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.js
+++ b/tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.js
@@ -29,6 +29,8 @@ declare module 'm2' {
}
//// [privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts]
+///
+///
// Privacy errors - importing private elements
import im_private_mi_private = require("m");
import im_private_mu_private = require("m2");
@@ -46,6 +48,8 @@ var privateUse_im_private_mi_public = new im_private_mi_public.c_public();
export var publicUse_im_private_mi_public = new im_private_mi_public.c_public();
+//// [privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.js]
+//// [privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.js]
//// [privacyTopLevelAmbientExternalModuleImportWithoutExport_require.js]
define(["require", "exports"], function (require, exports) {
var c_public = (function () {
@@ -75,3 +79,35 @@ define(["require", "exports", "m", "m2", "privacyTopLevelAmbientExternalModuleIm
var privateUse_im_private_mi_public = new im_private_mi_public.c_public();
exports.publicUse_im_private_mi_public = new im_private_mi_public.c_public();
});
+
+
+//// [privacyTopLevelAmbientExternalModuleImportWithoutExport_require2.d.ts]
+declare module 'm' {
+ class c_private {
+ baz: string;
+ }
+}
+//// [privacyTopLevelAmbientExternalModuleImportWithoutExport_require3.d.ts]
+declare module 'm2' {
+ class c_private {
+ bing: string;
+ }
+}
+//// [privacyTopLevelAmbientExternalModuleImportWithoutExport_require.d.ts]
+export declare class c_public {
+ foo: string;
+}
+//// [privacyTopLevelAmbientExternalModuleImportWithoutExport_require1.d.ts]
+export declare class c_public {
+ bar: string;
+}
+//// [privacyTopLevelAmbientExternalModuleImportWithoutExport_core.d.ts]
+///
+///
+import im_private_mi_private = require("m");
+import im_private_mu_private = require("m2");
+import im_private_mi_public = require("privacyTopLevelAmbientExternalModuleImportWithoutExport_require");
+export declare var publicUse_im_private_mi_private: im_private_mi_private.c_private;
+export declare var publicUse_im_private_mu_private: im_private_mu_private.c_private;
+export declare var publicUse_im_private_mi_public: im_private_mi_public.c_public;
+export declare var publicUse_im_private_mi_public: im_private_mi_public.c_public;
diff --git a/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithExport.js b/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithExport.js
index 5ef31d28d6e..6dcd4f49aef 100644
--- a/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithExport.js
+++ b/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithExport.js
@@ -196,3 +196,123 @@ define(["require", "exports"], function (require, exports) {
var privateUse_im_public_mu_public;
exports.publicUse_im_public_mu_public;
});
+
+
+//// [privacyTopLevelInternalReferenceImportWithExport.d.ts]
+export declare module m_public {
+ class c_public {
+ }
+ enum e_public {
+ Happy = 0,
+ Grumpy = 1,
+ }
+ function f_public(): c_public;
+ var v_public: number;
+ interface i_public {
+ }
+ module mi_public {
+ class c {
+ }
+ }
+ module mu_public {
+ interface i {
+ }
+ }
+}
+export import im_public_c_private = m_private.c_private;
+export import im_public_e_private = m_private.e_private;
+export import im_public_f_private = m_private.f_private;
+export import im_public_v_private = m_private.v_private;
+export import im_public_i_private = m_private.i_private;
+export import im_public_mi_private = m_private.mi_private;
+export import im_public_mu_private = m_private.mu_private;
+export declare var publicUse_im_public_c_private: im_public_c_private;
+export declare var publicUse_im_public_e_private: im_public_e_private;
+export declare var publicUse_im_public_f_private: im_public_c_private;
+export declare var publicUse_im_public_v_private: im_public_c_private;
+export declare var publicUse_im_public_i_private: im_public_i_private;
+export declare var publicUse_im_public_mi_private: im_public_mi_private.c;
+export declare var publicUse_im_public_mu_private: im_public_mu_private.i;
+export import im_public_c_public = m_public.c_public;
+export import im_public_e_public = m_public.e_public;
+export import im_public_f_public = m_public.f_public;
+export import im_public_v_public = m_public.v_public;
+export import im_public_i_public = m_public.i_public;
+export import im_public_mi_public = m_public.mi_public;
+export import im_public_mu_public = m_public.mu_public;
+export declare var publicUse_im_public_c_public: im_public_c_public;
+export declare var publicUse_im_public_e_public: im_public_e_public;
+export declare var publicUse_im_public_f_public: im_public_c_public;
+export declare var publicUse_im_public_v_public: number;
+export declare var publicUse_im_public_i_public: im_public_i_public;
+export declare var publicUse_im_public_mi_public: im_public_mi_public.c;
+export declare var publicUse_im_public_mu_public: im_public_mu_public.i;
+
+
+//// [DtsFileErrors]
+
+
+==== tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.d.ts (7 errors) ====
+ export declare module m_public {
+ class c_public {
+ }
+ enum e_public {
+ Happy = 0,
+ Grumpy = 1,
+ }
+ function f_public(): c_public;
+ var v_public: number;
+ interface i_public {
+ }
+ module mi_public {
+ class c {
+ }
+ }
+ module mu_public {
+ interface i {
+ }
+ }
+ }
+ export import im_public_c_private = m_private.c_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_e_private = m_private.e_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_f_private = m_private.f_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_v_private = m_private.v_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_i_private = m_private.i_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_mi_private = m_private.mi_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export import im_public_mu_private = m_private.mu_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export declare var publicUse_im_public_c_private: im_public_c_private;
+ export declare var publicUse_im_public_e_private: im_public_e_private;
+ export declare var publicUse_im_public_f_private: im_public_c_private;
+ export declare var publicUse_im_public_v_private: im_public_c_private;
+ export declare var publicUse_im_public_i_private: im_public_i_private;
+ export declare var publicUse_im_public_mi_private: im_public_mi_private.c;
+ export declare var publicUse_im_public_mu_private: im_public_mu_private.i;
+ export import im_public_c_public = m_public.c_public;
+ export import im_public_e_public = m_public.e_public;
+ export import im_public_f_public = m_public.f_public;
+ export import im_public_v_public = m_public.v_public;
+ export import im_public_i_public = m_public.i_public;
+ export import im_public_mi_public = m_public.mi_public;
+ export import im_public_mu_public = m_public.mu_public;
+ export declare var publicUse_im_public_c_public: im_public_c_public;
+ export declare var publicUse_im_public_e_public: im_public_e_public;
+ export declare var publicUse_im_public_f_public: im_public_c_public;
+ export declare var publicUse_im_public_v_public: number;
+ export declare var publicUse_im_public_i_public: im_public_i_public;
+ export declare var publicUse_im_public_mi_public: im_public_mi_public.c;
+ export declare var publicUse_im_public_mu_public: im_public_mu_public.i;
+
\ No newline at end of file
diff --git a/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithoutExport.js b/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithoutExport.js
index 2f435522438..0158aea6ef3 100644
--- a/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithoutExport.js
+++ b/tests/baselines/reference/privacyTopLevelInternalReferenceImportWithoutExport.js
@@ -1,4 +1,5 @@
//// [privacyTopLevelInternalReferenceImportWithoutExport.ts]
+
// private elements
module m_private {
export class c_private {
@@ -196,3 +197,111 @@ define(["require", "exports"], function (require, exports) {
var privateUse_im_private_mu_public;
exports.publicUse_im_private_mu_public;
});
+
+
+//// [privacyTopLevelInternalReferenceImportWithoutExport.d.ts]
+export declare module m_public {
+ class c_public {
+ }
+ enum e_public {
+ Happy = 0,
+ Grumpy = 1,
+ }
+ function f_public(): c_public;
+ var v_public: number;
+ interface i_public {
+ }
+ module mi_public {
+ class c {
+ }
+ }
+ module mu_public {
+ interface i {
+ }
+ }
+}
+import im_private_c_private = m_private.c_private;
+import im_private_e_private = m_private.e_private;
+import im_private_i_private = m_private.i_private;
+import im_private_mi_private = m_private.mi_private;
+import im_private_mu_private = m_private.mu_private;
+export declare var publicUse_im_private_c_private: im_private_c_private;
+export declare var publicUse_im_private_e_private: im_private_e_private;
+export declare var publicUse_im_private_f_private: im_private_c_private;
+export declare var publicUse_im_private_v_private: im_private_c_private;
+export declare var publicUse_im_private_i_private: im_private_i_private;
+export declare var publicUse_im_private_mi_private: im_private_mi_private.c;
+export declare var publicUse_im_private_mu_private: im_private_mu_private.i;
+import im_private_c_public = m_public.c_public;
+import im_private_e_public = m_public.e_public;
+import im_private_i_public = m_public.i_public;
+import im_private_mi_public = m_public.mi_public;
+import im_private_mu_public = m_public.mu_public;
+export declare var publicUse_im_private_c_public: im_private_c_public;
+export declare var publicUse_im_private_e_public: im_private_e_public;
+export declare var publicUse_im_private_f_public: im_private_c_public;
+export declare var publicUse_im_private_v_public: number;
+export declare var publicUse_im_private_i_public: im_private_i_public;
+export declare var publicUse_im_private_mi_public: im_private_mi_public.c;
+export declare var publicUse_im_private_mu_public: im_private_mu_public.i;
+
+
+//// [DtsFileErrors]
+
+
+==== tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.d.ts (5 errors) ====
+ export declare module m_public {
+ class c_public {
+ }
+ enum e_public {
+ Happy = 0,
+ Grumpy = 1,
+ }
+ function f_public(): c_public;
+ var v_public: number;
+ interface i_public {
+ }
+ module mi_public {
+ class c {
+ }
+ }
+ module mu_public {
+ interface i {
+ }
+ }
+ }
+ import im_private_c_private = m_private.c_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ import im_private_e_private = m_private.e_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ import im_private_i_private = m_private.i_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ import im_private_mi_private = m_private.mi_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ import im_private_mu_private = m_private.mu_private;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!!! Cannot find name 'm_private'.
+ export declare var publicUse_im_private_c_private: im_private_c_private;
+ export declare var publicUse_im_private_e_private: im_private_e_private;
+ export declare var publicUse_im_private_f_private: im_private_c_private;
+ export declare var publicUse_im_private_v_private: im_private_c_private;
+ export declare var publicUse_im_private_i_private: im_private_i_private;
+ export declare var publicUse_im_private_mi_private: im_private_mi_private.c;
+ export declare var publicUse_im_private_mu_private: im_private_mu_private.i;
+ import im_private_c_public = m_public.c_public;
+ import im_private_e_public = m_public.e_public;
+ import im_private_i_public = m_public.i_public;
+ import im_private_mi_public = m_public.mi_public;
+ import im_private_mu_public = m_public.mu_public;
+ export declare var publicUse_im_private_c_public: im_private_c_public;
+ export declare var publicUse_im_private_e_public: im_private_e_public;
+ export declare var publicUse_im_private_f_public: im_private_c_public;
+ export declare var publicUse_im_private_v_public: number;
+ export declare var publicUse_im_private_i_public: im_private_i_public;
+ export declare var publicUse_im_private_mi_public: im_private_mi_public.c;
+ export declare var publicUse_im_private_mu_public: im_private_mu_public.i;
+
\ No newline at end of file
diff --git a/tests/baselines/reference/unusedImportDeclaration.js b/tests/baselines/reference/unusedImportDeclaration.js
index 1faff01d197..54885f09e36 100644
--- a/tests/baselines/reference/unusedImportDeclaration.js
+++ b/tests/baselines/reference/unusedImportDeclaration.js
@@ -27,3 +27,11 @@ var thingy = {
me: "A"
};
foo("IN " + thingy.me + "!");
+
+
+//// [unusedImportDeclaration_testerB.d.ts]
+declare class TesterB {
+ me: string;
+}
+export = TesterB;
+//// [unusedImportDeclaration_testerA.d.ts]
diff --git a/tests/cases/compiler/aliasInaccessibleModule.ts b/tests/cases/compiler/aliasInaccessibleModule.ts
index f1037fb7652..91f36d9d118 100644
--- a/tests/cases/compiler/aliasInaccessibleModule.ts
+++ b/tests/cases/compiler/aliasInaccessibleModule.ts
@@ -1,3 +1,4 @@
+// @declaration: true
module M {
module N {
}
diff --git a/tests/cases/compiler/aliasInaccessibleModule2.ts b/tests/cases/compiler/aliasInaccessibleModule2.ts
index 7932d775d27..d970db79538 100644
--- a/tests/cases/compiler/aliasInaccessibleModule2.ts
+++ b/tests/cases/compiler/aliasInaccessibleModule2.ts
@@ -1,3 +1,4 @@
+// @declaration: true
module M {
module N {
class C {
diff --git a/tests/cases/compiler/aliasUsageInAccessorsOfClass.ts b/tests/cases/compiler/aliasUsageInAccessorsOfClass.ts
index fc86451358a..2aeddbad947 100644
--- a/tests/cases/compiler/aliasUsageInAccessorsOfClass.ts
+++ b/tests/cases/compiler/aliasUsageInAccessorsOfClass.ts
@@ -1,4 +1,5 @@
//@module: commonjs
+// @target: ES5
// @Filename: aliasUsage1_backbone.ts
export class Model {
public someData: string;
diff --git a/tests/cases/compiler/cyclicModuleImport.ts b/tests/cases/compiler/cyclicModuleImport.ts
index 88cb378c9c9..1a17860805e 100644
--- a/tests/cases/compiler/cyclicModuleImport.ts
+++ b/tests/cases/compiler/cyclicModuleImport.ts
@@ -1,3 +1,4 @@
+// @declaration: true
declare module "SubModule" {
import MainModule = require('MainModule');
class SubModule {
diff --git a/tests/cases/compiler/declarationEmit_nameConflictsWithAlias.ts b/tests/cases/compiler/declarationEmit_nameConflictsWithAlias.ts
index 87cdca3fd41..50fc2484a4a 100644
--- a/tests/cases/compiler/declarationEmit_nameConflictsWithAlias.ts
+++ b/tests/cases/compiler/declarationEmit_nameConflictsWithAlias.ts
@@ -1,6 +1,5 @@
// @declaration: true
// @module: commonjs
-// Bug 887180
export module C { export interface I { } }
export import v = C;
export module M {
diff --git a/tests/cases/compiler/importDecl.ts b/tests/cases/compiler/importDecl.ts
index 9efbc50f0b2..c28b332eb43 100644
--- a/tests/cases/compiler/importDecl.ts
+++ b/tests/cases/compiler/importDecl.ts
@@ -55,7 +55,6 @@ export module m1 {
//Emit global only usage
import glo_m4 = require("importDecl_require1");
-export var useGlo_m4_x4 = glo_m4.x;
export var useGlo_m4_d4 = glo_m4.d;
export var useGlo_m4_f4 = glo_m4.foo();
diff --git a/tests/cases/compiler/internalAliasWithDottedNameEmit.ts b/tests/cases/compiler/internalAliasWithDottedNameEmit.ts
index a906259715c..23192257125 100644
--- a/tests/cases/compiler/internalAliasWithDottedNameEmit.ts
+++ b/tests/cases/compiler/internalAliasWithDottedNameEmit.ts
@@ -1,3 +1,4 @@
+// @declaration: true
module a.b.c {
export var d;
}
diff --git a/tests/cases/compiler/multiImportExport.ts b/tests/cases/compiler/multiImportExport.ts
index 33f0f5eb17f..939a6e1061e 100644
--- a/tests/cases/compiler/multiImportExport.ts
+++ b/tests/cases/compiler/multiImportExport.ts
@@ -1,3 +1,5 @@
+// @module: commonjs
+// @declaration: true
// @Filename: consumer.ts
import Drawing = require('./Drawing');
var addr = new Drawing.Math.Adder();
diff --git a/tests/cases/compiler/privacyCheckAnonymousFunctionParameter.ts b/tests/cases/compiler/privacyCheckAnonymousFunctionParameter.ts
index d4ce6c675f5..c867a664520 100644
--- a/tests/cases/compiler/privacyCheckAnonymousFunctionParameter.ts
+++ b/tests/cases/compiler/privacyCheckAnonymousFunctionParameter.ts
@@ -1,4 +1,5 @@
//@module: commonjs
+//@declaration: true
export var x = 1; // Makes this an external module
interface Iterator {
}
diff --git a/tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts b/tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts
index 6aa0761d8d7..1aea1a17e98 100644
--- a/tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts
+++ b/tests/cases/compiler/privacyCheckAnonymousFunctionParameter2.ts
@@ -1,4 +1,5 @@
//@module: amd
+//@declaration: true
export var x = 1; // Makes this an external module
interface Iterator { x: T }
diff --git a/tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts b/tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts
index 98e11a37e66..e9fda583a14 100644
--- a/tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts
+++ b/tests/cases/compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts
@@ -1,4 +1,5 @@
//@module: amd
+//@declaration: true
export interface A {
f1(callback: (p: T) => any);
}
diff --git a/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface1.ts b/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface1.ts
index 6014c8bb041..b2a5e374f48 100644
--- a/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface1.ts
+++ b/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface1.ts
@@ -1,4 +1,5 @@
//@module: commonjs
+//@declaration: true
module Foo {
export interface A {
}
diff --git a/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts b/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts
index 5d150e2f5e7..42c121ac80e 100644
--- a/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts
+++ b/tests/cases/compiler/privacyCheckExportAssignmentOnExportedGenericInterface2.ts
@@ -1,4 +1,5 @@
//@module: amd
+//@declaration: true
export = Foo;
interface Foo {
diff --git a/tests/cases/compiler/privacyCheckExternalModuleExportAssignmentOfGenericClass.ts b/tests/cases/compiler/privacyCheckExternalModuleExportAssignmentOfGenericClass.ts
index e43e4dc6d93..b412622ad40 100644
--- a/tests/cases/compiler/privacyCheckExternalModuleExportAssignmentOfGenericClass.ts
+++ b/tests/cases/compiler/privacyCheckExternalModuleExportAssignmentOfGenericClass.ts
@@ -1,4 +1,5 @@
//@module: commonjs
+//@declaration: true
// @Filename: privacyCheckExternalModuleExportAssignmentOfGenericClass_0.ts
export = Foo;
class Foo {
diff --git a/tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts b/tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts
index cf73b3626ee..01ecd8c1ebd 100644
--- a/tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts
+++ b/tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts
@@ -1,4 +1,5 @@
//@module: amd
+//@declaration: true
export class A{
constructor(callback: (self: A) => void) {
var child = new B(this);
diff --git a/tests/cases/compiler/privacyCheckTypeOfFunction.ts b/tests/cases/compiler/privacyCheckTypeOfFunction.ts
index a4980fe6229..80bab76dc26 100644
--- a/tests/cases/compiler/privacyCheckTypeOfFunction.ts
+++ b/tests/cases/compiler/privacyCheckTypeOfFunction.ts
@@ -1,3 +1,5 @@
+//@module: commonjs
+//@declaration: true
function foo() {
}
export var x: typeof foo;
diff --git a/tests/cases/compiler/privacyCheckTypeOfInvisibleModuleError.ts b/tests/cases/compiler/privacyCheckTypeOfInvisibleModuleError.ts
index e439cae861e..b37fb72677b 100644
--- a/tests/cases/compiler/privacyCheckTypeOfInvisibleModuleError.ts
+++ b/tests/cases/compiler/privacyCheckTypeOfInvisibleModuleError.ts
@@ -1,3 +1,4 @@
+//@declaration: true
module Outer {
module Inner {
export var m: typeof Inner;
diff --git a/tests/cases/compiler/privacyGloImport.ts b/tests/cases/compiler/privacyGloImport.ts
index 68b67f42d89..19bf1009867 100644
--- a/tests/cases/compiler/privacyGloImport.ts
+++ b/tests/cases/compiler/privacyGloImport.ts
@@ -1,3 +1,4 @@
+//@declaration: true
module m1 {
export module m1_M1_public {
export class c1 {
@@ -19,21 +20,21 @@ module m1 {
export var v2: c1;
}
- declare export module "m1_M3_public" {
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //export declare module "m1_M3_public" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
- declare module "m1_M4_private" {
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //declare module "m1_M4_private" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
import m1_im1_private = m1_M1_public;
export var m1_im1_private_v1_public = m1_im1_private.c1;
@@ -56,31 +57,30 @@ module m1 {
var m1_im2_private_v3_private = m1_im2_private.f1;
var m1_im2_private_v4_private = m1_im2_private.f1();
- import m1_im3_private = require("m1_M3_public");
- export var m1_im3_private_v1_public = m1_im3_private.c1;
- export var m1_im3_private_v2_public = new m1_im3_private.c1();
- export var m1_im3_private_v3_public = m1_im3_private.f1;
- export var m1_im3_private_v4_public = m1_im3_private.f1();
- var m1_im3_private_v1_private = m1_im3_private.c1;
- var m1_im3_private_v2_private = new m1_im3_private.c1();
- var m1_im3_private_v3_private = m1_im3_private.f1;
- var m1_im3_private_v4_private = m1_im3_private.f1();
+ //import m1_im3_private = require("m1_M3_public");
+ //export var m1_im3_private_v1_public = m1_im3_private.c1;
+ //export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ //export var m1_im3_private_v3_public = m1_im3_private.f1;
+ //export var m1_im3_private_v4_public = m1_im3_private.f1();
+ //var m1_im3_private_v1_private = m1_im3_private.c1;
+ //var m1_im3_private_v2_private = new m1_im3_private.c1();
+ //var m1_im3_private_v3_private = m1_im3_private.f1;
+ //var m1_im3_private_v4_private = m1_im3_private.f1();
- import m1_im4_private = require("m1_M4_private");
- export var m1_im4_private_v1_public = m1_im4_private.c1;
- export var m1_im4_private_v2_public = new m1_im4_private.c1();
- export var m1_im4_private_v3_public = m1_im4_private.f1;
- export var m1_im4_private_v4_public = m1_im4_private.f1();
- var m1_im4_private_v1_private = m1_im4_private.c1;
- var m1_im4_private_v2_private = new m1_im4_private.c1();
- var m1_im4_private_v3_private = m1_im4_private.f1;
- var m1_im4_private_v4_private = m1_im4_private.f1();
+ //import m1_im4_private = require("m1_M4_private");
+ //export var m1_im4_private_v1_public = m1_im4_private.c1;
+ //export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ //export var m1_im4_private_v3_public = m1_im4_private.f1;
+ //export var m1_im4_private_v4_public = m1_im4_private.f1();
+ //var m1_im4_private_v1_private = m1_im4_private.c1;
+ //var m1_im4_private_v2_private = new m1_im4_private.c1();
+ //var m1_im4_private_v3_private = m1_im4_private.f1;
+ //var m1_im4_private_v4_private = m1_im4_private.f1();
- // Parse error to export module
export import m1_im1_public = m1_M1_public;
export import m1_im2_public = m1_M2_private;
- export import m1_im3_public = require("m1_M3_public");
- export import m1_im4_public = require("m1_M4_private");
+ //export import m1_im3_public = require("m1_M3_public");
+ //export import m1_im4_public = require("m1_M4_private");
}
module glo_M1_public {
@@ -104,26 +104,26 @@ declare module "glo_M2_public" {
declare module "use_glo_M1_public" {
import use_glo_M1_public = glo_M1_public;
export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
- export var use_glo_M1_public_v2_public: use_glo_M1_public;
+ export var use_glo_M1_public_v2_public: typeof use_glo_M1_public;
export var use_glo_M1_public_v3_public: ()=> use_glo_M1_public.c1;
var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
- var use_glo_M1_public_v2_private: use_glo_M1_public;
+ var use_glo_M1_public_v2_private: typeof use_glo_M1_public;
var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
import use_glo_M2_public = require("glo_M2_public");
export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
- export var use_glo_M2_public_v2_public: use_glo_M2_public;
+ export var use_glo_M2_public_v2_public: typeof use_glo_M2_public;
export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
- var use_glo_M2_public_v2_private: use_glo_M2_public;
+ var use_glo_M2_public_v2_private: typeof use_glo_M2_public;
var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
module m2 {
- import errorImport = require("glo_M2_public");
+ //import errorImport = require("glo_M2_public");
import nonerrorImport = glo_M1_public;
module m5 {
- import m5_errorImport = require("glo_M2_public");
+ //import m5_errorImport = require("glo_M2_public");
import m5_nonerrorImport = glo_M1_public;
}
}
@@ -131,23 +131,23 @@ declare module "use_glo_M1_public" {
declare module "anotherParseError" {
module m2 {
- declare module "abc" {
- }
+ //declare module "abc" {
+ //}
}
module m2 {
- module "abc2" {
- }
- }
- module "abc3" {
+ //module "abc2" {
+ //}
}
+ //module "abc3" {
+ //}
}
module m2 {
- import m3 = require("use_glo_M1_public");
+ //import m3 = require("use_glo_M1_public");
module m4 {
var a = 10;
- import m2 = require("use_glo_M1_public");
+ //import m2 = require("use_glo_M1_public");
}
}
\ No newline at end of file
diff --git a/tests/cases/compiler/privacyGloImportParseErrors.ts b/tests/cases/compiler/privacyGloImportParseErrors.ts
new file mode 100644
index 00000000000..8419f6737ea
--- /dev/null
+++ b/tests/cases/compiler/privacyGloImportParseErrors.ts
@@ -0,0 +1,153 @@
+//@declaration: true
+module m1 {
+ export module m1_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ module m1_M2_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ export declare module "m1_M3_public" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ declare module "m1_M4_private" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ import m1_im1_private = m1_M1_public;
+ export var m1_im1_private_v1_public = m1_im1_private.c1;
+ export var m1_im1_private_v2_public = new m1_im1_private.c1();
+ export var m1_im1_private_v3_public = m1_im1_private.f1;
+ export var m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+
+
+ import m1_im2_private = m1_M2_private;
+ export var m1_im2_private_v1_public = m1_im2_private.c1;
+ export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ export var m1_im2_private_v3_public = m1_im2_private.f1;
+ export var m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+
+ import m1_im3_private = require("m1_M3_public");
+ export var m1_im3_private_v1_public = m1_im3_private.c1;
+ export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ export var m1_im3_private_v3_public = m1_im3_private.f1;
+ export var m1_im3_private_v4_public = m1_im3_private.f1();
+ var m1_im3_private_v1_private = m1_im3_private.c1;
+ var m1_im3_private_v2_private = new m1_im3_private.c1();
+ var m1_im3_private_v3_private = m1_im3_private.f1;
+ var m1_im3_private_v4_private = m1_im3_private.f1();
+
+ import m1_im4_private = require("m1_M4_private");
+ export var m1_im4_private_v1_public = m1_im4_private.c1;
+ export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ export var m1_im4_private_v3_public = m1_im4_private.f1;
+ export var m1_im4_private_v4_public = m1_im4_private.f1();
+ var m1_im4_private_v1_private = m1_im4_private.c1;
+ var m1_im4_private_v2_private = new m1_im4_private.c1();
+ var m1_im4_private_v3_private = m1_im4_private.f1;
+ var m1_im4_private_v4_private = m1_im4_private.f1();
+
+ export import m1_im1_public = m1_M1_public;
+ export import m1_im2_public = m1_M2_private;
+ export import m1_im3_public = require("m1_M3_public");
+ export import m1_im4_public = require("m1_M4_private");
+}
+
+module glo_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+}
+
+declare module "glo_M2_public" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+}
+
+declare module "use_glo_M1_public" {
+ import use_glo_M1_public = glo_M1_public;
+ export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
+ export var use_glo_M1_public_v2_public: typeof use_glo_M1_public;
+ export var use_glo_M1_public_v3_public: ()=> use_glo_M1_public.c1;
+ var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
+ var use_glo_M1_public_v2_private: typeof use_glo_M1_public;
+ var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
+
+ import use_glo_M2_public = require("glo_M2_public");
+ export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
+ export var use_glo_M2_public_v2_public: typeof use_glo_M2_public;
+ export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
+ var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
+ var use_glo_M2_public_v2_private: typeof use_glo_M2_public;
+ var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
+
+ module m2 {
+ import errorImport = require("glo_M2_public");
+ import nonerrorImport = glo_M1_public;
+
+ module m5 {
+ import m5_errorImport = require("glo_M2_public");
+ import m5_nonerrorImport = glo_M1_public;
+ }
+ }
+}
+
+declare module "anotherParseError" {
+ module m2 {
+ declare module "abc" {
+ }
+ }
+
+ module m2 {
+ module "abc2" {
+ }
+ }
+ module "abc3" {
+ }
+}
+
+module m2 {
+ import m3 = require("use_glo_M1_public");
+ module m4 {
+ var a = 10;
+ import m2 = require("use_glo_M1_public");
+ }
+
+}
\ No newline at end of file
diff --git a/tests/cases/compiler/privacyImport.ts b/tests/cases/compiler/privacyImport.ts
index 04d789a3749..dff16781d56 100644
--- a/tests/cases/compiler/privacyImport.ts
+++ b/tests/cases/compiler/privacyImport.ts
@@ -1,4 +1,5 @@
//@module: commonjs
+//@declaration: true
export module m1 {
export module m1_M1_public {
export class c1 {
@@ -20,21 +21,21 @@ export module m1 {
export var v2: c1;
}
- export declare module "m1_M3_public" {
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //export declare module "m1_M3_public" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
- declare module "m1_M4_private" {
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //declare module "m1_M4_private" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
import m1_im1_private = m1_M1_public;
export var m1_im1_private_v1_public = m1_im1_private.c1;
@@ -57,30 +58,30 @@ export module m1 {
var m1_im2_private_v3_private = m1_im2_private.f1;
var m1_im2_private_v4_private = m1_im2_private.f1();
- import m1_im3_private = require("m1_M3_public");
- export var m1_im3_private_v1_public = m1_im3_private.c1;
- export var m1_im3_private_v2_public = new m1_im3_private.c1();
- export var m1_im3_private_v3_public = m1_im3_private.f1;
- export var m1_im3_private_v4_public = m1_im3_private.f1();
- var m1_im3_private_v1_private = m1_im3_private.c1;
- var m1_im3_private_v2_private = new m1_im3_private.c1();
- var m1_im3_private_v3_private = m1_im3_private.f1;
- var m1_im3_private_v4_private = m1_im3_private.f1();
+ //import m1_im3_private = require("m1_M3_public");
+ //export var m1_im3_private_v1_public = m1_im3_private.c1;
+ //export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ //export var m1_im3_private_v3_public = m1_im3_private.f1;
+ //export var m1_im3_private_v4_public = m1_im3_private.f1();
+ //var m1_im3_private_v1_private = m1_im3_private.c1;
+ //var m1_im3_private_v2_private = new m1_im3_private.c1();
+ //var m1_im3_private_v3_private = m1_im3_private.f1;
+ //var m1_im3_private_v4_private = m1_im3_private.f1();
- import m1_im4_private = require("m1_M4_private");
- export var m1_im4_private_v1_public = m1_im4_private.c1;
- export var m1_im4_private_v2_public = new m1_im4_private.c1();
- export var m1_im4_private_v3_public = m1_im4_private.f1;
- export var m1_im4_private_v4_public = m1_im4_private.f1();
- var m1_im4_private_v1_private = m1_im4_private.c1;
- var m1_im4_private_v2_private = new m1_im4_private.c1();
- var m1_im4_private_v3_private = m1_im4_private.f1;
- var m1_im4_private_v4_private = m1_im4_private.f1();
+ //import m1_im4_private = require("m1_M4_private");
+ //export var m1_im4_private_v1_public = m1_im4_private.c1;
+ //export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ //export var m1_im4_private_v3_public = m1_im4_private.f1;
+ //export var m1_im4_private_v4_public = m1_im4_private.f1();
+ //var m1_im4_private_v1_private = m1_im4_private.c1;
+ //var m1_im4_private_v2_private = new m1_im4_private.c1();
+ //var m1_im4_private_v3_private = m1_im4_private.f1;
+ //var m1_im4_private_v4_private = m1_im4_private.f1();
export import m1_im1_public = m1_M1_public;
export import m1_im2_public = m1_M2_private;
- export import m1_im3_public = require("m1_M3_public");
- export import m1_im4_public = require("m1_M4_private");
+ //export import m1_im3_public = require("m1_M3_public");
+ //export import m1_im4_public = require("m1_M4_private");
}
module m2 {
@@ -104,21 +105,21 @@ module m2 {
export var v2: c1;
}
- export declare module "m2_M3_public" {
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //export declare module "m2_M3_public" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
- declare module "m2_M4_private" {
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
- }
+ //declare module "m2_M4_private" {
+ // export function f1();
+ // export class c1 {
+ // }
+ // export var v1: { new (): c1; };
+ // export var v2: c1;
+ //}
import m1_im1_private = m2_M1_public;
export var m1_im1_private_v1_public = m1_im1_private.c1;
@@ -141,31 +142,31 @@ module m2 {
var m1_im2_private_v3_private = m1_im2_private.f1;
var m1_im2_private_v4_private = m1_im2_private.f1();
- import m1_im3_private = require("m2_M3_public");
- export var m1_im3_private_v1_public = m1_im3_private.c1;
- export var m1_im3_private_v2_public = new m1_im3_private.c1();
- export var m1_im3_private_v3_public = m1_im3_private.f1;
- export var m1_im3_private_v4_public = m1_im3_private.f1();
- var m1_im3_private_v1_private = m1_im3_private.c1;
- var m1_im3_private_v2_private = new m1_im3_private.c1();
- var m1_im3_private_v3_private = m1_im3_private.f1;
- var m1_im3_private_v4_private = m1_im3_private.f1();
+ //import m1_im3_private = require("m2_M3_public");
+ //export var m1_im3_private_v1_public = m1_im3_private.c1;
+ //export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ //export var m1_im3_private_v3_public = m1_im3_private.f1;
+ //export var m1_im3_private_v4_public = m1_im3_private.f1();
+ //var m1_im3_private_v1_private = m1_im3_private.c1;
+ //var m1_im3_private_v2_private = new m1_im3_private.c1();
+ //var m1_im3_private_v3_private = m1_im3_private.f1;
+ //var m1_im3_private_v4_private = m1_im3_private.f1();
- import m1_im4_private = require("m2_M4_private");
- export var m1_im4_private_v1_public = m1_im4_private.c1;
- export var m1_im4_private_v2_public = new m1_im4_private.c1();
- export var m1_im4_private_v3_public = m1_im4_private.f1;
- export var m1_im4_private_v4_public = m1_im4_private.f1();
- var m1_im4_private_v1_private = m1_im4_private.c1;
- var m1_im4_private_v2_private = new m1_im4_private.c1();
- var m1_im4_private_v3_private = m1_im4_private.f1;
- var m1_im4_private_v4_private = m1_im4_private.f1();
+ //import m1_im4_private = require("m2_M4_private");
+ //export var m1_im4_private_v1_public = m1_im4_private.c1;
+ //export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ //export var m1_im4_private_v3_public = m1_im4_private.f1;
+ //export var m1_im4_private_v4_public = m1_im4_private.f1();
+ //var m1_im4_private_v1_private = m1_im4_private.c1;
+ //var m1_im4_private_v2_private = new m1_im4_private.c1();
+ //var m1_im4_private_v3_private = m1_im4_private.f1;
+ //var m1_im4_private_v4_private = m1_im4_private.f1();
// Parse error to export module
export import m1_im1_public = m2_M1_public;
export import m1_im2_public = m2_M2_private;
- export import m1_im3_public = require("m2_M3_public");
- export import m1_im4_public = require("m2_M4_private");
+ //export import m1_im3_public = require("m2_M3_public");
+ //export import m1_im4_public = require("m2_M4_private");
}
export module glo_M1_public {
@@ -178,13 +179,13 @@ export module glo_M1_public {
export var v2: c1;
}
-export declare module "glo_M2_public" {
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
-}
+//export declare module "glo_M2_public" {
+// export function f1();
+// export class c1 {
+// }
+// export var v1: { new (): c1; };
+// export var v2: c1;
+//}
export module glo_M3_private {
export class c1 {
@@ -196,13 +197,13 @@ export module glo_M3_private {
export var v2: c1;
}
-export declare module "glo_M4_private" {
- export function f1();
- export class c1 {
- }
- export var v1: { new (): c1; };
- export var v2: c1;
-}
+//export declare module "glo_M4_private" {
+// export function f1();
+// export class c1 {
+// }
+// export var v1: { new (): c1; };
+// export var v2: c1;
+//}
import glo_im1_private = glo_M1_public;
@@ -216,15 +217,15 @@ var glo_im1_private_v3_private = glo_im1_private.f1;
var glo_im1_private_v4_private = glo_im1_private.f1();
-import glo_im2_private = require("glo_M2_public");
-export var glo_im2_private_v1_public = glo_im2_private.c1;
-export var glo_im2_private_v2_public = new glo_im2_private.c1();
-export var glo_im2_private_v3_public = glo_im2_private.f1;
-export var glo_im2_private_v4_public = glo_im2_private.f1();
-var glo_im2_private_v1_private = glo_im2_private.c1;
-var glo_im2_private_v2_private = new glo_im2_private.c1();
-var glo_im2_private_v3_private = glo_im2_private.f1;
-var glo_im2_private_v4_private = glo_im2_private.f1();
+//import glo_im2_private = require("glo_M2_public");
+//export var glo_im2_private_v1_public = glo_im2_private.c1;
+//export var glo_im2_private_v2_public = new glo_im2_private.c1();
+//export var glo_im2_private_v3_public = glo_im2_private.f1;
+//export var glo_im2_private_v4_public = glo_im2_private.f1();
+//var glo_im2_private_v1_private = glo_im2_private.c1;
+//var glo_im2_private_v2_private = new glo_im2_private.c1();
+//var glo_im2_private_v3_private = glo_im2_private.f1;
+//var glo_im2_private_v4_private = glo_im2_private.f1();
import glo_im3_private = glo_M3_private;
export var glo_im3_private_v1_public = glo_im3_private.c1;
@@ -236,122 +237,122 @@ var glo_im3_private_v2_private = new glo_im3_private.c1();
var glo_im3_private_v3_private = glo_im3_private.f1;
var glo_im3_private_v4_private = glo_im3_private.f1();
-import glo_im4_private = require("glo_M4_private");
-export var glo_im4_private_v1_public = glo_im4_private.c1;
-export var glo_im4_private_v2_public = new glo_im4_private.c1();
-export var glo_im4_private_v3_public = glo_im4_private.f1;
-export var glo_im4_private_v4_public = glo_im4_private.f1();
-var glo_im4_private_v1_private = glo_im4_private.c1;
-var glo_im4_private_v2_private = new glo_im4_private.c1();
-var glo_im4_private_v3_private = glo_im4_private.f1;
-var glo_im4_private_v4_private = glo_im4_private.f1();
+//import glo_im4_private = require("glo_M4_private");
+//export var glo_im4_private_v1_public = glo_im4_private.c1;
+//export var glo_im4_private_v2_public = new glo_im4_private.c1();
+//export var glo_im4_private_v3_public = glo_im4_private.f1;
+//export var glo_im4_private_v4_public = glo_im4_private.f1();
+//var glo_im4_private_v1_private = glo_im4_private.c1;
+//var glo_im4_private_v2_private = new glo_im4_private.c1();
+//var glo_im4_private_v3_private = glo_im4_private.f1;
+//var glo_im4_private_v4_private = glo_im4_private.f1();
// Parse error to export module
export import glo_im1_public = glo_M1_public;
export import glo_im2_public = glo_M3_private;
-export import glo_im3_public = require("glo_M2_public");
-export import glo_im4_public = require("glo_M4_private");
+//export import glo_im3_public = require("glo_M2_public");
+//export import glo_im4_public = require("glo_M4_private");
-export declare module "use_glo_M1_public" {
- import use_glo_M1_public = glo_M1_public;
- export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
- export var use_glo_M1_public_v2_public: use_glo_M1_public;
- export var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
- var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
- var use_glo_M1_public_v2_private: use_glo_M1_public;
- var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
+//export declare module "use_glo_M1_public" {
+// import use_glo_M1_public = glo_M1_public;
+// export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
+// export var use_glo_M1_public_v2_public: use_glo_M1_public;
+// export var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
+// var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
+// var use_glo_M1_public_v2_private: use_glo_M1_public;
+// var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
- import use_glo_M2_public = require("glo_M2_public");
- export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
- export var use_glo_M2_public_v2_public: use_glo_M2_public;
- export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
- var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
- var use_glo_M2_public_v2_private: use_glo_M2_public;
- var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
+// import use_glo_M2_public = require("glo_M2_public");
+// export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
+// export var use_glo_M2_public_v2_public: use_glo_M2_public;
+// export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
+// var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
+// var use_glo_M2_public_v2_private: use_glo_M2_public;
+// var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
- module m2 {
- import errorImport = require("glo_M2_public");
- import nonerrorImport = glo_M1_public;
+// module m2 {
+// import errorImport = require("glo_M2_public");
+// import nonerrorImport = glo_M1_public;
- module m5 {
- import m5_errorImport = require("glo_M2_public");
- import m5_nonerrorImport = glo_M1_public;
- }
- }
-}
+// module m5 {
+// import m5_errorImport = require("glo_M2_public");
+// import m5_nonerrorImport = glo_M1_public;
+// }
+// }
+//}
-declare module "use_glo_M3_private" {
- import use_glo_M3_private = glo_M3_private;
- export var use_glo_M3_private_v1_public: { new (): use_glo_M3_private.c1; };
- export var use_glo_M3_private_v2_public: use_glo_M3_private;
- export var use_glo_M3_private_v3_public: () => use_glo_M3_private.c1;
- var use_glo_M3_private_v1_private: { new (): use_glo_M3_private.c1; };
- var use_glo_M3_private_v2_private: use_glo_M3_private;
- var use_glo_M3_private_v3_private: () => use_glo_M3_private.c1;
+//declare module "use_glo_M3_private" {
+// import use_glo_M3_private = glo_M3_private;
+// export var use_glo_M3_private_v1_public: { new (): use_glo_M3_private.c1; };
+// export var use_glo_M3_private_v2_public: use_glo_M3_private;
+// export var use_glo_M3_private_v3_public: () => use_glo_M3_private.c1;
+// var use_glo_M3_private_v1_private: { new (): use_glo_M3_private.c1; };
+// var use_glo_M3_private_v2_private: use_glo_M3_private;
+// var use_glo_M3_private_v3_private: () => use_glo_M3_private.c1;
- import use_glo_M4_private = require("glo_M4_private");
- export var use_glo_M4_private_v1_public: { new (): use_glo_M4_private.c1; };
- export var use_glo_M4_private_v2_public: use_glo_M4_private;
- export var use_glo_M4_private_v3_public: () => use_glo_M4_private.c1;
- var use_glo_M4_private_v1_private: { new (): use_glo_M4_private.c1; };
- var use_glo_M4_private_v2_private: use_glo_M4_private;
- var use_glo_M4_private_v3_private: () => use_glo_M4_private.c1;
+// import use_glo_M4_private = require("glo_M4_private");
+// export var use_glo_M4_private_v1_public: { new (): use_glo_M4_private.c1; };
+// export var use_glo_M4_private_v2_public: use_glo_M4_private;
+// export var use_glo_M4_private_v3_public: () => use_glo_M4_private.c1;
+// var use_glo_M4_private_v1_private: { new (): use_glo_M4_private.c1; };
+// var use_glo_M4_private_v2_private: use_glo_M4_private;
+// var use_glo_M4_private_v3_private: () => use_glo_M4_private.c1;
- module m2 {
- import errorImport = require("glo_M4_private");
- import nonerrorImport = glo_M3_private;
+// module m2 {
+// import errorImport = require("glo_M4_private");
+// import nonerrorImport = glo_M3_private;
- module m5 {
- import m5_errorImport = require("glo_M4_private");
- import m5_nonerrorImport = glo_M3_private;
- }
- }
-}
+// module m5 {
+// import m5_errorImport = require("glo_M4_private");
+// import m5_nonerrorImport = glo_M3_private;
+// }
+// }
+//}
-declare module "anotherParseError" {
- module m2 {
- declare module "abc" {
- }
- }
+//declare module "anotherParseError" {
+// module m2 {
+// declare module "abc" {
+// }
+// }
- module m2 {
- module "abc2" {
- }
- }
- module "abc3" {
- }
-}
+// module m2 {
+// module "abc2" {
+// }
+// }
+// module "abc3" {
+// }
+//}
-declare export module "anotherParseError2" {
- module m2 {
- declare module "abc" {
- }
- }
+//declare export module "anotherParseError2" {
+// module m2 {
+// declare module "abc" {
+// }
+// }
- module m2 {
- module "abc2" {
- }
- }
- module "abc3" {
- }
-}
+// module m2 {
+// module "abc2" {
+// }
+// }
+// module "abc3" {
+// }
+//}
module m2 {
- import m3 = require("use_glo_M1_public");
+ //import m3 = require("use_glo_M1_public");
module m4 {
var a = 10;
- import m2 = require("use_glo_M1_public");
+ //import m2 = require("use_glo_M1_public");
}
}
export module m3 {
- import m3 = require("use_glo_M1_public");
+ //import m3 = require("use_glo_M1_public");
module m4 {
var a = 10;
- import m2 = require("use_glo_M1_public");
+ //import m2 = require("use_glo_M1_public");
}
}
\ No newline at end of file
diff --git a/tests/cases/compiler/privacyImportParseErrors.ts b/tests/cases/compiler/privacyImportParseErrors.ts
new file mode 100644
index 00000000000..04d789a3749
--- /dev/null
+++ b/tests/cases/compiler/privacyImportParseErrors.ts
@@ -0,0 +1,357 @@
+//@module: commonjs
+export module m1 {
+ export module m1_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ module m1_M2_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ export declare module "m1_M3_public" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ declare module "m1_M4_private" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ import m1_im1_private = m1_M1_public;
+ export var m1_im1_private_v1_public = m1_im1_private.c1;
+ export var m1_im1_private_v2_public = new m1_im1_private.c1();
+ export var m1_im1_private_v3_public = m1_im1_private.f1;
+ export var m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+
+
+ import m1_im2_private = m1_M2_private;
+ export var m1_im2_private_v1_public = m1_im2_private.c1;
+ export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ export var m1_im2_private_v3_public = m1_im2_private.f1;
+ export var m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+
+ import m1_im3_private = require("m1_M3_public");
+ export var m1_im3_private_v1_public = m1_im3_private.c1;
+ export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ export var m1_im3_private_v3_public = m1_im3_private.f1;
+ export var m1_im3_private_v4_public = m1_im3_private.f1();
+ var m1_im3_private_v1_private = m1_im3_private.c1;
+ var m1_im3_private_v2_private = new m1_im3_private.c1();
+ var m1_im3_private_v3_private = m1_im3_private.f1;
+ var m1_im3_private_v4_private = m1_im3_private.f1();
+
+ import m1_im4_private = require("m1_M4_private");
+ export var m1_im4_private_v1_public = m1_im4_private.c1;
+ export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ export var m1_im4_private_v3_public = m1_im4_private.f1;
+ export var m1_im4_private_v4_public = m1_im4_private.f1();
+ var m1_im4_private_v1_private = m1_im4_private.c1;
+ var m1_im4_private_v2_private = new m1_im4_private.c1();
+ var m1_im4_private_v3_private = m1_im4_private.f1;
+ var m1_im4_private_v4_private = m1_im4_private.f1();
+
+ export import m1_im1_public = m1_M1_public;
+ export import m1_im2_public = m1_M2_private;
+ export import m1_im3_public = require("m1_M3_public");
+ export import m1_im4_public = require("m1_M4_private");
+}
+
+module m2 {
+ export module m2_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ module m2_M2_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+ }
+
+ export declare module "m2_M3_public" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ declare module "m2_M4_private" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+ }
+
+ import m1_im1_private = m2_M1_public;
+ export var m1_im1_private_v1_public = m1_im1_private.c1;
+ export var m1_im1_private_v2_public = new m1_im1_private.c1();
+ export var m1_im1_private_v3_public = m1_im1_private.f1;
+ export var m1_im1_private_v4_public = m1_im1_private.f1();
+ var m1_im1_private_v1_private = m1_im1_private.c1;
+ var m1_im1_private_v2_private = new m1_im1_private.c1();
+ var m1_im1_private_v3_private = m1_im1_private.f1;
+ var m1_im1_private_v4_private = m1_im1_private.f1();
+
+
+ import m1_im2_private = m2_M2_private;
+ export var m1_im2_private_v1_public = m1_im2_private.c1;
+ export var m1_im2_private_v2_public = new m1_im2_private.c1();
+ export var m1_im2_private_v3_public = m1_im2_private.f1;
+ export var m1_im2_private_v4_public = m1_im2_private.f1();
+ var m1_im2_private_v1_private = m1_im2_private.c1;
+ var m1_im2_private_v2_private = new m1_im2_private.c1();
+ var m1_im2_private_v3_private = m1_im2_private.f1;
+ var m1_im2_private_v4_private = m1_im2_private.f1();
+
+ import m1_im3_private = require("m2_M3_public");
+ export var m1_im3_private_v1_public = m1_im3_private.c1;
+ export var m1_im3_private_v2_public = new m1_im3_private.c1();
+ export var m1_im3_private_v3_public = m1_im3_private.f1;
+ export var m1_im3_private_v4_public = m1_im3_private.f1();
+ var m1_im3_private_v1_private = m1_im3_private.c1;
+ var m1_im3_private_v2_private = new m1_im3_private.c1();
+ var m1_im3_private_v3_private = m1_im3_private.f1;
+ var m1_im3_private_v4_private = m1_im3_private.f1();
+
+ import m1_im4_private = require("m2_M4_private");
+ export var m1_im4_private_v1_public = m1_im4_private.c1;
+ export var m1_im4_private_v2_public = new m1_im4_private.c1();
+ export var m1_im4_private_v3_public = m1_im4_private.f1;
+ export var m1_im4_private_v4_public = m1_im4_private.f1();
+ var m1_im4_private_v1_private = m1_im4_private.c1;
+ var m1_im4_private_v2_private = new m1_im4_private.c1();
+ var m1_im4_private_v3_private = m1_im4_private.f1;
+ var m1_im4_private_v4_private = m1_im4_private.f1();
+
+ // Parse error to export module
+ export import m1_im1_public = m2_M1_public;
+ export import m1_im2_public = m2_M2_private;
+ export import m1_im3_public = require("m2_M3_public");
+ export import m1_im4_public = require("m2_M4_private");
+}
+
+export module glo_M1_public {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+}
+
+export declare module "glo_M2_public" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+}
+
+export module glo_M3_private {
+ export class c1 {
+ }
+ export function f1() {
+ return new c1;
+ }
+ export var v1 = c1;
+ export var v2: c1;
+}
+
+export declare module "glo_M4_private" {
+ export function f1();
+ export class c1 {
+ }
+ export var v1: { new (): c1; };
+ export var v2: c1;
+}
+
+
+import glo_im1_private = glo_M1_public;
+export var glo_im1_private_v1_public = glo_im1_private.c1;
+export var glo_im1_private_v2_public = new glo_im1_private.c1();
+export var glo_im1_private_v3_public = glo_im1_private.f1;
+export var glo_im1_private_v4_public = glo_im1_private.f1();
+var glo_im1_private_v1_private = glo_im1_private.c1;
+var glo_im1_private_v2_private = new glo_im1_private.c1();
+var glo_im1_private_v3_private = glo_im1_private.f1;
+var glo_im1_private_v4_private = glo_im1_private.f1();
+
+
+import glo_im2_private = require("glo_M2_public");
+export var glo_im2_private_v1_public = glo_im2_private.c1;
+export var glo_im2_private_v2_public = new glo_im2_private.c1();
+export var glo_im2_private_v3_public = glo_im2_private.f1;
+export var glo_im2_private_v4_public = glo_im2_private.f1();
+var glo_im2_private_v1_private = glo_im2_private.c1;
+var glo_im2_private_v2_private = new glo_im2_private.c1();
+var glo_im2_private_v3_private = glo_im2_private.f1;
+var glo_im2_private_v4_private = glo_im2_private.f1();
+
+import glo_im3_private = glo_M3_private;
+export var glo_im3_private_v1_public = glo_im3_private.c1;
+export var glo_im3_private_v2_public = new glo_im3_private.c1();
+export var glo_im3_private_v3_public = glo_im3_private.f1;
+export var glo_im3_private_v4_public = glo_im3_private.f1();
+var glo_im3_private_v1_private = glo_im3_private.c1;
+var glo_im3_private_v2_private = new glo_im3_private.c1();
+var glo_im3_private_v3_private = glo_im3_private.f1;
+var glo_im3_private_v4_private = glo_im3_private.f1();
+
+import glo_im4_private = require("glo_M4_private");
+export var glo_im4_private_v1_public = glo_im4_private.c1;
+export var glo_im4_private_v2_public = new glo_im4_private.c1();
+export var glo_im4_private_v3_public = glo_im4_private.f1;
+export var glo_im4_private_v4_public = glo_im4_private.f1();
+var glo_im4_private_v1_private = glo_im4_private.c1;
+var glo_im4_private_v2_private = new glo_im4_private.c1();
+var glo_im4_private_v3_private = glo_im4_private.f1;
+var glo_im4_private_v4_private = glo_im4_private.f1();
+
+// Parse error to export module
+export import glo_im1_public = glo_M1_public;
+export import glo_im2_public = glo_M3_private;
+export import glo_im3_public = require("glo_M2_public");
+export import glo_im4_public = require("glo_M4_private");
+
+
+export declare module "use_glo_M1_public" {
+ import use_glo_M1_public = glo_M1_public;
+ export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
+ export var use_glo_M1_public_v2_public: use_glo_M1_public;
+ export var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
+ var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
+ var use_glo_M1_public_v2_private: use_glo_M1_public;
+ var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
+
+ import use_glo_M2_public = require("glo_M2_public");
+ export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
+ export var use_glo_M2_public_v2_public: use_glo_M2_public;
+ export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
+ var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
+ var use_glo_M2_public_v2_private: use_glo_M2_public;
+ var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
+
+ module m2 {
+ import errorImport = require("glo_M2_public");
+ import nonerrorImport = glo_M1_public;
+
+ module m5 {
+ import m5_errorImport = require("glo_M2_public");
+ import m5_nonerrorImport = glo_M1_public;
+ }
+ }
+}
+
+
+declare module "use_glo_M3_private" {
+ import use_glo_M3_private = glo_M3_private;
+ export var use_glo_M3_private_v1_public: { new (): use_glo_M3_private.c1; };
+ export var use_glo_M3_private_v2_public: use_glo_M3_private;
+ export var use_glo_M3_private_v3_public: () => use_glo_M3_private.c1;
+ var use_glo_M3_private_v1_private: { new (): use_glo_M3_private.c1; };
+ var use_glo_M3_private_v2_private: use_glo_M3_private;
+ var use_glo_M3_private_v3_private: () => use_glo_M3_private.c1;
+
+ import use_glo_M4_private = require("glo_M4_private");
+ export var use_glo_M4_private_v1_public: { new (): use_glo_M4_private.c1; };
+ export var use_glo_M4_private_v2_public: use_glo_M4_private;
+ export var use_glo_M4_private_v3_public: () => use_glo_M4_private.c1;
+ var use_glo_M4_private_v1_private: { new (): use_glo_M4_private.c1; };
+ var use_glo_M4_private_v2_private: use_glo_M4_private;
+ var use_glo_M4_private_v3_private: () => use_glo_M4_private.c1;
+
+ module m2 {
+ import errorImport = require("glo_M4_private");
+ import nonerrorImport = glo_M3_private;
+
+ module m5 {
+ import m5_errorImport = require("glo_M4_private");
+ import m5_nonerrorImport = glo_M3_private;
+ }
+ }
+}
+
+declare module "anotherParseError" {
+ module m2 {
+ declare module "abc" {
+ }
+ }
+
+ module m2 {
+ module "abc2" {
+ }
+ }
+ module "abc3" {
+ }
+}
+
+declare export module "anotherParseError2" {
+ module m2 {
+ declare module "abc" {
+ }
+ }
+
+ module m2 {
+ module "abc2" {
+ }
+ }
+ module "abc3" {
+ }
+}
+
+module m2 {
+ import m3 = require("use_glo_M1_public");
+ module m4 {
+ var a = 10;
+ import m2 = require("use_glo_M1_public");
+ }
+
+}
+
+export module m3 {
+ import m3 = require("use_glo_M1_public");
+ module m4 {
+ var a = 10;
+ import m2 = require("use_glo_M1_public");
+ }
+
+}
\ No newline at end of file
diff --git a/tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts b/tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts
index 9219f1ae6a9..89bd95e6a64 100644
--- a/tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts
+++ b/tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts
@@ -1,4 +1,5 @@
//@module: commonjs
+//@declaration: true
// private elements
module m_private {
export class c_private {
diff --git a/tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts b/tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts
index fd7cecc01bf..454212f2e31 100644
--- a/tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts
+++ b/tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts
@@ -1,4 +1,5 @@
//@module: amd
+//@declaration: true
// private elements
module m_private {
export class c_private {
diff --git a/tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.ts b/tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.ts
index aa98a1a969b..16c6e19fb59 100644
--- a/tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.ts
+++ b/tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithExport.ts
@@ -1,4 +1,5 @@
//@module: commonjs
+//@declaration: true
// @Filename: privacyTopLevelAmbientExternalModuleImportWithExport_require.ts
// Public elements
export class c_public {
@@ -28,6 +29,8 @@ declare module 'm2' {
}
// @Filename: privacyTopLevelAmbientExternalModuleImportWithExport_core.ts
+///
+///
// Privacy errors - importing private elements
export import im_public_mi_private = require("privacyTopLevelAmbientExternalModuleImportWithExport_require");
export import im_public_mu_private = require("privacyTopLevelAmbientExternalModuleImportWithExport_require1");
@@ -35,11 +38,11 @@ export import im_public_mi_public = require("m");
export import im_public_mu_public = require("m2");
// Usage of privacy error imports
-var privateUse_im_public_mi_private = new im_public_mi_private.c_private();
-export var publicUse_im_public_mi_private = new im_public_mi_private.c_private();
-var privateUse_im_public_mu_private = new im_public_mu_private.c_private();
-export var publicUse_im_public_mu_private = new im_public_mu_private.c_private();
-var privateUse_im_public_mi_public = new im_public_mi_public.c_public();
-export var publicUse_im_public_mi_public = new im_public_mi_public.c_public();
-var privateUse_im_public_mi_public = new im_public_mi_public.c_public();
-export var publicUse_im_public_mi_public = new im_public_mi_public.c_public();
+var privateUse_im_public_mi_private = new im_public_mi_private.c_public();
+export var publicUse_im_public_mi_private = new im_public_mi_private.c_public();
+var privateUse_im_public_mu_private = new im_public_mu_private.c_public();
+export var publicUse_im_public_mu_private = new im_public_mu_private.c_public();
+var privateUse_im_public_mi_public = new im_public_mi_public.c_private();
+export var publicUse_im_public_mi_public = new im_public_mi_public.c_private();
+var privateUse_im_public_mi_public = new im_public_mi_public.c_private();
+export var publicUse_im_public_mi_public = new im_public_mi_public.c_private();
diff --git a/tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport.ts b/tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport.ts
index b2d3910a959..f663871cbdb 100644
--- a/tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport.ts
+++ b/tests/cases/compiler/privacyTopLevelAmbientExternalModuleImportWithoutExport.ts
@@ -1,4 +1,5 @@
//@module: amd
+//@declaration: true
// @Filename: privacyTopLevelAmbientExternalModuleImportWithoutExport_require.ts
// Public elements
@@ -28,6 +29,8 @@ declare module 'm2' {
}
// @Filename: privacyTopLevelAmbientExternalModuleImportWithoutExport_core.ts
+///
+///
// Privacy errors - importing private elements
import im_private_mi_private = require("m");
import im_private_mu_private = require("m2");
diff --git a/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts b/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts
index ada020f4da6..987c35c7325 100644
--- a/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts
+++ b/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts
@@ -1,4 +1,5 @@
//@module: amd
+//@declaration: true
// private elements
module m_private {
export class c_private {
diff --git a/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts b/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts
index d703e1ea0d6..8f241c5ab01 100644
--- a/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts
+++ b/tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts
@@ -1,4 +1,6 @@
//@module: amd
+//@declaration: true
+
// private elements
module m_private {
export class c_private {
diff --git a/tests/cases/compiler/unusedImportDeclaration.ts b/tests/cases/compiler/unusedImportDeclaration.ts
index 83cb089acfe..263b355f69c 100644
--- a/tests/cases/compiler/unusedImportDeclaration.ts
+++ b/tests/cases/compiler/unusedImportDeclaration.ts
@@ -1,4 +1,5 @@
//@module: commonjs
+//@declaration: true
// @Filename: unusedImportDeclaration_testerB.ts
class TesterB {
me: string;