Report privacy errors on parameter types

This commit is contained in:
Sheetal Nandi
2014-08-06 17:06:59 -07:00
parent 4b12353a78
commit 41150776d1
7 changed files with 2915 additions and 9 deletions
@@ -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}'." },
+56
View File
@@ -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
+71 -8
View File
@@ -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
};
}
}
@@ -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(); }
}
}
@@ -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;
}
File diff suppressed because it is too large Load Diff
@@ -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;
}