From cac18738df28441df8075dbae743186cec5fc17d Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Thu, 7 Aug 2014 14:47:49 -0700 Subject: [PATCH] Removing bug numbers from the testcases which are fixed and adding declaration generation in few testcases --- .../reference/aliasInaccessibleModule.js | 18 + .../reference/aliasInaccessibleModule2.js | 18 + .../aliasUsageInAccessorsOfClass.errors.txt | 30 - .../reference/aliasUsageInAccessorsOfClass.js | 69 +++ .../baselines/reference/cyclicModuleImport.js | 21 + .../declarationEmit_nameConflictsWithAlias.js | 1 - .../baselines/reference/importDecl.errors.txt | 83 --- tests/baselines/reference/importDecl.js | 56 +- .../internalAliasWithDottedNameEmit.js | 8 + .../reference/multiImportExport.errors.txt | 26 - .../baselines/reference/multiImportExport.js | 90 +++ .../privacyCheckAnonymousFunctionParameter.js | 4 + ...privacyCheckAnonymousFunctionParameter2.js | 4 + ...lbackOfInterfaceMethodWithTypeParameter.js | 8 + ...rtAssignmentOnExportedGenericInterface1.js | 11 + ...rtAssignmentOnExportedGenericInterface2.js | 10 + ...nalModuleExportAssignmentOfGenericClass.js | 14 + ...arameterReferenceInConstructorParameter.js | 9 + .../privacyCheckTypeOfFunction.errors.txt | 8 - .../reference/privacyCheckTypeOfFunction.js | 17 + ...CheckTypeOfInvisibleModuleError.errors.txt | 11 + .../reference/privacyGloImport.errors.txt | 149 ++--- tests/baselines/reference/privacyGloImport.js | 230 ++++++++ .../privacyGloImportParseErrors.errors.txt | 185 ++++++ .../reference/privacyImport.errors.txt | 464 +++++++-------- tests/baselines/reference/privacyImport.js | 529 ++++++++++++++++++ .../privacyImportParseErrors.errors.txt | 455 +++++++++++++++ ...yLocalInternalReferenceImportWithExport.js | 124 ++++ ...calInternalReferenceImportWithoutExport.js | 112 ++++ ...tExternalModuleImportWithExport.errors.txt | 57 -- ...elAmbientExternalModuleImportWithExport.js | 70 ++- ...ternalModuleImportWithoutExport.errors.txt | 49 -- ...mbientExternalModuleImportWithoutExport.js | 36 ++ ...pLevelInternalReferenceImportWithExport.js | 120 ++++ ...velInternalReferenceImportWithoutExport.js | 109 ++++ .../reference/unusedImportDeclaration.js | 8 + .../cases/compiler/aliasInaccessibleModule.ts | 1 + .../compiler/aliasInaccessibleModule2.ts | 1 + .../compiler/aliasUsageInAccessorsOfClass.ts | 1 + tests/cases/compiler/cyclicModuleImport.ts | 1 + .../declarationEmit_nameConflictsWithAlias.ts | 1 - tests/cases/compiler/importDecl.ts | 1 - .../internalAliasWithDottedNameEmit.ts | 1 + tests/cases/compiler/multiImportExport.ts | 2 + .../privacyCheckAnonymousFunctionParameter.ts | 1 + ...privacyCheckAnonymousFunctionParameter2.ts | 1 + ...lbackOfInterfaceMethodWithTypeParameter.ts | 1 + ...rtAssignmentOnExportedGenericInterface1.ts | 1 + ...rtAssignmentOnExportedGenericInterface2.ts | 1 + ...nalModuleExportAssignmentOfGenericClass.ts | 1 + ...arameterReferenceInConstructorParameter.ts | 1 + .../compiler/privacyCheckTypeOfFunction.ts | 2 + .../privacyCheckTypeOfInvisibleModuleError.ts | 1 + tests/cases/compiler/privacyGloImport.ts | 98 ++-- .../compiler/privacyGloImportParseErrors.ts | 153 +++++ tests/cases/compiler/privacyImport.ts | 357 ++++++------ .../compiler/privacyImportParseErrors.ts | 357 ++++++++++++ ...yLocalInternalReferenceImportWithExport.ts | 1 + ...calInternalReferenceImportWithoutExport.ts | 1 + ...elAmbientExternalModuleImportWithExport.ts | 19 +- ...mbientExternalModuleImportWithoutExport.ts | 3 + ...pLevelInternalReferenceImportWithExport.ts | 1 + ...velInternalReferenceImportWithoutExport.ts | 2 + .../cases/compiler/unusedImportDeclaration.ts | 1 + 64 files changed, 3347 insertions(+), 878 deletions(-) delete mode 100644 tests/baselines/reference/aliasUsageInAccessorsOfClass.errors.txt create mode 100644 tests/baselines/reference/aliasUsageInAccessorsOfClass.js delete mode 100644 tests/baselines/reference/importDecl.errors.txt delete mode 100644 tests/baselines/reference/multiImportExport.errors.txt create mode 100644 tests/baselines/reference/multiImportExport.js delete mode 100644 tests/baselines/reference/privacyCheckTypeOfFunction.errors.txt create mode 100644 tests/baselines/reference/privacyCheckTypeOfFunction.js create mode 100644 tests/baselines/reference/privacyCheckTypeOfInvisibleModuleError.errors.txt create mode 100644 tests/baselines/reference/privacyGloImport.js create mode 100644 tests/baselines/reference/privacyGloImportParseErrors.errors.txt create mode 100644 tests/baselines/reference/privacyImport.js create mode 100644 tests/baselines/reference/privacyImportParseErrors.errors.txt delete mode 100644 tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithExport.errors.txt delete mode 100644 tests/baselines/reference/privacyTopLevelAmbientExternalModuleImportWithoutExport.errors.txt create mode 100644 tests/cases/compiler/privacyGloImportParseErrors.ts create mode 100644 tests/cases/compiler/privacyImportParseErrors.ts 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;