From 41150776d14f120b25e3bc20e4aea7d0e80a0f82 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 6 Aug 2014 17:06:59 -0700 Subject: [PATCH] Report privacy errors on parameter types --- .../diagnosticInformationMap.generated.ts | 14 + src/compiler/diagnosticMessages.json | 56 + src/compiler/emitter.ts | 79 +- .../reference/declInput-2.errors.txt | 4 +- ...rivacyFunctionParameterDeclFile.errors.txt | 805 +++++++++++ .../privacyFunctionParameterDeclFile.js | 1279 +++++++++++++++++ .../privacyFunctionParameterDeclFile.ts | 687 +++++++++ 7 files changed, 2915 insertions(+), 9 deletions(-) create mode 100644 tests/baselines/reference/privacyFunctionParameterDeclFile.errors.txt create mode 100644 tests/baselines/reference/privacyFunctionParameterDeclFile.js create mode 100644 tests/cases/compiler/privacyFunctionParameterDeclFile.ts diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index 1a1a2597b6a..78c64edfa89 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -120,6 +120,20 @@ module ts { Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 2029, category: DiagnosticCategory.Error, key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 2030, category: DiagnosticCategory.Error, key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." }, Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { code: 2031, category: DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { code: 2032, category: DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 2035, category: DiagnosticCategory.Error, key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 2036, category: DiagnosticCategory.Error, key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 2037, category: DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 2038, category: DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 2039, category: DiagnosticCategory.Error, key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 2040, category: DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 2041, category: DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 2044, category: DiagnosticCategory.Error, key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 2045, category: DiagnosticCategory.Error, key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 2046, category: DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." }, + 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}'." }, 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 fdfe419ca18..d618a042ad3 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -472,6 +472,62 @@ "category": "Error", "code": 2031 }, + "Parameter '{0}' of constructor from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 2032 + }, + "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 2035 + }, + "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 2036 + }, + "Parameter '{0}' of public static method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 2037 + }, + "Parameter '{0}' of public method from exported class has or is using private name '{1}'.": { + "category": "Error", + "code": 2038 + }, + "Parameter '{0}' of method from exported interface has or is using private name '{1}'.": { + "category": "Error", + "code": 2039 + }, + "Parameter '{0}' of exported function has or is using private name '{1}'.": { + "category": "Error", + "code": 2040 + }, + "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 2041 + }, + "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 2044 + }, + "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 2045 + }, + "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 2046 + }, + "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 2047 + }, + "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 2048 + }, + "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.": { + "category": "Error", + "code": 2049 + }, "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 d98a08c4725..7d1abbcaae9 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1908,11 +1908,13 @@ module ts { // Report error reportedDeclarationError = true; var errorInfo = getSymbolVisibilityDiagnosticMessage(symbolAccesibilityResult); - diagnostics.push(createDiagnosticForNode(errorInfo.errorNode, - errorInfo.diagnosticMessage, - getSourceTextOfLocalNode(errorInfo.typeName), - symbolAccesibilityResult.errorSymbolName, - symbolAccesibilityResult.errorModuleName)); + if (errorInfo) { + diagnostics.push(createDiagnosticForNode(errorInfo.errorNode, + errorInfo.diagnosticMessage, + getSourceTextOfLocalNode(errorInfo.typeName), + symbolAccesibilityResult.errorSymbolName, + symbolAccesibilityResult.errorModuleName)); + } } } @@ -2290,7 +2292,8 @@ module ts { Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; } - else { + // This check is to ensure we dont report error on constructor parameter property as that error would be reported during parameter emit + else if (node.kind === SyntaxKind.Property) { if (node.flags & NodeFlags.Static) { diagnosticMessage = symbolAccesibilityResult.errorModuleName ? Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : @@ -2308,11 +2311,11 @@ module ts { } } - return { + return diagnosticMessage !== undefined ? { diagnosticMessage: diagnosticMessage, errorNode: node, typeName: node.name - }; + } : undefined; } } @@ -2408,7 +2411,67 @@ module ts { if (!(node.parent.flags & NodeFlags.Private)) { write(": "); + getSymbolVisibilityDiagnosticMessage = getParameterDeclarationTypeVisibilityError; resolver.writeTypeAtLocation(node, enclosingDeclaration, TypeFormatFlags.None, writer); + // TODO(shkamat) This is just till we get rest of the error reporting up + getSymbolVisibilityDiagnosticMessage = undefined; + } + + function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) { + // TODO(shkamat) Cannot access name errors + var diagnosticMessage: DiagnosticMessage; + switch (node.parent.kind) { + case SyntaxKind.Constructor: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; + break; + + case SyntaxKind.ConstructSignature: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; + break; + + case SyntaxKind.CallSignature: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; + break; + + case SyntaxKind.Method: + if (node.parent.flags & NodeFlags.Static) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; + } + else if (node.parent.parent.kind === SyntaxKind.ClassDeclaration) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; + } + else { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; + } + break; + + case SyntaxKind.FunctionDeclaration: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : + Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; + break; + + default: + Debug.fail("This is unknown parent for parameter: " + SyntaxKind[node.parent.kind]); + } + + return { + diagnosticMessage: diagnosticMessage, + errorNode: node, + typeName: node.name + }; } } diff --git a/tests/baselines/reference/declInput-2.errors.txt b/tests/baselines/reference/declInput-2.errors.txt index 14eac5f0fed..89836c8caf7 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 (2 errors) ==== +==== tests/cases/compiler/declInput-2.ts (3 errors) ==== module M { class C { } export class E {} @@ -21,6 +21,8 @@ public m252(): I2 { return null; } // don't generate 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(); } } } \ No newline at end of file diff --git a/tests/baselines/reference/privacyFunctionParameterDeclFile.errors.txt b/tests/baselines/reference/privacyFunctionParameterDeclFile.errors.txt new file mode 100644 index 00000000000..e4d45caccba --- /dev/null +++ b/tests/baselines/reference/privacyFunctionParameterDeclFile.errors.txt @@ -0,0 +1,805 @@ +==== tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts (40 errors) ==== + + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'. + (param: privateClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'. + myMethod(param: privateClass): void; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of method from exported interface has or is using private name 'privateClass'. + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public static method from exported class has or is using private name 'privateClass'. + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public method from exported class has or is using private name 'privateClass'. + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor from exported class has or is using private name 'privateClass'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'. + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using private name 'privateClass'. + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using private name 'privateClass'. + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + (param: privateModule.publicClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + myMethod(param: privateModule.publicClass): void; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + myPublicMethod(param: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param1' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param2' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + + export module publicModule { + class privateClass { + } + + export class publicClass { + } + + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'. + (param: privateClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'. + myMethod(param: privateClass): void; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of method from exported interface has or is using private name 'privateClass'. + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public static method from exported class has or is using private name 'privateClass'. + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public method from exported class has or is using private name 'privateClass'. + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor from exported class has or is using private name 'privateClass'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'. + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using private name 'privateClass'. + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using private name 'privateClass'. + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + (param: privateModule.publicClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + myMethod(param: privateModule.publicClass): void; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + myPublicMethod(param: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param1' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param2' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + + } + + module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; + (param: privateClass): publicClass; + myMethod(param: privateClass): void; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + } + +==== tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts (20 errors) ==== + class publicClassInGlobal { + } + interface publicInterfaceWithPublicParmeterTypesInGlobal { + new (param: publicClassInGlobal): publicClassInGlobal; + (param: publicClassInGlobal): publicClassInGlobal; + myMethod(param: publicClassInGlobal): void; + } + class publicClassWithWithPublicParmeterTypesInGlobal { + static myPublicStaticMethod(param: publicClassInGlobal) { + } + private static myPrivateStaticMethod(param: publicClassInGlobal) { + } + myPublicMethod(param: publicClassInGlobal) { + } + private myPrivateMethod(param: publicClassInGlobal) { + } + constructor(param: publicClassInGlobal, private param1: publicClassInGlobal, public param2: publicClassInGlobal) { + } + } + function publicFunctionWithPublicParmeterTypesInGlobal(param: publicClassInGlobal) { + } + declare function publicAmbientFunctionWithPublicParmeterTypesInGlobal(param: publicClassInGlobal): void; + + module publicModuleInGlobal { + class privateClass { + } + + export class publicClass { + } + + module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; + (param: privateClass): publicClass; + myMethod(param: privateClass): void; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'. + (param: privateClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'. + myMethod(param: privateClass): void; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of method from exported interface has or is using private name 'privateClass'. + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public static method from exported class has or is using private name 'privateClass'. + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public method from exported class has or is using private name 'privateClass'. + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor from exported class has or is using private name 'privateClass'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'. + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using private name 'privateClass'. + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using private name 'privateClass'. + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + (param: privateModule.publicClass): publicClass; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + myMethod(param: privateModule.publicClass): void; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + myPublicMethod(param: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param1' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param2' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'. + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + } \ No newline at end of file diff --git a/tests/baselines/reference/privacyFunctionParameterDeclFile.js b/tests/baselines/reference/privacyFunctionParameterDeclFile.js new file mode 100644 index 00000000000..0e2f72ce3a6 --- /dev/null +++ b/tests/baselines/reference/privacyFunctionParameterDeclFile.js @@ -0,0 +1,1279 @@ +//// [tests/cases/compiler/privacyFunctionParameterDeclFile.ts] //// + +//// [privacyFunctionParameterDeclFile_externalModule.ts] + +class privateClass { +} + +export class publicClass { +} + +export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; // Error + (param: privateClass): publicClass; // Error + myMethod(param: privateClass): void; // Error +} + +export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; +} + +interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; +} + +interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; +} + +export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { // Error + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { // Error + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { // Error + } +} + +export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } +} + +class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } +} + +class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } +} + +export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error +} +export function publicFunctionWithPublicParmeterTypes(param: publicClass) { +} +function privateFunctionWithPrivateParmeterTypes(param: privateClass) { +} +function privateFunctionWithPublicParmeterTypes(param: publicClass) { +} + +export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error +export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; +declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; +declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + +export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; // Error + (param: privateModule.publicClass): publicClass; // Error + myMethod(param: privateModule.publicClass): void; // Error +} +export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { // Error + } + myPublicMethod(param: privateModule.publicClass) { // Error + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error + } +} +export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error +} +export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + +interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; +} +class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } +} +function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { +} +declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + +export module publicModule { + class privateClass { + } + + export class publicClass { + } + + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; // Error + (param: privateClass): publicClass; // Error + myMethod(param: privateClass): void; // Error + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { // Error + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { // Error + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { // Error + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; // Error + (param: privateModule.publicClass): publicClass; // Error + myMethod(param: privateModule.publicClass): void; // Error + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { // Error + } + myPublicMethod(param: privateModule.publicClass) { // Error + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + +} + +module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; + (param: privateClass): publicClass; + myMethod(param: privateClass): void; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; +} + +//// [privacyFunctionParameterDeclFile_GlobalFile.ts] +class publicClassInGlobal { +} +interface publicInterfaceWithPublicParmeterTypesInGlobal { + new (param: publicClassInGlobal): publicClassInGlobal; + (param: publicClassInGlobal): publicClassInGlobal; + myMethod(param: publicClassInGlobal): void; +} +class publicClassWithWithPublicParmeterTypesInGlobal { + static myPublicStaticMethod(param: publicClassInGlobal) { + } + private static myPrivateStaticMethod(param: publicClassInGlobal) { + } + myPublicMethod(param: publicClassInGlobal) { + } + private myPrivateMethod(param: publicClassInGlobal) { + } + constructor(param: publicClassInGlobal, private param1: publicClassInGlobal, public param2: publicClassInGlobal) { + } +} +function publicFunctionWithPublicParmeterTypesInGlobal(param: publicClassInGlobal) { +} +declare function publicAmbientFunctionWithPublicParmeterTypesInGlobal(param: publicClassInGlobal): void; + +module publicModuleInGlobal { + class privateClass { + } + + export class publicClass { + } + + module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; + (param: privateClass): publicClass; + myMethod(param: privateClass): void; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; // Error + (param: privateClass): publicClass; // Error + myMethod(param: privateClass): void; // Error + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { // Error + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { // Error + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { // Error + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; // Error + (param: privateModule.publicClass): publicClass; // Error + myMethod(param: privateModule.publicClass): void; // Error + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { // Error + } + myPublicMethod(param: privateModule.publicClass) { // Error + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; +} + +//// [privacyFunctionParameterDeclFile_externalModule.js] +var privateClass = (function () { + function privateClass() { + } + return privateClass; +})(); +var publicClass = (function () { + function publicClass() { + } + return publicClass; +})(); +exports.publicClass = publicClass; +var publicClassWithWithPrivateParmeterTypes = (function () { + function publicClassWithWithPrivateParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPrivateParmeterTypes; +})(); +exports.publicClassWithWithPrivateParmeterTypes = publicClassWithWithPrivateParmeterTypes; +var publicClassWithWithPublicParmeterTypes = (function () { + function publicClassWithWithPublicParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPublicParmeterTypes; +})(); +exports.publicClassWithWithPublicParmeterTypes = publicClassWithWithPublicParmeterTypes; +var privateClassWithWithPrivateParmeterTypes = (function () { + function privateClassWithWithPrivateParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return privateClassWithWithPrivateParmeterTypes; +})(); +var privateClassWithWithPublicParmeterTypes = (function () { + function privateClassWithWithPublicParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return privateClassWithWithPublicParmeterTypes; +})(); +function publicFunctionWithPrivateParmeterTypes(param) { +} +exports.publicFunctionWithPrivateParmeterTypes = publicFunctionWithPrivateParmeterTypes; +function publicFunctionWithPublicParmeterTypes(param) { +} +exports.publicFunctionWithPublicParmeterTypes = publicFunctionWithPublicParmeterTypes; +function privateFunctionWithPrivateParmeterTypes(param) { +} +function privateFunctionWithPublicParmeterTypes(param) { +} +var publicClassWithPrivateModuleParameterTypes = (function () { + function publicClassWithPrivateModuleParameterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function (param) { + }; + return publicClassWithPrivateModuleParameterTypes; +})(); +exports.publicClassWithPrivateModuleParameterTypes = publicClassWithPrivateModuleParameterTypes; +function publicFunctionWithPrivateModuleParameterTypes(param) { +} +exports.publicFunctionWithPrivateModuleParameterTypes = publicFunctionWithPrivateModuleParameterTypes; +var privateClassWithPrivateModuleParameterTypes = (function () { + function privateClassWithPrivateModuleParameterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function (param) { + }; + return privateClassWithPrivateModuleParameterTypes; +})(); +function privateFunctionWithPrivateModuleParameterTypes(param) { +} +(function (publicModule) { + var privateClass = (function () { + function privateClass() { + } + return privateClass; + })(); + var publicClass = (function () { + function publicClass() { + } + return publicClass; + })(); + publicModule.publicClass = publicClass; + var publicClassWithWithPrivateParmeterTypes = (function () { + function publicClassWithWithPrivateParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPrivateParmeterTypes; + })(); + publicModule.publicClassWithWithPrivateParmeterTypes = publicClassWithWithPrivateParmeterTypes; + var publicClassWithWithPublicParmeterTypes = (function () { + function publicClassWithWithPublicParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPublicParmeterTypes; + })(); + publicModule.publicClassWithWithPublicParmeterTypes = publicClassWithWithPublicParmeterTypes; + var privateClassWithWithPrivateParmeterTypes = (function () { + function privateClassWithWithPrivateParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return privateClassWithWithPrivateParmeterTypes; + })(); + var privateClassWithWithPublicParmeterTypes = (function () { + function privateClassWithWithPublicParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return privateClassWithWithPublicParmeterTypes; + })(); + function publicFunctionWithPrivateParmeterTypes(param) { + } + publicModule.publicFunctionWithPrivateParmeterTypes = publicFunctionWithPrivateParmeterTypes; + function publicFunctionWithPublicParmeterTypes(param) { + } + publicModule.publicFunctionWithPublicParmeterTypes = publicFunctionWithPublicParmeterTypes; + function privateFunctionWithPrivateParmeterTypes(param) { + } + function privateFunctionWithPublicParmeterTypes(param) { + } + var publicClassWithPrivateModuleParameterTypes = (function () { + function publicClassWithPrivateModuleParameterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function (param) { + }; + return publicClassWithPrivateModuleParameterTypes; + })(); + publicModule.publicClassWithPrivateModuleParameterTypes = publicClassWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes(param) { + } + publicModule.publicFunctionWithPrivateModuleParameterTypes = publicFunctionWithPrivateModuleParameterTypes; + var privateClassWithPrivateModuleParameterTypes = (function () { + function privateClassWithPrivateModuleParameterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function (param) { + }; + return privateClassWithPrivateModuleParameterTypes; + })(); + function privateFunctionWithPrivateModuleParameterTypes(param) { + } +})(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(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPrivateParmeterTypes; + })(); + privateModule.publicClassWithWithPrivateParmeterTypes = publicClassWithWithPrivateParmeterTypes; + var publicClassWithWithPublicParmeterTypes = (function () { + function publicClassWithWithPublicParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPublicParmeterTypes; + })(); + privateModule.publicClassWithWithPublicParmeterTypes = publicClassWithWithPublicParmeterTypes; + var privateClassWithWithPrivateParmeterTypes = (function () { + function privateClassWithWithPrivateParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return privateClassWithWithPrivateParmeterTypes; + })(); + var privateClassWithWithPublicParmeterTypes = (function () { + function privateClassWithWithPublicParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return privateClassWithWithPublicParmeterTypes; + })(); + function publicFunctionWithPrivateParmeterTypes(param) { + } + privateModule.publicFunctionWithPrivateParmeterTypes = publicFunctionWithPrivateParmeterTypes; + function publicFunctionWithPublicParmeterTypes(param) { + } + privateModule.publicFunctionWithPublicParmeterTypes = publicFunctionWithPublicParmeterTypes; + function privateFunctionWithPrivateParmeterTypes(param) { + } + function privateFunctionWithPublicParmeterTypes(param) { + } + var publicClassWithPrivateModuleParameterTypes = (function () { + function publicClassWithPrivateModuleParameterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function (param) { + }; + return publicClassWithPrivateModuleParameterTypes; + })(); + privateModule.publicClassWithPrivateModuleParameterTypes = publicClassWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes(param) { + } + privateModule.publicFunctionWithPrivateModuleParameterTypes = publicFunctionWithPrivateModuleParameterTypes; + var privateClassWithPrivateModuleParameterTypes = (function () { + function privateClassWithPrivateModuleParameterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function (param) { + }; + return privateClassWithPrivateModuleParameterTypes; + })(); + function privateFunctionWithPrivateModuleParameterTypes(param) { + } +})(privateModule || (privateModule = {})); +//// [privacyFunctionParameterDeclFile_GlobalFile.js] +var publicClassInGlobal = (function () { + function publicClassInGlobal() { + } + return publicClassInGlobal; +})(); +var publicClassWithWithPublicParmeterTypesInGlobal = (function () { + function publicClassWithWithPublicParmeterTypesInGlobal(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPublicParmeterTypesInGlobal.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypesInGlobal.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypesInGlobal.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypesInGlobal.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPublicParmeterTypesInGlobal; +})(); +function publicFunctionWithPublicParmeterTypesInGlobal(param) { +} +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(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPrivateParmeterTypes; + })(); + privateModule.publicClassWithWithPrivateParmeterTypes = publicClassWithWithPrivateParmeterTypes; + var publicClassWithWithPublicParmeterTypes = (function () { + function publicClassWithWithPublicParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPublicParmeterTypes; + })(); + privateModule.publicClassWithWithPublicParmeterTypes = publicClassWithWithPublicParmeterTypes; + var privateClassWithWithPrivateParmeterTypes = (function () { + function privateClassWithWithPrivateParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return privateClassWithWithPrivateParmeterTypes; + })(); + var privateClassWithWithPublicParmeterTypes = (function () { + function privateClassWithWithPublicParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return privateClassWithWithPublicParmeterTypes; + })(); + function publicFunctionWithPrivateParmeterTypes(param) { + } + privateModule.publicFunctionWithPrivateParmeterTypes = publicFunctionWithPrivateParmeterTypes; + function publicFunctionWithPublicParmeterTypes(param) { + } + privateModule.publicFunctionWithPublicParmeterTypes = publicFunctionWithPublicParmeterTypes; + function privateFunctionWithPrivateParmeterTypes(param) { + } + function privateFunctionWithPublicParmeterTypes(param) { + } + var publicClassWithPrivateModuleParameterTypes = (function () { + function publicClassWithPrivateModuleParameterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function (param) { + }; + return publicClassWithPrivateModuleParameterTypes; + })(); + privateModule.publicClassWithPrivateModuleParameterTypes = publicClassWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes(param) { + } + privateModule.publicFunctionWithPrivateModuleParameterTypes = publicFunctionWithPrivateModuleParameterTypes; + var privateClassWithPrivateModuleParameterTypes = (function () { + function privateClassWithPrivateModuleParameterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function (param) { + }; + return privateClassWithPrivateModuleParameterTypes; + })(); + function privateFunctionWithPrivateModuleParameterTypes(param) { + } + })(privateModule || (privateModule = {})); + var publicClassWithWithPrivateParmeterTypes = (function () { + function publicClassWithWithPrivateParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPrivateParmeterTypes; + })(); + publicModuleInGlobal.publicClassWithWithPrivateParmeterTypes = publicClassWithWithPrivateParmeterTypes; + var publicClassWithWithPublicParmeterTypes = (function () { + function publicClassWithWithPublicParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithWithPublicParmeterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function (param) { + }; + publicClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return publicClassWithWithPublicParmeterTypes; + })(); + publicModuleInGlobal.publicClassWithWithPublicParmeterTypes = publicClassWithWithPublicParmeterTypes; + var privateClassWithWithPrivateParmeterTypes = (function () { + function privateClassWithWithPrivateParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithWithPrivateParmeterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.myPrivateStaticMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPublicMethod = function (param) { + }; + privateClassWithWithPrivateParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return privateClassWithWithPrivateParmeterTypes; + })(); + var privateClassWithWithPublicParmeterTypes = (function () { + function privateClassWithWithPublicParmeterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithWithPublicParmeterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.myPrivateStaticMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.prototype.myPublicMethod = function (param) { + }; + privateClassWithWithPublicParmeterTypes.prototype.myPrivateMethod = function (param) { + }; + return privateClassWithWithPublicParmeterTypes; + })(); + function publicFunctionWithPrivateParmeterTypes(param) { + } + publicModuleInGlobal.publicFunctionWithPrivateParmeterTypes = publicFunctionWithPrivateParmeterTypes; + function publicFunctionWithPublicParmeterTypes(param) { + } + publicModuleInGlobal.publicFunctionWithPublicParmeterTypes = publicFunctionWithPublicParmeterTypes; + function privateFunctionWithPrivateParmeterTypes(param) { + } + function privateFunctionWithPublicParmeterTypes(param) { + } + var publicClassWithPrivateModuleParameterTypes = (function () { + function publicClassWithPrivateModuleParameterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + publicClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function (param) { + }; + publicClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function (param) { + }; + return publicClassWithPrivateModuleParameterTypes; + })(); + publicModuleInGlobal.publicClassWithPrivateModuleParameterTypes = publicClassWithPrivateModuleParameterTypes; + function publicFunctionWithPrivateModuleParameterTypes(param) { + } + publicModuleInGlobal.publicFunctionWithPrivateModuleParameterTypes = publicFunctionWithPrivateModuleParameterTypes; + var privateClassWithPrivateModuleParameterTypes = (function () { + function privateClassWithPrivateModuleParameterTypes(param, param1, param2) { + this.param1 = param1; + this.param2 = param2; + } + privateClassWithPrivateModuleParameterTypes.myPublicStaticMethod = function (param) { + }; + privateClassWithPrivateModuleParameterTypes.prototype.myPublicMethod = function (param) { + }; + return privateClassWithPrivateModuleParameterTypes; + })(); + function privateFunctionWithPrivateModuleParameterTypes(param) { + } +})(publicModuleInGlobal || (publicModuleInGlobal = {})); diff --git a/tests/cases/compiler/privacyFunctionParameterDeclFile.ts b/tests/cases/compiler/privacyFunctionParameterDeclFile.ts new file mode 100644 index 00000000000..baa2ed4bee6 --- /dev/null +++ b/tests/cases/compiler/privacyFunctionParameterDeclFile.ts @@ -0,0 +1,687 @@ +// @module: commonjs +// @declaration: true + +// @Filename:privacyFunctionParameterDeclFile_externalModule.ts +class privateClass { +} + +export class publicClass { +} + +export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; // Error + (param: privateClass): publicClass; // Error + myMethod(param: privateClass): void; // Error +} + +export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; +} + +interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; +} + +interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; +} + +export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { // Error + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { // Error + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { // Error + } +} + +export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } +} + +class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } +} + +class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } +} + +export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error +} +export function publicFunctionWithPublicParmeterTypes(param: publicClass) { +} +function privateFunctionWithPrivateParmeterTypes(param: privateClass) { +} +function privateFunctionWithPublicParmeterTypes(param: publicClass) { +} + +export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error +export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; +declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; +declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + +export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; // Error + (param: privateModule.publicClass): publicClass; // Error + myMethod(param: privateModule.publicClass): void; // Error +} +export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { // Error + } + myPublicMethod(param: privateModule.publicClass) { // Error + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error + } +} +export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error +} +export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + +interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; +} +class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } +} +function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { +} +declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + +export module publicModule { + class privateClass { + } + + export class publicClass { + } + + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; // Error + (param: privateClass): publicClass; // Error + myMethod(param: privateClass): void; // Error + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { // Error + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { // Error + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { // Error + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; // Error + (param: privateModule.publicClass): publicClass; // Error + myMethod(param: privateModule.publicClass): void; // Error + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { // Error + } + myPublicMethod(param: privateModule.publicClass) { // Error + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + +} + +module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; + (param: privateClass): publicClass; + myMethod(param: privateClass): void; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; +} + +// @Filename: privacyFunctionParameterDeclFile_GlobalFile.ts +class publicClassInGlobal { +} +interface publicInterfaceWithPublicParmeterTypesInGlobal { + new (param: publicClassInGlobal): publicClassInGlobal; + (param: publicClassInGlobal): publicClassInGlobal; + myMethod(param: publicClassInGlobal): void; +} +class publicClassWithWithPublicParmeterTypesInGlobal { + static myPublicStaticMethod(param: publicClassInGlobal) { + } + private static myPrivateStaticMethod(param: publicClassInGlobal) { + } + myPublicMethod(param: publicClassInGlobal) { + } + private myPrivateMethod(param: publicClassInGlobal) { + } + constructor(param: publicClassInGlobal, private param1: publicClassInGlobal, public param2: publicClassInGlobal) { + } +} +function publicFunctionWithPublicParmeterTypesInGlobal(param: publicClassInGlobal) { +} +declare function publicAmbientFunctionWithPublicParmeterTypesInGlobal(param: publicClassInGlobal): void; + +module publicModuleInGlobal { + class privateClass { + } + + export class publicClass { + } + + module privateModule { + class privateClass { + } + + export class publicClass { + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; + (param: privateClass): publicClass; + myMethod(param: privateClass): void; + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; + } + + export interface publicInterfaceWithPrivateParmeterTypes { + new (param: privateClass): publicClass; // Error + (param: privateClass): publicClass; // Error + myMethod(param: privateClass): void; // Error + } + + export interface publicInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + interface privateInterfaceWithPrivateParmeterTypes { + new (param: privateClass): privateClass; + (param: privateClass): privateClass; + myMethod(param: privateClass): void; + } + + interface privateInterfaceWithPublicParmeterTypes { + new (param: publicClass): publicClass; + (param: publicClass): publicClass; + myMethod(param: publicClass): void; + } + + export class publicClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { // Error + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { // Error + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { // Error + } + } + + export class publicClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + class privateClassWithWithPrivateParmeterTypes { + static myPublicStaticMethod(param: privateClass) { + } + private static myPrivateStaticMethod(param: privateClass) { + } + myPublicMethod(param: privateClass) { + } + private myPrivateMethod(param: privateClass) { + } + constructor(param: privateClass, private param1: privateClass, public param2: privateClass) { + } + } + + class privateClassWithWithPublicParmeterTypes { + static myPublicStaticMethod(param: publicClass) { + } + private static myPrivateStaticMethod(param: publicClass) { + } + myPublicMethod(param: publicClass) { + } + private myPrivateMethod(param: publicClass) { + } + constructor(param: publicClass, private param1: publicClass, public param2: publicClass) { + } + } + + export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error + } + export function publicFunctionWithPublicParmeterTypes(param: publicClass) { + } + function privateFunctionWithPrivateParmeterTypes(param: privateClass) { + } + function privateFunctionWithPublicParmeterTypes(param: publicClass) { + } + + export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error + export declare function publicAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + declare function privateAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; + declare function privateAmbientFunctionWithPublicParmeterTypes(param: publicClass): void; + + export interface publicInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; // Error + (param: privateModule.publicClass): publicClass; // Error + myMethod(param: privateModule.publicClass): void; // Error + } + export class publicClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { // Error + } + myPublicMethod(param: privateModule.publicClass) { // Error + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error + } + } + export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error + } + export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error + + interface privateInterfaceWithPrivateModuleParameterTypes { + new (param: privateModule.publicClass): publicClass; + (param: privateModule.publicClass): publicClass; + myMethod(param: privateModule.publicClass): void; + } + class privateClassWithPrivateModuleParameterTypes { + static myPublicStaticMethod(param: privateModule.publicClass) { + } + myPublicMethod(param: privateModule.publicClass) { + } + constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { + } + } + function privateFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { + } + declare function privateAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; +} \ No newline at end of file