From dc0f4afe5e449bbc2eea7012c0260da080620d4e Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 14 Jan 2019 13:53:04 -0800 Subject: [PATCH] Save & recalculate declare flag modifier on late printed statements (#29412) * Save & recalculate declre flag modifier on late printed statements * Accept related baseline updates --- src/compiler/transformers/declarations.ts | 3 + ...arationEmitLocalClassHasRequiredDeclare.js | 54 +++ ...onEmitLocalClassHasRequiredDeclare.symbols | 27 ++ ...tionEmitLocalClassHasRequiredDeclare.types | 23 ++ .../getEmitOutputWithEmitterErrors2.baseline | 2 +- .../moduleAugmentationImportsAndExports2.js | 2 +- .../moduleAugmentationImportsAndExports3.js | 2 +- .../moduleAugmentationImportsAndExports5.js | 45 +-- .../reference/privacyAccessorDeclFile.js | 273 +-------------- .../privacyFunctionParameterDeclFile.js | 293 +--------------- .../privacyFunctionReturnTypeDeclFile.js | 331 +----------------- ...yLocalInternalReferenceImportWithExport.js | 85 +---- ...calInternalReferenceImportWithoutExport.js | 81 +---- .../privacyTypeParameterOfFunctionDeclFile.js | 159 +-------- .../privacyTypeParametersOfClassDeclFile.js | 64 +--- ...rivacyTypeParametersOfInterfaceDeclFile.js | 109 +----- .../baselines/reference/privacyVarDeclFile.js | 213 +---------- ...arationEmitLocalClassHasRequiredDeclare.ts | 16 + 18 files changed, 137 insertions(+), 1645 deletions(-) create mode 100644 tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.js create mode 100644 tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.symbols create mode 100644 tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.types create mode 100644 tests/cases/compiler/declarationEmitLocalClassHasRequiredDeclare.ts diff --git a/src/compiler/transformers/declarations.ts b/src/compiler/transformers/declarations.ts index b54cf5bb858..d03c3b8d30b 100644 --- a/src/compiler/transformers/declarations.ts +++ b/src/compiler/transformers/declarations.ts @@ -634,7 +634,10 @@ namespace ts { if (!isLateVisibilityPaintedStatement(i)) { return Debug.fail(`Late replaced statement was found which is not handled by the declaration transformer!: ${(ts as any).SyntaxKind ? (ts as any).SyntaxKind[(i as any).kind] : (i as any).kind}`); } + const priorNeedsDeclare = needsDeclare; + needsDeclare = i.parent && isSourceFile(i.parent) && !(isExternalModule(i.parent) && isBundledEmit); const result = transformTopLevelDeclaration(i, /*privateDeclaration*/ true); + needsDeclare = priorNeedsDeclare; lateStatementReplacementMap.set("" + getOriginalNodeId(i), result); } diff --git a/tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.js b/tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.js new file mode 100644 index 00000000000..4845bc413c4 --- /dev/null +++ b/tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.js @@ -0,0 +1,54 @@ +//// [declarationEmitLocalClassHasRequiredDeclare.ts] +export declare namespace A { + namespace X { } +} + +class X { } + +export class A { + static X = X; +} + +export declare namespace Y { + +} + +export class Y { } + +//// [declarationEmitLocalClassHasRequiredDeclare.js] +"use strict"; +exports.__esModule = true; +var X = /** @class */ (function () { + function X() { + } + return X; +}()); +var A = /** @class */ (function () { + function A() { + } + A.X = X; + return A; +}()); +exports.A = A; +var Y = /** @class */ (function () { + function Y() { + } + return Y; +}()); +exports.Y = Y; + + +//// [declarationEmitLocalClassHasRequiredDeclare.d.ts] +export declare namespace A { + namespace X { } +} +declare class X { +} +export declare class A { + static X: typeof X; +} +export declare namespace Y { +} +export declare class Y { +} +export {}; diff --git a/tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.symbols b/tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.symbols new file mode 100644 index 00000000000..27cb72b00e0 --- /dev/null +++ b/tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/declarationEmitLocalClassHasRequiredDeclare.ts === +export declare namespace A { +>A : Symbol(A, Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 0, 0), Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 4, 11)) + + namespace X { } +>X : Symbol(X, Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 0, 28), Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 6, 16)) +} + +class X { } +>X : Symbol(X, Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 2, 1)) + +export class A { +>A : Symbol(A, Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 0, 0), Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 4, 11)) + + static X = X; +>X : Symbol(A.X, Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 0, 28), Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 6, 16)) +>X : Symbol(X, Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 2, 1)) +} + +export declare namespace Y { +>Y : Symbol(Y, Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 8, 1), Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 12, 1)) + +} + +export class Y { } +>Y : Symbol(Y, Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 8, 1), Decl(declarationEmitLocalClassHasRequiredDeclare.ts, 12, 1)) + diff --git a/tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.types b/tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.types new file mode 100644 index 00000000000..130f87cd013 --- /dev/null +++ b/tests/baselines/reference/declarationEmitLocalClassHasRequiredDeclare.types @@ -0,0 +1,23 @@ +=== tests/cases/compiler/declarationEmitLocalClassHasRequiredDeclare.ts === +export declare namespace A { + namespace X { } +} + +class X { } +>X : X + +export class A { +>A : A + + static X = X; +>X : typeof X +>X : typeof X +} + +export declare namespace Y { + +} + +export class Y { } +>Y : Y + diff --git a/tests/baselines/reference/getEmitOutputWithEmitterErrors2.baseline b/tests/baselines/reference/getEmitOutputWithEmitterErrors2.baseline index 46ba9652cc7..7ca62fca61e 100644 --- a/tests/baselines/reference/getEmitOutputWithEmitterErrors2.baseline +++ b/tests/baselines/reference/getEmitOutputWithEmitterErrors2.baseline @@ -16,7 +16,7 @@ define(["require", "exports"], function (require, exports) { }); FileName : /tests/cases/fourslash/inputFile.d.ts -class C { +declare class C { } export declare module M { var foo: C; diff --git a/tests/baselines/reference/moduleAugmentationImportsAndExports2.js b/tests/baselines/reference/moduleAugmentationImportsAndExports2.js index fcb68f78c15..9c07fcbd933 100644 --- a/tests/baselines/reference/moduleAugmentationImportsAndExports2.js +++ b/tests/baselines/reference/moduleAugmentationImportsAndExports2.js @@ -77,7 +77,7 @@ export declare class B { n: number; } //// [f3.d.ts] -namespace N { +declare namespace N { interface Ifc { a: any; } diff --git a/tests/baselines/reference/moduleAugmentationImportsAndExports3.js b/tests/baselines/reference/moduleAugmentationImportsAndExports3.js index abfccd0d424..8229de12e5f 100644 --- a/tests/baselines/reference/moduleAugmentationImportsAndExports3.js +++ b/tests/baselines/reference/moduleAugmentationImportsAndExports3.js @@ -75,7 +75,7 @@ export declare class B { n: number; } //// [f3.d.ts] -namespace N { +declare namespace N { interface Ifc { a: any; } diff --git a/tests/baselines/reference/moduleAugmentationImportsAndExports5.js b/tests/baselines/reference/moduleAugmentationImportsAndExports5.js index a1e63f7463c..aa6111a807e 100644 --- a/tests/baselines/reference/moduleAugmentationImportsAndExports5.js +++ b/tests/baselines/reference/moduleAugmentationImportsAndExports5.js @@ -80,7 +80,7 @@ export declare class B { } //// [f3.d.ts] import { B } from "./f2"; -namespace N { +declare namespace N { interface Ifc { a: number; } @@ -100,46 +100,3 @@ declare module "./f1" { export {}; //// [f4.d.ts] import "./f3"; - - -//// [DtsFileErrors] - - -tests/cases/compiler/f3.d.ts(2,1): error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - - -==== tests/cases/compiler/f1.d.ts (0 errors) ==== - export declare class A { - } - -==== tests/cases/compiler/f2.d.ts (0 errors) ==== - export declare class B { - n: number; - } - -==== tests/cases/compiler/f3.d.ts (1 errors) ==== - import { B } from "./f2"; - namespace N { - ~~~~~~~~~ -!!! error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - interface Ifc { - a: number; - } - interface Cls { - b: number; - } - } - import I = N.Ifc; - import C = N.Cls; - declare module "./f1" { - interface A { - foo(): B; - bar(): I; - baz(): C; - } - } - export {}; - -==== tests/cases/compiler/f4.d.ts (0 errors) ==== - import "./f3"; - \ No newline at end of file diff --git a/tests/baselines/reference/privacyAccessorDeclFile.js b/tests/baselines/reference/privacyAccessorDeclFile.js index 0edef02a54d..8a3a7b2d2de 100644 --- a/tests/baselines/reference/privacyAccessorDeclFile.js +++ b/tests/baselines/reference/privacyAccessorDeclFile.js @@ -3557,7 +3557,7 @@ var publicModuleInGlobal; //// [privacyAccessorDeclFile_externalModule.d.ts] -class privateClass { +declare class privateClass { } export declare class publicClass { } @@ -3815,274 +3815,3 @@ declare module publicModuleInGlobal { myPublicMethod: privateModule.publicClass; } } - - -//// [DtsFileErrors] - - -tests/cases/compiler/privacyAccessorDeclFile_externalModule.d.ts(1,1): error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - - -==== tests/cases/compiler/privacyAccessorDeclFile_externalModule.d.ts (1 errors) ==== - class privateClass { - ~~~~~ -!!! error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - } - export declare class publicClass { - } - export declare class publicClassWithWithPrivateGetAccessorTypes { - static readonly myPublicStaticMethod: privateClass; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: privateClass; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: privateClass; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: privateClass; - private readonly myPrivateMethod1; - } - export declare class publicClassWithWithPublicGetAccessorTypes { - static readonly myPublicStaticMethod: publicClass; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: publicClass; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: publicClass; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: publicClass; - private readonly myPrivateMethod1; - } - export declare class publicClassWithWithPrivateSetAccessorTypes { - static myPublicStaticMethod: privateClass; - private static myPrivateStaticMethod; - myPublicMethod: privateClass; - private myPrivateMethod; - } - export declare class publicClassWithWithPublicSetAccessorTypes { - static myPublicStaticMethod: publicClass; - private static myPrivateStaticMethod; - myPublicMethod: publicClass; - private myPrivateMethod; - } - export declare class publicClassWithPrivateModuleGetAccessorTypes { - static readonly myPublicStaticMethod: privateModule.publicClass; - readonly myPublicMethod: privateModule.publicClass; - static readonly myPublicStaticMethod1: privateModule.publicClass; - readonly myPublicMethod1: privateModule.publicClass; - } - export declare class publicClassWithPrivateModuleSetAccessorTypes { - static myPublicStaticMethod: privateModule.publicClass; - myPublicMethod: privateModule.publicClass; - } - export declare module publicModule { - class privateClass { - } - class publicClass { - } - class publicClassWithWithPrivateGetAccessorTypes { - static readonly myPublicStaticMethod: privateClass; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: privateClass; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: privateClass; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: privateClass; - private readonly myPrivateMethod1; - } - class publicClassWithWithPublicGetAccessorTypes { - static readonly myPublicStaticMethod: publicClass; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: publicClass; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: publicClass; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: publicClass; - private readonly myPrivateMethod1; - } - class publicClassWithWithPrivateSetAccessorTypes { - static myPublicStaticMethod: privateClass; - private static myPrivateStaticMethod; - myPublicMethod: privateClass; - private myPrivateMethod; - } - class publicClassWithWithPublicSetAccessorTypes { - static myPublicStaticMethod: publicClass; - private static myPrivateStaticMethod; - myPublicMethod: publicClass; - private myPrivateMethod; - } - class publicClassWithPrivateModuleGetAccessorTypes { - static readonly myPublicStaticMethod: privateModule.publicClass; - readonly myPublicMethod: privateModule.publicClass; - static readonly myPublicStaticMethod1: privateModule.publicClass; - readonly myPublicMethod1: privateModule.publicClass; - } - class publicClassWithPrivateModuleSetAccessorTypes { - static myPublicStaticMethod: privateModule.publicClass; - myPublicMethod: privateModule.publicClass; - } - } - declare module privateModule { - class privateClass { - } - class publicClass { - } - class publicClassWithWithPrivateGetAccessorTypes { - static readonly myPublicStaticMethod: privateClass; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: privateClass; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: privateClass; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: privateClass; - private readonly myPrivateMethod1; - } - class publicClassWithWithPublicGetAccessorTypes { - static readonly myPublicStaticMethod: publicClass; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: publicClass; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: publicClass; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: publicClass; - private readonly myPrivateMethod1; - } - class publicClassWithWithPrivateSetAccessorTypes { - static myPublicStaticMethod: privateClass; - private static myPrivateStaticMethod; - myPublicMethod: privateClass; - private myPrivateMethod; - } - class publicClassWithWithPublicSetAccessorTypes { - static myPublicStaticMethod: publicClass; - private static myPrivateStaticMethod; - myPublicMethod: publicClass; - private myPrivateMethod; - } - class publicClassWithPrivateModuleGetAccessorTypes { - static readonly myPublicStaticMethod: privateModule.publicClass; - readonly myPublicMethod: privateModule.publicClass; - static readonly myPublicStaticMethod1: publicClass; - readonly myPublicMethod1: publicClass; - } - class publicClassWithPrivateModuleSetAccessorTypes { - static myPublicStaticMethod: privateModule.publicClass; - myPublicMethod: privateModule.publicClass; - } - } - export {}; - -==== tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.d.ts (0 errors) ==== - declare class publicClassInGlobal { - } - declare class publicClassInGlobalWithPublicGetAccessorTypes { - static readonly myPublicStaticMethod: publicClassInGlobal; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: publicClassInGlobal; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: publicClassInGlobal; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: publicClassInGlobal; - private readonly myPrivateMethod1; - } - declare class publicClassInGlobalWithWithPublicSetAccessorTypes { - static myPublicStaticMethod: publicClassInGlobal; - private static myPrivateStaticMethod; - myPublicMethod: publicClassInGlobal; - private myPrivateMethod; - } - declare module publicModuleInGlobal { - class privateClass { - } - class publicClass { - } - module privateModule { - class privateClass { - } - class publicClass { - } - class publicClassWithWithPrivateGetAccessorTypes { - static readonly myPublicStaticMethod: privateClass; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: privateClass; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: privateClass; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: privateClass; - private readonly myPrivateMethod1; - } - class publicClassWithWithPublicGetAccessorTypes { - static readonly myPublicStaticMethod: publicClass; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: publicClass; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: publicClass; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: publicClass; - private readonly myPrivateMethod1; - } - class publicClassWithWithPrivateSetAccessorTypes { - static myPublicStaticMethod: privateClass; - private static myPrivateStaticMethod; - myPublicMethod: privateClass; - private myPrivateMethod; - } - class publicClassWithWithPublicSetAccessorTypes { - static myPublicStaticMethod: publicClass; - private static myPrivateStaticMethod; - myPublicMethod: publicClass; - private myPrivateMethod; - } - class publicClassWithPrivateModuleGetAccessorTypes { - static readonly myPublicStaticMethod: privateModule.publicClass; - readonly myPublicMethod: privateModule.publicClass; - static readonly myPublicStaticMethod1: publicClass; - readonly myPublicMethod1: publicClass; - } - class publicClassWithPrivateModuleSetAccessorTypes { - static myPublicStaticMethod: privateModule.publicClass; - myPublicMethod: privateModule.publicClass; - } - } - class publicClassWithWithPrivateGetAccessorTypes { - static readonly myPublicStaticMethod: privateClass; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: privateClass; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: privateClass; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: privateClass; - private readonly myPrivateMethod1; - } - class publicClassWithWithPublicGetAccessorTypes { - static readonly myPublicStaticMethod: publicClass; - private static readonly myPrivateStaticMethod; - readonly myPublicMethod: publicClass; - private readonly myPrivateMethod; - static readonly myPublicStaticMethod1: publicClass; - private static readonly myPrivateStaticMethod1; - readonly myPublicMethod1: publicClass; - private readonly myPrivateMethod1; - } - class publicClassWithWithPrivateSetAccessorTypes { - static myPublicStaticMethod: privateClass; - private static myPrivateStaticMethod; - myPublicMethod: privateClass; - private myPrivateMethod; - } - class publicClassWithWithPublicSetAccessorTypes { - static myPublicStaticMethod: publicClass; - private static myPrivateStaticMethod; - myPublicMethod: publicClass; - private myPrivateMethod; - } - class publicClassWithPrivateModuleGetAccessorTypes { - static readonly myPublicStaticMethod: privateModule.publicClass; - readonly myPublicMethod: privateModule.publicClass; - static readonly myPublicStaticMethod1: privateModule.publicClass; - readonly myPublicMethod1: privateModule.publicClass; - } - class publicClassWithPrivateModuleSetAccessorTypes { - static myPublicStaticMethod: privateModule.publicClass; - myPublicMethod: privateModule.publicClass; - } - } - \ No newline at end of file diff --git a/tests/baselines/reference/privacyFunctionParameterDeclFile.js b/tests/baselines/reference/privacyFunctionParameterDeclFile.js index b6827934bf2..e287ef7c3d5 100644 --- a/tests/baselines/reference/privacyFunctionParameterDeclFile.js +++ b/tests/baselines/reference/privacyFunctionParameterDeclFile.js @@ -1281,7 +1281,7 @@ var publicModuleInGlobal; //// [privacyFunctionParameterDeclFile_externalModule.d.ts] -class privateClass { +declare class privateClass { } export declare class publicClass { } @@ -1559,294 +1559,3 @@ declare module publicModuleInGlobal { function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; } - - -//// [DtsFileErrors] - - -tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.d.ts(1,1): error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - - -==== tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.d.ts (1 errors) ==== - class privateClass { - ~~~~~ -!!! error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - } - export declare class publicClass { - } - export interface publicInterfaceWithPrivateParmeterTypes { - new (param: privateClass): publicClass; - (param: privateClass): publicClass; - myMethod(param: privateClass): void; - } - export interface publicInterfaceWithPublicParmeterTypes { - new (param: publicClass): publicClass; - (param: publicClass): publicClass; - myMethod(param: publicClass): void; - } - export declare class publicClassWithWithPrivateParmeterTypes { - private param1; - param2: privateClass; - static myPublicStaticMethod(param: privateClass): void; - private static myPrivateStaticMethod; - myPublicMethod(param: privateClass): void; - private myPrivateMethod; - constructor(param: privateClass, param1: privateClass, param2: privateClass); - } - export declare class publicClassWithWithPublicParmeterTypes { - private param1; - param2: publicClass; - static myPublicStaticMethod(param: publicClass): void; - private static myPrivateStaticMethod; - myPublicMethod(param: publicClass): void; - private myPrivateMethod; - constructor(param: publicClass, param1: publicClass, param2: publicClass); - } - export declare function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; - export declare function publicFunctionWithPublicParmeterTypes(param: publicClass): void; - export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; - export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; - export interface publicInterfaceWithPrivateModuleParameterTypes { - new (param: privateModule.publicClass): publicClass; - (param: privateModule.publicClass): publicClass; - myMethod(param: privateModule.publicClass): void; - } - export declare class publicClassWithPrivateModuleParameterTypes { - private param1; - param2: privateModule.publicClass; - static myPublicStaticMethod(param: privateModule.publicClass): void; - myPublicMethod(param: privateModule.publicClass): void; - constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); - } - export declare function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - export declare module publicModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivateParmeterTypes { - new (param: privateClass): publicClass; - (param: privateClass): publicClass; - myMethod(param: privateClass): void; - } - interface publicInterfaceWithPublicParmeterTypes { - new (param: publicClass): publicClass; - (param: publicClass): publicClass; - myMethod(param: publicClass): void; - } - class publicClassWithWithPrivateParmeterTypes { - private param1; - param2: privateClass; - static myPublicStaticMethod(param: privateClass): void; - private static myPrivateStaticMethod; - myPublicMethod(param: privateClass): void; - private myPrivateMethod; - constructor(param: privateClass, param1: privateClass, param2: privateClass); - } - class publicClassWithWithPublicParmeterTypes { - private param1; - param2: publicClass; - static myPublicStaticMethod(param: publicClass): void; - private static myPrivateStaticMethod; - myPublicMethod(param: publicClass): void; - private myPrivateMethod; - constructor(param: publicClass, param1: publicClass, param2: publicClass); - } - function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; - function publicFunctionWithPublicParmeterTypes(param: publicClass): void; - function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; - function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; - interface publicInterfaceWithPrivateModuleParameterTypes { - new (param: privateModule.publicClass): publicClass; - (param: privateModule.publicClass): publicClass; - myMethod(param: privateModule.publicClass): void; - } - class publicClassWithPrivateModuleParameterTypes { - private param1; - param2: privateModule.publicClass; - static myPublicStaticMethod(param: privateModule.publicClass): void; - myPublicMethod(param: privateModule.publicClass): void; - constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); - } - function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - } - declare module privateModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivateParmeterTypes { - new (param: privateClass): publicClass; - (param: privateClass): publicClass; - myMethod(param: privateClass): void; - } - interface publicInterfaceWithPublicParmeterTypes { - new (param: publicClass): publicClass; - (param: publicClass): publicClass; - myMethod(param: publicClass): void; - } - class publicClassWithWithPrivateParmeterTypes { - private param1; - param2: privateClass; - static myPublicStaticMethod(param: privateClass): void; - private static myPrivateStaticMethod; - myPublicMethod(param: privateClass): void; - private myPrivateMethod; - constructor(param: privateClass, param1: privateClass, param2: privateClass); - } - class publicClassWithWithPublicParmeterTypes { - private param1; - param2: publicClass; - static myPublicStaticMethod(param: publicClass): void; - private static myPrivateStaticMethod; - myPublicMethod(param: publicClass): void; - private myPrivateMethod; - constructor(param: publicClass, param1: publicClass, param2: publicClass); - } - function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; - function publicFunctionWithPublicParmeterTypes(param: publicClass): void; - function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; - function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; - interface publicInterfaceWithPrivateModuleParameterTypes { - new (param: privateModule.publicClass): publicClass; - (param: privateModule.publicClass): publicClass; - myMethod(param: privateModule.publicClass): void; - } - class publicClassWithPrivateModuleParameterTypes { - private param1; - param2: privateModule.publicClass; - static myPublicStaticMethod(param: privateModule.publicClass): void; - myPublicMethod(param: privateModule.publicClass): void; - constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); - } - function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - } - export {}; - -==== tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.d.ts (0 errors) ==== - declare class publicClassInGlobal { - } - interface publicInterfaceWithPublicParmeterTypesInGlobal { - new (param: publicClassInGlobal): publicClassInGlobal; - (param: publicClassInGlobal): publicClassInGlobal; - myMethod(param: publicClassInGlobal): void; - } - declare class publicClassWithWithPublicParmeterTypesInGlobal { - private param1; - param2: publicClassInGlobal; - static myPublicStaticMethod(param: publicClassInGlobal): void; - private static myPrivateStaticMethod; - myPublicMethod(param: publicClassInGlobal): void; - private myPrivateMethod; - constructor(param: publicClassInGlobal, param1: publicClassInGlobal, param2: publicClassInGlobal); - } - declare function publicFunctionWithPublicParmeterTypesInGlobal(param: publicClassInGlobal): void; - declare function publicAmbientFunctionWithPublicParmeterTypesInGlobal(param: publicClassInGlobal): void; - declare module publicModuleInGlobal { - class privateClass { - } - class publicClass { - } - module privateModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivateParmeterTypes { - new (param: privateClass): publicClass; - (param: privateClass): publicClass; - myMethod(param: privateClass): void; - } - interface publicInterfaceWithPublicParmeterTypes { - new (param: publicClass): publicClass; - (param: publicClass): publicClass; - myMethod(param: publicClass): void; - } - class publicClassWithWithPrivateParmeterTypes { - private param1; - param2: privateClass; - static myPublicStaticMethod(param: privateClass): void; - private static myPrivateStaticMethod; - myPublicMethod(param: privateClass): void; - private myPrivateMethod; - constructor(param: privateClass, param1: privateClass, param2: privateClass); - } - class publicClassWithWithPublicParmeterTypes { - private param1; - param2: publicClass; - static myPublicStaticMethod(param: publicClass): void; - private static myPrivateStaticMethod; - myPublicMethod(param: publicClass): void; - private myPrivateMethod; - constructor(param: publicClass, param1: publicClass, param2: publicClass); - } - function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; - function publicFunctionWithPublicParmeterTypes(param: publicClass): void; - function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; - function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; - interface publicInterfaceWithPrivateModuleParameterTypes { - new (param: privateModule.publicClass): publicClass; - (param: privateModule.publicClass): publicClass; - myMethod(param: privateModule.publicClass): void; - } - class publicClassWithPrivateModuleParameterTypes { - private param1; - param2: privateModule.publicClass; - static myPublicStaticMethod(param: privateModule.publicClass): void; - myPublicMethod(param: privateModule.publicClass): void; - constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); - } - function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - } - interface publicInterfaceWithPrivateParmeterTypes { - new (param: privateClass): publicClass; - (param: privateClass): publicClass; - myMethod(param: privateClass): void; - } - interface publicInterfaceWithPublicParmeterTypes { - new (param: publicClass): publicClass; - (param: publicClass): publicClass; - myMethod(param: publicClass): void; - } - class publicClassWithWithPrivateParmeterTypes { - private param1; - param2: privateClass; - static myPublicStaticMethod(param: privateClass): void; - private static myPrivateStaticMethod; - myPublicMethod(param: privateClass): void; - private myPrivateMethod; - constructor(param: privateClass, param1: privateClass, param2: privateClass); - } - class publicClassWithWithPublicParmeterTypes { - private param1; - param2: publicClass; - static myPublicStaticMethod(param: publicClass): void; - private static myPrivateStaticMethod; - myPublicMethod(param: publicClass): void; - private myPrivateMethod; - constructor(param: publicClass, param1: publicClass, param2: publicClass); - } - function publicFunctionWithPrivateParmeterTypes(param: privateClass): void; - function publicFunctionWithPublicParmeterTypes(param: publicClass): void; - function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; - function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; - interface publicInterfaceWithPrivateModuleParameterTypes { - new (param: privateModule.publicClass): publicClass; - (param: privateModule.publicClass): publicClass; - myMethod(param: privateModule.publicClass): void; - } - class publicClassWithPrivateModuleParameterTypes { - private param1; - param2: privateModule.publicClass; - static myPublicStaticMethod(param: privateModule.publicClass): void; - myPublicMethod(param: privateModule.publicClass): void; - constructor(param: privateModule.publicClass, param1: privateModule.publicClass, param2: privateModule.publicClass); - } - function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; - } - \ No newline at end of file diff --git a/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.js b/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.js index 1d10cb2083a..79b144d815e 100644 --- a/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.js +++ b/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.js @@ -2281,7 +2281,7 @@ var publicModuleInGlobal; //// [privacyFunctionReturnTypeDeclFile_externalModule.d.ts] -class privateClass { +declare class privateClass { } export declare class publicClass { } @@ -2597,332 +2597,3 @@ declare module publicModuleInGlobal { function publicFunctionWithPrivateModuleParameterTypes1(): privateModule.publicClass; function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; } - - -//// [DtsFileErrors] - - -tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.d.ts(1,1): error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - - -==== tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.d.ts (1 errors) ==== - class privateClass { - ~~~~~ -!!! error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - } - export declare class publicClass { - } - export interface publicInterfaceWithPrivateParmeterTypes { - new (): privateClass; - (): privateClass; - [x: number]: privateClass; - myMethod(): privateClass; - } - export interface publicInterfaceWithPublicParmeterTypes { - new (): publicClass; - (): publicClass; - [x: number]: publicClass; - myMethod(): publicClass; - } - export declare class publicClassWithWithPrivateParmeterTypes { - static myPublicStaticMethod(): privateClass; - private static myPrivateStaticMethod; - myPublicMethod(): privateClass; - private myPrivateMethod; - static myPublicStaticMethod1(): privateClass; - private static myPrivateStaticMethod1; - myPublicMethod1(): privateClass; - private myPrivateMethod1; - } - export declare class publicClassWithWithPublicParmeterTypes { - static myPublicStaticMethod(): publicClass; - private static myPrivateStaticMethod; - myPublicMethod(): publicClass; - private myPrivateMethod; - static myPublicStaticMethod1(): publicClass; - private static myPrivateStaticMethod1; - myPublicMethod1(): publicClass; - private myPrivateMethod1; - } - export declare function publicFunctionWithPrivateParmeterTypes(): privateClass; - export declare function publicFunctionWithPublicParmeterTypes(): publicClass; - export declare function publicFunctionWithPrivateParmeterTypes1(): privateClass; - export declare function publicFunctionWithPublicParmeterTypes1(): publicClass; - export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; - export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; - export interface publicInterfaceWithPrivateModuleParameterTypes { - new (): privateModule.publicClass; - (): privateModule.publicClass; - [x: number]: privateModule.publicClass; - myMethod(): privateModule.publicClass; - } - export declare class publicClassWithPrivateModuleParameterTypes { - static myPublicStaticMethod(): privateModule.publicClass; - myPublicMethod(): privateModule.publicClass; - static myPublicStaticMethod1(): privateModule.publicClass; - myPublicMethod1(): privateModule.publicClass; - } - export declare function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - export declare function publicFunctionWithPrivateModuleParameterTypes1(): privateModule.publicClass; - export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - export declare module publicModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivateParmeterTypes { - new (): privateClass; - (): privateClass; - [x: number]: privateClass; - myMethod(): privateClass; - } - interface publicInterfaceWithPublicParmeterTypes { - new (): publicClass; - (): publicClass; - [x: number]: publicClass; - myMethod(): publicClass; - } - class publicClassWithWithPrivateParmeterTypes { - static myPublicStaticMethod(): privateClass; - private static myPrivateStaticMethod; - myPublicMethod(): privateClass; - private myPrivateMethod; - static myPublicStaticMethod1(): privateClass; - private static myPrivateStaticMethod1; - myPublicMethod1(): privateClass; - private myPrivateMethod1; - } - class publicClassWithWithPublicParmeterTypes { - static myPublicStaticMethod(): publicClass; - private static myPrivateStaticMethod; - myPublicMethod(): publicClass; - private myPrivateMethod; - static myPublicStaticMethod1(): publicClass; - private static myPrivateStaticMethod1; - myPublicMethod1(): publicClass; - private myPrivateMethod1; - } - function publicFunctionWithPrivateParmeterTypes(): privateClass; - function publicFunctionWithPublicParmeterTypes(): publicClass; - function publicFunctionWithPrivateParmeterTypes1(): privateClass; - function publicFunctionWithPublicParmeterTypes1(): publicClass; - function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; - function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; - interface publicInterfaceWithPrivateModuleParameterTypes { - new (): privateModule.publicClass; - (): privateModule.publicClass; - [x: number]: privateModule.publicClass; - myMethod(): privateModule.publicClass; - } - class publicClassWithPrivateModuleParameterTypes { - static myPublicStaticMethod(): privateModule.publicClass; - myPublicMethod(): privateModule.publicClass; - static myPublicStaticMethod1(): privateModule.publicClass; - myPublicMethod1(): privateModule.publicClass; - } - function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - function publicFunctionWithPrivateModuleParameterTypes1(): privateModule.publicClass; - function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - } - declare module privateModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivateParmeterTypes { - new (): privateClass; - (): privateClass; - [x: number]: privateClass; - myMethod(): privateClass; - } - interface publicInterfaceWithPublicParmeterTypes { - new (): publicClass; - (): publicClass; - [x: number]: publicClass; - myMethod(): publicClass; - } - class publicClassWithWithPrivateParmeterTypes { - static myPublicStaticMethod(): privateClass; - private static myPrivateStaticMethod; - myPublicMethod(): privateClass; - private myPrivateMethod; - static myPublicStaticMethod1(): privateClass; - private static myPrivateStaticMethod1; - myPublicMethod1(): privateClass; - private myPrivateMethod1; - } - class publicClassWithWithPublicParmeterTypes { - static myPublicStaticMethod(): publicClass; - private static myPrivateStaticMethod; - myPublicMethod(): publicClass; - private myPrivateMethod; - static myPublicStaticMethod1(): publicClass; - private static myPrivateStaticMethod1; - myPublicMethod1(): publicClass; - private myPrivateMethod1; - } - function publicFunctionWithPrivateParmeterTypes(): privateClass; - function publicFunctionWithPublicParmeterTypes(): publicClass; - function publicFunctionWithPrivateParmeterTypes1(): privateClass; - function publicFunctionWithPublicParmeterTypes1(): publicClass; - function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; - function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; - interface publicInterfaceWithPrivateModuleParameterTypes { - new (): privateModule.publicClass; - (): privateModule.publicClass; - [x: number]: privateModule.publicClass; - myMethod(): privateModule.publicClass; - } - class publicClassWithPrivateModuleParameterTypes { - static myPublicStaticMethod(): privateModule.publicClass; - myPublicMethod(): privateModule.publicClass; - static myPublicStaticMethod1(): publicClass; - myPublicMethod1(): publicClass; - } - function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - function publicFunctionWithPrivateModuleParameterTypes1(): publicClass; - function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - } - export {}; - -==== tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.d.ts (0 errors) ==== - declare class publicClassInGlobal { - } - interface publicInterfaceWithPublicParmeterTypesInGlobal { - new (): publicClassInGlobal; - (): publicClassInGlobal; - [x: number]: publicClassInGlobal; - myMethod(): publicClassInGlobal; - } - declare class publicClassWithWithPublicParmeterTypesInGlobal { - static myPublicStaticMethod(): publicClassInGlobal; - private static myPrivateStaticMethod; - myPublicMethod(): publicClassInGlobal; - private myPrivateMethod; - static myPublicStaticMethod1(): publicClassInGlobal; - private static myPrivateStaticMethod1; - myPublicMethod1(): publicClassInGlobal; - private myPrivateMethod1; - } - declare function publicFunctionWithPublicParmeterTypesInGlobal(): publicClassInGlobal; - declare function publicFunctionWithPublicParmeterTypesInGlobal1(): publicClassInGlobal; - declare function publicAmbientFunctionWithPublicParmeterTypesInGlobal(): publicClassInGlobal; - declare module publicModuleInGlobal { - class privateClass { - } - class publicClass { - } - module privateModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivateParmeterTypes { - new (): privateClass; - (): privateClass; - [x: number]: privateClass; - myMethod(): privateClass; - } - interface publicInterfaceWithPublicParmeterTypes { - new (): publicClass; - (): publicClass; - [x: number]: publicClass; - myMethod(): publicClass; - } - class publicClassWithWithPrivateParmeterTypes { - static myPublicStaticMethod(): privateClass; - private static myPrivateStaticMethod; - myPublicMethod(): privateClass; - private myPrivateMethod; - static myPublicStaticMethod1(): privateClass; - private static myPrivateStaticMethod1; - myPublicMethod1(): privateClass; - private myPrivateMethod1; - } - class publicClassWithWithPublicParmeterTypes { - static myPublicStaticMethod(): publicClass; - private static myPrivateStaticMethod; - myPublicMethod(): publicClass; - private myPrivateMethod; - static myPublicStaticMethod1(): publicClass; - private static myPrivateStaticMethod1; - myPublicMethod1(): publicClass; - private myPrivateMethod1; - } - function publicFunctionWithPrivateParmeterTypes(): privateClass; - function publicFunctionWithPublicParmeterTypes(): publicClass; - function publicFunctionWithPrivateParmeterTypes1(): privateClass; - function publicFunctionWithPublicParmeterTypes1(): publicClass; - function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; - function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; - interface publicInterfaceWithPrivateModuleParameterTypes { - new (): privateModule.publicClass; - (): privateModule.publicClass; - [x: number]: privateModule.publicClass; - myMethod(): privateModule.publicClass; - } - class publicClassWithPrivateModuleParameterTypes { - static myPublicStaticMethod(): privateModule.publicClass; - myPublicMethod(): privateModule.publicClass; - static myPublicStaticMethod1(): publicClass; - myPublicMethod1(): publicClass; - } - function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - function publicFunctionWithPrivateModuleParameterTypes1(): publicClass; - function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - } - interface publicInterfaceWithPrivateParmeterTypes { - new (): privateClass; - (): privateClass; - [x: number]: privateClass; - myMethod(): privateClass; - } - interface publicInterfaceWithPublicParmeterTypes { - new (): publicClass; - (): publicClass; - [x: number]: publicClass; - myMethod(): publicClass; - } - class publicClassWithWithPrivateParmeterTypes { - static myPublicStaticMethod(): privateClass; - private static myPrivateStaticMethod; - myPublicMethod(): privateClass; - private myPrivateMethod; - static myPublicStaticMethod1(): privateClass; - private static myPrivateStaticMethod1; - myPublicMethod1(): privateClass; - private myPrivateMethod1; - } - class publicClassWithWithPublicParmeterTypes { - static myPublicStaticMethod(): publicClass; - private static myPrivateStaticMethod; - myPublicMethod(): publicClass; - private myPrivateMethod; - static myPublicStaticMethod1(): publicClass; - private static myPrivateStaticMethod1; - myPublicMethod1(): publicClass; - private myPrivateMethod1; - } - function publicFunctionWithPrivateParmeterTypes(): privateClass; - function publicFunctionWithPublicParmeterTypes(): publicClass; - function publicFunctionWithPrivateParmeterTypes1(): privateClass; - function publicFunctionWithPublicParmeterTypes1(): publicClass; - function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; - function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; - interface publicInterfaceWithPrivateModuleParameterTypes { - new (): privateModule.publicClass; - (): privateModule.publicClass; - [x: number]: privateModule.publicClass; - myMethod(): privateModule.publicClass; - } - class publicClassWithPrivateModuleParameterTypes { - static myPublicStaticMethod(): privateModule.publicClass; - myPublicMethod(): privateModule.publicClass; - static myPublicStaticMethod1(): privateModule.publicClass; - myPublicMethod1(): privateModule.publicClass; - } - function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - function publicFunctionWithPrivateModuleParameterTypes1(): privateModule.publicClass; - function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; - } - \ No newline at end of file diff --git a/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js b/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js index 5edf0f819b1..01841c7c44b 100644 --- a/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js +++ b/tests/baselines/reference/privacyLocalInternalReferenceImportWithExport.js @@ -298,7 +298,7 @@ var import_private; //// [privacyLocalInternalReferenceImportWithExport.d.ts] -module m_private { +declare module m_private { class c_private { } enum e_private { @@ -369,86 +369,3 @@ export declare module import_public { var publicUse_im_public_mu_public: im_public_mu_public.i; } export {}; - - -//// [DtsFileErrors] - - -tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.d.ts(1,1): error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - - -==== tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.d.ts (1 errors) ==== - module m_private { - ~~~~~~ -!!! error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - class c_private { - } - enum e_private { - Happy = 0, - Grumpy = 1 - } - function f_private(): c_private; - var v_private: c_private; - interface i_private { - } - module mi_private { - class c { - } - } - module mu_private { - interface i { - } - } - } - 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; - } - export {}; - \ No newline at end of file diff --git a/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js b/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js index 73266bc1d02..35c047e0519 100644 --- a/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js +++ b/tests/baselines/reference/privacyLocalInternalReferenceImportWithoutExport.js @@ -300,7 +300,7 @@ define(["require", "exports"], function (require, exports) { //// [privacyLocalInternalReferenceImportWithoutExport.d.ts] -module m_private { +declare module m_private { class c_private { } enum e_private { @@ -367,82 +367,3 @@ export declare module import_public { var publicUse_im_private_mu_public: im_private_mu_public.i; } export {}; - - -//// [DtsFileErrors] - - -tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.d.ts(1,1): error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - - -==== tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.d.ts (1 errors) ==== - module m_private { - ~~~~~~ -!!! error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - class c_private { - } - enum e_private { - Happy = 0, - Grumpy = 1 - } - function f_private(): c_private; - var v_private: c_private; - interface i_private { - } - module mi_private { - class c { - } - } - module mu_private { - interface i { - } - } - } - 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; - } - export {}; - \ No newline at end of file diff --git a/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.js b/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.js index 840255f7648..32425e9d9a4 100644 --- a/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.js +++ b/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.js @@ -819,7 +819,7 @@ var privateModule; //// [privacyTypeParameterOfFunctionDeclFile.d.ts] -class privateClass { +declare class privateClass { } export declare class publicClass { } @@ -964,160 +964,3 @@ declare module privateModule { function publicFunctionWithPublicTypeParametersWithoutExtends(): void; } export {}; - - -//// [DtsFileErrors] - - -tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.d.ts(1,1): error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - - -==== tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.d.ts (1 errors) ==== - class privateClass { - ~~~~~ -!!! error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - } - export declare class publicClass { - } - export interface publicInterfaceWithPrivateTypeParameters { - new (): privateClass; - (): privateClass; - myMethod(): privateClass; - } - export interface publicInterfaceWithPublicTypeParameters { - new (): publicClass; - (): publicClass; - myMethod(): publicClass; - } - export declare class publicClassWithWithPrivateTypeParameters { - static myPublicStaticMethod(): void; - private static myPrivateStaticMethod; - myPublicMethod(): void; - private myPrivateMethod; - } - export declare class publicClassWithWithPublicTypeParameters { - static myPublicStaticMethod(): void; - private static myPrivateStaticMethod; - myPublicMethod(): void; - private myPrivateMethod; - } - export declare function publicFunctionWithPrivateTypeParameters(): void; - export declare function publicFunctionWithPublicTypeParameters(): void; - export interface publicInterfaceWithPublicTypeParametersWithoutExtends { - new (): publicClass; - (): publicClass; - myMethod(): publicClass; - } - export declare class publicClassWithWithPublicTypeParametersWithoutExtends { - static myPublicStaticMethod(): void; - private static myPrivateStaticMethod; - myPublicMethod(): void; - private myPrivateMethod; - } - export declare function publicFunctionWithPublicTypeParametersWithoutExtends(): void; - export interface publicInterfaceWithPrivatModuleTypeParameters { - new (): privateModule.publicClass; - (): privateModule.publicClass; - myMethod(): privateModule.publicClass; - } - export declare class publicClassWithWithPrivateModuleTypeParameters { - static myPublicStaticMethod(): void; - myPublicMethod(): void; - } - export declare function publicFunctionWithPrivateMopduleTypeParameters(): void; - export declare module publicModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivateTypeParameters { - new (): privateClass; - (): privateClass; - myMethod(): privateClass; - } - interface publicInterfaceWithPublicTypeParameters { - new (): publicClass; - (): publicClass; - myMethod(): publicClass; - } - class publicClassWithWithPrivateTypeParameters { - static myPublicStaticMethod(): void; - private static myPrivateStaticMethod; - myPublicMethod(): void; - private myPrivateMethod; - } - class publicClassWithWithPublicTypeParameters { - static myPublicStaticMethod(): void; - private static myPrivateStaticMethod; - myPublicMethod(): void; - private myPrivateMethod; - } - function publicFunctionWithPrivateTypeParameters(): void; - function publicFunctionWithPublicTypeParameters(): void; - interface publicInterfaceWithPublicTypeParametersWithoutExtends { - new (): publicClass; - (): publicClass; - myMethod(): publicClass; - } - class publicClassWithWithPublicTypeParametersWithoutExtends { - static myPublicStaticMethod(): void; - private static myPrivateStaticMethod; - myPublicMethod(): void; - private myPrivateMethod; - } - function publicFunctionWithPublicTypeParametersWithoutExtends(): void; - interface publicInterfaceWithPrivatModuleTypeParameters { - new (): privateModule.publicClass; - (): privateModule.publicClass; - myMethod(): privateModule.publicClass; - } - class publicClassWithWithPrivateModuleTypeParameters { - static myPublicStaticMethod(): void; - myPublicMethod(): void; - } - function publicFunctionWithPrivateMopduleTypeParameters(): void; - } - declare module privateModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivateTypeParameters { - new (): privateClass; - (): privateClass; - myMethod(): privateClass; - } - interface publicInterfaceWithPublicTypeParameters { - new (): publicClass; - (): publicClass; - myMethod(): publicClass; - } - class publicClassWithWithPrivateTypeParameters { - static myPublicStaticMethod(): void; - private static myPrivateStaticMethod; - myPublicMethod(): void; - private myPrivateMethod; - } - class publicClassWithWithPublicTypeParameters { - static myPublicStaticMethod(): void; - private static myPrivateStaticMethod; - myPublicMethod(): void; - private myPrivateMethod; - } - function publicFunctionWithPrivateTypeParameters(): void; - function publicFunctionWithPublicTypeParameters(): void; - interface publicInterfaceWithPublicTypeParametersWithoutExtends { - new (): publicClass; - (): publicClass; - myMethod(): publicClass; - } - class publicClassWithWithPublicTypeParametersWithoutExtends { - static myPublicStaticMethod(): void; - private static myPrivateStaticMethod; - myPublicMethod(): void; - private myPrivateMethod; - } - function publicFunctionWithPublicTypeParametersWithoutExtends(): void; - } - export {}; - \ No newline at end of file diff --git a/tests/baselines/reference/privacyTypeParametersOfClassDeclFile.js b/tests/baselines/reference/privacyTypeParametersOfClassDeclFile.js index b0dfadfce12..bcf4c542fb7 100644 --- a/tests/baselines/reference/privacyTypeParametersOfClassDeclFile.js +++ b/tests/baselines/reference/privacyTypeParametersOfClassDeclFile.js @@ -386,7 +386,7 @@ var privateModule; //// [privacyTypeParametersOfClassDeclFile.d.ts] -class privateClass { +declare class privateClass { } export declare class publicClass { } @@ -436,65 +436,3 @@ declare module privateModule { } } export {}; - - -//// [DtsFileErrors] - - -tests/cases/compiler/privacyTypeParametersOfClassDeclFile.d.ts(1,1): error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - - -==== tests/cases/compiler/privacyTypeParametersOfClassDeclFile.d.ts (1 errors) ==== - class privateClass { - ~~~~~ -!!! error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - } - export declare class publicClass { - } - export declare class publicClassWithPrivateTypeParameters { - myMethod(val: T): T; - } - export declare class publicClassWithPublicTypeParameters { - myMethod(val: T): T; - } - export declare class publicClassWithPublicTypeParametersWithoutExtends { - myMethod(val: T): T; - } - export declare class publicClassWithTypeParametersFromPrivateModule { - myMethod(val: T): T; - } - export declare module publicModule { - class privateClassInPublicModule { - } - class publicClassInPublicModule { - } - class publicClassWithPrivateTypeParameters { - myMethod(val: T): T; - } - class publicClassWithPublicTypeParameters { - myMethod(val: T): T; - } - class publicClassWithPublicTypeParametersWithoutExtends { - myMethod(val: T): T; - } - class publicClassWithTypeParametersFromPrivateModule { - myMethod(val: T): T; - } - } - declare module privateModule { - class privateClassInPrivateModule { - } - class publicClassInPrivateModule { - } - class publicClassWithPrivateTypeParameters { - myMethod(val: T): T; - } - class publicClassWithPublicTypeParameters { - myMethod(val: T): T; - } - class publicClassWithPublicTypeParametersWithoutExtends { - myMethod(val: T): T; - } - } - export {}; - \ No newline at end of file diff --git a/tests/baselines/reference/privacyTypeParametersOfInterfaceDeclFile.js b/tests/baselines/reference/privacyTypeParametersOfInterfaceDeclFile.js index 25e327c42aa..2a7a83e4577 100644 --- a/tests/baselines/reference/privacyTypeParametersOfInterfaceDeclFile.js +++ b/tests/baselines/reference/privacyTypeParametersOfInterfaceDeclFile.js @@ -268,11 +268,11 @@ var privateModule; //// [privacyTypeParametersOfInterfaceDeclFile.d.ts] -class privateClass { +declare class privateClass { } export declare class publicClass { } -class privateClassT { +declare class privateClassT { } export declare class publicClassT { } @@ -361,108 +361,3 @@ declare module privateModule { } } export {}; - - -//// [DtsFileErrors] - - -tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.d.ts(1,1): error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - - -==== tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.d.ts (1 errors) ==== - class privateClass { - ~~~~~ -!!! error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - } - export declare class publicClass { - } - class privateClassT { - } - export declare class publicClassT { - } - export interface publicInterfaceWithPrivateTypeParameters { - myMethod(val: T): T; - myMethod0(): publicClassT; - myMethod1(): privateClassT; - myMethod2(): privateClassT; - myMethod3(): publicClassT; - myMethod4(): publicClassT; - } - export interface publicInterfaceWithPublicTypeParameters { - myMethod(val: T): T; - myMethod0(): publicClassT; - myMethod1(): privateClassT; - myMethod2(): privateClassT; - myMethod3(): publicClassT; - myMethod4(): publicClassT; - } - export interface publicInterfaceWithPublicTypeParametersWithoutExtends { - myMethod(val: T): T; - myMethod0(): publicClassT; - } - export interface publicInterfaceWithPrivateModuleTypeParameterConstraints { - } - export declare module publicModule { - class privateClassInPublicModule { - } - class publicClassInPublicModule { - } - class privateClassInPublicModuleT { - } - class publicClassInPublicModuleT { - } - interface publicInterfaceWithPrivateTypeParameters { - myMethod(val: T): T; - myMethod0(): publicClassInPublicModuleT; - myMethod1(): privateClassInPublicModuleT; - myMethod2(): privateClassInPublicModuleT; - myMethod3(): publicClassInPublicModuleT; - myMethod4(): publicClassInPublicModuleT; - } - interface publicInterfaceWithPublicTypeParameters { - myMethod(val: T): T; - myMethod0(): publicClassInPublicModuleT; - myMethod1(): privateClassInPublicModuleT; - myMethod2(): privateClassInPublicModuleT; - myMethod3(): publicClassInPublicModuleT; - myMethod4(): publicClassInPublicModuleT; - } - interface publicInterfaceWithPublicTypeParametersWithoutExtends { - myMethod(val: T): T; - myMethod0(): publicClassInPublicModuleT; - } - interface publicInterfaceWithPrivateModuleTypeParameterConstraints { - } - } - declare module privateModule { - class privateClassInPrivateModule { - } - class publicClassInPrivateModule { - } - class privateClassInPrivateModuleT { - } - class publicClassInPrivateModuleT { - } - interface publicInterfaceWithPrivateTypeParameters { - myMethod(val: T): T; - myMethod0(): publicClassInPrivateModuleT; - myMethod1(): privateClassInPrivateModuleT; - myMethod2(): privateClassInPrivateModuleT; - myMethod3(): publicClassInPrivateModuleT; - myMethod4(): publicClassInPrivateModuleT; - } - interface publicInterfaceWithPublicTypeParameters { - myMethod(val: T): T; - myMethod0(): publicClassInPrivateModuleT; - myMethod1(): privateClassInPrivateModuleT; - myMethod2(): privateClassInPrivateModuleT; - myMethod3(): publicClassInPrivateModuleT; - myMethod4(): publicClassInPrivateModuleT; - } - interface publicInterfaceWithPublicTypeParametersWithoutExtends { - myMethod(val: T): T; - myMethod0(): publicClassInPrivateModuleT; - } - } - export {}; - \ No newline at end of file diff --git a/tests/baselines/reference/privacyVarDeclFile.js b/tests/baselines/reference/privacyVarDeclFile.js index 016ccda1de7..f32b8707534 100644 --- a/tests/baselines/reference/privacyVarDeclFile.js +++ b/tests/baselines/reference/privacyVarDeclFile.js @@ -689,7 +689,7 @@ var publicModuleInGlobal; //// [privacyVarDeclFile_externalModule.d.ts] -class privateClass { +declare class privateClass { } export declare class publicClass { } @@ -887,214 +887,3 @@ declare module publicModuleInGlobal { var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; } - - -//// [DtsFileErrors] - - -tests/cases/compiler/privacyVarDeclFile_externalModule.d.ts(1,1): error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - - -==== tests/cases/compiler/privacyVarDeclFile_externalModule.d.ts (1 errors) ==== - class privateClass { - ~~~~~ -!!! error TS1046: A 'declare' modifier is required for a top level declaration in a .d.ts file. - } - export declare class publicClass { - } - export interface publicInterfaceWithPrivatePropertyTypes { - myProperty: privateClass; - } - export interface publicInterfaceWithPublicPropertyTypes { - myProperty: publicClass; - } - export declare class publicClassWithWithPrivatePropertyTypes { - static myPublicStaticProperty: privateClass; - private static myPrivateStaticProperty; - myPublicProperty: privateClass; - private myPrivateProperty; - } - export declare class publicClassWithWithPublicPropertyTypes { - static myPublicStaticProperty: publicClass; - private static myPrivateStaticProperty; - myPublicProperty: publicClass; - private myPrivateProperty; - } - export declare var publicVarWithPrivatePropertyTypes: privateClass; - export declare var publicVarWithPublicPropertyTypes: publicClass; - export declare var publicAmbientVarWithPrivatePropertyTypes: privateClass; - export declare var publicAmbientVarWithPublicPropertyTypes: publicClass; - export interface publicInterfaceWithPrivateModulePropertyTypes { - myProperty: privateModule.publicClass; - } - export declare class publicClassWithPrivateModulePropertyTypes { - static myPublicStaticProperty: privateModule.publicClass; - myPublicProperty: privateModule.publicClass; - } - export declare var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; - export declare var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; - export declare module publicModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivatePropertyTypes { - myProperty: privateClass; - } - interface publicInterfaceWithPublicPropertyTypes { - myProperty: publicClass; - } - class publicClassWithWithPrivatePropertyTypes { - static myPublicStaticProperty: privateClass; - private static myPrivateStaticProperty; - myPublicProperty: privateClass; - private myPrivateProperty; - } - class publicClassWithWithPublicPropertyTypes { - static myPublicStaticProperty: publicClass; - private static myPrivateStaticProperty; - myPublicProperty: publicClass; - private myPrivateProperty; - } - var publicVarWithPrivatePropertyTypes: privateClass; - var publicVarWithPublicPropertyTypes: publicClass; - var publicAmbientVarWithPrivatePropertyTypes: privateClass; - var publicAmbientVarWithPublicPropertyTypes: publicClass; - interface publicInterfaceWithPrivateModulePropertyTypes { - myProperty: privateModule.publicClass; - } - class publicClassWithPrivateModulePropertyTypes { - static myPublicStaticProperty: privateModule.publicClass; - myPublicProperty: privateModule.publicClass; - } - var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; - var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; - } - declare module privateModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivatePropertyTypes { - myProperty: privateClass; - } - interface publicInterfaceWithPublicPropertyTypes { - myProperty: publicClass; - } - class publicClassWithWithPrivatePropertyTypes { - static myPublicStaticProperty: privateClass; - private static myPrivateStaticProperty; - myPublicProperty: privateClass; - private myPrivateProperty; - } - class publicClassWithWithPublicPropertyTypes { - static myPublicStaticProperty: publicClass; - private static myPrivateStaticProperty; - myPublicProperty: publicClass; - private myPrivateProperty; - } - var publicVarWithPrivatePropertyTypes: privateClass; - var publicVarWithPublicPropertyTypes: publicClass; - var publicAmbientVarWithPrivatePropertyTypes: privateClass; - var publicAmbientVarWithPublicPropertyTypes: publicClass; - interface publicInterfaceWithPrivateModulePropertyTypes { - myProperty: privateModule.publicClass; - } - class publicClassWithPrivateModulePropertyTypes { - static myPublicStaticProperty: privateModule.publicClass; - myPublicProperty: privateModule.publicClass; - } - var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; - var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; - } - export {}; - -==== tests/cases/compiler/privacyVarDeclFile_GlobalFile.d.ts (0 errors) ==== - declare class publicClassInGlobal { - } - interface publicInterfaceWithPublicPropertyTypesInGlobal { - myProperty: publicClassInGlobal; - } - declare class publicClassWithWithPublicPropertyTypesInGlobal { - static myPublicStaticProperty: publicClassInGlobal; - private static myPrivateStaticProperty; - myPublicProperty: publicClassInGlobal; - private myPrivateProperty; - } - declare var publicVarWithPublicPropertyTypesInGlobal: publicClassInGlobal; - declare var publicAmbientVarWithPublicPropertyTypesInGlobal: publicClassInGlobal; - declare module publicModuleInGlobal { - class privateClass { - } - class publicClass { - } - module privateModule { - class privateClass { - } - class publicClass { - } - interface publicInterfaceWithPrivatePropertyTypes { - myProperty: privateClass; - } - interface publicInterfaceWithPublicPropertyTypes { - myProperty: publicClass; - } - class publicClassWithWithPrivatePropertyTypes { - static myPublicStaticProperty: privateClass; - private static myPrivateStaticProperty; - myPublicProperty: privateClass; - private myPrivateProperty; - } - class publicClassWithWithPublicPropertyTypes { - static myPublicStaticProperty: publicClass; - private static myPrivateStaticProperty; - myPublicProperty: publicClass; - private myPrivateProperty; - } - var publicVarWithPrivatePropertyTypes: privateClass; - var publicVarWithPublicPropertyTypes: publicClass; - var publicAmbientVarWithPrivatePropertyTypes: privateClass; - var publicAmbientVarWithPublicPropertyTypes: publicClass; - interface publicInterfaceWithPrivateModulePropertyTypes { - myProperty: privateModule.publicClass; - } - class publicClassWithPrivateModulePropertyTypes { - static myPublicStaticProperty: privateModule.publicClass; - myPublicProperty: privateModule.publicClass; - } - var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; - var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; - } - interface publicInterfaceWithPrivatePropertyTypes { - myProperty: privateClass; - } - interface publicInterfaceWithPublicPropertyTypes { - myProperty: publicClass; - } - class publicClassWithWithPrivatePropertyTypes { - static myPublicStaticProperty: privateClass; - private static myPrivateStaticProperty; - myPublicProperty: privateClass; - private myPrivateProperty; - } - class publicClassWithWithPublicPropertyTypes { - static myPublicStaticProperty: publicClass; - private static myPrivateStaticProperty; - myPublicProperty: publicClass; - private myPrivateProperty; - } - var publicVarWithPrivatePropertyTypes: privateClass; - var publicVarWithPublicPropertyTypes: publicClass; - var publicAmbientVarWithPrivatePropertyTypes: privateClass; - var publicAmbientVarWithPublicPropertyTypes: publicClass; - interface publicInterfaceWithPrivateModulePropertyTypes { - myProperty: privateModule.publicClass; - } - class publicClassWithPrivateModulePropertyTypes { - static myPublicStaticProperty: privateModule.publicClass; - myPublicProperty: privateModule.publicClass; - } - var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; - var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; - } - \ No newline at end of file diff --git a/tests/cases/compiler/declarationEmitLocalClassHasRequiredDeclare.ts b/tests/cases/compiler/declarationEmitLocalClassHasRequiredDeclare.ts new file mode 100644 index 00000000000..67bbc871545 --- /dev/null +++ b/tests/cases/compiler/declarationEmitLocalClassHasRequiredDeclare.ts @@ -0,0 +1,16 @@ +// @declaration: true +export declare namespace A { + namespace X { } +} + +class X { } + +export class A { + static X = X; +} + +export declare namespace Y { + +} + +export class Y { } \ No newline at end of file