From 4cd2d3f8ddfc79e23387de49ad9b55a6dec192c5 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 6 Aug 2014 17:58:03 -0700 Subject: [PATCH] Report privacy errors on return types --- .../diagnosticInformationMap.generated.ts | 14 + src/compiler/diagnosticMessages.json | 56 + src/compiler/emitter.ts | 80 +- .../reference/declInput-2.errors.txt | 6 +- .../reference/exportImport.errors.txt | 16 + tests/baselines/reference/exportImport.js | 21 - ...ortImportNonInstantiatedModule2.errors.txt | 16 + .../exportImportNonInstantiatedModule2.js | 21 - ...ivacyFunctionReturnTypeDeclFile.errors.txt | 1324 ++++++++++ .../privacyFunctionReturnTypeDeclFile.js | 2279 +++++++++++++++++ ...TypeParameterOfFunctionDeclFile.errors.txt | 26 +- ...peParametersOfInterfaceDeclFile.errors.txt | 34 +- .../privacyFunctionReturnTypeDeclFile.ts | 1194 +++++++++ 13 files changed, 5036 insertions(+), 51 deletions(-) create mode 100644 tests/baselines/reference/exportImport.errors.txt create mode 100644 tests/baselines/reference/exportImportNonInstantiatedModule2.errors.txt create mode 100644 tests/baselines/reference/privacyFunctionReturnTypeDeclFile.errors.txt create mode 100644 tests/baselines/reference/privacyFunctionReturnTypeDeclFile.js create mode 100644 tests/cases/compiler/privacyFunctionReturnTypeDeclFile.ts diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 78c64edfa89..f694d17d0f4 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -134,6 +134,20 @@ module ts { Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 2047, category: DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." }, Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 2048, category: DiagnosticCategory.Error, key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." }, Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 2049, category: DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 2052, category: DiagnosticCategory.Error, key: "Return type of constructor signature from exported interface has or is using private name '{0}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 2053, category: DiagnosticCategory.Error, key: "Return type of call signature from exported interface has or is using private name '{0}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 2054, category: DiagnosticCategory.Error, key: "Return type of index signature from exported interface has or is using private name '{0}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { code: 2055, category: DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using private name '{0}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { code: 2056, category: DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using private name '{0}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { code: 2057, category: DiagnosticCategory.Error, key: "Return type of method from exported interface has or is using private name '{0}'." }, + Return_type_of_exported_function_has_or_is_using_private_name_0: { code: 2058, category: DiagnosticCategory.Error, key: "Return type of exported function has or is using private name '{0}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 2061, category: DiagnosticCategory.Error, key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 2062, category: DiagnosticCategory.Error, key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 2063, category: DiagnosticCategory.Error, key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 2064, category: DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 2065, category: DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 2066, category: DiagnosticCategory.Error, key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { code: 2067, category: DiagnosticCategory.Error, key: "Return type of exported function has or is using name '{0}' from private module '{1}'." }, Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 2208, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 2209, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 2210, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index d618a042ad3..ce3f792dbba 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -528,6 +528,62 @@ "category": "Error", "code": 2049 }, + "Return type of constructor signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 2052 + }, + "Return type of call signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 2053 + }, + "Return type of index signature from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 2054 + }, + "Return type of public static method from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 2055 + }, + "Return type of public method from exported class has or is using private name '{0}'.": { + "category": "Error", + "code": 2056 + }, + "Return type of method from exported interface has or is using private name '{0}'.": { + "category": "Error", + "code": 2057 + }, + "Return type of exported function has or is using private name '{0}'.": { + "category": "Error", + "code": 2058 + }, + "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 2061 + }, + "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 2062 + }, + "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 2063 + }, + "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 2064 + }, + "Return type of public method from exported class has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 2065 + }, + "Return type of method from exported interface has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 2066 + }, + "Return type of exported function has or is using name '{0}' from private module '{1}'.": { + "category": "Error", + "code": 2067 + }, "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { "category": "Error", "code": 2208 diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 7d1abbcaae9..6ea85c687ca 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1879,7 +1879,7 @@ module ts { var getSymbolVisibilityDiagnosticMessage: (symbolAccesibilityResult: SymbolAccessiblityResult) => { errorNode: Node; diagnosticMessage: DiagnosticMessage; - typeName: Identifier + typeName?: Identifier } function writeSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) { @@ -1909,11 +1909,19 @@ module ts { reportedDeclarationError = true; var errorInfo = getSymbolVisibilityDiagnosticMessage(symbolAccesibilityResult); if (errorInfo) { - diagnostics.push(createDiagnosticForNode(errorInfo.errorNode, - errorInfo.diagnosticMessage, - getSourceTextOfLocalNode(errorInfo.typeName), - symbolAccesibilityResult.errorSymbolName, - symbolAccesibilityResult.errorModuleName)); + if (errorInfo.typeName) { + diagnostics.push(createDiagnosticForNode(errorInfo.errorNode, + errorInfo.diagnosticMessage, + getSourceTextOfLocalNode(errorInfo.typeName), + symbolAccesibilityResult.errorSymbolName, + symbolAccesibilityResult.errorModuleName)); + } + else { + diagnostics.push(createDiagnosticForNode(errorInfo.errorNode, + errorInfo.diagnosticMessage, + symbolAccesibilityResult.errorSymbolName, + symbolAccesibilityResult.errorModuleName)); + } } } } @@ -2394,10 +2402,70 @@ module ts { // If this is not a constructor and is not private, emit the return type if (node.kind !== SyntaxKind.Constructor && !(node.flags & NodeFlags.Private)) { write(": "); + getSymbolVisibilityDiagnosticMessage = getReturnTypeVisibilityError; resolver.writeReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, TypeFormatFlags.None, writer); + // TODO(shkamat) This is just till we get rest of the error reporting up + getSymbolVisibilityDiagnosticMessage = undefined; } write(";"); writeLine(); + + function getReturnTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) { + // TODO(shkamat) Cannot access name errors + var diagnosticMessage: DiagnosticMessage; + switch (node.kind) { + case SyntaxKind.ConstructSignature: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; + break; + + case SyntaxKind.CallSignature: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; + break; + + case SyntaxKind.IndexSignature: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; + break; + + case SyntaxKind.Method: + if (node.flags & NodeFlags.Static) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; + } + else if (node.parent.kind === SyntaxKind.ClassDeclaration) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; + } + else { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; + } + break; + + case SyntaxKind.FunctionDeclaration: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : + Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; + break; + + default: + Debug.fail("This is unknown kind for signature: " + SyntaxKind[node.kind]); + } + + return { + diagnosticMessage: diagnosticMessage, + errorNode: node.name || node, + }; + } + } function emitParameterDeclaration(node: ParameterDeclaration) { diff --git a/tests/baselines/reference/declInput-2.errors.txt b/tests/baselines/reference/declInput-2.errors.txt index 89836c8caf7..a987b7ac179 100644 --- a/tests/baselines/reference/declInput-2.errors.txt +++ b/tests/baselines/reference/declInput-2.errors.txt @@ -1,4 +1,4 @@ -==== tests/cases/compiler/declInput-2.ts (3 errors) ==== +==== tests/cases/compiler/declInput-2.ts (5 errors) ==== module M { class C { } export class E {} @@ -19,10 +19,14 @@ public m232(): E { return null;} public m242(): I1 { return null; } public m252(): I2 { return null; } // don't generate + ~~~~ +!!! Return type of public method from exported class has or is using private name 'I2'. public m26(i:I1) {} public m262(i:I2) {} ~~~~ !!! Parameter 'i' of public method from exported class has or is using private name 'I2'. public m3():C { return new C(); } + ~~ +!!! Return type of public method from exported class has or is using private name 'C'. } } \ No newline at end of file diff --git a/tests/baselines/reference/exportImport.errors.txt b/tests/baselines/reference/exportImport.errors.txt new file mode 100644 index 00000000000..f9697857bc5 --- /dev/null +++ b/tests/baselines/reference/exportImport.errors.txt @@ -0,0 +1,16 @@ +==== tests/cases/compiler/consumer.ts (1 errors) ==== + import e = require('./exporter'); + + export function w(): e.w { // Should be OK + ~ +!!! Return type of exported function has or is using private name 'Widget1'. + return new e.w(); + } +==== tests/cases/compiler/w1.ts (0 errors) ==== + + export = Widget1 + class Widget1 { name = 'one'; } + +==== tests/cases/compiler/exporter.ts (0 errors) ==== + export import w = require('./w1'); + \ No newline at end of file diff --git a/tests/baselines/reference/exportImport.js b/tests/baselines/reference/exportImport.js index 6c0e64f0710..413d0b37999 100644 --- a/tests/baselines/reference/exportImport.js +++ b/tests/baselines/reference/exportImport.js @@ -45,24 +45,3 @@ declare class Widget1 { } //// [exporter.d.ts] export import w = require('./w1'); -//// [consumer.d.ts] -export declare function w(): Widget1; - - -//// [DtsFileErrors] - - -==== tests/cases/compiler/consumer.d.ts (1 errors) ==== - export declare function w(): Widget1; - ~~~~~~~ -!!! Cannot find name 'Widget1'. - -==== tests/cases/compiler/w1.d.ts (0 errors) ==== - export = Widget1; - declare class Widget1 { - name: string; - } - -==== tests/cases/compiler/exporter.d.ts (0 errors) ==== - export import w = require('./w1'); - \ No newline at end of file diff --git a/tests/baselines/reference/exportImportNonInstantiatedModule2.errors.txt b/tests/baselines/reference/exportImportNonInstantiatedModule2.errors.txt new file mode 100644 index 00000000000..198e3e2369f --- /dev/null +++ b/tests/baselines/reference/exportImportNonInstantiatedModule2.errors.txt @@ -0,0 +1,16 @@ +==== tests/cases/compiler/consumer.ts (1 errors) ==== + import e = require('./exporter'); + + export function w(): e.w { // Should be OK + ~ +!!! Return type of exported function has or is using private name 'Widget1'. + return {name: 'value' }; + } +==== tests/cases/compiler/w1.ts (0 errors) ==== + + export = Widget1 + interface Widget1 { name: string; } + +==== tests/cases/compiler/exporter.ts (0 errors) ==== + export import w = require('./w1'); + \ No newline at end of file diff --git a/tests/baselines/reference/exportImportNonInstantiatedModule2.js b/tests/baselines/reference/exportImportNonInstantiatedModule2.js index 9aa343ee86b..4c3c54da31c 100644 --- a/tests/baselines/reference/exportImportNonInstantiatedModule2.js +++ b/tests/baselines/reference/exportImportNonInstantiatedModule2.js @@ -37,24 +37,3 @@ interface Widget1 { } //// [exporter.d.ts] export import w = require('./w1'); -//// [consumer.d.ts] -export declare function w(): Widget1; - - -//// [DtsFileErrors] - - -==== tests/cases/compiler/consumer.d.ts (1 errors) ==== - export declare function w(): Widget1; - ~~~~~~~ -!!! Cannot find name 'Widget1'. - -==== tests/cases/compiler/w1.d.ts (0 errors) ==== - export = Widget1; - interface Widget1 { - name: string; - } - -==== tests/cases/compiler/exporter.d.ts (0 errors) ==== - export import w = require('./w1'); - \ No newline at end of file diff --git a/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.errors.txt b/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.errors.txt new file mode 100644 index 00000000000..0fe9b40ea83 --- /dev/null +++ b/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.errors.txt @@ -0,0 +1,1324 @@ +==== tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts (44 errors) ==== + + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of constructor signature from exported interface has or is using private name 'privateClass'. + (): privateClass; // Error + ~~~~~~~~~~~~~~~~~ +!!! Return type of call signature from exported interface has or is using private name 'privateClass'. + [x: number]: privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of index signature from exported interface has or is using private name 'privateClass'. + myMethod(): privateClass; // Error + ~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClass'. + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { // Error + ~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using private name 'privateClass'. + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { // Error + ~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using private name 'privateClass'. + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { // Error + ~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using private name 'privateClass'. + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { // Error + ~~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using private name 'privateClass'. + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using private name 'privateClass'. + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using private name 'privateClass'. + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using private name 'privateClass'. + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + (): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + [x: number]: privateModule.publicClass // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of index signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + myMethod(): privateModule.publicClass; // Error + ~~~~~~~~ +!!! Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { // Error + ~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return null; + } + myPublicMethod(): privateModule.publicClass { // Error + ~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return null; + } + static myPublicStaticMethod1() { // Error + ~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return new privateModule.publicClass(); + } + myPublicMethod1() { // Error + ~~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + + export module publicModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of constructor signature from exported interface has or is using private name 'privateClass'. + (): privateClass; // Error + ~~~~~~~~~~~~~~~~~ +!!! Return type of call signature from exported interface has or is using private name 'privateClass'. + [x: number]: privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of index signature from exported interface has or is using private name 'privateClass'. + myMethod(): privateClass; // Error + ~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClass'. + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { // Error + ~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using private name 'privateClass'. + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { // Error + ~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using private name 'privateClass'. + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { // Error + ~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using private name 'privateClass'. + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { // Error + ~~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using private name 'privateClass'. + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using private name 'privateClass'. + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using private name 'privateClass'. + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using private name 'privateClass'. + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + (): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + [x: number]: privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of index signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + myMethod(): privateModule.publicClass; // Error + ~~~~~~~~ +!!! Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { // Error + ~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return null; + } + myPublicMethod(): privateModule.publicClass { // Error + ~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return null; + } + static myPublicStaticMethod1() { // Error + ~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return new privateModule.publicClass(); + } + myPublicMethod1() { // Error + ~~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + } + + module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + } + +==== tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts (22 errors) ==== + class publicClassInGlobal { + } + interface publicInterfaceWithPublicParmeterTypesInGlobal { + new (): publicClassInGlobal; + (): publicClassInGlobal; + [x: number]: publicClassInGlobal; + myMethod(): publicClassInGlobal; + } + class publicClassWithWithPublicParmeterTypesInGlobal { + static myPublicStaticMethod(): publicClassInGlobal { + return null; + } + private static myPrivateStaticMethod(): publicClassInGlobal { + return null; + } + myPublicMethod(): publicClassInGlobal { + return null; + } + private myPrivateMethod(): publicClassInGlobal { + return null; + } + static myPublicStaticMethod1() { + return new publicClassInGlobal(); + } + private static myPrivateStaticMethod1() { + return new publicClassInGlobal(); + } + myPublicMethod1() { + return new publicClassInGlobal(); + } + private myPrivateMethod1() { + return new publicClassInGlobal(); + } + } + function publicFunctionWithPublicParmeterTypesInGlobal(): publicClassInGlobal { + return null; + } + function publicFunctionWithPublicParmeterTypesInGlobal1() { + return new publicClassInGlobal(); + } + declare function publicAmbientFunctionWithPublicParmeterTypesInGlobal(): publicClassInGlobal; + + module publicModuleInGlobal { + class privateClass { + } + + export class publicClass { + } + + module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of constructor signature from exported interface has or is using private name 'privateClass'. + (): privateClass; // Error + ~~~~~~~~~~~~~~~~~ +!!! Return type of call signature from exported interface has or is using private name 'privateClass'. + [x: number]: privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of index signature from exported interface has or is using private name 'privateClass'. + myMethod(): privateClass; // Error + ~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClass'. + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { // Error + ~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using private name 'privateClass'. + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { // Error + ~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using private name 'privateClass'. + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { // Error + ~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using private name 'privateClass'. + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { // Error + ~~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using private name 'privateClass'. + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using private name 'privateClass'. + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using private name 'privateClass'. + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using private name 'privateClass'. + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + (): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + [x: number]: privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of index signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + myMethod(): privateModule.publicClass; // Error + ~~~~~~~~ +!!! Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { // Error + ~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return null; + } + myPublicMethod(): privateModule.publicClass { // Error + ~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return null; + } + static myPublicStaticMethod1() { // Error + ~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return new privateModule.publicClass(); + } + myPublicMethod1() { // Error + ~~~~~~~~~~~~~~~ +!!! Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + } \ No newline at end of file diff --git a/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.js b/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.js new file mode 100644 index 00000000000..06a64104148 --- /dev/null +++ b/tests/baselines/reference/privacyFunctionReturnTypeDeclFile.js @@ -0,0 +1,2279 @@ +//// [tests/cases/compiler/privacyFunctionReturnTypeDeclFile.ts] //// + +//// [privacyFunctionReturnTypeDeclFile_externalModule.ts] + +class privateClass { +} + +export class publicClass { +} + +export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; // Error + (): privateClass; // Error + [x: number]: privateClass; // Error + myMethod(): privateClass; // Error +} + +export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; +} + +interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; +} + +interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; +} + +export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { // Error + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { // Error + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { // Error + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { // Error + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } +} + +export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } +} + +class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } +} + +class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } +} + +export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error + return null; +} +export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; +} +function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; +} +function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; +} +export function publicFunctionWithPrivateParmeterTypes1() { // Error + return new privateClass(); +} +export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); +} +function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); +} +function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); +} + +export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error +export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; +declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; +declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + +export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; // Error + (): privateModule.publicClass; // Error + [x: number]: privateModule.publicClass // Error + myMethod(): privateModule.publicClass; // Error +} +export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { // Error + return null; + } + myPublicMethod(): privateModule.publicClass { // Error + return null; + } + static myPublicStaticMethod1() { // Error + return new privateModule.publicClass(); + } + myPublicMethod1() { // Error + return new privateModule.publicClass(); + } +} +export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error + return null; +} +export function publicFunctionWithPrivateModuleParameterTypes1() { // Error + return new privateModule.publicClass(); +} +export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + +interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass + myMethod(): privateModule.publicClass; +} +class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } +} +function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; +} +function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); +} +declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + +export module publicModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; // Error + (): privateClass; // Error + [x: number]: privateClass; // Error + myMethod(): privateClass; // Error + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { // Error + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { // Error + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { // Error + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { // Error + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { // Error + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; // Error + (): privateModule.publicClass; // Error + [x: number]: privateModule.publicClass; // Error + myMethod(): privateModule.publicClass; // Error + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { // Error + return null; + } + myPublicMethod(): privateModule.publicClass { // Error + return null; + } + static myPublicStaticMethod1() { // Error + return new privateModule.publicClass(); + } + myPublicMethod1() { // Error + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { // Error + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; +} + +module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; +} + +//// [privacyFunctionReturnTypeDeclFile_GlobalFile.ts] +class publicClassInGlobal { +} +interface publicInterfaceWithPublicParmeterTypesInGlobal { + new (): publicClassInGlobal; + (): publicClassInGlobal; + [x: number]: publicClassInGlobal; + myMethod(): publicClassInGlobal; +} +class publicClassWithWithPublicParmeterTypesInGlobal { + static myPublicStaticMethod(): publicClassInGlobal { + return null; + } + private static myPrivateStaticMethod(): publicClassInGlobal { + return null; + } + myPublicMethod(): publicClassInGlobal { + return null; + } + private myPrivateMethod(): publicClassInGlobal { + return null; + } + static myPublicStaticMethod1() { + return new publicClassInGlobal(); + } + private static myPrivateStaticMethod1() { + return new publicClassInGlobal(); + } + myPublicMethod1() { + return new publicClassInGlobal(); + } + private myPrivateMethod1() { + return new publicClassInGlobal(); + } +} +function publicFunctionWithPublicParmeterTypesInGlobal(): publicClassInGlobal { + return null; +} +function publicFunctionWithPublicParmeterTypesInGlobal1() { + return new publicClassInGlobal(); +} +declare function publicAmbientFunctionWithPublicParmeterTypesInGlobal(): publicClassInGlobal; + +module publicModuleInGlobal { + class privateClass { + } + + export class publicClass { + } + + module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; // Error + (): privateClass; // Error + [x: number]: privateClass; // Error + myMethod(): privateClass; // Error + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { // Error + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { // Error + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { // Error + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { // Error + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { // Error + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; // Error + (): privateModule.publicClass; // Error + [x: number]: privateModule.publicClass; // Error + myMethod(): privateModule.publicClass; // Error + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { // Error + return null; + } + myPublicMethod(): privateModule.publicClass { // Error + return null; + } + static myPublicStaticMethod1() { // Error + return new privateModule.publicClass(); + } + myPublicMethod1() { // Error + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { // Error + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; +} + +//// [privacyFunctionReturnTypeDeclFile_externalModule.js] +var privateClass = (function () { + function privateClass() { + } + return privateClass; +})(); +var publicClass = (function () { + function publicClass() { + } + return publicClass; +})(); +exports.publicClass = publicClass; +var publicClassWithWithPrivateParmeterTypes = (function () { + function publicClassWithWithPrivateParmeterTypes() { + } + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod1 = function () { + return new privateClass(); + }; + return publicClassWithWithPrivateParmeterTypes; +})(); +exports.publicClassWithWithPrivateParmeterTypes = publicClassWithWithPrivateParmeterTypes; +var publicClassWithWithPublicParmeterTypes = (function () { + function publicClassWithWithPublicParmeterTypes() { + } + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod1 = function () { + return new publicClass(); + }; + return publicClassWithWithPublicParmeterTypes; +})(); +exports.publicClassWithWithPublicParmeterTypes = publicClassWithWithPublicParmeterTypes; +var privateClassWithWithPrivateParmeterTypes = (function () { + function privateClassWithWithPrivateParmeterTypes() { + } + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod1 = function () { + return new privateClass(); + }; + return privateClassWithWithPrivateParmeterTypes; +})(); +var privateClassWithWithPublicParmeterTypes = (function () { + function privateClassWithWithPublicParmeterTypes() { + } + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod1 = function () { + return new publicClass(); + }; + return privateClassWithWithPublicParmeterTypes; +})(); +function publicFunctionWithPrivateParmeterTypes() { + return null; +} +exports.publicFunctionWithPrivateParmeterTypes = publicFunctionWithPrivateParmeterTypes; +function publicFunctionWithPublicParmeterTypes() { + return null; +} +exports.publicFunctionWithPublicParmeterTypes = publicFunctionWithPublicParmeterTypes; +function privateFunctionWithPrivateParmeterTypes() { + return null; +} +function privateFunctionWithPublicParmeterTypes() { + return null; +} +function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); +} +exports.publicFunctionWithPrivateParmeterTypes1 = publicFunctionWithPrivateParmeterTypes1; +function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); +} +exports.publicFunctionWithPublicParmeterTypes1 = publicFunctionWithPublicParmeterTypes1; +function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); +} +function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); +} +var publicClassWithPrivateModuleParameterTypes = (function () { + function publicClassWithPrivateModuleParameterTypes() { + } + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod1 = function () { + return new privateModule.publicClass(); + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod1 = function () { + return new privateModule.publicClass(); + }; + return publicClassWithPrivateModuleParameterTypes; +})(); +exports.publicClassWithPrivateModuleParameterTypes = publicClassWithPrivateModuleParameterTypes; +function publicFunctionWithPrivateModuleParameterTypes() { + return null; +} +exports.publicFunctionWithPrivateModuleParameterTypes = publicFunctionWithPrivateModuleParameterTypes; +function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); +} +exports.publicFunctionWithPrivateModuleParameterTypes1 = publicFunctionWithPrivateModuleParameterTypes1; +var privateClassWithPrivateModuleParameterTypes = (function () { + function privateClassWithPrivateModuleParameterTypes() { + } + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod1 = function () { + return new privateModule.publicClass(); + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod1 = function () { + return new privateModule.publicClass(); + }; + return privateClassWithPrivateModuleParameterTypes; +})(); +function privateFunctionWithPrivateModuleParameterTypes() { + return null; +} +function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); +} +(function (publicModule) { + var privateClass = (function () { + function privateClass() { + } + return privateClass; + })(); + var publicClass = (function () { + function publicClass() { + } + return publicClass; + })(); + publicModule.publicClass = publicClass; + var publicClassWithWithPrivateParmeterTypes = (function () { + function publicClassWithWithPrivateParmeterTypes() { + } + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod1 = function () { + return new privateClass(); + }; + return publicClassWithWithPrivateParmeterTypes; + })(); + publicModule.publicClassWithWithPrivateParmeterTypes = publicClassWithWithPrivateParmeterTypes; + var publicClassWithWithPublicParmeterTypes = (function () { + function publicClassWithWithPublicParmeterTypes() { + } + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod1 = function () { + return new publicClass(); + }; + return publicClassWithWithPublicParmeterTypes; + })(); + publicModule.publicClassWithWithPublicParmeterTypes = publicClassWithWithPublicParmeterTypes; + var privateClassWithWithPrivateParmeterTypes = (function () { + function privateClassWithWithPrivateParmeterTypes() { + } + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod1 = function () { + return new privateClass(); + }; + return privateClassWithWithPrivateParmeterTypes; + })(); + var privateClassWithWithPublicParmeterTypes = (function () { + function privateClassWithWithPublicParmeterTypes() { + } + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod1 = function () { + return new publicClass(); + }; + return privateClassWithWithPublicParmeterTypes; + })(); + function publicFunctionWithPrivateParmeterTypes() { + return null; + } + publicModule.publicFunctionWithPrivateParmeterTypes = publicFunctionWithPrivateParmeterTypes; + function publicFunctionWithPublicParmeterTypes() { + return null; + } + publicModule.publicFunctionWithPublicParmeterTypes = publicFunctionWithPublicParmeterTypes; + function privateFunctionWithPrivateParmeterTypes() { + return null; + } + function privateFunctionWithPublicParmeterTypes() { + return null; + } + function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + publicModule.publicFunctionWithPrivateParmeterTypes1 = publicFunctionWithPrivateParmeterTypes1; + function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + publicModule.publicFunctionWithPublicParmeterTypes1 = publicFunctionWithPublicParmeterTypes1; + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + var publicClassWithPrivateModuleParameterTypes = (function () { + function publicClassWithPrivateModuleParameterTypes() { + } + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod1 = function () { + return new privateModule.publicClass(); + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod1 = function () { + return new privateModule.publicClass(); + }; + return publicClassWithPrivateModuleParameterTypes; + })(); + publicModule.publicClassWithPrivateModuleParameterTypes = publicClassWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes() { + return null; + } + publicModule.publicFunctionWithPrivateModuleParameterTypes = publicFunctionWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + publicModule.publicFunctionWithPrivateModuleParameterTypes1 = publicFunctionWithPrivateModuleParameterTypes1; + var privateClassWithPrivateModuleParameterTypes = (function () { + function privateClassWithPrivateModuleParameterTypes() { + } + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod1 = function () { + return new privateModule.publicClass(); + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod1 = function () { + return new privateModule.publicClass(); + }; + return privateClassWithPrivateModuleParameterTypes; + })(); + function privateFunctionWithPrivateModuleParameterTypes() { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } +})(exports.publicModule || (exports.publicModule = {})); +var publicModule = exports.publicModule; +var privateModule; +(function (privateModule) { + var privateClass = (function () { + function privateClass() { + } + return privateClass; + })(); + var publicClass = (function () { + function publicClass() { + } + return publicClass; + })(); + privateModule.publicClass = publicClass; + var publicClassWithWithPrivateParmeterTypes = (function () { + function publicClassWithWithPrivateParmeterTypes() { + } + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod1 = function () { + return new privateClass(); + }; + return publicClassWithWithPrivateParmeterTypes; + })(); + privateModule.publicClassWithWithPrivateParmeterTypes = publicClassWithWithPrivateParmeterTypes; + var publicClassWithWithPublicParmeterTypes = (function () { + function publicClassWithWithPublicParmeterTypes() { + } + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod1 = function () { + return new publicClass(); + }; + return publicClassWithWithPublicParmeterTypes; + })(); + privateModule.publicClassWithWithPublicParmeterTypes = publicClassWithWithPublicParmeterTypes; + var privateClassWithWithPrivateParmeterTypes = (function () { + function privateClassWithWithPrivateParmeterTypes() { + } + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod1 = function () { + return new privateClass(); + }; + return privateClassWithWithPrivateParmeterTypes; + })(); + var privateClassWithWithPublicParmeterTypes = (function () { + function privateClassWithWithPublicParmeterTypes() { + } + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod1 = function () { + return new publicClass(); + }; + return privateClassWithWithPublicParmeterTypes; + })(); + function publicFunctionWithPrivateParmeterTypes() { + return null; + } + privateModule.publicFunctionWithPrivateParmeterTypes = publicFunctionWithPrivateParmeterTypes; + function publicFunctionWithPublicParmeterTypes() { + return null; + } + privateModule.publicFunctionWithPublicParmeterTypes = publicFunctionWithPublicParmeterTypes; + function privateFunctionWithPrivateParmeterTypes() { + return null; + } + function privateFunctionWithPublicParmeterTypes() { + return null; + } + function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + privateModule.publicFunctionWithPrivateParmeterTypes1 = publicFunctionWithPrivateParmeterTypes1; + function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + privateModule.publicFunctionWithPublicParmeterTypes1 = publicFunctionWithPublicParmeterTypes1; + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + var publicClassWithPrivateModuleParameterTypes = (function () { + function publicClassWithPrivateModuleParameterTypes() { + } + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod1 = function () { + return new privateModule.publicClass(); + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod1 = function () { + return new privateModule.publicClass(); + }; + return publicClassWithPrivateModuleParameterTypes; + })(); + privateModule.publicClassWithPrivateModuleParameterTypes = publicClassWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes() { + return null; + } + privateModule.publicFunctionWithPrivateModuleParameterTypes = publicFunctionWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + privateModule.publicFunctionWithPrivateModuleParameterTypes1 = publicFunctionWithPrivateModuleParameterTypes1; + var privateClassWithPrivateModuleParameterTypes = (function () { + function privateClassWithPrivateModuleParameterTypes() { + } + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod1 = function () { + return new privateModule.publicClass(); + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod1 = function () { + return new privateModule.publicClass(); + }; + return privateClassWithPrivateModuleParameterTypes; + })(); + function privateFunctionWithPrivateModuleParameterTypes() { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } +})(privateModule || (privateModule = {})); +//// [privacyFunctionReturnTypeDeclFile_GlobalFile.js] +var publicClassInGlobal = (function () { + function publicClassInGlobal() { + } + return publicClassInGlobal; +})(); +var publicClassWithWithPublicParmeterTypesInGlobal = (function () { + function publicClassWithWithPublicParmeterTypesInGlobal() { + } + publicClassWithWithPublicParmeterTypesInGlobal.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypesInGlobal.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypesInGlobal.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypesInGlobal.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypesInGlobal.myPublicStaticMethod1 = function () { + return new publicClassInGlobal(); + }; + publicClassWithWithPublicParmeterTypesInGlobal.myPrivateStaticMethod1 = function () { + return new publicClassInGlobal(); + }; + publicClassWithWithPublicParmeterTypesInGlobal.prototype.myPublicMethod1 = function () { + return new publicClassInGlobal(); + }; + publicClassWithWithPublicParmeterTypesInGlobal.prototype.myPrivateMethod1 = function () { + return new publicClassInGlobal(); + }; + return publicClassWithWithPublicParmeterTypesInGlobal; +})(); +function publicFunctionWithPublicParmeterTypesInGlobal() { + return null; +} +function publicFunctionWithPublicParmeterTypesInGlobal1() { + return new publicClassInGlobal(); +} +var publicModuleInGlobal; +(function (publicModuleInGlobal) { + var privateClass = (function () { + function privateClass() { + } + return privateClass; + })(); + var publicClass = (function () { + function publicClass() { + } + return publicClass; + })(); + publicModuleInGlobal.publicClass = publicClass; + var privateModule; + (function (privateModule) { + var privateClass = (function () { + function privateClass() { + } + return privateClass; + })(); + var publicClass = (function () { + function publicClass() { + } + return publicClass; + })(); + privateModule.publicClass = publicClass; + var publicClassWithWithPrivateParmeterTypes = (function () { + function publicClassWithWithPrivateParmeterTypes() { + } + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod1 = function () { + return new privateClass(); + }; + return publicClassWithWithPrivateParmeterTypes; + })(); + privateModule.publicClassWithWithPrivateParmeterTypes = publicClassWithWithPrivateParmeterTypes; + var publicClassWithWithPublicParmeterTypes = (function () { + function publicClassWithWithPublicParmeterTypes() { + } + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod1 = function () { + return new publicClass(); + }; + return publicClassWithWithPublicParmeterTypes; + })(); + privateModule.publicClassWithWithPublicParmeterTypes = publicClassWithWithPublicParmeterTypes; + var privateClassWithWithPrivateParmeterTypes = (function () { + function privateClassWithWithPrivateParmeterTypes() { + } + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod1 = function () { + return new privateClass(); + }; + return privateClassWithWithPrivateParmeterTypes; + })(); + var privateClassWithWithPublicParmeterTypes = (function () { + function privateClassWithWithPublicParmeterTypes() { + } + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod1 = function () { + return new publicClass(); + }; + return privateClassWithWithPublicParmeterTypes; + })(); + function publicFunctionWithPrivateParmeterTypes() { + return null; + } + privateModule.publicFunctionWithPrivateParmeterTypes = publicFunctionWithPrivateParmeterTypes; + function publicFunctionWithPublicParmeterTypes() { + return null; + } + privateModule.publicFunctionWithPublicParmeterTypes = publicFunctionWithPublicParmeterTypes; + function privateFunctionWithPrivateParmeterTypes() { + return null; + } + function privateFunctionWithPublicParmeterTypes() { + return null; + } + function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + privateModule.publicFunctionWithPrivateParmeterTypes1 = publicFunctionWithPrivateParmeterTypes1; + function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + privateModule.publicFunctionWithPublicParmeterTypes1 = publicFunctionWithPublicParmeterTypes1; + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + var publicClassWithPrivateModuleParameterTypes = (function () { + function publicClassWithPrivateModuleParameterTypes() { + } + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod1 = function () { + return new privateModule.publicClass(); + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod1 = function () { + return new privateModule.publicClass(); + }; + return publicClassWithPrivateModuleParameterTypes; + })(); + privateModule.publicClassWithPrivateModuleParameterTypes = publicClassWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes() { + return null; + } + privateModule.publicFunctionWithPrivateModuleParameterTypes = publicFunctionWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + privateModule.publicFunctionWithPrivateModuleParameterTypes1 = publicFunctionWithPrivateModuleParameterTypes1; + var privateClassWithPrivateModuleParameterTypes = (function () { + function privateClassWithPrivateModuleParameterTypes() { + } + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod1 = function () { + return new privateModule.publicClass(); + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod1 = function () { + return new privateModule.publicClass(); + }; + return privateClassWithPrivateModuleParameterTypes; + })(); + function privateFunctionWithPrivateModuleParameterTypes() { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + })(privateModule || (privateModule = {})); + var publicClassWithWithPrivateParmeterTypes = (function () { + function publicClassWithWithPrivateParmeterTypes() { + } + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod1 = function () { + return new privateClass(); + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod1 = function () { + return new privateClass(); + }; + return publicClassWithWithPrivateParmeterTypes; + })(); + publicModuleInGlobal.publicClassWithWithPrivateParmeterTypes = publicClassWithWithPrivateParmeterTypes; + var publicClassWithWithPublicParmeterTypes = (function () { + function publicClassWithWithPublicParmeterTypes() { + } + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod1 = function () { + return new publicClass(); + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod1 = function () { + return new publicClass(); + }; + return publicClassWithWithPublicParmeterTypes; + })(); + publicModuleInGlobal.publicClassWithWithPublicParmeterTypes = publicClassWithWithPublicParmeterTypes; + var privateClassWithWithPrivateParmeterTypes = (function () { + function privateClassWithWithPrivateParmeterTypes() { + } + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod1 = function () { + return new privateClass(); + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod1 = function () { + return new privateClass(); + }; + return privateClassWithWithPrivateParmeterTypes; + })(); + var privateClassWithWithPublicParmeterTypes = (function () { + function privateClassWithWithPublicParmeterTypes() { + } + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function () { + return null; + }; + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod1 = function () { + return new publicClass(); + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod1 = function () { + return new publicClass(); + }; + return privateClassWithWithPublicParmeterTypes; + })(); + function publicFunctionWithPrivateParmeterTypes() { + return null; + } + publicModuleInGlobal.publicFunctionWithPrivateParmeterTypes = publicFunctionWithPrivateParmeterTypes; + function publicFunctionWithPublicParmeterTypes() { + return null; + } + publicModuleInGlobal.publicFunctionWithPublicParmeterTypes = publicFunctionWithPublicParmeterTypes; + function privateFunctionWithPrivateParmeterTypes() { + return null; + } + function privateFunctionWithPublicParmeterTypes() { + return null; + } + function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + publicModuleInGlobal.publicFunctionWithPrivateParmeterTypes1 = publicFunctionWithPrivateParmeterTypes1; + function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + publicModuleInGlobal.publicFunctionWithPublicParmeterTypes1 = publicFunctionWithPublicParmeterTypes1; + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + var publicClassWithPrivateModuleParameterTypes = (function () { + function publicClassWithPrivateModuleParameterTypes() { + } + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function () { + return null; + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function () { + return null; + }; + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod1 = function () { + return new privateModule.publicClass(); + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod1 = function () { + return new privateModule.publicClass(); + }; + return publicClassWithPrivateModuleParameterTypes; + })(); + publicModuleInGlobal.publicClassWithPrivateModuleParameterTypes = publicClassWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes() { + return null; + } + publicModuleInGlobal.publicFunctionWithPrivateModuleParameterTypes = publicFunctionWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + publicModuleInGlobal.publicFunctionWithPrivateModuleParameterTypes1 = publicFunctionWithPrivateModuleParameterTypes1; + var privateClassWithPrivateModuleParameterTypes = (function () { + function privateClassWithPrivateModuleParameterTypes() { + } + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function () { + return null; + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function () { + return null; + }; + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod1 = function () { + return new privateModule.publicClass(); + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod1 = function () { + return new privateModule.publicClass(); + }; + return privateClassWithPrivateModuleParameterTypes; + })(); + function privateFunctionWithPrivateModuleParameterTypes() { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } +})(publicModuleInGlobal || (publicModuleInGlobal = {})); diff --git a/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.errors.txt b/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.errors.txt index 8e892e57dee..3297ac7228d 100644 --- a/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.errors.txt +++ b/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.errors.txt @@ -1,4 +1,4 @@ -==== tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts (24 errors) ==== +==== tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts (36 errors) ==== class privateClass { } @@ -7,12 +7,18 @@ export interface publicInterfaceWithPrivateTypeParameters { new (): privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of constructor signature from exported interface has or is using private name 'privateClass'. ~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateClass'. (): privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of call signature from exported interface has or is using private name 'privateClass'. ~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of call signature from exported interface has or is using private name 'privateClass'. myMethod(): privateClass; // Error + ~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClass'. ~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of method from exported interface has or is using private name 'privateClass'. } @@ -138,12 +144,18 @@ export interface publicInterfaceWithPrivatModuleTypeParameters { new (): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. (): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. myMethod(): privateModule.publicClass; // Error + ~~~~~~~~ +!!! Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. } @@ -187,12 +199,18 @@ export interface publicInterfaceWithPrivateTypeParameters { new (): privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of constructor signature from exported interface has or is using private name 'privateClass'. ~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateClass'. (): privateClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of call signature from exported interface has or is using private name 'privateClass'. ~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of call signature from exported interface has or is using private name 'privateClass'. myMethod(): privateClass; // Error + ~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClass'. ~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of method from exported interface has or is using private name 'privateClass'. } @@ -318,12 +336,18 @@ export interface publicInterfaceWithPrivatModuleTypeParameters { new (): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. (): privateModule.publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. myMethod(): privateModule.publicClass; // Error + ~~~~~~~~ +!!! Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! Type parameter 'T' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. } diff --git a/tests/baselines/reference/privacyTypeParametersOfInterfaceDeclFile.errors.txt b/tests/baselines/reference/privacyTypeParametersOfInterfaceDeclFile.errors.txt index 92aa57bcef1..c4e9934ce8c 100644 --- a/tests/baselines/reference/privacyTypeParametersOfInterfaceDeclFile.errors.txt +++ b/tests/baselines/reference/privacyTypeParametersOfInterfaceDeclFile.errors.txt @@ -1,4 +1,4 @@ -==== tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts (4 errors) ==== +==== tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts (20 errors) ==== class privateClass { } @@ -17,8 +17,16 @@ myMethod(val: T): T; myMethod0(): publicClassT; myMethod1(): privateClassT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClass'. + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassT'. myMethod2(): privateClassT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassT'. myMethod3(): publicClassT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClass'. myMethod4(): publicClassT; } @@ -26,8 +34,16 @@ myMethod(val: T): T; myMethod0(): publicClassT myMethod1(): privateClassT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClass'. + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassT'. myMethod2(): privateClassT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassT'. myMethod3(): publicClassT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClass'. myMethod4(): publicClassT; } @@ -87,8 +103,16 @@ myMethod(val: T): T; myMethod0(): publicClassInPublicModuleT; myMethod1(): privateClassInPublicModuleT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassInPublicModule'. + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'. myMethod2(): privateClassInPublicModuleT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'. myMethod3(): publicClassInPublicModuleT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassInPublicModule'. myMethod4(): publicClassInPublicModuleT; } @@ -96,8 +120,16 @@ myMethod(val: T): T; myMethod0(): publicClassInPublicModuleT myMethod1(): privateClassInPublicModuleT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassInPublicModule'. + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'. myMethod2(): privateClassInPublicModuleT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'. myMethod3(): publicClassInPublicModuleT; + ~~~~~~~~~ +!!! Return type of method from exported interface has or is using private name 'privateClassInPublicModule'. myMethod4(): publicClassInPublicModuleT; } diff --git a/tests/cases/compiler/privacyFunctionReturnTypeDeclFile.ts b/tests/cases/compiler/privacyFunctionReturnTypeDeclFile.ts new file mode 100644 index 00000000000..c09c4b123f2 --- /dev/null +++ b/tests/cases/compiler/privacyFunctionReturnTypeDeclFile.ts @@ -0,0 +1,1194 @@ +// @module: commonjs +// @declaration: true + +// @Filename:privacyFunctionReturnTypeDeclFile_externalModule.ts +class privateClass { +} + +export class publicClass { +} + +export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; // Error + (): privateClass; // Error + [x: number]: privateClass; // Error + myMethod(): privateClass; // Error +} + +export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; +} + +interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; +} + +interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; +} + +export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { // Error + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { // Error + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { // Error + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { // Error + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } +} + +export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } +} + +class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } +} + +class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } +} + +export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error + return null; +} +export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; +} +function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; +} +function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; +} +export function publicFunctionWithPrivateParmeterTypes1() { // Error + return new privateClass(); +} +export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); +} +function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); +} +function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); +} + +export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error +export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; +declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; +declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + +export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; // Error + (): privateModule.publicClass; // Error + [x: number]: privateModule.publicClass // Error + myMethod(): privateModule.publicClass; // Error +} +export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { // Error + return null; + } + myPublicMethod(): privateModule.publicClass { // Error + return null; + } + static myPublicStaticMethod1() { // Error + return new privateModule.publicClass(); + } + myPublicMethod1() { // Error + return new privateModule.publicClass(); + } +} +export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error + return null; +} +export function publicFunctionWithPrivateModuleParameterTypes1() { // Error + return new privateModule.publicClass(); +} +export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + +interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass + myMethod(): privateModule.publicClass; +} +class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } +} +function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; +} +function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); +} +declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + +export module publicModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; // Error + (): privateClass; // Error + [x: number]: privateClass; // Error + myMethod(): privateClass; // Error + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { // Error + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { // Error + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { // Error + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { // Error + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { // Error + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; // Error + (): privateModule.publicClass; // Error + [x: number]: privateModule.publicClass; // Error + myMethod(): privateModule.publicClass; // Error + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { // Error + return null; + } + myPublicMethod(): privateModule.publicClass { // Error + return null; + } + static myPublicStaticMethod1() { // Error + return new privateModule.publicClass(); + } + myPublicMethod1() { // Error + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { // Error + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; +} + +module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; +} + +// @Filename: privacyFunctionReturnTypeDeclFile_GlobalFile.ts +class publicClassInGlobal { +} +interface publicInterfaceWithPublicParmeterTypesInGlobal { + new (): publicClassInGlobal; + (): publicClassInGlobal; + [x: number]: publicClassInGlobal; + myMethod(): publicClassInGlobal; +} +class publicClassWithWithPublicParmeterTypesInGlobal { + static myPublicStaticMethod(): publicClassInGlobal { + return null; + } + private static myPrivateStaticMethod(): publicClassInGlobal { + return null; + } + myPublicMethod(): publicClassInGlobal { + return null; + } + private myPrivateMethod(): publicClassInGlobal { + return null; + } + static myPublicStaticMethod1() { + return new publicClassInGlobal(); + } + private static myPrivateStaticMethod1() { + return new publicClassInGlobal(); + } + myPublicMethod1() { + return new publicClassInGlobal(); + } + private myPrivateMethod1() { + return new publicClassInGlobal(); + } +} +function publicFunctionWithPublicParmeterTypesInGlobal(): publicClassInGlobal { + return null; +} +function publicFunctionWithPublicParmeterTypesInGlobal1() { + return new publicClassInGlobal(); +} +declare function publicAmbientFunctionWithPublicParmeterTypesInGlobal(): publicClassInGlobal; + +module publicModuleInGlobal { + class privateClass { + } + + export class publicClass { + } + + module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (): privateClass; // Error + (): privateClass; // Error + [x: number]: privateClass; // Error + myMethod(): privateClass; // Error + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (): privateClass; + (): privateClass; + [x: number]: privateClass; + myMethod(): privateClass; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (): publicClass; + (): publicClass; + [x: number]: publicClass; + myMethod(): publicClass; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { // Error + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { // Error + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { // Error + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { // Error + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(): privateClass { + return null; + } + private static myPrivateStaticMethod(): privateClass { + return null; + } + myPublicMethod(): privateClass { + return null; + } + private myPrivateMethod(): privateClass { + return null; + } + static myPublicStaticMethod1() { + return new privateClass(); + } + private static myPrivateStaticMethod1() { + return new privateClass(); + } + myPublicMethod1() { + return new privateClass(); + } + private myPrivateMethod1() { + return new privateClass(); + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(): publicClass { + return null; + } + private static myPrivateStaticMethod(): publicClass { + return null; + } + myPublicMethod(): publicClass { + return null; + } + private myPrivateMethod(): publicClass { + return null; + } + static myPublicStaticMethod1() { + return new publicClass(); + } + private static myPrivateStaticMethod1() { + return new publicClass(); + } + myPublicMethod1() { + return new publicClass(); + } + private myPrivateMethod1() { + return new publicClass(); + } + } + + export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error + return null; + } + export function publicFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + function privateFunctionWithPrivateParmeterTypes(): privateClass { + return null; + } + function privateFunctionWithPublicParmeterTypes(): publicClass { + return null; + } + export function publicFunctionWithPrivateParmeterTypes1() { // Error + return new privateClass(); + } + export function publicFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + function privateFunctionWithPrivateParmeterTypes1() { + return new privateClass(); + } + function privateFunctionWithPublicParmeterTypes1() { + return new publicClass(); + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error + export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass; + declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass; + declare function privateAmbientFunctionWithPublicParmeterTypes(): publicClass; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; // Error + (): privateModule.publicClass; // Error + [x: number]: privateModule.publicClass; // Error + myMethod(): privateModule.publicClass; // Error + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { // Error + return null; + } + myPublicMethod(): privateModule.publicClass { // Error + return null; + } + static myPublicStaticMethod1() { // Error + return new privateModule.publicClass(); + } + myPublicMethod1() { // Error + return new privateModule.publicClass(); + } + } + export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error + return null; + } + export function publicFunctionWithPrivateModuleParameterTypes1() { // Error + return new privateModule.publicClass(); + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (): privateModule.publicClass; + (): privateModule.publicClass; + [x: number]: privateModule.publicClass; + myMethod(): privateModule.publicClass; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(): privateModule.publicClass { + return null; + } + myPublicMethod(): privateModule.publicClass { + return null; + } + static myPublicStaticMethod1() { + return new privateModule.publicClass(); + } + myPublicMethod1() { + return new privateModule.publicClass(); + } + } + function privateFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { + return null; + } + function privateFunctionWithPrivateModuleParameterTypes1() { + return new privateModule.publicClass(); + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; +} \ No newline at end of file