Merge branch 'master' into constLet

This commit is contained in:
Sheetal Nandi
2014-11-20 17:27:39 -08:00
93 changed files with 4624 additions and 1207 deletions
+30 -11
View File
@@ -885,13 +885,13 @@ module ts {
if (accessibleSymbolChain) {
var hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0]);
if (!hasAccessibleDeclarations) {
return {
return <SymbolAccessiblityResult>{
accessibility: SymbolAccessibility.NotAccessible,
errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning),
errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, SymbolFlags.Namespace) : undefined,
};
}
return { accessibility: SymbolAccessibility.Accessible, aliasesToMakeVisible: hasAccessibleDeclarations.aliasesToMakeVisible };
return hasAccessibleDeclarations;
}
// If we haven't got the accessible symbol, it doesn't mean the symbol is actually inaccessible.
@@ -948,12 +948,12 @@ module ts {
(declaration.kind === SyntaxKind.SourceFile && isExternalModule(<SourceFile>declaration));
}
function hasVisibleDeclarations(symbol: Symbol): { aliasesToMakeVisible?: ImportDeclaration[]; } {
function hasVisibleDeclarations(symbol: Symbol): SymbolVisibilityResult {
var aliasesToMakeVisible: ImportDeclaration[];
if (forEach(symbol.declarations, declaration => !getIsDeclarationVisible(declaration))) {
return undefined;
}
return { aliasesToMakeVisible };
return { accessibility: SymbolAccessibility.Accessible, aliasesToMakeVisible };
function getIsDeclarationVisible(declaration: Declaration) {
if (!isDeclarationVisible(declaration)) {
@@ -982,14 +982,32 @@ module ts {
}
}
function isImportDeclarationEntityNameReferenceDeclarationVisibile(entityName: EntityName): SymbolAccessiblityResult {
function isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult {
// get symbol of the first identifier of the entityName
var meaning: SymbolFlags;
if (entityName.parent.kind === SyntaxKind.TypeQuery) {
// Typeof value
meaning = SymbolFlags.Value | SymbolFlags.ExportValue;
}
else if (entityName.kind === SyntaxKind.QualifiedName ||
entityName.parent.kind === SyntaxKind.ImportDeclaration) {
// Left identifier from type reference or TypeAlias
// Entity name of the import declaration
meaning = SymbolFlags.Namespace;
}
else {
// Type Reference or TypeAlias entity = Identifier
meaning = SymbolFlags.Type;
}
var firstIdentifier = getFirstIdentifier(entityName);
var symbolOfNameSpace = resolveName(entityName.parent, (<Identifier>firstIdentifier).text, SymbolFlags.Namespace, Diagnostics.Cannot_find_name_0, firstIdentifier);
var symbol = resolveName(enclosingDeclaration, (<Identifier>firstIdentifier).text, meaning, /*nodeNotFoundErrorMessage*/ undefined, /*nameArg*/ undefined);
// Verify if the symbol is accessible
var hasNamespaceDeclarationsVisibile = hasVisibleDeclarations(symbolOfNameSpace);
return hasNamespaceDeclarationsVisibile ?
{ accessibility: SymbolAccessibility.Accessible, aliasesToMakeVisible: hasNamespaceDeclarationsVisibile.aliasesToMakeVisible } :
{ accessibility: SymbolAccessibility.NotAccessible, errorSymbolName: declarationNameToString(<Identifier>firstIdentifier) };
return hasVisibleDeclarations(symbol) || <SymbolVisibilityResult>{
accessibility: SymbolAccessibility.NotAccessible,
errorSymbolName: getTextOfNode(firstIdentifier),
errorNode: firstIdentifier
};
}
function releaseStringWriter(writer: StringSymbolWriter) {
@@ -1601,6 +1619,7 @@ module ts {
case SyntaxKind.IndexSignature:
case SyntaxKind.Parameter:
case SyntaxKind.ModuleBlock:
case SyntaxKind.TypeParameter:
return isDeclarationVisible(node.parent);
// Source file is always visible
@@ -9135,7 +9154,7 @@ module ts {
writeTypeAtLocation,
writeReturnTypeOfSignatureDeclaration,
isSymbolAccessible,
isImportDeclarationEntityNameReferenceDeclarationVisibile,
isEntityNameVisible,
getConstantValue,
};
checkProgram();
@@ -275,27 +275,16 @@ module ts {
Type_alias_name_cannot_be_0: { code: 2457, category: DiagnosticCategory.Error, key: "Type alias name cannot be '{0}'" },
An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: DiagnosticCategory.Error, key: "An AMD module cannot have multiple name assignments." },
Import_declaration_0_is_using_private_name_1: { code: 4000, category: DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." },
Type_parameter_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4001, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using name '{1}' from private module '{2}'." },
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
Type_parameter_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4003, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using name '{1}' from private module '{2}'." },
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." },
Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4005, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of constructor signature from exported interface 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: 4006, 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_name_1_from_private_module_2: { code: 4007, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." },
Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, 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_name_1_from_private_module_2: { code: 4009, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." },
Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." },
Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4011, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." },
Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." },
Type_parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4013, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." },
Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." },
Type_parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 4015, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." },
Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported function has or is using private name '{1}'." },
Implements_clause_of_exported_class_0_has_or_is_using_name_1_from_private_module_2: { code: 4017, category: DiagnosticCategory.Error, key: "Implements clause of exported class '{0}' has or is using name '{1}' from private module '{2}'." },
Extends_clause_of_exported_class_0_has_or_is_using_name_1_from_private_module_2: { code: 4018, category: DiagnosticCategory.Error, key: "Extends clause of exported class '{0}' has or is using name '{1}' from private module '{2}'." },
Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: DiagnosticCategory.Error, key: "Implements clause of exported class '{0}' has or is using private name '{1}'." },
Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4020, category: DiagnosticCategory.Error, key: "Extends clause of exported class '{0}' has or is using private name '{1}'." },
Extends_clause_of_exported_interface_0_has_or_is_using_name_1_from_private_module_2: { code: 4021, category: DiagnosticCategory.Error, key: "Extends clause of exported interface '{0}' has or is using name '{1}' from private module '{2}'." },
Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: DiagnosticCategory.Error, key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." },
Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4023, category: DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." },
Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { code: 4024, category: DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." },
@@ -353,8 +342,6 @@ module ts {
Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." },
Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 4077, category: DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." },
Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4078, category: DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using private name '{1}'." },
Exported_type_alias_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4079, category: DiagnosticCategory.Error, key: "Exported type alias '{0}' has or is using name '{1}' from external module {2} but cannot be named." },
Exported_type_alias_0_has_or_is_using_name_1_from_private_module_2: { code: 4080, category: DiagnosticCategory.Error, key: "Exported type alias '{0}' has or is using name '{1}' from private module '{2}'." },
Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: DiagnosticCategory.Error, key: "Exported type alias '{0}' has or is using private name '{1}'." },
Enum_declarations_must_all_be_const_or_non_const: { code: 4082, category: DiagnosticCategory.Error, key: "Enum declarations must all be const or non-const." },
In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 4083, category: DiagnosticCategory.Error, key: "In 'const' enum declarations member initializer must be constant expression.", isEarly: true },
-52
View File
@@ -1097,78 +1097,38 @@
"category": "Error",
"code": 4000
},
"Type parameter '{0}' of exported class has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4001
},
"Type parameter '{0}' of exported class has or is using private name '{1}'.": {
"category": "Error",
"code": 4002
},
"Type parameter '{0}' of exported interface has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4003
},
"Type parameter '{0}' of exported interface has or is using private name '{1}'.": {
"category": "Error",
"code": 4004
},
"Type parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4005
},
"Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.": {
"category": "Error",
"code": 4006
},
"Type parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4007
},
"Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.": {
"category": "Error",
"code": 4008
},
"Type parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4009
},
"Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.": {
"category": "Error",
"code": 4010
},
"Type parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4011
},
"Type parameter '{0}' of public method from exported class has or is using private name '{1}'.": {
"category": "Error",
"code": 4012
},
"Type parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4013
},
"Type parameter '{0}' of method from exported interface has or is using private name '{1}'.": {
"category": "Error",
"code": 4014
},
"Type parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4015
},
"Type parameter '{0}' of exported function has or is using private name '{1}'.": {
"category": "Error",
"code": 4016
},
"Implements clause of exported class '{0}' has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4017
},
"Extends clause of exported class '{0}' has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4018
},
"Implements clause of exported class '{0}' has or is using private name '{1}'.": {
"category": "Error",
"code": 4019
@@ -1177,10 +1137,6 @@
"category": "Error",
"code": 4020
},
"Extends clause of exported interface '{0}' has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4021
},
"Extends clause of exported interface '{0}' has or is using private name '{1}'.": {
"category": "Error",
"code": 4022
@@ -1409,14 +1365,6 @@
"category": "Error",
"code": 4078
},
"Exported type alias '{0}' has or is using name '{1}' from external module {2} but cannot be named.": {
"category": "Error",
"code": 4079
},
"Exported type alias '{0}' has or is using name '{1}' from private module '{2}'.": {
"category": "Error",
"code": 4080
},
"Exported type alias '{0}' has or is using private name '{1}'.": {
"category": "Error",
"code": 4081
+370 -210
View File
@@ -6,6 +6,7 @@
module ts {
interface EmitTextWriter {
write(s: string): void;
writeTextOfNode(node: Node): void;
writeLine(): void;
increaseIndent(): void;
decreaseIndent(): void;
@@ -18,7 +19,15 @@ module ts {
getIndent(): number;
}
interface SymbolAccessibilityDiagnostic {
errorNode: Node;
diagnosticMessage: DiagnosticMessage;
typeName?: DeclarationName;
}
type GetSymbolAccessibilityDiagnostic = (symbolAccesibilityResult: SymbolAccessiblityResult) => SymbolAccessibilityDiagnostic;
interface EmitTextWriterWithSymbolWriter extends EmitTextWriter, SymbolWriter{
getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic;
}
var indentStrings: string[] = ["", " "];
@@ -156,11 +165,16 @@ module ts {
}
}
function writeTextOfNode(node: Node) {
write(getSourceTextOfLocalNode(node));
}
return {
write: write,
rawWrite: rawWrite,
writeLiteral: writeLiteral,
writeLine: writeLine,
write,
rawWrite,
writeTextOfNode,
writeLiteral,
writeLine,
increaseIndent: () => indent++,
decreaseIndent: () => indent--,
getIndent: () => indent,
@@ -317,6 +331,7 @@ module ts {
function emitJavaScript(jsFilePath: string, root?: SourceFile) {
var writer = createTextWriter();
var write = writer.write;
var writeTextOfNode = writer.writeTextOfNode;
var writeLine = writer.writeLine;
var increaseIndent = writer.increaseIndent;
var decreaseIndent = writer.decreaseIndent;
@@ -933,7 +948,7 @@ module ts {
write((<LiteralExpression>node).text);
}
else {
write(getSourceTextOfLocalNode(node));
writeTextOfNode(node);
}
write("\"");
@@ -977,7 +992,7 @@ module ts {
write(prefix);
write(".");
}
write(getSourceTextOfLocalNode(node));
writeTextOfNode(node);
}
function emitIdentifier(node: Identifier) {
@@ -985,7 +1000,7 @@ module ts {
emitExpressionIdentifier(node);
}
else {
write(getSourceTextOfLocalNode(node));
writeTextOfNode(node);
}
}
@@ -2549,11 +2564,13 @@ module ts {
}
function emitDeclarations(jsFilePath: string, root?: SourceFile) {
var writer = createTextWriterWithSymbolWriter();
var write = writer.write;
var writeLine = writer.writeLine;
var increaseIndent = writer.increaseIndent;
var decreaseIndent = writer.decreaseIndent;
var write: (s: string) => void;
var writeLine: () => void;
var increaseIndent: () => void;
var decreaseIndent: () => void;
var writeTextOfNode: (node: Node) => void;
var writer = createAndSetNewTextWriterWithSymbolWriter();
var enclosingDeclaration: Node;
var reportedDeclarationError = false;
@@ -2567,13 +2584,7 @@ module ts {
asynchronousOutput?: string; // If the output for alias was written asynchronously, the corresponding output
}[] = [];
var getSymbolVisibilityDiagnosticMessage: (symbolAccesibilityResult: SymbolAccessiblityResult) => {
errorNode: Node;
diagnosticMessage: DiagnosticMessage;
typeName?: DeclarationName
}
function createTextWriterWithSymbolWriter(): EmitTextWriterWithSymbolWriter {
function createAndSetNewTextWriterWithSymbolWriter(): EmitTextWriterWithSymbolWriter {
var writer = <EmitTextWriterWithSymbolWriter>createTextWriter();
writer.trackSymbol = trackSymbol;
writer.writeKeyword = writer.write;
@@ -2583,28 +2594,36 @@ module ts {
writer.writeStringLiteral = writer.writeLiteral;
writer.writeParameter = writer.write;
writer.writeSymbol = writer.write;
setWriter(writer);
return writer;
}
function setWriter(newWriter: EmitTextWriterWithSymbolWriter) {
writer = newWriter;
write = newWriter.write;
writeTextOfNode = newWriter.writeTextOfNode;
writeLine = newWriter.writeLine;
increaseIndent = newWriter.increaseIndent;
decreaseIndent = newWriter.decreaseIndent;
}
function writeAsychronousImportDeclarations(importDeclarations: ImportDeclaration[]) {
var oldWriter = writer;
forEach(importDeclarations, aliasToWrite => {
var aliasEmitInfo = forEach(aliasDeclarationEmitInfo, declEmitInfo => declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined);
writer = createTextWriterWithSymbolWriter();
createAndSetNewTextWriterWithSymbolWriter();
for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) {
writer.increaseIndent();
increaseIndent();
}
writeImportDeclaration(aliasToWrite);
aliasEmitInfo.asynchronousOutput = writer.getText();
});
writer = oldWriter;
setWriter(oldWriter);
}
function trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) {
var symbolAccesibilityResult = resolver.isSymbolAccessible(symbol, enclosingDeclaration, meaning);
function handleSymbolAccessibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) {
if (symbolAccesibilityResult.accessibility === SymbolAccessibility.Accessible) {
// write the aliases
if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) {
writeAsychronousImportDeclarations(symbolAccesibilityResult.aliasesToMakeVisible);
@@ -2613,17 +2632,17 @@ module ts {
else {
// Report error
reportedDeclarationError = true;
var errorInfo = getSymbolVisibilityDiagnosticMessage(symbolAccesibilityResult);
var errorInfo = writer.getSymbolAccessibilityDiagnostic(symbolAccesibilityResult);
if (errorInfo) {
if (errorInfo.typeName) {
diagnostics.push(createDiagnosticForNode(errorInfo.errorNode,
diagnostics.push(createDiagnosticForNode(symbolAccesibilityResult.errorNode || errorInfo.errorNode,
errorInfo.diagnosticMessage,
getSourceTextOfLocalNode(errorInfo.typeName),
symbolAccesibilityResult.errorSymbolName,
symbolAccesibilityResult.errorModuleName));
}
else {
diagnostics.push(createDiagnosticForNode(errorInfo.errorNode,
diagnostics.push(createDiagnosticForNode(symbolAccesibilityResult.errorNode || errorInfo.errorNode,
errorInfo.diagnosticMessage,
symbolAccesibilityResult.errorSymbolName,
symbolAccesibilityResult.errorModuleName));
@@ -2632,23 +2651,55 @@ module ts {
}
}
function trackSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags) {
handleSymbolAccessibilityError(resolver.isSymbolAccessible(symbol, enclosingDeclaration, meaning));
}
function writeTypeAtLocation(location: Node, type: TypeNode, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) {
writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic;
write(": ");
if (type) {
// Write the type
emitType(type);
}
else {
resolver.writeTypeAtLocation(location, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer);
}
}
function writeReturnTypeAtSignature(signature: SignatureDeclaration, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) {
writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic;
write(": ");
if (signature.type) {
// Write the type
emitType(signature.type);
}
else {
resolver.writeReturnTypeOfSignatureDeclaration(signature, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer);
}
}
function emitLines(nodes: Node[]) {
for (var i = 0, n = nodes.length; i < n; i++) {
emitNode(nodes[i]);
}
}
function emitCommaList(nodes: Node[], eachNodeEmitFn: (node: Node) => void) {
function emitSeparatedList(nodes: Node[], separator: string, eachNodeEmitFn: (node: Node) => void) {
var currentWriterPos = writer.getTextPos();
for (var i = 0, n = nodes.length; i < n; i++) {
if (currentWriterPos !== writer.getTextPos()) {
write(", ");
write(separator);
}
currentWriterPos = writer.getTextPos();
eachNodeEmitFn(nodes[i]);
}
}
function emitCommaList(nodes: Node[], eachNodeEmitFn: (node: Node) => void) {
emitSeparatedList(nodes, ", ", eachNodeEmitFn);
}
function writeJsDocComments(declaration: Declaration) {
if (declaration) {
var jsDocComments = getJsDocComments(declaration, currentSourceFile);
@@ -2658,8 +2709,112 @@ module ts {
}
}
function emitSourceTextOfNode(node: Node) {
write(getSourceTextOfLocalNode(node));
function emitTypeWithNewGetSymbolAccessibilityDiangostic(type: TypeNode, getSymbolAccessibilityDiagnostic: GetSymbolAccessibilityDiagnostic) {
writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic;
emitType(type);
}
function emitType(type: TypeNode) {
switch (type.kind) {
case SyntaxKind.AnyKeyword:
case SyntaxKind.StringKeyword:
case SyntaxKind.NumberKeyword:
case SyntaxKind.BooleanKeyword:
case SyntaxKind.VoidKeyword:
case SyntaxKind.StringLiteral:
return writeTextOfNode(type);
case SyntaxKind.TypeReference:
return emitTypeReference(<TypeReferenceNode>type);
case SyntaxKind.TypeQuery:
return emitTypeQuery(<TypeQueryNode>type);
case SyntaxKind.ArrayType:
return emitArrayType(<ArrayTypeNode>type);
case SyntaxKind.TupleType:
return emitTupleType(<TupleTypeNode>type);
case SyntaxKind.UnionType:
return emitUnionType(<UnionTypeNode>type);
case SyntaxKind.ParenType:
return emitParenType(<ParenTypeNode>type);
case SyntaxKind.FunctionType:
case SyntaxKind.ConstructorType:
return emitSignatureDeclarationWithJsDocComments(<SignatureDeclaration>type);
case SyntaxKind.TypeLiteral:
return emitTypeLiteral(<TypeLiteralNode>type);
case SyntaxKind.Identifier:
return emitEntityName(<Identifier>type);
case SyntaxKind.QualifiedName:
return emitEntityName(<QualifiedName>type);
default:
Debug.fail("Unknown type annotation: " + type.kind);
}
function emitEntityName(entityName: EntityName) {
var visibilityResult = resolver.isEntityNameVisible(entityName,
// Aliases can be written asynchronously so use correct enclosing declaration
entityName.parent.kind === SyntaxKind.ImportDeclaration ? entityName.parent : enclosingDeclaration);
handleSymbolAccessibilityError(visibilityResult);
writeEntityName(entityName);
function writeEntityName(entityName: EntityName) {
if (entityName.kind === SyntaxKind.Identifier) {
writeTextOfNode(entityName);
}
else {
var qualifiedName = <QualifiedName>entityName;
writeEntityName(qualifiedName.left);
write(".");
writeTextOfNode(qualifiedName.right);
}
}
}
function emitTypeReference(type: TypeReferenceNode) {
emitEntityName(type.typeName);
if (type.typeArguments) {
write("<");
emitCommaList(type.typeArguments, emitType);
write(">");
}
}
function emitTypeQuery(type: TypeQueryNode) {
write("typeof ");
emitEntityName(type.exprName);
}
function emitArrayType(type: ArrayTypeNode) {
emitType(type.elementType);
write("[]");
}
function emitTupleType(type: TupleTypeNode) {
write("[");
emitCommaList(type.elementTypes, emitType);
write("]");
}
function emitUnionType(type: UnionTypeNode) {
emitSeparatedList(type.types, " | ", emitType);
}
function emitParenType(type: ParenTypeNode) {
write("(");
emitType(type.type);
write(")");
}
function emitTypeLiteral(type: TypeLiteralNode) {
write("{");
if (type.members.length) {
writeLine();
increaseIndent();
// write members
emitLines(type.members);
decreaseIndent();
}
write("}");
}
}
function emitSourceFile(node: SourceFile) {
@@ -2670,42 +2825,38 @@ module ts {
function emitExportAssignment(node: ExportAssignment) {
write("export = ");
emitSourceTextOfNode(node.exportName);
writeTextOfNode(node.exportName);
write(";");
writeLine();
}
function emitDeclarationFlags(node: Declaration) {
if (node.flags & NodeFlags.Static) {
if (node.flags & NodeFlags.Private) {
write("private ");
function emitModuleElementDeclarationFlags(node: Declaration) {
// If the node is parented in the current source file we need to emit export declare or just export
if (node.parent === currentSourceFile) {
// If the node is exported
if (node.flags & NodeFlags.Export) {
write("export ");
}
else if (node.flags & NodeFlags.Protected) {
write("protected ");
}
write("static ");
}
else {
if (node.flags & NodeFlags.Private) {
write("private ");
}
else if (node.flags & NodeFlags.Protected) {
write("protected ");
}
// If the node is parented in the current source file we need to emit export declare or just export
else if (node.parent === currentSourceFile) {
// If the node is exported
if (node.flags & NodeFlags.Export) {
write("export ");
}
if (node.kind !== SyntaxKind.InterfaceDeclaration) {
write("declare ");
}
if (node.kind !== SyntaxKind.InterfaceDeclaration) {
write("declare ");
}
}
}
function emitClassMemberDeclarationFlags(node: Declaration) {
if (node.flags & NodeFlags.Private) {
write("private ");
}
else if (node.flags & NodeFlags.Protected) {
write("protected ");
}
if (node.flags & NodeFlags.Static) {
write("static ");
}
}
function emitImportDeclaration(node: ImportDeclaration) {
var nodeEmitInfo = {
declaration: node,
@@ -2724,52 +2875,41 @@ module ts {
// correct writer especially to handle asynchronous alias writing
emitJsDocComments(node);
if (node.flags & NodeFlags.Export) {
writer.write("export ");
write("export ");
}
writer.write("import ");
writer.write(getSourceTextOfLocalNode(node.name));
writer.write(" = ");
write("import ");
writeTextOfNode(node.name);
write(" = ");
if (node.entityName) {
checkEntityNameAccessible();
writer.write(getSourceTextOfLocalNode(node.entityName));
writer.write(";");
emitTypeWithNewGetSymbolAccessibilityDiangostic(node.entityName, getImportEntityNameVisibilityError);
write(";");
}
else {
writer.write("require(");
writer.write(getSourceTextOfLocalNode(node.externalModuleName));
writer.write(");");
write("require(");
writeTextOfNode(node.externalModuleName);
write(");");
}
writer.writeLine();
function checkEntityNameAccessible() {
var symbolAccesibilityResult = resolver.isImportDeclarationEntityNameReferenceDeclarationVisibile(node.entityName);
if (symbolAccesibilityResult.accessibility === SymbolAccessibility.Accessible) {
// write the aliases
if (symbolAccesibilityResult.aliasesToMakeVisible) {
writeAsychronousImportDeclarations(symbolAccesibilityResult.aliasesToMakeVisible);
}
}
else {
// Report error
reportedDeclarationError = true;
diagnostics.push(createDiagnosticForNode(node,
Diagnostics.Import_declaration_0_is_using_private_name_1,
getSourceTextOfLocalNode(node.name),
symbolAccesibilityResult.errorSymbolName));
}
function getImportEntityNameVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic {
return {
diagnosticMessage: Diagnostics.Import_declaration_0_is_using_private_name_1,
errorNode: node,
typeName: node.name
};
}
}
function emitModuleDeclaration(node: ModuleDeclaration) {
if (resolver.isDeclarationVisible(node)) {
emitJsDocComments(node);
emitDeclarationFlags(node);
emitModuleElementDeclarationFlags(node);
write("module ");
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
while (node.body.kind !== SyntaxKind.ModuleBlock) {
node = <ModuleDeclaration>node.body;
write(".");
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
}
var prevEnclosingDeclaration = enclosingDeclaration;
enclosingDeclaration = node;
@@ -2787,24 +2927,18 @@ module ts {
function emitTypeAliasDeclaration(node: TypeAliasDeclaration) {
if (resolver.isDeclarationVisible(node)) {
emitJsDocComments(node);
emitDeclarationFlags(node);
emitModuleElementDeclarationFlags(node);
write("type ");
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
write(" = ");
getSymbolVisibilityDiagnosticMessage = getTypeAliasDeclarationVisibilityError;
resolver.writeTypeAtLocation(node.type, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer);
emitTypeWithNewGetSymbolAccessibilityDiangostic(node.type, getTypeAliasDeclarationVisibilityError);
write(";");
writeLine();
}
function getTypeAliasDeclarationVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) {
var diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === SymbolAccessibility.CannotBeNamed ?
Diagnostics.Exported_type_alias_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named :
Diagnostics.Exported_type_alias_0_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1;
function getTypeAliasDeclarationVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic {
return {
diagnosticMessage,
errorNode: node,
diagnosticMessage: Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1,
errorNode: node.type,
typeName: node.name
};
}
@@ -2813,12 +2947,12 @@ module ts {
function emitEnumDeclaration(node: EnumDeclaration) {
if (resolver.isDeclarationVisible(node)) {
emitJsDocComments(node);
emitDeclarationFlags(node);
emitModuleElementDeclarationFlags(node);
if (isConst(node)) {
write("const ")
}
write("enum ");
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
write(" {");
writeLine();
increaseIndent();
@@ -2831,7 +2965,7 @@ module ts {
function emitEnumMemberDeclaration(node: EnumMember) {
emitJsDocComments(node);
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
var enumMemberValue = resolver.getEnumMemberValue(node);
if (enumMemberValue !== undefined) {
write(" = ");
@@ -2843,56 +2977,62 @@ module ts {
function emitTypeParameters(typeParameters: TypeParameterDeclaration[]) {
function emitTypeParameter(node: TypeParameterDeclaration) {
function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) {
increaseIndent();
emitJsDocComments(node);
decreaseIndent();
writeTextOfNode(node.name);
// If there is constraint present and this is not a type parameter of the private method emit the constraint
if (node.constraint && (node.parent.kind !== SyntaxKind.Method || !(node.parent.flags & NodeFlags.Private))) {
write(" extends ");
if (node.parent.kind === SyntaxKind.FunctionType ||
node.parent.kind === SyntaxKind.ConstructorType ||
(node.parent.parent && node.parent.parent.kind === SyntaxKind.TypeLiteral)) {
Debug.assert(node.parent.kind === SyntaxKind.Method ||
node.parent.kind === SyntaxKind.FunctionType ||
node.parent.kind === SyntaxKind.ConstructorType ||
node.parent.kind === SyntaxKind.CallSignature ||
node.parent.kind === SyntaxKind.ConstructSignature);
emitType(node.constraint);
}
else {
emitTypeWithNewGetSymbolAccessibilityDiangostic(node.constraint, getTypeParameterConstraintVisibilityError);
}
}
function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic {
// Type parameter constraints are named by user so we should always be able to name it
var diagnosticMessage: DiagnosticMessage;
switch (node.parent.kind) {
case SyntaxKind.ClassDeclaration:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;
diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;
break;
case SyntaxKind.InterfaceDeclaration:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;
diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;
break;
case SyntaxKind.ConstructSignature:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
diagnosticMessage = Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;
break;
case SyntaxKind.CallSignature:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;
diagnosticMessage = Diagnostics.Type_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.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;
diagnosticMessage = Diagnostics.Type_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.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;
diagnosticMessage = Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;
}
else {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
diagnosticMessage = Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;
}
break;
case SyntaxKind.FunctionDeclaration:
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;
diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;
break;
default:
@@ -2905,17 +3045,6 @@ module ts {
typeName: node.name
};
}
increaseIndent();
emitJsDocComments(node);
decreaseIndent();
emitSourceTextOfNode(node.name);
// If there is constraint present and this is not a type parameter of the private method emit the constraint
if (node.constraint && (node.parent.kind !== SyntaxKind.Method || !(node.parent.flags & NodeFlags.Private))) {
write(" extends ");
getSymbolVisibilityDiagnosticMessage = getTypeParameterConstraintVisibilityError;
resolver.writeTypeAtLocation(node.constraint, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer);
}
}
if (typeParameters) {
@@ -2932,36 +3061,20 @@ module ts {
}
function emitTypeOfTypeReference(node: Node) {
getSymbolVisibilityDiagnosticMessage = getHeritageClauseVisibilityError;
resolver.writeTypeAtLocation(node, enclosingDeclaration, TypeFormatFlags.WriteArrayAsGenericType | TypeFormatFlags.UseTypeOfFunction, writer);
emitTypeWithNewGetSymbolAccessibilityDiangostic(node, getHeritageClauseVisibilityError);
function getHeritageClauseVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) {
function getHeritageClauseVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic {
var diagnosticMessage: DiagnosticMessage;
// Heritage clause is written by user so it can always be named
if (node.parent.kind === SyntaxKind.ClassDeclaration) {
// Class
if (symbolAccesibilityResult.errorModuleName) {
// Module is inaccessible
diagnosticMessage = isImplementsList ?
Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_name_1_from_private_module_2;
}
else {
// Class or Interface implemented/extended is inaccessible
diagnosticMessage = isImplementsList ?
Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 :
Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1;
}
// Class or Interface implemented/extended is inaccessible
diagnosticMessage = isImplementsList ?
Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 :
Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1;
}
else {
if (symbolAccesibilityResult.errorModuleName) {
// Module is inaccessible
diagnosticMessage = Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_name_1_from_private_module_2;
}
else {
// interface is inaccessible
diagnosticMessage = Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1;
}
// interface is inaccessible
diagnosticMessage = Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1;
}
return {
@@ -2986,9 +3099,9 @@ module ts {
if (resolver.isDeclarationVisible(node)) {
emitJsDocComments(node);
emitDeclarationFlags(node);
emitModuleElementDeclarationFlags(node);
write("class ");
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
var prevEnclosingDeclaration = enclosingDeclaration;
enclosingDeclaration = node;
emitTypeParameters(node.typeParameters);
@@ -3011,9 +3124,9 @@ module ts {
function emitInterfaceDeclaration(node: InterfaceDeclaration) {
if (resolver.isDeclarationVisible(node)) {
emitJsDocComments(node);
emitDeclarationFlags(node);
emitModuleElementDeclarationFlags(node);
write("interface ");
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
var prevEnclosingDeclaration = enclosingDeclaration;
enclosingDeclaration = node;
emitTypeParameters(node.typeParameters);
@@ -3031,7 +3144,7 @@ module ts {
function emitPropertyDeclaration(node: PropertyDeclaration) {
emitJsDocComments(node);
emitDeclarationFlags(node);
emitClassMemberDeclarationFlags(node);
emitVariableDeclaration(<VariableDeclaration>node);
write(";");
writeLine();
@@ -3042,19 +3155,20 @@ module ts {
// If we are emitting property it isn't moduleElement and hence we already know it needs to be emitted
// so there is no check needed to see if declaration is visible
if (node.kind !== SyntaxKind.VariableDeclaration || resolver.isDeclarationVisible(node)) {
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
// If optional property emit ?
if (node.kind === SyntaxKind.Property && (node.flags & NodeFlags.QuestionMark)) {
write("?");
}
if (!(node.flags & NodeFlags.Private)) {
write(": ");
getSymbolVisibilityDiagnosticMessage = getVariableDeclarationTypeVisibilityError;
resolver.writeTypeAtLocation(node, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer);
if (node.kind === SyntaxKind.Property && node.parent.kind === SyntaxKind.TypeLiteral) {
emitTypeOfVariableDeclarationFromTypeLiteral(node);
}
else if (!(node.flags & NodeFlags.Private)) {
writeTypeAtLocation(node, node.type, getVariableDeclarationTypeVisibilityError);
}
}
function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) {
function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic {
var diagnosticMessage: DiagnosticMessage;
if (node.kind === SyntaxKind.VariableDeclaration) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
@@ -3089,18 +3203,28 @@ module ts {
}
return diagnosticMessage !== undefined ? {
diagnosticMessage: diagnosticMessage,
diagnosticMessage,
errorNode: node,
typeName: node.name
} : undefined;
}
}
function emitTypeOfVariableDeclarationFromTypeLiteral(node: VariableDeclaration) {
// if this is property of type literal,
// or is parameter of method/call/construct/index signature of type literal
// emit only if type is specified
if (node.type) {
write(": ");
emitType(node.type);
}
}
function emitVariableStatement(node: VariableStatement) {
var hasDeclarationWithEmit = forEach(node.declarations, varDeclaration => resolver.isDeclarationVisible(varDeclaration));
if (hasDeclarationWithEmit) {
emitJsDocComments(node);
emitDeclarationFlags(node);
emitModuleElementDeclarationFlags(node);
if (isLet(node)) {
write("let ");
}
@@ -3121,22 +3245,38 @@ module ts {
if (node === accessors.firstAccessor) {
emitJsDocComments(accessors.getAccessor);
emitJsDocComments(accessors.setAccessor);
emitDeclarationFlags(node);
emitSourceTextOfNode(node.name);
emitClassMemberDeclarationFlags(node);
writeTextOfNode(node.name);
if (!(node.flags & NodeFlags.Private)) {
write(": ");
getSymbolVisibilityDiagnosticMessage = getAccessorDeclarationTypeVisibilityError;
resolver.writeTypeAtLocation(node, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer);
var accessorWithTypeAnnotation: AccessorDeclaration = node;
var type = getTypeAnnotationFromAccessor(node);
if (!type) {
// couldn't get type for the first accessor, try the another one
var anotherAccessor = node.kind === SyntaxKind.GetAccessor ? accessors.setAccessor : accessors.getAccessor;
type = getTypeAnnotationFromAccessor(anotherAccessor);
if (type) {
accessorWithTypeAnnotation = anotherAccessor;
}
}
writeTypeAtLocation(node, type, getAccessorDeclarationTypeVisibilityError);
}
write(";");
writeLine();
}
function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) {
function getTypeAnnotationFromAccessor(accessor: AccessorDeclaration): TypeNode {
if (accessor) {
return accessor.kind === SyntaxKind.GetAccessor ?
accessor.type : // Getter - return type
accessor.parameters[0].type; // Setter parameter type
}
}
function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic {
var diagnosticMessage: DiagnosticMessage;
if (node.kind === SyntaxKind.SetAccessor) {
if (accessorWithTypeAnnotation.kind === SyntaxKind.SetAccessor) {
// Setters have to have type named and cannot infer it so, the type should always be named
if (node.parent.flags & NodeFlags.Static) {
if (accessorWithTypeAnnotation.parent.flags & NodeFlags.Static) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 :
Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1;
@@ -3148,13 +3288,13 @@ module ts {
}
return {
diagnosticMessage,
errorNode: <Node>node.parameters[0],
errorNode: <Node>accessorWithTypeAnnotation.parameters[0],
// TODO(jfreeman): Investigate why we are passing node.name instead of node.parameters[0].name
typeName: node.name
typeName: accessorWithTypeAnnotation.name
};
}
else {
if (node.flags & NodeFlags.Static) {
if (accessorWithTypeAnnotation.flags & NodeFlags.Static) {
diagnosticMessage = symbolAccesibilityResult.errorModuleName ?
symbolAccesibilityResult.accessibility === SymbolAccessibility.CannotBeNamed ?
Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named :
@@ -3170,7 +3310,7 @@ module ts {
}
return {
diagnosticMessage,
errorNode: <Node>node.name,
errorNode: <Node>accessorWithTypeAnnotation.name,
typeName: undefined
};
}
@@ -3183,16 +3323,21 @@ module ts {
if ((node.kind !== SyntaxKind.FunctionDeclaration || resolver.isDeclarationVisible(node)) &&
!resolver.isImplementationOfOverload(node)) {
emitJsDocComments(node);
emitDeclarationFlags(node);
if (node.kind === SyntaxKind.FunctionDeclaration) {
emitModuleElementDeclarationFlags(node);
}
else if (node.kind === SyntaxKind.Method) {
emitClassMemberDeclarationFlags(node);
}
if (node.kind === SyntaxKind.FunctionDeclaration) {
write("function ");
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
}
else if (node.kind === SyntaxKind.Constructor) {
write("constructor");
}
else {
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
if (node.flags & NodeFlags.QuestionMark) {
write("?");
}
@@ -3201,16 +3346,15 @@ module ts {
}
}
function emitConstructSignatureDeclaration(node: SignatureDeclaration) {
function emitSignatureDeclarationWithJsDocComments(node: SignatureDeclaration) {
emitJsDocComments(node);
write("new ");
emitSignatureDeclaration(node);
}
function emitSignatureDeclaration(node: SignatureDeclaration) {
if (node.kind === SyntaxKind.CallSignature || node.kind === SyntaxKind.IndexSignature) {
// Only index and call signatures are emitted directly, so emit their js doc comments, rest will do that in their own functions
emitJsDocComments(node);
// Construct signature or constructor type write new Signature
if (node.kind === SyntaxKind.ConstructSignature || node.kind === SyntaxKind.ConstructorType) {
write("new ");
}
emitTypeParameters(node.typeParameters);
if (node.kind === SyntaxKind.IndexSignature) {
@@ -3220,6 +3364,9 @@ module ts {
write("(");
}
var prevEnclosingDeclaration = enclosingDeclaration;
enclosingDeclaration = node;
// Parameters
emitCommaList(node.parameters, emitParameterDeclaration);
@@ -3231,15 +3378,26 @@ module ts {
}
// If this is not a constructor and is not private, emit the return type
if (node.kind !== SyntaxKind.Constructor && !(node.flags & NodeFlags.Private)) {
write(": ");
getSymbolVisibilityDiagnosticMessage = getReturnTypeVisibilityError;
resolver.writeReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer);
var isFunctionTypeOrConstructorType = node.kind === SyntaxKind.FunctionType || node.kind === SyntaxKind.ConstructorType;
if (isFunctionTypeOrConstructorType || node.parent.kind === SyntaxKind.TypeLiteral) {
// Emit type literal signature return type only if specified
if (node.type) {
write(isFunctionTypeOrConstructorType ? " => " : ": ");
emitType(node.type);
}
}
else if (node.kind !== SyntaxKind.Constructor && !(node.flags & NodeFlags.Private)) {
writeReturnTypeAtSignature(node, getReturnTypeVisibilityError);
}
write(";");
writeLine();
function getReturnTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) {
enclosingDeclaration = prevEnclosingDeclaration;
if (!isFunctionTypeOrConstructorType) {
write(";");
writeLine();
}
function getReturnTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic {
var diagnosticMessage: DiagnosticMessage;
switch (node.kind) {
case SyntaxKind.ConstructSignature:
@@ -3311,19 +3469,22 @@ module ts {
if (node.flags & NodeFlags.Rest) {
write("...");
}
emitSourceTextOfNode(node.name);
writeTextOfNode(node.name);
if (node.initializer || (node.flags & NodeFlags.QuestionMark)) {
write("?");
}
decreaseIndent();
if (!(node.parent.flags & NodeFlags.Private)) {
write(": ");
getSymbolVisibilityDiagnosticMessage = getParameterDeclarationTypeVisibilityError;
resolver.writeTypeAtLocation(node, enclosingDeclaration, TypeFormatFlags.UseTypeOfFunction, writer);
if (node.parent.kind === SyntaxKind.FunctionType ||
node.parent.kind === SyntaxKind.ConstructorType ||
node.parent.parent.kind === SyntaxKind.TypeLiteral) {
emitTypeOfVariableDeclarationFromTypeLiteral(node);
}
else if (!(node.parent.flags & NodeFlags.Private)) {
writeTypeAtLocation(node, node.type, getParameterDeclarationTypeVisibilityError);
}
function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) {
function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic {
var diagnosticMessage: DiagnosticMessage;
switch (node.parent.kind) {
case SyntaxKind.Constructor:
@@ -3398,10 +3559,9 @@ module ts {
case SyntaxKind.Method:
return emitFunctionDeclaration(<FunctionLikeDeclaration>node);
case SyntaxKind.ConstructSignature:
return emitConstructSignatureDeclaration(<SignatureDeclaration>node);
case SyntaxKind.CallSignature:
case SyntaxKind.IndexSignature:
return emitSignatureDeclaration(<SignatureDeclaration>node);
return emitSignatureDeclarationWithJsDocComments(<SignatureDeclaration>node);
case SyntaxKind.GetAccessor:
case SyntaxKind.SetAccessor:
return emitAccessorDeclaration(<AccessorDeclaration>node);
+8 -4
View File
@@ -828,11 +828,15 @@ module ts {
CannotBeNamed
}
export interface SymbolAccessiblityResult {
export interface SymbolVisibilityResult {
accessibility: SymbolAccessibility;
errorSymbolName?: string // Optional symbol name that results in error
errorModuleName?: string // If the symbol is not visible from module, module's name
aliasesToMakeVisible?: ImportDeclaration[]; // aliases that need to have this symbol visible
errorSymbolName?: string; // Optional symbol name that results in error
errorNode?: Node; // optional node that results in error
}
export interface SymbolAccessiblityResult extends SymbolVisibilityResult {
errorModuleName?: string // If the symbol is not visible from module, module's name
}
export interface EmitResolver {
@@ -850,7 +854,7 @@ module ts {
writeTypeAtLocation(location: Node, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult;
isImportDeclarationEntityNameReferenceDeclarationVisibile(entityName: EntityName): SymbolAccessiblityResult;
isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult;
// Returns the constant value this property access resolves to, or 'undefined' for a non-constant
getConstantValue(node: PropertyAccess | IndexedAccess): number;
isEmitBlocked(sourceFile?: SourceFile): boolean;
+5 -106
View File
@@ -715,12 +715,12 @@ module ts {
public filename: string;
public text: string;
// These methods will have their implementation overridden with the implementation the
// These methods will have their implementation provided by the implementation the
// compiler actually exports off of SourceFile.
public getLineAndCharacterFromPosition(position: number): { line: number; character: number } { return null; }
public getPositionFromLineAndCharacter(line: number, character: number): number { return -1; }
public getLineStarts(): number[] { return undefined; }
public getSyntacticDiagnostics(): Diagnostic[] { return undefined; }
public getLineAndCharacterFromPosition: (position: number) => LineAndCharacter;
public getPositionFromLineAndCharacter: (line: number, character: number) => number;
public getLineStarts: () => number[];
public getSyntacticDiagnostics: () => Diagnostic[];
public amdDependencies: string[];
public amdModuleName: string;
@@ -890,9 +890,6 @@ module ts {
getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems;
// Obsolete. Use getSignatureHelpItems instead.
getSignatureAtPosition(fileName: string, position: number): SignatureInfo;
getRenameInfo(fileName: string, position: number): RenameInfo;
findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): RenameLocation[];
@@ -917,41 +914,6 @@ module ts {
dispose(): void;
}
export interface SignatureInfo {
actual: ActualSignatureInfo;
formal: FormalSignatureItemInfo[]; // Formal signatures
activeFormal: number; // Index of the "best match" formal signature
}
export interface FormalSignatureItemInfo {
signatureInfo: string;
typeParameters: FormalTypeParameterInfo[];
parameters: FormalParameterInfo[]; // Array of parameters
docComment: string; // Help for the signature
}
export interface FormalTypeParameterInfo {
name: string; // Type parameter name
docComment: string; // Comments that contain help for the parameter
minChar: number; // minChar for parameter info in the formal signature info string
limChar: number; // lim char for parameter info in the formal signature info string
}
export interface FormalParameterInfo {
name: string; // Parameter name
isVariable: boolean; // true if parameter is var args
docComment: string; // Comments that contain help for the parameter
minChar: number; // minChar for parameter info in the formal signature info string
limChar: number; // lim char for parameter info in the formal signature info string
}
export interface ActualSignatureInfo {
parameterMinChar: number;
parameterLimChar: number;
currentParameterIsTypeParameter: boolean; // current parameter is a type argument or a normal argument
currentParameter: number; // Index of active parameter in "parameters" or "typeParamters" array
}
export interface ClassifiedSpan {
textSpan: TextSpan;
classificationType: string; // ClassificationTypeNames
@@ -4795,68 +4757,6 @@ module ts {
return SignatureHelp.getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken);
}
function getSignatureAtPosition(filename: string, position: number): SignatureInfo {
var signatureHelpItems = getSignatureHelpItems(filename, position);
if (!signatureHelpItems) {
return undefined;
}
var currentArgumentState = { argumentIndex: signatureHelpItems.argumentIndex, argumentCount: signatureHelpItems.argumentCount };
var formalSignatures: FormalSignatureItemInfo[] = [];
forEach(signatureHelpItems.items, signature => {
var signatureInfoString = displayPartsToString(signature.prefixDisplayParts);
var parameters: FormalParameterInfo[] = [];
if (signature.parameters) {
for (var i = 0, n = signature.parameters.length; i < n; i++) {
var parameter = signature.parameters[i];
// add the parameter to the string
if (i) {
signatureInfoString += displayPartsToString(signature.separatorDisplayParts);
}
var start = signatureInfoString.length;
signatureInfoString += displayPartsToString(parameter.displayParts);
var end = signatureInfoString.length;
// add the parameter to the list
parameters.push({
name: parameter.name,
isVariable: i === n - 1 && signature.isVariadic,
docComment: displayPartsToString(parameter.documentation),
minChar: start,
limChar: end
});
}
}
signatureInfoString += displayPartsToString(signature.suffixDisplayParts);
formalSignatures.push({
signatureInfo: signatureInfoString,
docComment: displayPartsToString(signature.documentation),
parameters: parameters,
typeParameters: [],
});
});
var actualSignature: ActualSignatureInfo = {
parameterMinChar: signatureHelpItems.applicableSpan.start(),
parameterLimChar: signatureHelpItems.applicableSpan.end(),
currentParameterIsTypeParameter: false,
currentParameter: currentArgumentState.argumentIndex
};
return {
actual: actualSignature,
formal: formalSignatures,
activeFormal: 0
};
}
/// Syntactic features
function getCurrentSourceFile(filename: string): SourceFile {
filename = normalizeSlashes(filename);
@@ -5483,7 +5383,6 @@ module ts {
getFormattingEditsForDocument,
getFormattingEditsAfterKeystroke,
getEmitOutput,
getSignatureAtPosition,
};
}
-11
View File
@@ -98,9 +98,6 @@ module ts {
getSignatureHelpItems(fileName: string, position: number): string;
// Obsolete. Use getSignatureHelpItems instead.
getSignatureAtPosition(fileName: string, position: number): string;
/**
* Returns a JSON-encoded value of the type:
* { canRename: boolean, localizedErrorMessage: string, displayName: string, fullDisplayName: string, kind: string, kindModifiers: string, triggerSpan: { start; length } }
@@ -609,14 +606,6 @@ module ts {
});
}
public getSignatureAtPosition(fileName: string, position: number): string {
return this.forwardJSONCall(
"getSignatureAtPosition('" + fileName + "', " + position + ")",
() => {
return this.languageService.getSignatureAtPosition(fileName, position);
});
}
/// GOTO DEFINITION
/**
+1
View File
@@ -592,6 +592,7 @@ module TypeScript.IncrementalParser {
text: text,
fileName: fileName,
languageVersion: languageVersion,
absolutePosition: absolutePosition,
currentNode: currentNode,
currentToken: currentToken,
currentContextualToken: currentContextualToken,
+27 -5
View File
@@ -45,6 +45,9 @@ module TypeScript.Parser {
// but can affect the diagnostics produced while parsing.
languageVersion: ts.ScriptTarget;
// The place in the source text that we're currently pointing at.
absolutePosition(): number;
// The current syntax node the source is pointing at. Only available in incremental settings.
// The source can point at a node if that node doesn't intersect any of the text changes in
// the file, and doesn't contain certain unacceptable constructs. For example, if the node
@@ -541,13 +544,32 @@ module TypeScript.Parser {
return eatToken(SyntaxKind.SemicolonToken);
}
function createEmptyToken(kind: SyntaxKind): ISyntaxToken {
// The position of the empty token we're creating is not necessarily the position that
// the parser is at now. This is because we may have seen some existing missing tokens
// before finally deciding we needed a missing token. For example, if you have:
//
// Foo(a, # <eof>
//
// We will need to create a empty token for the missing ")". However, we will have
// skipped the "#" token, and thus will be right after the "#". Because the "#" token
// will actually become *skipped* trivia on the *next* token we see, the close paren
// should not be considered to be after #, and should instead be after the ",".
//
// So, if we have any skipped tokens, then the position of the empty token should be
// the position of the first skipped token we have. Otherwise it's just at the position
// of the parser.
var fullStart = _skippedTokens ? _skippedTokens[0].fullStart() : source.absolutePosition();
return Syntax.emptyToken(kind, fullStart);
}
function createMissingToken(expectedKind: SyntaxKind, actual: ISyntaxToken, diagnosticCode?: string): ISyntaxToken {
var diagnostic = getExpectedTokenDiagnostic(expectedKind, actual, diagnosticCode);
addDiagnostic(diagnostic);
// The missing token will be at the full start of the current token. That way empty tokens
// will always be between real tokens and not inside an actual token.
return Syntax.emptyToken(expectedKind);
return createEmptyToken(expectedKind);
}
function getExpectedTokenDiagnostic(expectedKind: SyntaxKind, actual?: ISyntaxToken, diagnosticCode?: string): Diagnostic {
@@ -2871,7 +2893,7 @@ module TypeScript.Parser {
addDiagnostic(diagnostic);
return new ArgumentListSyntax(parseNodeData, typeArgumentList,
Syntax.emptyToken(SyntaxKind.OpenParenToken), <any>[], Syntax.emptyToken(SyntaxKind.CloseParenToken));
createEmptyToken(SyntaxKind.OpenParenToken), <any>[], createEmptyToken(SyntaxKind.CloseParenToken));
}
else {
Debug.assert(token0.kind === SyntaxKind.OpenParenToken);
@@ -2931,7 +2953,7 @@ module TypeScript.Parser {
DiagnosticCode.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead, undefined);
addDiagnostic(diagnostic);
return Syntax.emptyToken(SyntaxKind.IdentifierName);
return createEmptyToken(SyntaxKind.IdentifierName);
}
else {
return allowInAnd(parseExpression);
@@ -3086,7 +3108,7 @@ module TypeScript.Parser {
else {
var diagnostic = getExpectedTokenDiagnostic(SyntaxKind.CloseBraceToken);
addDiagnostic(diagnostic);
token = Syntax.emptyToken(SyntaxKind.TemplateEndToken);
token = createEmptyToken(SyntaxKind.TemplateEndToken);
}
return new TemplateClauseSyntax(parseNodeData, expression, token);
@@ -4219,7 +4241,7 @@ module TypeScript.Parser {
// consume the '}' just fine. So ASI doesn't apply.
if (allowAutomaticSemicolonInsertion && canEatAutomaticSemicolon(/*allowWithoutNewline:*/ false)) {
var semicolonToken = eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false) || Syntax.emptyToken(SyntaxKind.SemicolonToken);
var semicolonToken = eatExplicitOrAutomaticSemicolon(/*allowWithoutNewline:*/ false) || createEmptyToken(SyntaxKind.SemicolonToken);
nodesAndSeparators.push(semicolonToken);
// Debug.assert(items.length % 2 === 0);
continue;
+6 -74
View File
@@ -290,8 +290,8 @@ module TypeScript.Syntax {
return new RealizedToken(token.fullStart(), token.kind, token.isKeywordConvertedToIdentifier(), leadingTrivia, token.text());
}
export function emptyToken(kind: SyntaxKind): ISyntaxToken {
return new EmptyToken(kind);
export function emptyToken(kind: SyntaxKind, fullStart: number): ISyntaxToken {
return new EmptyToken(kind, fullStart);
}
class EmptyToken implements ISyntaxToken {
@@ -300,17 +300,17 @@ module TypeScript.Syntax {
public parent: ISyntaxElement;
public childCount: number;
constructor(public kind: SyntaxKind) {
constructor(public kind: SyntaxKind, private _fullStart: number) {
}
public setFullStart(fullStart: number): void {
// An empty token is always at the -1 position.
this._fullStart = fullStart;
}
public childAt(index: number): ISyntaxElement { throw Errors.invalidOperation() }
public clone(): ISyntaxToken {
return new EmptyToken(this.kind);
return new EmptyToken(this.kind, this._fullStart);
}
// Empty tokens are never incrementally reusable.
@@ -321,75 +321,7 @@ module TypeScript.Syntax {
}
public fullWidth() { return 0; }
private position(): number {
// It's hard for us to tell the position of an empty token at the eact time we create
// it. For example, we may have:
//
// a / finally
//
// There will be a missing token detected after the forward slash, so it would be
// tempting to set its position as the full-end of hte slash token. However,
// immediately after that, the 'finally' token will be skipped and will be attached
// as skipped text to the forward slash. This means the 'full-end' of the forward
// slash will change, and thus the empty token will now appear to be embedded inside
// another token. This violates are rule that all tokens must only touch at the end,
// and makes enforcing invariants much harder.
//
// To address this we create the empty token with no known position, and then we
// determine what it's position should be based on where it lies in the tree.
// Specifically, we find the previous non-zero-width syntax element, and we consider
// the full-start of this token to be at the full-end of that element.
var previousElement = this.previousNonZeroWidthElement();
return !previousElement ? 0 : fullStart(previousElement) + fullWidth(previousElement);
}
private previousNonZeroWidthElement(): ISyntaxElement {
var current: ISyntaxElement = this;
while (true) {
var parent = current.parent;
if (parent === undefined) {
Debug.assert(current.kind === SyntaxKind.SourceUnit, "We had a node without a parent that was not the root node!");
// We walked all the way to the top, and never found a previous element. This
// can happen with code like:
//
// / b;
//
// We will have an empty identifier token as the first token in the tree. In
// this case, return undefined so that the position of the empty token will be
// considered to be 0.
return undefined;
}
// Ok. We have a parent. First, find out which slot we're at in the parent.
for (var i = 0, n = childCount(parent); i < n; i++) {
if (childAt(parent, i) === current) {
break;
}
}
Debug.assert(i !== n, "Could not find current element in parent's child list!");
// Walk backward from this element, looking for a non-zero-width sibling.
for (var j = i - 1; j >= 0; j--) {
var sibling = childAt(parent, j);
if (sibling && fullWidth(sibling) > 0) {
return sibling;
}
}
// We couldn't find a non-zero-width sibling. We were either the first element, or
// all preceding elements are empty. So, move up to our parent so we we can find
// its preceding sibling.
current = current.parent;
}
}
public fullStart(): number {
return this.position();
}
public fullStart(): number { return this._fullStart; }
public text() { return ""; }
public fullText(): string { return ""; }
@@ -1,4 +1,4 @@
tests/cases/compiler/aliasInaccessibleModule.ts(4,5): error TS4000: Import declaration 'X' is using private name 'N'.
tests/cases/compiler/aliasInaccessibleModule.ts(4,23): error TS4000: Import declaration 'X' is using private name 'N'.
==== tests/cases/compiler/aliasInaccessibleModule.ts (1 errors) ====
@@ -6,6 +6,6 @@ tests/cases/compiler/aliasInaccessibleModule.ts(4,5): error TS4000: Import decla
module N {
}
export import X = N;
~~~~~~~~~~~~~~~~~~~~
~
!!! error TS4000: Import declaration 'X' is using private name 'N'.
}
@@ -1,4 +1,4 @@
tests/cases/compiler/aliasInaccessibleModule2.ts(7,5): error TS4000: Import declaration 'R' is using private name 'N'.
tests/cases/compiler/aliasInaccessibleModule2.ts(7,16): error TS4000: Import declaration 'R' is using private name 'N'.
==== tests/cases/compiler/aliasInaccessibleModule2.ts (1 errors) ====
@@ -9,7 +9,7 @@ tests/cases/compiler/aliasInaccessibleModule2.ts(7,5): error TS4000: Import decl
}
import R = N;
~~~~~~~~~~~~~
~
!!! error TS4000: Import declaration 'R' is using private name 'N'.
export import X = R;
}
@@ -116,7 +116,7 @@ interface i2 {
/** this is x*/
x: number;
/** this is foo*/
foo: (b: number) => string;
foo: (/**param help*/ b: number) => string;
/** this is indexer*/
[/**string param*/ i: string]: any;
/**new method*/
@@ -152,7 +152,7 @@ interface i3 {
/** Function i3 f*/
f(/**number parameter*/ a: number): string;
/** i3 l*/
l: (b: number) => string;
l: (/**comment i3 l b*/ b: number) => string;
nc_x: number;
nc_f(a: number): string;
nc_l: (b: number) => string;
@@ -12,6 +12,10 @@ var anotherVar;
//// [constructorTypeWithTypeParameters.d.ts]
declare var X: new <T>() => number;
declare var Y: new () => number;
declare var X: {
new <T>(): number;
};
declare var Y: {
new (): number;
};
declare var anotherVar: new <T>() => number;
@@ -11,7 +11,7 @@ interface I {
//// [declFileForInterfaceWithRestParams.d.ts]
interface I {
foo(...x: any[]): any[];
foo2(a: number, ...x: any[]): any[];
foo3(b: string, ...x: string[]): string[];
foo(...x: any[]): typeof x;
foo2(a: number, ...x: any[]): typeof x;
foo3(b: string, ...x: string[]): typeof x;
}
@@ -120,9 +120,9 @@ export declare module C {
class B {
}
function F<T>(x: T): A<B>;
function F2<T>(x: T): A<B>;
function F3<T>(x: T): A<B>[];
function F4<T extends A<B>>(x: T): A<B>[];
function F2<T>(x: T): C.A<C.B>;
function F3<T>(x: T): C.A<C.B>[];
function F4<T extends A<B>>(x: T): Array<C.A<C.B>>;
function F5<T>(): T;
function F6<T extends A<B>>(x: T): T;
class D<T> {
@@ -97,16 +97,16 @@ declare module templa.mvc {
}
}
declare module templa.mvc {
interface IController<ModelType extends IModel> {
interface IController<ModelType extends templa.mvc.IModel> {
}
}
declare module templa.mvc {
class AbstractController<ModelType extends IModel> implements IController<ModelType> {
class AbstractController<ModelType extends templa.mvc.IModel> implements mvc.IController<ModelType> {
}
}
declare module templa.mvc.composite {
interface ICompositeControllerModel extends IModel {
getControllers(): IController<IModel>[];
interface ICompositeControllerModel extends mvc.IModel {
getControllers(): mvc.IController<mvc.IModel>[];
}
}
declare module templa.dom.mvc {
@@ -119,7 +119,7 @@ declare module templa.dom.mvc {
}
}
declare module templa.dom.mvc.composite {
class AbstractCompositeElementController<ModelType extends templa.mvc.composite.ICompositeControllerModel> extends AbstractElementController<ModelType> {
class AbstractCompositeElementController<ModelType extends templa.mvc.composite.ICompositeControllerModel> extends templa.dom.mvc.AbstractElementController<ModelType> {
_controllers: templa.mvc.IController<templa.mvc.IModel>[];
constructor();
}
@@ -32,8 +32,12 @@ var f6 = function () {
//// [declFileRestParametersOfFunctionAndFunctionType.d.ts]
declare function f1(...args: any[]): void;
declare function f2(x: (...args: any[]) => void): void;
declare function f3(x: (...args: any[]) => void): void;
declare function f4<T extends (...args: any[]) => void>(): void;
declare function f5<T extends (...args: any[]) => void>(): void;
declare function f2(x: (...args) => void): void;
declare function f3(x: {
(...args): void;
}): void;
declare function f4<T extends (...args) => void>(): void;
declare function f5<T extends {
(...args): void;
}>(): void;
declare var f6: () => any[];
@@ -0,0 +1,137 @@
//// [declFileTypeAnnotationArrayType.ts]
class c {
}
module m {
export class c {
}
export class g<T> {
}
}
class g<T> {
}
// Just the name
function foo(): c[] {
return [new c()];
}
function foo2() {
return [new c()];
}
// Qualified name
function foo3(): m.c[] {
return [new m.c()];
}
function foo4() {
return m.c;
}
// Just the name with type arguments
function foo5(): g<string>[] {
return [new g<string>()];
}
function foo6() {
return [new g<string>()];
}
// Qualified name with type arguments
function foo7(): m.g<number>[] {
return [new m.g<number>()];
}
function foo8() {
return [new m.g<number>()];
}
// Array of function types
function foo9(): (()=>c)[] {
return [() => new c()];
}
function foo10() {
return [() => new c()];
}
//// [declFileTypeAnnotationArrayType.js]
var c = (function () {
function c() {
}
return c;
})();
var m;
(function (m) {
var c = (function () {
function c() {
}
return c;
})();
m.c = c;
var g = (function () {
function g() {
}
return g;
})();
m.g = g;
})(m || (m = {}));
var g = (function () {
function g() {
}
return g;
})();
// Just the name
function foo() {
return [new c()];
}
function foo2() {
return [new c()];
}
// Qualified name
function foo3() {
return [new m.c()];
}
function foo4() {
return m.c;
}
// Just the name with type arguments
function foo5() {
return [new g()];
}
function foo6() {
return [new g()];
}
// Qualified name with type arguments
function foo7() {
return [new m.g()];
}
function foo8() {
return [new m.g()];
}
// Array of function types
function foo9() {
return [function () { return new c(); }];
}
function foo10() {
return [function () { return new c(); }];
}
//// [declFileTypeAnnotationArrayType.d.ts]
declare class c {
}
declare module m {
class c {
}
class g<T> {
}
}
declare class g<T> {
}
declare function foo(): c[];
declare function foo2(): c[];
declare function foo3(): m.c[];
declare function foo4(): typeof m.c;
declare function foo5(): g<string>[];
declare function foo6(): g<string>[];
declare function foo7(): m.g<number>[];
declare function foo8(): m.g<number>[];
declare function foo9(): (() => c)[];
declare function foo10(): (() => c)[];
@@ -0,0 +1,125 @@
=== tests/cases/compiler/declFileTypeAnnotationArrayType.ts ===
class c {
>c : c
}
module m {
>m : typeof m
export class c {
>c : c
}
export class g<T> {
>g : g<T>
>T : T
}
}
class g<T> {
>g : g<T>
>T : T
}
// Just the name
function foo(): c[] {
>foo : () => c[]
>c : c
return [new c()];
>[new c()] : c[]
>new c() : c
>c : typeof c
}
function foo2() {
>foo2 : () => c[]
return [new c()];
>[new c()] : c[]
>new c() : c
>c : typeof c
}
// Qualified name
function foo3(): m.c[] {
>foo3 : () => m.c[]
>m : unknown
>c : m.c
return [new m.c()];
>[new m.c()] : m.c[]
>new m.c() : m.c
>m.c : typeof m.c
>m : typeof m
>c : typeof m.c
}
function foo4() {
>foo4 : () => typeof m.c
return m.c;
>m.c : typeof m.c
>m : typeof m
>c : typeof m.c
}
// Just the name with type arguments
function foo5(): g<string>[] {
>foo5 : () => g<string>[]
>g : g<T>
return [new g<string>()];
>[new g<string>()] : g<string>[]
>new g<string>() : g<string>
>g : typeof g
}
function foo6() {
>foo6 : () => g<string>[]
return [new g<string>()];
>[new g<string>()] : g<string>[]
>new g<string>() : g<string>
>g : typeof g
}
// Qualified name with type arguments
function foo7(): m.g<number>[] {
>foo7 : () => m.g<number>[]
>m : unknown
>g : m.g<T>
return [new m.g<number>()];
>[new m.g<number>()] : m.g<number>[]
>new m.g<number>() : m.g<number>
>m.g : typeof m.g
>m : typeof m
>g : typeof m.g
}
function foo8() {
>foo8 : () => m.g<number>[]
return [new m.g<number>()];
>[new m.g<number>()] : m.g<number>[]
>new m.g<number>() : m.g<number>
>m.g : typeof m.g
>m : typeof m
>g : typeof m.g
}
// Array of function types
function foo9(): (()=>c)[] {
>foo9 : () => (() => c)[]
>c : c
return [() => new c()];
>[() => new c()] : (() => c)[]
>() => new c() : () => c
>new c() : c
>c : typeof c
}
function foo10() {
>foo10 : () => (() => c)[]
return [() => new c()];
>[() => new c()] : (() => c)[]
>() => new c() : () => c
>new c() : c
>c : typeof c
}
@@ -0,0 +1,91 @@
//// [declFileTypeAnnotationBuiltInType.ts]
// string
function foo(): string {
return "";
}
function foo2() {
return "";
}
// number
function foo3(): number {
return 10;
}
function foo4() {
return 10;
}
// boolean
function foo5(): boolean {
return true;
}
function foo6() {
return false;
}
// void
function foo7(): void {
return;
}
function foo8() {
return;
}
// any
function foo9(): any {
return undefined;
}
function foo10() {
return undefined;
}
//// [declFileTypeAnnotationBuiltInType.js]
// string
function foo() {
return "";
}
function foo2() {
return "";
}
// number
function foo3() {
return 10;
}
function foo4() {
return 10;
}
// boolean
function foo5() {
return true;
}
function foo6() {
return false;
}
// void
function foo7() {
return;
}
function foo8() {
return;
}
// any
function foo9() {
return undefined;
}
function foo10() {
return undefined;
}
//// [declFileTypeAnnotationBuiltInType.d.ts]
declare function foo(): string;
declare function foo2(): string;
declare function foo3(): number;
declare function foo4(): number;
declare function foo5(): boolean;
declare function foo6(): boolean;
declare function foo7(): void;
declare function foo8(): void;
declare function foo9(): any;
declare function foo10(): any;
@@ -0,0 +1,63 @@
=== tests/cases/compiler/declFileTypeAnnotationBuiltInType.ts ===
// string
function foo(): string {
>foo : () => string
return "";
}
function foo2() {
>foo2 : () => string
return "";
}
// number
function foo3(): number {
>foo3 : () => number
return 10;
}
function foo4() {
>foo4 : () => number
return 10;
}
// boolean
function foo5(): boolean {
>foo5 : () => boolean
return true;
}
function foo6() {
>foo6 : () => boolean
return false;
}
// void
function foo7(): void {
>foo7 : () => void
return;
}
function foo8() {
>foo8 : () => void
return;
}
// any
function foo9(): any {
>foo9 : () => any
return undefined;
>undefined : undefined
}
function foo10() {
>foo10 : () => any
return undefined;
>undefined : undefined
}
@@ -0,0 +1,32 @@
//// [declFileTypeAnnotationParenType.ts]
class c {
private p: string;
}
var x: (() => c)[] = [() => new c()];
var y = [() => new c()];
var k: (() => c) | string = (() => new c()) || "";
var l = (() => new c()) || "";
//// [declFileTypeAnnotationParenType.js]
var c = (function () {
function c() {
}
return c;
})();
var x = [function () { return new c(); }];
var y = [function () { return new c(); }];
var k = (function () { return new c(); }) || "";
var l = (function () { return new c(); }) || "";
//// [declFileTypeAnnotationParenType.d.ts]
declare class c {
private p;
}
declare var x: (() => c)[];
declare var y: (() => c)[];
declare var k: (() => c) | string;
declare var l: string | (() => c);
@@ -0,0 +1,41 @@
=== tests/cases/compiler/declFileTypeAnnotationParenType.ts ===
class c {
>c : c
private p: string;
>p : string
}
var x: (() => c)[] = [() => new c()];
>x : (() => c)[]
>c : c
>[() => new c()] : (() => c)[]
>() => new c() : () => c
>new c() : c
>c : typeof c
var y = [() => new c()];
>y : (() => c)[]
>[() => new c()] : (() => c)[]
>() => new c() : () => c
>new c() : c
>c : typeof c
var k: (() => c) | string = (() => new c()) || "";
>k : string | (() => c)
>c : c
>(() => new c()) || "" : string | (() => c)
>(() => new c()) : () => c
>() => new c() : () => c
>new c() : c
>c : typeof c
var l = (() => new c()) || "";
>l : string | (() => c)
>(() => new c()) || "" : string | (() => c)
>(() => new c()) : () => c
>() => new c() : () => c
>new c() : c
>c : typeof c
@@ -0,0 +1,26 @@
//// [declFileTypeAnnotationStringLiteral.ts]
function foo(a: "hello"): number;
function foo(a: "name"): string;
function foo(a: string): string | number;
function foo(a: string): string | number {
if (a === "hello") {
return a.length;
}
return a;
}
//// [declFileTypeAnnotationStringLiteral.js]
function foo(a) {
if (a === "hello") {
return a.length;
}
return a;
}
//// [declFileTypeAnnotationStringLiteral.d.ts]
declare function foo(a: "hello"): number;
declare function foo(a: "name"): string;
declare function foo(a: string): string | number;
@@ -0,0 +1,31 @@
=== tests/cases/compiler/declFileTypeAnnotationStringLiteral.ts ===
function foo(a: "hello"): number;
>foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; }
>a : "hello"
function foo(a: "name"): string;
>foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; }
>a : "name"
function foo(a: string): string | number;
>foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; }
>a : string
function foo(a: string): string | number {
>foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; }
>a : string
if (a === "hello") {
>a === "hello" : boolean
>a : string
return a.length;
>a.length : number
>a : string
>length : number
}
return a;
>a : string
}
@@ -0,0 +1,68 @@
//// [declFileTypeAnnotationTupleType.ts]
class c {
}
module m {
export class c {
}
export class g<T> {
}
}
class g<T> {
}
// Just the name
var k: [c, m.c] = [new c(), new m.c()];
var l = k;
var x: [g<string>, m.g<number>, () => c] = [new g<string>(), new m.g<number>(), () => new c()];
var y = x;
//// [declFileTypeAnnotationTupleType.js]
var c = (function () {
function c() {
}
return c;
})();
var m;
(function (m) {
var c = (function () {
function c() {
}
return c;
})();
m.c = c;
var g = (function () {
function g() {
}
return g;
})();
m.g = g;
})(m || (m = {}));
var g = (function () {
function g() {
}
return g;
})();
// Just the name
var k = [new c(), new m.c()];
var l = k;
var x = [new g(), new m.g(), function () { return new c(); }];
var y = x;
//// [declFileTypeAnnotationTupleType.d.ts]
declare class c {
}
declare module m {
class c {
}
class g<T> {
}
}
declare class g<T> {
}
declare var k: [c, m.c];
declare var l: [c, m.c];
declare var x: [g<string>, m.g<number>, () => c];
declare var y: [g<string>, m.g<number>, () => c];
@@ -0,0 +1,60 @@
=== tests/cases/compiler/declFileTypeAnnotationTupleType.ts ===
class c {
>c : c
}
module m {
>m : typeof m
export class c {
>c : c
}
export class g<T> {
>g : g<T>
>T : T
}
}
class g<T> {
>g : g<T>
>T : T
}
// Just the name
var k: [c, m.c] = [new c(), new m.c()];
>k : [c, m.c]
>c : c
>m : unknown
>c : m.c
>[new c(), new m.c()] : [c, m.c]
>new c() : c
>c : typeof c
>new m.c() : m.c
>m.c : typeof m.c
>m : typeof m
>c : typeof m.c
var l = k;
>l : [c, m.c]
>k : [c, m.c]
var x: [g<string>, m.g<number>, () => c] = [new g<string>(), new m.g<number>(), () => new c()];
>x : [g<string>, m.g<number>, () => c]
>g : g<T>
>m : unknown
>g : m.g<T>
>c : c
>[new g<string>(), new m.g<number>(), () => new c()] : [g<string>, m.g<number>, () => c]
>new g<string>() : g<string>
>g : typeof g
>new m.g<number>() : m.g<number>
>m.g : typeof m.g
>m : typeof m
>g : typeof m.g
>() => new c() : () => c
>new c() : c
>c : typeof c
var y = x;
>y : [g<string>, m.g<number>, () => c]
>x : [g<string>, m.g<number>, () => c]
@@ -0,0 +1,93 @@
//// [declFileTypeAnnotationTypeAlias.ts]
module M {
export type Value = string | number | boolean;
export var x: Value;
export class c {
}
export type C = c;
export module m {
export class c {
}
}
export type MC = m.c;
export type fc = () => c;
}
interface Window {
someMethod();
}
module M {
export type W = Window | string;
export module N {
export class Window { }
export var p: W;
}
}
//// [declFileTypeAnnotationTypeAlias.js]
var M;
(function (M) {
M.x;
var c = (function () {
function c() {
}
return c;
})();
M.c = c;
var m;
(function (m) {
var c = (function () {
function c() {
}
return c;
})();
m.c = c;
})(m = M.m || (M.m = {}));
})(M || (M = {}));
var M;
(function (M) {
var N;
(function (N) {
var Window = (function () {
function Window() {
}
return Window;
})();
N.Window = Window;
N.p;
})(N = M.N || (M.N = {}));
})(M || (M = {}));
//// [declFileTypeAnnotationTypeAlias.d.ts]
declare module M {
type Value = string | number | boolean;
var x: Value;
class c {
}
type C = c;
module m {
class c {
}
}
type MC = m.c;
type fc = () => c;
}
interface Window {
someMethod(): any;
}
declare module M {
type W = Window | string;
module N {
class Window {
}
var p: W;
}
}
@@ -0,0 +1,63 @@
=== tests/cases/compiler/declFileTypeAnnotationTypeAlias.ts ===
module M {
>M : typeof M
export type Value = string | number | boolean;
>Value : string | number | boolean
export var x: Value;
>x : string | number | boolean
>Value : string | number | boolean
export class c {
>c : c
}
export type C = c;
>C : c
>c : c
export module m {
>m : typeof m
export class c {
>c : c
}
}
export type MC = m.c;
>MC : m.c
>m : unknown
>c : m.c
export type fc = () => c;
>fc : () => c
>c : c
}
interface Window {
>Window : Window
someMethod();
>someMethod : () => any
}
module M {
>M : typeof M
export type W = Window | string;
>W : string | Window
>Window : Window
export module N {
>N : typeof N
export class Window { }
>Window : Window
export var p: W;
>p : string | Window
>W : string | Window
}
}
@@ -0,0 +1,92 @@
//// [declFileTypeAnnotationTypeLiteral.ts]
class c {
}
class g<T> {
}
module m {
export class c {
}
}
// Object literal with everything
var x: {
// Call signatures
(a: number): c;
(a: string): g<string>;
// Construct signatures
new (a: number): c;
new (a: string): m.c;
// Indexers
[n: number]: c;
[n: string]: c;
// Properties
a: c;
b: g<string>;
// methods
m1(): g<number>;
m2(a: string, b?: number, ...c: c[]): string;
};
// Function type
var y: (a: string) => string;
// constructor type
var z: new (a: string) => m.c;
//// [declFileTypeAnnotationTypeLiteral.js]
var c = (function () {
function c() {
}
return c;
})();
var g = (function () {
function g() {
}
return g;
})();
var m;
(function (m) {
var c = (function () {
function c() {
}
return c;
})();
m.c = c;
})(m || (m = {}));
// Object literal with everything
var x;
// Function type
var y;
// constructor type
var z;
//// [declFileTypeAnnotationTypeLiteral.d.ts]
declare class c {
}
declare class g<T> {
}
declare module m {
class c {
}
}
declare var x: {
(a: number): c;
(a: string): g<string>;
new (a: number): c;
new (a: string): m.c;
[n: number]: c;
[n: string]: c;
a: c;
b: g<string>;
m1(): g<number>;
m2(a: string, b?: number, ...c: c[]): string;
};
declare var y: (a: string) => string;
declare var z: new (a: string) => m.c;
@@ -0,0 +1,85 @@
=== tests/cases/compiler/declFileTypeAnnotationTypeLiteral.ts ===
class c {
>c : c
}
class g<T> {
>g : g<T>
>T : T
}
module m {
>m : typeof m
export class c {
>c : c
}
}
// Object literal with everything
var x: {
>x : { (a: number): c; (a: string): g<string>; new (a: number): c; new (a: string): m.c; [x: string]: c; [x: number]: c; a: c; b: g<string>; m1(): g<number>; m2(a: string, b?: number, ...c: c[]): string; }
// Call signatures
(a: number): c;
>a : number
>c : c
(a: string): g<string>;
>a : string
>g : g<T>
// Construct signatures
new (a: number): c;
>a : number
>c : c
new (a: string): m.c;
>a : string
>m : unknown
>c : m.c
// Indexers
[n: number]: c;
>n : number
>c : c
[n: string]: c;
>n : string
>c : c
// Properties
a: c;
>a : c
>c : c
b: g<string>;
>b : g<string>
>g : g<T>
// methods
m1(): g<number>;
>m1 : () => g<number>
>g : g<T>
m2(a: string, b?: number, ...c: c[]): string;
>m2 : (a: string, b?: number, ...c: c[]) => string
>a : string
>b : number
>c : c[]
>c : c
};
// Function type
var y: (a: string) => string;
>y : (a: string) => string
>a : string
// constructor type
var z: new (a: string) => m.c;
>z : new (a: string) => m.c
>a : string
>m : unknown
>c : m.c
@@ -0,0 +1,120 @@
//// [declFileTypeAnnotationTypeQuery.ts]
class c {
}
module m {
export class c {
}
export class g<T> {
}
}
class g<T> {
}
// Just the name
function foo(): typeof c {
return c;
}
function foo2() {
return c;
}
// Qualified name
function foo3(): typeof m.c {
return m.c;
}
function foo4() {
return m.c;
}
// Just the name with type arguments
function foo5(): typeof g {
return g;
}
function foo6() {
return g;
}
// Qualified name with type arguments
function foo7(): typeof m.g {
return m.g
}
function foo8() {
return m.g
}
//// [declFileTypeAnnotationTypeQuery.js]
var c = (function () {
function c() {
}
return c;
})();
var m;
(function (m) {
var c = (function () {
function c() {
}
return c;
})();
m.c = c;
var g = (function () {
function g() {
}
return g;
})();
m.g = g;
})(m || (m = {}));
var g = (function () {
function g() {
}
return g;
})();
// Just the name
function foo() {
return c;
}
function foo2() {
return c;
}
// Qualified name
function foo3() {
return m.c;
}
function foo4() {
return m.c;
}
// Just the name with type arguments
function foo5() {
return g;
}
function foo6() {
return g;
}
// Qualified name with type arguments
function foo7() {
return m.g;
}
function foo8() {
return m.g;
}
//// [declFileTypeAnnotationTypeQuery.d.ts]
declare class c {
}
declare module m {
class c {
}
class g<T> {
}
}
declare class g<T> {
}
declare function foo(): typeof c;
declare function foo2(): typeof c;
declare function foo3(): typeof m.c;
declare function foo4(): typeof m.c;
declare function foo5(): typeof g;
declare function foo6(): typeof g;
declare function foo7(): typeof m.g;
declare function foo8(): typeof m.g;
@@ -0,0 +1,90 @@
=== tests/cases/compiler/declFileTypeAnnotationTypeQuery.ts ===
class c {
>c : c
}
module m {
>m : typeof m
export class c {
>c : c
}
export class g<T> {
>g : g<T>
>T : T
}
}
class g<T> {
>g : g<T>
>T : T
}
// Just the name
function foo(): typeof c {
>foo : () => typeof c
>c : typeof c
return c;
>c : typeof c
}
function foo2() {
>foo2 : () => typeof c
return c;
>c : typeof c
}
// Qualified name
function foo3(): typeof m.c {
>foo3 : () => typeof m.c
>m : typeof m
>c : typeof m.c
return m.c;
>m.c : typeof m.c
>m : typeof m
>c : typeof m.c
}
function foo4() {
>foo4 : () => typeof m.c
return m.c;
>m.c : typeof m.c
>m : typeof m
>c : typeof m.c
}
// Just the name with type arguments
function foo5(): typeof g {
>foo5 : () => typeof g
>g : typeof g
return g;
>g : typeof g
}
function foo6() {
>foo6 : () => typeof g
return g;
>g : typeof g
}
// Qualified name with type arguments
function foo7(): typeof m.g {
>foo7 : () => typeof m.g
>m : typeof m
>g : typeof m.g
return m.g
>m.g : typeof m.g
>m : typeof m
>g : typeof m.g
}
function foo8() {
>foo8 : () => typeof m.g
return m.g
>m.g : typeof m.g
>m : typeof m
>g : typeof m.g
}
@@ -0,0 +1,120 @@
//// [declFileTypeAnnotationTypeReference.ts]
class c {
}
module m {
export class c {
}
export class g<T> {
}
}
class g<T> {
}
// Just the name
function foo(): c {
return new c();
}
function foo2() {
return new c();
}
// Qualified name
function foo3(): m.c {
return new m.c();
}
function foo4() {
return new m.c();
}
// Just the name with type arguments
function foo5(): g<string> {
return new g<string>();
}
function foo6() {
return new g<string>();
}
// Qualified name with type arguments
function foo7(): m.g<number> {
return new m.g<number>();
}
function foo8() {
return new m.g<number>();
}
//// [declFileTypeAnnotationTypeReference.js]
var c = (function () {
function c() {
}
return c;
})();
var m;
(function (m) {
var c = (function () {
function c() {
}
return c;
})();
m.c = c;
var g = (function () {
function g() {
}
return g;
})();
m.g = g;
})(m || (m = {}));
var g = (function () {
function g() {
}
return g;
})();
// Just the name
function foo() {
return new c();
}
function foo2() {
return new c();
}
// Qualified name
function foo3() {
return new m.c();
}
function foo4() {
return new m.c();
}
// Just the name with type arguments
function foo5() {
return new g();
}
function foo6() {
return new g();
}
// Qualified name with type arguments
function foo7() {
return new m.g();
}
function foo8() {
return new m.g();
}
//// [declFileTypeAnnotationTypeReference.d.ts]
declare class c {
}
declare module m {
class c {
}
class g<T> {
}
}
declare class g<T> {
}
declare function foo(): c;
declare function foo2(): c;
declare function foo3(): m.c;
declare function foo4(): m.c;
declare function foo5(): g<string>;
declare function foo6(): g<string>;
declare function foo7(): m.g<number>;
declare function foo8(): m.g<number>;
@@ -0,0 +1,98 @@
=== tests/cases/compiler/declFileTypeAnnotationTypeReference.ts ===
class c {
>c : c
}
module m {
>m : typeof m
export class c {
>c : c
}
export class g<T> {
>g : g<T>
>T : T
}
}
class g<T> {
>g : g<T>
>T : T
}
// Just the name
function foo(): c {
>foo : () => c
>c : c
return new c();
>new c() : c
>c : typeof c
}
function foo2() {
>foo2 : () => c
return new c();
>new c() : c
>c : typeof c
}
// Qualified name
function foo3(): m.c {
>foo3 : () => m.c
>m : unknown
>c : m.c
return new m.c();
>new m.c() : m.c
>m.c : typeof m.c
>m : typeof m
>c : typeof m.c
}
function foo4() {
>foo4 : () => m.c
return new m.c();
>new m.c() : m.c
>m.c : typeof m.c
>m : typeof m
>c : typeof m.c
}
// Just the name with type arguments
function foo5(): g<string> {
>foo5 : () => g<string>
>g : g<T>
return new g<string>();
>new g<string>() : g<string>
>g : typeof g
}
function foo6() {
>foo6 : () => g<string>
return new g<string>();
>new g<string>() : g<string>
>g : typeof g
}
// Qualified name with type arguments
function foo7(): m.g<number> {
>foo7 : () => m.g<number>
>m : unknown
>g : m.g<T>
return new m.g<number>();
>new m.g<number>() : m.g<number>
>m.g : typeof m.g
>m : typeof m
>g : typeof m.g
}
function foo8() {
>foo8 : () => m.g<number>
return new m.g<number>();
>new m.g<number>() : m.g<number>
>m.g : typeof m.g
>m : typeof m
>g : typeof m.g
}
@@ -0,0 +1,76 @@
//// [declFileTypeAnnotationUnionType.ts]
class c {
private p: string;
}
module m {
export class c {
private q: string;
}
export class g<T> {
private r: string;
}
}
class g<T> {
private s: string;
}
// Just the name
var k: c | m.c = new c() || new m.c();
var l = new c() || new m.c();
var x: g<string> | m.g<number> | (() => c) = new g<string>() || new m.g<number>() || (() => new c());
var y = new g<string>() || new m.g<number>() || (() => new c());
//// [declFileTypeAnnotationUnionType.js]
var c = (function () {
function c() {
}
return c;
})();
var m;
(function (m) {
var c = (function () {
function c() {
}
return c;
})();
m.c = c;
var g = (function () {
function g() {
}
return g;
})();
m.g = g;
})(m || (m = {}));
var g = (function () {
function g() {
}
return g;
})();
// Just the name
var k = new c() || new m.c();
var l = new c() || new m.c();
var x = new g() || new m.g() || (function () { return new c(); });
var y = new g() || new m.g() || (function () { return new c(); });
//// [declFileTypeAnnotationUnionType.d.ts]
declare class c {
private p;
}
declare module m {
class c {
private q;
}
class g<T> {
private r;
}
}
declare class g<T> {
private s;
}
declare var k: c | m.c;
declare var l: c | m.c;
declare var x: g<string> | m.g<number> | (() => c);
declare var y: g<string> | m.g<number> | (() => c);
@@ -0,0 +1,91 @@
=== tests/cases/compiler/declFileTypeAnnotationUnionType.ts ===
class c {
>c : c
private p: string;
>p : string
}
module m {
>m : typeof m
export class c {
>c : c
private q: string;
>q : string
}
export class g<T> {
>g : g<T>
>T : T
private r: string;
>r : string
}
}
class g<T> {
>g : g<T>
>T : T
private s: string;
>s : string
}
// Just the name
var k: c | m.c = new c() || new m.c();
>k : c | m.c
>c : c
>m : unknown
>c : m.c
>new c() || new m.c() : c | m.c
>new c() : c
>c : typeof c
>new m.c() : m.c
>m.c : typeof m.c
>m : typeof m
>c : typeof m.c
var l = new c() || new m.c();
>l : c | m.c
>new c() || new m.c() : c | m.c
>new c() : c
>c : typeof c
>new m.c() : m.c
>m.c : typeof m.c
>m : typeof m
>c : typeof m.c
var x: g<string> | m.g<number> | (() => c) = new g<string>() || new m.g<number>() || (() => new c());
>x : g<string> | m.g<number> | (() => c)
>g : g<T>
>m : unknown
>g : m.g<T>
>c : c
>new g<string>() || new m.g<number>() || (() => new c()) : g<string> | m.g<number> | (() => c)
>new g<string>() || new m.g<number>() : g<string> | m.g<number>
>new g<string>() : g<string>
>g : typeof g
>new m.g<number>() : m.g<number>
>m.g : typeof m.g
>m : typeof m
>g : typeof m.g
>(() => new c()) : () => c
>() => new c() : () => c
>new c() : c
>c : typeof c
var y = new g<string>() || new m.g<number>() || (() => new c());
>y : g<string> | m.g<number> | (() => c)
>new g<string>() || new m.g<number>() || (() => new c()) : g<string> | m.g<number> | (() => c)
>new g<string>() || new m.g<number>() : g<string> | m.g<number>
>new g<string>() : g<string>
>g : typeof g
>new m.g<number>() : m.g<number>
>m.g : typeof m.g
>m : typeof m
>g : typeof m.g
>(() => new c()) : () => c
>() => new c() : () => c
>new c() : c
>c : typeof c
@@ -0,0 +1,133 @@
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(16,21): error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(21,13): error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(26,25): error TS4037: Parameter 'foo3' of public property setter from exported class has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(33,25): error TS4037: Parameter 'foo4' of public property setter from exported class has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(37,21): error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(72,23): error TS4043: Return type of public property getter from exported class has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(77,13): error TS4042: Return type of public property getter from exported class has or is using name 'm2.public2' from private module 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(82,27): error TS4037: Parameter 'foo113' of public property setter from exported class has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(89,27): error TS4037: Parameter 'foo114' of public property setter from exported class has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(93,23): error TS4043: Return type of public property getter from exported class has or is using private name 'm2'.
==== tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts (10 errors) ====
module m {
class private1 {
}
export class public1 {
}
module m2 {
export class public2 {
}
}
export class c {
// getter with annotation
get foo1(): private1 {
~~~~~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
return;
}
// getter without annotation
get foo2() {
~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
return new private1();
}
// setter with annotation
set foo3(param: private1) {
~~~~~~~~
!!! error TS4037: Parameter 'foo3' of public property setter from exported class has or is using private name 'private1'.
}
// Both - getter without annotation, setter with annotation
get foo4() {
return new private1();
}
set foo4(param: private1) {
~~~~~~~~
!!! error TS4037: Parameter 'foo4' of public property setter from exported class has or is using private name 'private1'.
}
// Both - with annotation
get foo5(): private1 {
~~~~~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
return;
}
set foo5(param: private1) {
}
// getter with annotation
get foo11(): public1 {
return;
}
// getter without annotation
get foo12() {
return new public1();
}
// setter with annotation
set foo13(param: public1) {
}
// Both - getter without annotation, setter with annotation
get foo14() {
return new public1();
}
set foo14(param: public1) {
}
// Both - with annotation
get foo15(): public1 {
return;
}
set foo15(param: public1) {
}
// getter with annotation
get foo111(): m2.public2 {
~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'm2'.
return;
}
// getter without annotation
get foo112() {
~~~~~~
!!! error TS4042: Return type of public property getter from exported class has or is using name 'm2.public2' from private module 'm2'.
return new m2.public2();
}
// setter with annotation
set foo113(param: m2.public2) {
~~
!!! error TS4037: Parameter 'foo113' of public property setter from exported class has or is using private name 'm2'.
}
// Both - getter without annotation, setter with annotation
get foo114() {
return new m2.public2();
}
set foo114(param: m2.public2) {
~~
!!! error TS4037: Parameter 'foo114' of public property setter from exported class has or is using private name 'm2'.
}
// Both - with annotation
get foo115(): m2.public2 {
~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'm2'.
return;
}
set foo115(param: m2.public2) {
}
}
}
@@ -0,0 +1,261 @@
//// [declFileTypeAnnotationVisibilityErrorAccessors.ts]
module m {
class private1 {
}
export class public1 {
}
module m2 {
export class public2 {
}
}
export class c {
// getter with annotation
get foo1(): private1 {
return;
}
// getter without annotation
get foo2() {
return new private1();
}
// setter with annotation
set foo3(param: private1) {
}
// Both - getter without annotation, setter with annotation
get foo4() {
return new private1();
}
set foo4(param: private1) {
}
// Both - with annotation
get foo5(): private1 {
return;
}
set foo5(param: private1) {
}
// getter with annotation
get foo11(): public1 {
return;
}
// getter without annotation
get foo12() {
return new public1();
}
// setter with annotation
set foo13(param: public1) {
}
// Both - getter without annotation, setter with annotation
get foo14() {
return new public1();
}
set foo14(param: public1) {
}
// Both - with annotation
get foo15(): public1 {
return;
}
set foo15(param: public1) {
}
// getter with annotation
get foo111(): m2.public2 {
return;
}
// getter without annotation
get foo112() {
return new m2.public2();
}
// setter with annotation
set foo113(param: m2.public2) {
}
// Both - getter without annotation, setter with annotation
get foo114() {
return new m2.public2();
}
set foo114(param: m2.public2) {
}
// Both - with annotation
get foo115(): m2.public2 {
return;
}
set foo115(param: m2.public2) {
}
}
}
//// [declFileTypeAnnotationVisibilityErrorAccessors.js]
var m;
(function (m) {
var private1 = (function () {
function private1() {
}
return private1;
})();
var public1 = (function () {
function public1() {
}
return public1;
})();
m.public1 = public1;
var m2;
(function (m2) {
var public2 = (function () {
function public2() {
}
return public2;
})();
m2.public2 = public2;
})(m2 || (m2 = {}));
var c = (function () {
function c() {
}
Object.defineProperty(c.prototype, "foo1", {
// getter with annotation
get: function () {
return;
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo2", {
// getter without annotation
get: function () {
return new private1();
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo3", {
// setter with annotation
set: function (param) {
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo4", {
// Both - getter without annotation, setter with annotation
get: function () {
return new private1();
},
set: function (param) {
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo5", {
// Both - with annotation
get: function () {
return;
},
set: function (param) {
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo11", {
// getter with annotation
get: function () {
return;
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo12", {
// getter without annotation
get: function () {
return new public1();
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo13", {
// setter with annotation
set: function (param) {
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo14", {
// Both - getter without annotation, setter with annotation
get: function () {
return new public1();
},
set: function (param) {
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo15", {
// Both - with annotation
get: function () {
return;
},
set: function (param) {
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo111", {
// getter with annotation
get: function () {
return;
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo112", {
// getter without annotation
get: function () {
return new m2.public2();
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo113", {
// setter with annotation
set: function (param) {
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo114", {
// Both - getter without annotation, setter with annotation
get: function () {
return new m2.public2();
},
set: function (param) {
},
enumerable: true,
configurable: true
});
Object.defineProperty(c.prototype, "foo115", {
// Both - with annotation
get: function () {
return;
},
set: function (param) {
},
enumerable: true,
configurable: true
});
return c;
})();
m.c = c;
})(m || (m = {}));
@@ -0,0 +1,60 @@
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts(15,34): error TS4078: Parameter 'param' of exported function has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts(17,26): error TS4078: Parameter 'param' of exported function has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts(40,35): error TS4078: Parameter 'param' of exported function has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts(42,28): error TS4077: Parameter 'param' of exported function has or is using name 'm2.public2' from private module 'm2'.
==== tests/cases/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts (4 errors) ====
module m {
class private1 {
}
export class public1 {
}
// Directly using names from this module
function foo1(param: private1) {
}
function foo2(param = new private1()) {
}
export function foo3(param : private1) {
~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'private1'.
}
export function foo4(param = new private1()) {
~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'private1'.
}
function foo11(param: public1) {
}
function foo12(param = new public1()) {
}
export function foo13(param: public1) {
}
export function foo14(param = new public1()) {
}
module m2 {
export class public2 {
}
}
function foo111(param: m2.public2) {
}
function foo112(param = new m2.public2()) {
}
export function foo113(param: m2.public2) {
~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'm2'.
}
export function foo114(param = new m2.public2()) {
~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4077: Parameter 'param' of exported function has or is using name 'm2.public2' from private module 'm2'.
}
}
@@ -0,0 +1,108 @@
//// [declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts]
module m {
class private1 {
}
export class public1 {
}
// Directly using names from this module
function foo1(param: private1) {
}
function foo2(param = new private1()) {
}
export function foo3(param : private1) {
}
export function foo4(param = new private1()) {
}
function foo11(param: public1) {
}
function foo12(param = new public1()) {
}
export function foo13(param: public1) {
}
export function foo14(param = new public1()) {
}
module m2 {
export class public2 {
}
}
function foo111(param: m2.public2) {
}
function foo112(param = new m2.public2()) {
}
export function foo113(param: m2.public2) {
}
export function foo114(param = new m2.public2()) {
}
}
//// [declFileTypeAnnotationVisibilityErrorParameterOfFunction.js]
var m;
(function (m) {
var private1 = (function () {
function private1() {
}
return private1;
})();
var public1 = (function () {
function public1() {
}
return public1;
})();
m.public1 = public1;
// Directly using names from this module
function foo1(param) {
}
function foo2(param) {
if (param === void 0) { param = new private1(); }
}
function foo3(param) {
}
m.foo3 = foo3;
function foo4(param) {
if (param === void 0) { param = new private1(); }
}
m.foo4 = foo4;
function foo11(param) {
}
function foo12(param) {
if (param === void 0) { param = new public1(); }
}
function foo13(param) {
}
m.foo13 = foo13;
function foo14(param) {
if (param === void 0) { param = new public1(); }
}
m.foo14 = foo14;
var m2;
(function (m2) {
var public2 = (function () {
function public2() {
}
return public2;
})();
m2.public2 = public2;
})(m2 || (m2 = {}));
function foo111(param) {
}
function foo112(param) {
if (param === void 0) { param = new m2.public2(); }
}
function foo113(param) {
}
m.foo113 = foo113;
function foo114(param) {
if (param === void 0) { param = new m2.public2(); }
}
m.foo114 = foo114;
})(m || (m = {}));
@@ -0,0 +1,72 @@
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.ts(17,29): error TS4060: Return type of exported function has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.ts(20,21): error TS4060: Return type of exported function has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.ts(50,31): error TS4060: Return type of exported function has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.ts(53,21): error TS4059: Return type of exported function has or is using name 'm2.public2' from private module 'm2'.
==== tests/cases/compiler/declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.ts (4 errors) ====
module m {
class private1 {
}
export class public1 {
}
// Directly using names from this module
function foo1(): private1 {
return;
}
function foo2() {
return new private1();
}
export function foo3(): private1 {
~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'private1'.
return;
}
export function foo4() {
~~~~
!!! error TS4060: Return type of exported function has or is using private name 'private1'.
return new private1();
}
function foo11(): public1 {
return;
}
function foo12() {
return new public1();
}
export function foo13(): public1 {
return;
}
export function foo14() {
return new public1();
}
module m2 {
export class public2 {
}
}
function foo111(): m2.public2 {
return;
}
function foo112() {
return new m2.public2();
}
export function foo113(): m2.public2 {
~~
!!! error TS4060: Return type of exported function has or is using private name 'm2'.
return;
}
export function foo114() {
~~~~~~
!!! error TS4059: Return type of exported function has or is using name 'm2.public2' from private module 'm2'.
return new m2.public2();
}
}
@@ -0,0 +1,126 @@
//// [declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.ts]
module m {
class private1 {
}
export class public1 {
}
// Directly using names from this module
function foo1(): private1 {
return;
}
function foo2() {
return new private1();
}
export function foo3(): private1 {
return;
}
export function foo4() {
return new private1();
}
function foo11(): public1 {
return;
}
function foo12() {
return new public1();
}
export function foo13(): public1 {
return;
}
export function foo14() {
return new public1();
}
module m2 {
export class public2 {
}
}
function foo111(): m2.public2 {
return;
}
function foo112() {
return new m2.public2();
}
export function foo113(): m2.public2 {
return;
}
export function foo114() {
return new m2.public2();
}
}
//// [declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.js]
var m;
(function (m) {
var private1 = (function () {
function private1() {
}
return private1;
})();
var public1 = (function () {
function public1() {
}
return public1;
})();
m.public1 = public1;
// Directly using names from this module
function foo1() {
return;
}
function foo2() {
return new private1();
}
function foo3() {
return;
}
m.foo3 = foo3;
function foo4() {
return new private1();
}
m.foo4 = foo4;
function foo11() {
return;
}
function foo12() {
return new public1();
}
function foo13() {
return;
}
m.foo13 = foo13;
function foo14() {
return new public1();
}
m.foo14 = foo14;
var m2;
(function (m2) {
var public2 = (function () {
function public2() {
}
return public2;
})();
m2.public2 = public2;
})(m2 || (m2 = {}));
function foo111() {
return;
}
function foo112() {
return new m2.public2();
}
function foo113() {
return;
}
m.foo113 = foo113;
function foo114() {
return new m2.public2();
}
m.foo114 = foo114;
})(m || (m = {}));
@@ -0,0 +1,56 @@
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.ts(10,23): error TS4025: Exported variable 'p' has or is using private name 'W'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.ts(33,22): error TS4081: Exported type alias 't2' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.ts(36,23): error TS4081: Exported type alias 't12' has or is using private name 'public1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.ts(39,24): error TS4081: Exported type alias 't112' has or is using private name 'm3'.
==== tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.ts (4 errors) ====
interface Window {
someMethod();
}
module M {
type W = Window | string;
export module N {
export class Window { }
export var p: W; // Should report error that W is private
~
!!! error TS4025: Exported variable 'p' has or is using private name 'W'.
}
}
module M1 {
export type W = Window | string;
export module N {
export class Window { }
export var p: W; // No error
}
}
module M2 {
class private1 {
}
class public1 {
}
module m3 {
export class public1 {
}
}
type t1 = private1;
export type t2 = private1; // error
~~~~~~~~
!!! error TS4081: Exported type alias 't2' has or is using private name 'private1'.
type t11 = public1;
export type t12 = public1;
~~~~~~~
!!! error TS4081: Exported type alias 't12' has or is using private name 'public1'.
type t111 = m3.public1;
export type t112 = m3.public1; // error
~~
!!! error TS4081: Exported type alias 't112' has or is using private name 'm3'.
}
@@ -0,0 +1,92 @@
//// [declFileTypeAnnotationVisibilityErrorTypeAlias.ts]
interface Window {
someMethod();
}
module M {
type W = Window | string;
export module N {
export class Window { }
export var p: W; // Should report error that W is private
}
}
module M1 {
export type W = Window | string;
export module N {
export class Window { }
export var p: W; // No error
}
}
module M2 {
class private1 {
}
class public1 {
}
module m3 {
export class public1 {
}
}
type t1 = private1;
export type t2 = private1; // error
type t11 = public1;
export type t12 = public1;
type t111 = m3.public1;
export type t112 = m3.public1; // error
}
//// [declFileTypeAnnotationVisibilityErrorTypeAlias.js]
var M;
(function (M) {
var N;
(function (N) {
var Window = (function () {
function Window() {
}
return Window;
})();
N.Window = Window;
N.p; // Should report error that W is private
})(N = M.N || (M.N = {}));
})(M || (M = {}));
var M1;
(function (M1) {
var N;
(function (N) {
var Window = (function () {
function Window() {
}
return Window;
})();
N.Window = Window;
N.p; // No error
})(N = M1.N || (M1.N = {}));
})(M1 || (M1 = {}));
var M2;
(function (M2) {
var private1 = (function () {
function private1() {
}
return private1;
})();
var public1 = (function () {
function public1() {
}
return public1;
})();
var m3;
(function (m3) {
var public1 = (function () {
function public1() {
}
return public1;
})();
m3.public1 = public1;
})(m3 || (m3 = {}));
})(M2 || (M2 = {}));
@@ -0,0 +1,91 @@
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(11,12): error TS4025: Exported variable 'x' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(12,12): error TS4025: Exported variable 'x' has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(13,13): error TS4025: Exported variable 'x' has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(14,19): error TS4025: Exported variable 'x' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(15,22): error TS4025: Exported variable 'x' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(16,22): error TS4025: Exported variable 'x' has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(18,16): error TS4024: Exported variable 'x2' has or is using name 'm2.public1' from private module 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(18,16): error TS4025: Exported variable 'x2' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(25,16): error TS4024: Exported variable 'x3' has or is using name 'm2.public1' from private module 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(25,16): error TS4025: Exported variable 'x3' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(28,23): error TS4025: Exported variable 'y' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(28,36): error TS4025: Exported variable 'y' has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(29,16): error TS4024: Exported variable 'y2' has or is using name 'm2.public1' from private module 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(29,16): error TS4025: Exported variable 'y2' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(32,27): error TS4025: Exported variable 'z' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(32,40): error TS4025: Exported variable 'z' has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(33,16): error TS4024: Exported variable 'z2' has or is using name 'm2.public1' from private module 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(33,16): error TS4025: Exported variable 'z2' has or is using private name 'private1'.
==== tests/cases/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.ts (18 errors) ====
module m {
class private1 {
}
module m2 {
export class public1 {
}
}
export var x: {
x: private1;
~~~~~~~~
!!! error TS4025: Exported variable 'x' has or is using private name 'private1'.
y: m2.public1;
~~
!!! error TS4025: Exported variable 'x' has or is using private name 'm2'.
(): m2.public1[];
~~
!!! error TS4025: Exported variable 'x' has or is using private name 'm2'.
method(): private1;
~~~~~~~~
!!! error TS4025: Exported variable 'x' has or is using private name 'private1'.
[n: number]: private1;
~~~~~~~~
!!! error TS4025: Exported variable 'x' has or is using private name 'private1'.
[s: string]: m2.public1;
~~
!!! error TS4025: Exported variable 'x' has or is using private name 'm2'.
};
export var x2 = {
~~
!!! error TS4024: Exported variable 'x2' has or is using name 'm2.public1' from private module 'm2'.
~~
!!! error TS4025: Exported variable 'x2' has or is using private name 'private1'.
x: new private1(),
y: new m2.public1(),
method() {
return new private1();
}
};
export var x3 = x;
~~
!!! error TS4024: Exported variable 'x3' has or is using name 'm2.public1' from private module 'm2'.
~~
!!! error TS4025: Exported variable 'x3' has or is using private name 'private1'.
// Function type
export var y: (a: private1) => m2.public1;
~~~~~~~~
!!! error TS4025: Exported variable 'y' has or is using private name 'private1'.
~~
!!! error TS4025: Exported variable 'y' has or is using private name 'm2'.
export var y2 = y;
~~
!!! error TS4024: Exported variable 'y2' has or is using name 'm2.public1' from private module 'm2'.
~~
!!! error TS4025: Exported variable 'y2' has or is using private name 'private1'.
// constructor type
export var z: new (a: private1) => m2.public1;
~~~~~~~~
!!! error TS4025: Exported variable 'z' has or is using private name 'private1'.
~~
!!! error TS4025: Exported variable 'z' has or is using private name 'm2'.
export var z2 = z;
~~
!!! error TS4024: Exported variable 'z2' has or is using name 'm2.public1' from private module 'm2'.
~~
!!! error TS4025: Exported variable 'z2' has or is using private name 'private1'.
}
@@ -0,0 +1,69 @@
//// [declFileTypeAnnotationVisibilityErrorTypeLiteral.ts]
module m {
class private1 {
}
module m2 {
export class public1 {
}
}
export var x: {
x: private1;
y: m2.public1;
(): m2.public1[];
method(): private1;
[n: number]: private1;
[s: string]: m2.public1;
};
export var x2 = {
x: new private1(),
y: new m2.public1(),
method() {
return new private1();
}
};
export var x3 = x;
// Function type
export var y: (a: private1) => m2.public1;
export var y2 = y;
// constructor type
export var z: new (a: private1) => m2.public1;
export var z2 = z;
}
//// [declFileTypeAnnotationVisibilityErrorTypeLiteral.js]
var m;
(function (m) {
var private1 = (function () {
function private1() {
}
return private1;
})();
var m2;
(function (m2) {
var public1 = (function () {
function public1() {
}
return public1;
})();
m2.public1 = public1;
})(m2 || (m2 = {}));
m.x;
m.x2 = {
x: new private1(),
y: new m2.public1(),
method: function () {
return new private1();
}
};
m.x3 = m.x;
// Function type
m.y;
m.y2 = m.y;
// constructor type
m.z;
m.z2 = m.z;
})(m || (m = {}));
@@ -0,0 +1,48 @@
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorVariableDeclaration.ts(13,19): error TS4025: Exported variable 'k' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorVariableDeclaration.ts(14,16): error TS4025: Exported variable 'l' has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorVariableDeclaration.ts(30,20): error TS4025: Exported variable 'k3' has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorVariableDeclaration.ts(31,16): error TS4024: Exported variable 'l3' has or is using name 'm2.public2' from private module 'm2'.
==== tests/cases/compiler/declFileTypeAnnotationVisibilityErrorVariableDeclaration.ts (4 errors) ====
module m {
class private1 {
}
export class public1 {
}
// Directly using names from this module
var x: private1;
var y = new private1();
export var k: private1;
~~~~~~~~
!!! error TS4025: Exported variable 'k' has or is using private name 'private1'.
export var l = new private1();
~
!!! error TS4025: Exported variable 'l' has or is using private name 'private1'.
var x2: public1;
var y2 = new public1();
export var k2: public1;
export var l2 = new public1();
module m2 {
export class public2 {
}
}
var x3: m2.public2;
var y3 = new m2.public2();
export var k3: m2.public2;
~~
!!! error TS4025: Exported variable 'k3' has or is using private name 'm2'.
export var l3 = new m2.public2();
~~
!!! error TS4024: Exported variable 'l3' has or is using name 'm2.public2' from private module 'm2'.
}
@@ -0,0 +1,72 @@
//// [declFileTypeAnnotationVisibilityErrorVariableDeclaration.ts]
module m {
class private1 {
}
export class public1 {
}
// Directly using names from this module
var x: private1;
var y = new private1();
export var k: private1;
export var l = new private1();
var x2: public1;
var y2 = new public1();
export var k2: public1;
export var l2 = new public1();
module m2 {
export class public2 {
}
}
var x3: m2.public2;
var y3 = new m2.public2();
export var k3: m2.public2;
export var l3 = new m2.public2();
}
//// [declFileTypeAnnotationVisibilityErrorVariableDeclaration.js]
var m;
(function (m) {
var private1 = (function () {
function private1() {
}
return private1;
})();
var public1 = (function () {
function public1() {
}
return public1;
})();
m.public1 = public1;
// Directly using names from this module
var x;
var y = new private1();
m.k;
m.l = new private1();
var x2;
var y2 = new public1();
m.k2;
m.l2 = new public1();
var m2;
(function (m2) {
var public2 = (function () {
function public2() {
}
return public2;
})();
m2.public2 = public2;
})(m2 || (m2 = {}));
var x3;
var y3 = new m2.public2();
m.k3;
m.l3 = new m2.public2();
})(m || (m = {}));
@@ -68,7 +68,7 @@ declare function f(n: typeof f): string;
declare function f(n: typeof g): string;
declare function g(n: typeof g): number;
declare function g(n: typeof f): number;
declare var b: () => any;
declare var b: () => typeof b;
declare function b1(): typeof b1;
declare function foo(): typeof foo;
declare var foo1: typeof foo;
@@ -78,7 +78,7 @@ declare module X.Y.base {
}
}
declare module X.Y.base.Z {
class W<TValue> extends base.W {
class W<TValue> extends X.Y.base.W {
value: boolean;
}
}
@@ -1,8 +1,8 @@
tests/cases/compiler/declInput-2.ts(10,9): error TS4031: Public property 'm22' of exported class has or is using private name 'C'.
tests/cases/compiler/declInput-2.ts(13,9): error TS4031: Public property 'm25' of exported class has or is using private name 'I2'.
tests/cases/compiler/declInput-2.ts(16,16): error TS4055: Return type of public method from exported class has or is using private name 'I2'.
tests/cases/compiler/declInput-2.ts(18,21): error TS4073: Parameter 'i' of public method from exported class has or is using private name 'I2'.
tests/cases/compiler/declInput-2.ts(19,16): error TS4055: Return type of public method from exported class has or is using private name 'C'.
tests/cases/compiler/declInput-2.ts(10,21): error TS4031: Public property 'm22' of exported class has or is using private name 'C'.
tests/cases/compiler/declInput-2.ts(13,21): error TS4031: Public property 'm25' of exported class has or is using private name 'I2'.
tests/cases/compiler/declInput-2.ts(16,24): error TS4055: Return type of public method from exported class has or is using private name 'I2'.
tests/cases/compiler/declInput-2.ts(18,23): error TS4073: Parameter 'i' of public method from exported class has or is using private name 'I2'.
tests/cases/compiler/declInput-2.ts(19,21): error TS4055: Return type of public method from exported class has or is using private name 'C'.
==== tests/cases/compiler/declInput-2.ts (5 errors) ====
@@ -16,24 +16,24 @@ tests/cases/compiler/declInput-2.ts(19,16): error TS4055: Return type of public
public m1: number;
public m2: string;
public m22: C; // don't generate
~~~~~~~~~~~~~~
~
!!! error TS4031: Public property 'm22' of exported class has or is using private name 'C'.
public m23: E;
public m24: I1;
public m25: I2; // don't generate
~~~~~~~~~~~~~~~
~~
!!! error TS4031: Public property 'm25' of exported class has or is using private name 'I2'.
public m232(): E { return null;}
public m242(): I1 { return null; }
public m252(): I2 { return null; } // don't generate
~~~~
~~
!!! error TS4055: Return type of public method from exported class has or is using private name 'I2'.
public m26(i:I1) {}
public m262(i:I2) {}
~~~~
~~
!!! error TS4073: Parameter 'i' of public method from exported class has or is using private name 'I2'.
public m3():C { return new C(); }
~~
~
!!! error TS4055: Return type of public method from exported class has or is using private name 'C'.
}
}
@@ -184,7 +184,7 @@ export declare module M.Q {
interface I {
}
}
interface b extends M.C {
interface b extends M.b {
}
interface I extends M.c.I {
}
@@ -11,4 +11,6 @@ function foo(args) {
//// [functionDeclarationWithArgumentOfTypeFunctionTypeArray.d.ts]
declare function foo(args: ((x: any) => number)[]): number;
declare function foo(args: {
(x): number;
}[]): number;
@@ -1,39 +1,39 @@
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(253,20): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(259,13): error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(253,44): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(259,31): error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(265,20): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(271,13): error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(361,41): error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(365,28): error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(405,20): error TS4039: Return type of public static property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(408,13): error TS4042: Return type of public property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(361,48): error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(365,35): error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(405,44): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(408,31): error TS4043: Return type of public property getter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(411,20): error TS4039: Return type of public static property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(414,13): error TS4042: Return type of public property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(420,41): error TS4036: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(422,28): error TS4036: Parameter 'myPublicMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(9,16): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(15,9): error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(420,48): error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_GlobalFile.ts(422,35): error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(9,40): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(15,27): error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(21,16): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(27,9): error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(117,37): error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(121,24): error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(161,16): error TS4039: Return type of public static property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(164,9): error TS4042: Return type of public property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(117,44): error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(121,31): error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(161,40): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(164,27): error TS4043: Return type of public property getter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(167,16): error TS4039: Return type of public static property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(170,9): error TS4042: Return type of public property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(176,37): error TS4036: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(178,24): error TS4036: Parameter 'myPublicMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(211,20): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(217,13): error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(176,44): error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(178,31): error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(211,44): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(217,31): error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(223,20): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(229,13): error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(319,41): error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(323,28): error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(363,20): error TS4039: Return type of public static property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(366,13): error TS4042: Return type of public property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(319,48): error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(323,35): error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(363,44): error TS4040: Return type of public static property getter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(366,31): error TS4043: Return type of public property getter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(369,20): error TS4039: Return type of public static property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(372,13): error TS4042: Return type of public property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(378,41): error TS4036: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS4036: Parameter 'myPublicMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(378,48): error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,35): error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateModule'.
==== tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts (24 errors) ====
@@ -46,7 +46,7 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithWithPrivateGetAccessorTypes {
static get myPublicStaticMethod(): privateClass { // Error
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
return null;
}
@@ -54,7 +54,7 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
return null;
}
get myPublicMethod(): privateClass { // Error
~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
return null;
}
@@ -162,13 +162,13 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithWithPrivateSetAccessorTypes {
static set myPublicStaticMethod(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateClass'.
}
private static set myPrivateStaticMethod(param: privateClass) {
}
set myPublicMethod(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateClass'.
}
private set myPrivateMethod(param: privateClass) {
@@ -210,13 +210,13 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithPrivateModuleGetAccessorTypes {
static get myPublicStaticMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~~~~~~~
!!! error TS4039: Return type of public static property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4040: Return type of public static property getter from exported class has or is using private name 'privateModule'.
return null;
}
get myPublicMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~
!!! error TS4042: Return type of public property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'privateModule'.
return null;
}
static get myPublicStaticMethod1() { // Error
@@ -233,12 +233,12 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithPrivateModuleSetAccessorTypes {
static set myPublicStaticMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4036: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateModule'.
}
set myPublicMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4036: Parameter 'myPublicMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateModule'.
}
}
@@ -272,7 +272,7 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
}
export class publicClassWithWithPrivateGetAccessorTypes {
static get myPublicStaticMethod(): privateClass { // Error
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
return null;
}
@@ -280,7 +280,7 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
return null;
}
get myPublicMethod(): privateClass { // Error
~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
return null;
}
@@ -388,13 +388,13 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithWithPrivateSetAccessorTypes {
static set myPublicStaticMethod(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateClass'.
}
private static set myPrivateStaticMethod(param: privateClass) {
}
set myPublicMethod(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateClass'.
}
private set myPrivateMethod(param: privateClass) {
@@ -436,13 +436,13 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithPrivateModuleGetAccessorTypes {
static get myPublicStaticMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~~~~~~~
!!! error TS4039: Return type of public static property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4040: Return type of public static property getter from exported class has or is using private name 'privateModule'.
return null;
}
get myPublicMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~
!!! error TS4042: Return type of public property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'privateModule'.
return null;
}
static get myPublicStaticMethod1() { // Error
@@ -459,12 +459,12 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithPrivateModuleSetAccessorTypes {
static set myPublicStaticMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4036: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateModule'.
}
set myPublicMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4036: Parameter 'myPublicMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateModule'.
}
}
@@ -948,7 +948,7 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithWithPrivateGetAccessorTypes {
static get myPublicStaticMethod(): privateClass { // Error
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4040: Return type of public static property getter from exported class has or is using private name 'privateClass'.
return null;
}
@@ -956,7 +956,7 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
return null;
}
get myPublicMethod(): privateClass { // Error
~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'privateClass'.
return null;
}
@@ -1064,13 +1064,13 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithWithPrivateSetAccessorTypes {
static set myPublicStaticMethod(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateClass'.
}
private static set myPrivateStaticMethod(param: privateClass) {
}
set myPublicMethod(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateClass'.
}
private set myPrivateMethod(param: privateClass) {
@@ -1112,13 +1112,13 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithPrivateModuleGetAccessorTypes {
static get myPublicStaticMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~~~~~~~
!!! error TS4039: Return type of public static property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4040: Return type of public static property getter from exported class has or is using private name 'privateModule'.
return null;
}
get myPublicMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~
!!! error TS4042: Return type of public property getter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'privateModule'.
return null;
}
static get myPublicStaticMethod1() { // Error
@@ -1135,12 +1135,12 @@ tests/cases/compiler/privacyAccessorDeclFile_externalModule.ts(380,28): error TS
export class publicClassWithPrivateModuleSetAccessorTypes {
static set myPublicStaticMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4036: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicStaticMethod' of public property setter from exported class has or is using private name 'privateModule'.
}
set myPublicMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4036: Parameter 'myPublicMethod' of public property setter from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4037: Parameter 'myPublicMethod' of public property setter from exported class has or is using private name 'privateModule'.
}
}
@@ -1,4 +1,4 @@
tests/cases/compiler/privacyCheckTypeOfFunction.ts(3,12): error TS4025: Exported variable 'x' has or is using private name 'foo'.
tests/cases/compiler/privacyCheckTypeOfFunction.ts(3,22): error TS4025: Exported variable 'x' has or is using private name 'foo'.
tests/cases/compiler/privacyCheckTypeOfFunction.ts(4,12): error TS4025: Exported variable 'b' has or is using private name 'foo'.
@@ -6,7 +6,7 @@ tests/cases/compiler/privacyCheckTypeOfFunction.ts(4,12): error TS4025: Exported
function foo() {
}
export var x: typeof foo;
~
~~~
!!! error TS4025: Exported variable 'x' has or is using private name 'foo'.
export var b = foo;
~
@@ -1,4 +1,4 @@
tests/cases/compiler/privacyCheckTypeOfInvisibleModuleError.ts(6,16): error TS4025: Exported variable 'f' has or is using private name 'Inner'.
tests/cases/compiler/privacyCheckTypeOfInvisibleModuleError.ts(6,26): error TS4025: Exported variable 'f' has or is using private name 'Inner'.
==== tests/cases/compiler/privacyCheckTypeOfInvisibleModuleError.ts (1 errors) ====
@@ -8,7 +8,7 @@ tests/cases/compiler/privacyCheckTypeOfInvisibleModuleError.ts(6,16): error TS40
}
export var f: typeof Inner;
~
~~~~~
!!! error TS4025: Exported variable 'f' has or is using private name 'Inner'.
}
@@ -1,4 +1,4 @@
tests/cases/compiler/privacyCheckTypeOfInvisibleModuleNoError.ts(6,16): error TS4025: Exported variable 'f' has or is using private name 'Inner'.
tests/cases/compiler/privacyCheckTypeOfInvisibleModuleNoError.ts(6,26): error TS4025: Exported variable 'f' has or is using private name 'Inner'.
==== tests/cases/compiler/privacyCheckTypeOfInvisibleModuleNoError.ts (1 errors) ====
@@ -8,7 +8,7 @@ tests/cases/compiler/privacyCheckTypeOfInvisibleModuleNoError.ts(6,16): error TS
}
export var f: typeof Inner; // Since we dont unwind inner any more, it is error here
~
~~~~~
!!! error TS4025: Exported variable 'f' has or is using private name 'Inner'.
}
@@ -1,8 +1,8 @@
tests/cases/compiler/privacyClassExtendsClauseDeclFile_GlobalFile.ts(16,67): error TS4020: Extends clause of exported class 'publicClassExtendingPrivateClassInModule' has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(17,67): error TS4020: Extends clause of exported class 'publicClassExtendingPrivateClassInModule' has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(22,69): error TS4018: Extends clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(22,69): error TS4020: Extends clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using private name 'privateModule'.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(64,55): error TS4020: Extends clause of exported class 'publicClassExtendingPrivateClass' has or is using private name 'privateClass'.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(69,65): error TS4018: Extends clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(69,65): error TS4020: Extends clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using private name 'privateModule'.
==== tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts (4 errors) ====
@@ -30,8 +30,8 @@ tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(69,65):
class privateClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
}
export class publicClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule { // Should error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4018: Extends clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4020: Extends clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using private name 'privateModule'.
}
}
@@ -81,8 +81,8 @@ tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(69,65):
class privateClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
}
export class publicClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule { // Should error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4018: Extends clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4020: Extends clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using private name 'privateModule'.
}
==== tests/cases/compiler/privacyClassExtendsClauseDeclFile_GlobalFile.ts (1 errors) ====
@@ -1,9 +1,9 @@
tests/cases/compiler/privacyClassImplementsClauseDeclFile_GlobalFile.ts(14,77): error TS4019: Implements clause of exported class 'publicClassImplementingPrivateInterfaceInModule' has or is using private name 'privateInterfaceInPublicModule'.
tests/cases/compiler/privacyClassImplementsClauseDeclFile_externalModule.ts(15,77): error TS4019: Implements clause of exported class 'publicClassImplementingPrivateInterfaceInModule' has or is using private name 'privateInterfaceInPublicModule'.
tests/cases/compiler/privacyClassImplementsClauseDeclFile_externalModule.ts(20,79): error TS4017: Implements clause of exported class 'publicClassImplementingFromPrivateModuleInterface' has or is using name 'privateModule.publicInterfaceInPrivateModule' from private module 'privateModule'.
tests/cases/compiler/privacyClassImplementsClauseDeclFile_externalModule.ts(20,79): error TS4019: Implements clause of exported class 'publicClassImplementingFromPrivateModuleInterface' has or is using private name 'privateModule'.
tests/cases/compiler/privacyClassImplementsClauseDeclFile_externalModule.ts(23,78): error TS4019: Implements clause of exported class 'publicClassImplementingPrivateAndPublicInterface' has or is using private name 'privateInterfaceInPublicModule'.
tests/cases/compiler/privacyClassImplementsClauseDeclFile_externalModule.ts(63,65): error TS4019: Implements clause of exported class 'publicClassImplementingPrivateInterface' has or is using private name 'privateInterface'.
tests/cases/compiler/privacyClassImplementsClauseDeclFile_externalModule.ts(68,75): error TS4017: Implements clause of exported class 'publicClassImplementingFromPrivateModuleInterface' has or is using name 'privateModule.publicInterfaceInPrivateModule' from private module 'privateModule'.
tests/cases/compiler/privacyClassImplementsClauseDeclFile_externalModule.ts(68,75): error TS4019: Implements clause of exported class 'publicClassImplementingFromPrivateModuleInterface' has or is using private name 'privateModule'.
==== tests/cases/compiler/privacyClassImplementsClauseDeclFile_externalModule.ts (5 errors) ====
@@ -29,8 +29,8 @@ tests/cases/compiler/privacyClassImplementsClauseDeclFile_externalModule.ts(68,7
class privateClassImplementingFromPrivateModuleInterface implements privateModule.publicInterfaceInPrivateModule {
}
export class publicClassImplementingFromPrivateModuleInterface implements privateModule.publicInterfaceInPrivateModule { // Should error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4017: Implements clause of exported class 'publicClassImplementingFromPrivateModuleInterface' has or is using name 'privateModule.publicInterfaceInPrivateModule' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4019: Implements clause of exported class 'publicClassImplementingFromPrivateModuleInterface' has or is using private name 'privateModule'.
}
export class publicClassImplementingPrivateAndPublicInterface implements privateInterfaceInPublicModule, publicInterfaceInPublicModule { // Should error
@@ -83,8 +83,8 @@ tests/cases/compiler/privacyClassImplementsClauseDeclFile_externalModule.ts(68,7
class privateClassImplementingFromPrivateModuleInterface implements privateModule.publicInterfaceInPrivateModule {
}
export class publicClassImplementingFromPrivateModuleInterface implements privateModule.publicInterfaceInPrivateModule { // Should error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4017: Implements clause of exported class 'publicClassImplementingFromPrivateModuleInterface' has or is using name 'privateModule.publicInterfaceInPrivateModule' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4019: Implements clause of exported class 'publicClassImplementingFromPrivateModuleInterface' has or is using private name 'privateModule'.
}
==== tests/cases/compiler/privacyClassImplementsClauseDeclFile_GlobalFile.ts (1 errors) ====
@@ -1,63 +1,63 @@
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(164,14): error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(165,10): error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(166,18): error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(188,37): error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(192,24): error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(196,21): error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(196,42): error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(196,72): error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(239,60): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(248,75): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(254,14): error TS4064: Parameter 'param' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(255,10): error TS4066: Parameter 'param' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(256,18): error TS4074: Parameter 'param' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(259,37): error TS4069: Parameter 'param' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(261,24): error TS4072: Parameter 'param' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(263,21): error TS4062: Parameter 'param' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(263,55): error TS4062: Parameter 'param1' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(263,98): error TS4062: Parameter 'param2' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(266,67): error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(268,82): error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(9,10): error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(10,6): error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(11,14): error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(33,33): error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(37,20): error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(41,17): error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(41,38): error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(41,68): error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(84,56): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(93,71): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(99,10): error TS4064: Parameter 'param' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(100,6): error TS4066: Parameter 'param' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(101,14): error TS4074: Parameter 'param' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(104,33): error TS4069: Parameter 'param' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(106,20): error TS4072: Parameter 'param' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(108,17): error TS4062: Parameter 'param' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(108,51): error TS4062: Parameter 'param1' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(108,94): error TS4062: Parameter 'param2' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(111,63): error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(113,78): error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(141,14): error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(142,10): error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(143,18): error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(165,37): error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(169,24): error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(173,21): error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(173,42): error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(173,72): error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(216,60): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(225,75): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(231,14): error TS4064: Parameter 'param' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(232,10): error TS4066: Parameter 'param' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(233,18): error TS4074: Parameter 'param' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(236,37): error TS4069: Parameter 'param' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(238,24): error TS4072: Parameter 'param' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(240,21): error TS4062: Parameter 'param' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(240,55): error TS4062: Parameter 'param1' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(240,98): error TS4062: Parameter 'param2' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(243,67): error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82): error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(164,21): error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(165,17): error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(166,25): error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(188,44): error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(192,31): error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(196,28): error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(196,58): error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(196,87): error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(239,67): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(248,82): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(254,21): error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(255,17): error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(256,25): error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(259,44): error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(261,31): error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(263,28): error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(263,71): error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(263,113): error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(266,74): error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_GlobalFile.ts(268,89): error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(9,17): error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(10,13): error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(11,21): error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(33,40): error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(37,27): error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(41,24): error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(41,54): error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(41,83): error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(84,63): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(93,78): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(99,17): error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(100,13): error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(101,21): error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(104,40): error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(106,27): error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(108,24): error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(108,67): error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(108,109): error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(111,70): error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(113,85): error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(141,21): error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(142,17): error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(143,25): error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(165,44): error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(169,31): error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(173,28): error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(173,58): error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(173,87): error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(216,67): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(225,82): error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(231,21): error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(232,17): error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(233,25): error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(236,44): error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(238,31): error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(240,28): error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(240,71): error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(240,113): error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(243,74): error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,89): error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
==== tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts (40 errors) ====
@@ -70,13 +70,13 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
export interface publicInterfaceWithPrivateParmeterTypes {
new (param: privateClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'.
(param: privateClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'.
myMethod(param: privateClass): void; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateClass'.
}
@@ -100,23 +100,23 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
export class publicClassWithWithPrivateParmeterTypes {
static myPublicStaticMethod(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4070: 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
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4073: 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
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'.
}
}
@@ -161,7 +161,7 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
}
export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
}
export function publicFunctionWithPublicParmeterTypes(param: publicClass) {
@@ -172,7 +172,7 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
}
export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4078: 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;
@@ -180,40 +180,40 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
export interface publicInterfaceWithPrivateModuleParameterTypes {
new (param: privateModule.publicClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4064: Parameter 'param' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateModule'.
(param: privateModule.publicClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4066: Parameter 'param' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateModule'.
myMethod(param: privateModule.publicClass): void; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4074: Parameter 'param' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateModule'.
}
export class publicClassWithPrivateModuleParameterTypes {
static myPublicStaticMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4069: Parameter 'param' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateModule'.
}
myPublicMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4072: Parameter 'param' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateModule'.
}
constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4062: Parameter 'param' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4062: Parameter 'param1' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4062: Parameter 'param2' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateModule'.
}
}
export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
}
export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
interface privateInterfaceWithPrivateModuleParameterTypes {
new (param: privateModule.publicClass): publicClass;
@@ -242,13 +242,13 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
export interface publicInterfaceWithPrivateParmeterTypes {
new (param: privateClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'.
(param: privateClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'.
myMethod(param: privateClass): void; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateClass'.
}
@@ -272,23 +272,23 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
export class publicClassWithWithPrivateParmeterTypes {
static myPublicStaticMethod(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4070: 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
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4073: 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
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'.
}
}
@@ -333,7 +333,7 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
}
export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
}
export function publicFunctionWithPublicParmeterTypes(param: publicClass) {
@@ -344,7 +344,7 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
}
export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4078: 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;
@@ -352,40 +352,40 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
export interface publicInterfaceWithPrivateModuleParameterTypes {
new (param: privateModule.publicClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4064: Parameter 'param' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateModule'.
(param: privateModule.publicClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4066: Parameter 'param' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateModule'.
myMethod(param: privateModule.publicClass): void; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4074: Parameter 'param' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateModule'.
}
export class publicClassWithPrivateModuleParameterTypes {
static myPublicStaticMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4069: Parameter 'param' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateModule'.
}
myPublicMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4072: Parameter 'param' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateModule'.
}
constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4062: Parameter 'param' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4062: Parameter 'param1' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4062: Parameter 'param2' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateModule'.
}
}
export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
}
export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
interface privateInterfaceWithPrivateModuleParameterTypes {
new (param: privateModule.publicClass): publicClass;
@@ -703,13 +703,13 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
export interface publicInterfaceWithPrivateParmeterTypes {
new (param: privateClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateClass'.
(param: privateClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateClass'.
myMethod(param: privateClass): void; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateClass'.
}
@@ -733,23 +733,23 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
export class publicClassWithWithPrivateParmeterTypes {
static myPublicStaticMethod(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4070: 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
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4073: 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
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateClass'.
}
}
@@ -794,7 +794,7 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
}
export function publicFunctionWithPrivateParmeterTypes(param: privateClass) { // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'privateClass'.
}
export function publicFunctionWithPublicParmeterTypes(param: publicClass) {
@@ -805,7 +805,7 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
}
export declare function publicAmbientFunctionWithPrivateParmeterTypes(param: privateClass): void; // Error
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4078: 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;
@@ -813,40 +813,40 @@ tests/cases/compiler/privacyFunctionParameterDeclFile_externalModule.ts(245,82):
export interface publicInterfaceWithPrivateModuleParameterTypes {
new (param: privateModule.publicClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4064: Parameter 'param' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4065: Parameter 'param' of constructor signature from exported interface has or is using private name 'privateModule'.
(param: privateModule.publicClass): publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4066: Parameter 'param' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4067: Parameter 'param' of call signature from exported interface has or is using private name 'privateModule'.
myMethod(param: privateModule.publicClass): void; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4074: Parameter 'param' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4075: Parameter 'param' of method from exported interface has or is using private name 'privateModule'.
}
export class publicClassWithPrivateModuleParameterTypes {
static myPublicStaticMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4069: Parameter 'param' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4070: Parameter 'param' of public static method from exported class has or is using private name 'privateModule'.
}
myPublicMethod(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4072: Parameter 'param' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4073: Parameter 'param' of public method from exported class has or is using private name 'privateModule'.
}
constructor(param: privateModule.publicClass, private param1: privateModule.publicClass, public param2: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4062: Parameter 'param' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4062: Parameter 'param1' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4062: Parameter 'param2' of constructor from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4063: Parameter 'param' of constructor from exported class has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4063: Parameter 'param1' of constructor from exported class has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4063: Parameter 'param2' of constructor from exported class has or is using private name 'privateModule'.
}
}
export function publicFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass) { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
}
export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(param: privateModule.publicClass): void; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4077: Parameter 'param' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'privateModule'.
interface privateInterfaceWithPrivateModuleParameterTypes {
new (param: privateModule.publicClass): publicClass;
@@ -1,69 +1,69 @@
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(281,9): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(282,9): error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(283,9): error TS4049: Return type of index signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(284,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(309,16): error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(315,9): error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(281,17): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(282,13): error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(283,22): error TS4049: Return type of index signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(284,21): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(309,40): error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(315,27): error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(321,16): error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(327,9): error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(416,21): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(416,63): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(428,21): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(441,29): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(447,9): error TS4044: Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(448,9): error TS4046: Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(449,9): error TS4048: Return type of index signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(450,9): error TS4056: Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(453,16): error TS4051: Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(456,9): error TS4054: Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(441,78): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(447,17): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(448,13): error TS4047: Return type of call signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(449,22): error TS4049: Return type of index signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(450,21): error TS4057: Return type of method from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(453,40): error TS4052: Return type of public static method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(456,27): error TS4055: Return type of public method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(459,16): error TS4051: Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(462,9): error TS4054: Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(466,21): error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(466,70): error TS4060: Return type of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(469,21): error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(472,29): error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(9,5): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(10,5): error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(11,5): error TS4049: Return type of index signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(12,5): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(37,12): error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(43,5): error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_GlobalFile.ts(472,85): error TS4060: Return type of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(9,13): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(10,9): error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(11,18): error TS4049: Return type of index signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(12,17): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(37,36): error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(43,23): error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(49,12): error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(55,5): error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(144,17): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(144,59): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(156,17): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(169,25): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(175,5): error TS4044: Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(176,5): error TS4046: Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(177,5): error TS4048: Return type of index signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(178,5): error TS4056: Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(181,12): error TS4051: Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(184,5): error TS4054: Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(169,74): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(175,13): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(176,9): error TS4047: Return type of call signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(177,18): error TS4049: Return type of index signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(178,17): error TS4057: Return type of method from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(181,36): error TS4052: Return type of public static method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(184,23): error TS4055: Return type of public method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(187,12): error TS4051: Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(190,5): error TS4054: Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(194,17): error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(194,66): error TS4060: Return type of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(197,17): error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(200,25): error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(238,9): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(239,9): error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(240,9): error TS4049: Return type of index signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(241,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(266,16): error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(272,9): error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(200,81): error TS4060: Return type of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(238,17): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(239,13): error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(240,22): error TS4049: Return type of index signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(241,21): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(266,40): error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(272,27): error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(278,16): error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(284,9): error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(373,21): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(373,63): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(385,21): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(398,29): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(404,9): error TS4044: Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(405,9): error TS4046: Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(406,9): error TS4048: Return type of index signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(407,9): error TS4056: Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(410,16): error TS4051: Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(413,9): error TS4054: Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(398,78): error TS4060: Return type of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(404,17): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(405,13): error TS4047: Return type of call signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(406,22): error TS4049: Return type of index signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(407,21): error TS4057: Return type of method from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(410,40): error TS4052: Return type of public static method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(413,27): error TS4055: Return type of public method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(416,16): error TS4051: Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(419,9): error TS4054: Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(423,21): error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(423,70): error TS4060: Return type of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(426,21): error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29): error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,85): error TS4060: Return type of exported function has or is using private name 'privateModule'.
==== tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts (44 errors) ====
@@ -76,16 +76,16 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
export interface publicInterfaceWithPrivateParmeterTypes {
new (): privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
(): privateClass; // Error
~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
[x: number]: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4049: Return type of index signature from exported interface has or is using private name 'privateClass'.
myMethod(): privateClass; // Error
~~~~~~~~
~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
}
@@ -112,7 +112,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
export class publicClassWithWithPrivateParmeterTypes {
static myPublicStaticMethod(): privateClass { // Error
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
return null;
}
@@ -120,7 +120,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
return null;
}
myPublicMethod(): privateClass { // Error
~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
return null;
}
@@ -227,7 +227,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
}
export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateClass'.
return null;
}
@@ -256,7 +256,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
}
export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateClass'.
export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass;
declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass;
@@ -264,27 +264,27 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
export interface publicInterfaceWithPrivateModuleParameterTypes {
new (): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4044: Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateModule'.
(): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4046: Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateModule'.
[x: number]: privateModule.publicClass // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4048: Return type of index signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4049: Return type of index signature from exported interface has or is using private name 'privateModule'.
myMethod(): privateModule.publicClass; // Error
~~~~~~~~
!!! error TS4056: Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateModule'.
}
export class publicClassWithPrivateModuleParameterTypes {
static myPublicStaticMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~~~~~~~
!!! error TS4051: Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4052: Return type of public static method from exported class has or is using private name 'privateModule'.
return null;
}
myPublicMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~
!!! error TS4054: Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4055: Return type of public method from exported class has or is using private name 'privateModule'.
return null;
}
static myPublicStaticMethod1() { // Error
@@ -299,8 +299,8 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
}
}
export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateModule'.
return null;
}
export function publicFunctionWithPrivateModuleParameterTypes1() { // Error
@@ -309,8 +309,8 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
return new privateModule.publicClass();
}
export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateModule'.
interface privateInterfaceWithPrivateModuleParameterTypes {
new (): privateModule.publicClass;
@@ -349,16 +349,16 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
export interface publicInterfaceWithPrivateParmeterTypes {
new (): privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
(): privateClass; // Error
~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
[x: number]: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4049: Return type of index signature from exported interface has or is using private name 'privateClass'.
myMethod(): privateClass; // Error
~~~~~~~~
~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
}
@@ -385,7 +385,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
export class publicClassWithWithPrivateParmeterTypes {
static myPublicStaticMethod(): privateClass { // Error
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
return null;
}
@@ -393,7 +393,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
return null;
}
myPublicMethod(): privateClass { // Error
~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
return null;
}
@@ -500,7 +500,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
}
export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateClass'.
return null;
}
@@ -529,7 +529,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
}
export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateClass'.
export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass;
declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass;
@@ -537,27 +537,27 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
export interface publicInterfaceWithPrivateModuleParameterTypes {
new (): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4044: Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateModule'.
(): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4046: Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateModule'.
[x: number]: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4048: Return type of index signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4049: Return type of index signature from exported interface has or is using private name 'privateModule'.
myMethod(): privateModule.publicClass; // Error
~~~~~~~~
!!! error TS4056: Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateModule'.
}
export class publicClassWithPrivateModuleParameterTypes {
static myPublicStaticMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~~~~~~~
!!! error TS4051: Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4052: Return type of public static method from exported class has or is using private name 'privateModule'.
return null;
}
myPublicMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~
!!! error TS4054: Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4055: Return type of public method from exported class has or is using private name 'privateModule'.
return null;
}
static myPublicStaticMethod1() { // Error
@@ -572,8 +572,8 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
}
}
export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateModule'.
return null;
}
export function publicFunctionWithPrivateModuleParameterTypes1() { // Error
@@ -582,8 +582,8 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
return new privateModule.publicClass();
}
export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateModule'.
interface privateInterfaceWithPrivateModuleParameterTypes {
new (): privateModule.publicClass;
@@ -1126,16 +1126,16 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
export interface publicInterfaceWithPrivateParmeterTypes {
new (): privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
(): privateClass; // Error
~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
[x: number]: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4049: Return type of index signature from exported interface has or is using private name 'privateClass'.
myMethod(): privateClass; // Error
~~~~~~~~
~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
}
@@ -1162,7 +1162,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
export class publicClassWithWithPrivateParmeterTypes {
static myPublicStaticMethod(): privateClass { // Error
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4052: Return type of public static method from exported class has or is using private name 'privateClass'.
return null;
}
@@ -1170,7 +1170,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
return null;
}
myPublicMethod(): privateClass { // Error
~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4055: Return type of public method from exported class has or is using private name 'privateClass'.
return null;
}
@@ -1277,7 +1277,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
}
export function publicFunctionWithPrivateParmeterTypes(): privateClass { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateClass'.
return null;
}
@@ -1306,7 +1306,7 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
}
export declare function publicAmbientFunctionWithPrivateParmeterTypes(): privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateClass'.
export declare function publicAmbientFunctionWithPublicParmeterTypes(): publicClass;
declare function privateAmbientFunctionWithPrivateParmeterTypes(): privateClass;
@@ -1314,27 +1314,27 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
export interface publicInterfaceWithPrivateModuleParameterTypes {
new (): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4044: Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateModule'.
(): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4046: Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateModule'.
[x: number]: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4048: Return type of index signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4049: Return type of index signature from exported interface has or is using private name 'privateModule'.
myMethod(): privateModule.publicClass; // Error
~~~~~~~~
!!! error TS4056: Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateModule'.
}
export class publicClassWithPrivateModuleParameterTypes {
static myPublicStaticMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~~~~~~~
!!! error TS4051: Return type of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4052: Return type of public static method from exported class has or is using private name 'privateModule'.
return null;
}
myPublicMethod(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~
!!! error TS4054: Return type of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4055: Return type of public method from exported class has or is using private name 'privateModule'.
return null;
}
static myPublicStaticMethod1() { // Error
@@ -1349,8 +1349,8 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
}
}
export function publicFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateModule'.
return null;
}
export function publicFunctionWithPrivateModuleParameterTypes1() { // Error
@@ -1359,8 +1359,8 @@ tests/cases/compiler/privacyFunctionReturnTypeDeclFile_externalModule.ts(429,29)
return new privateModule.publicClass();
}
export declare function publicAmbientFunctionWithPrivateModuleParameterTypes(): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4059: Return type of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4060: Return type of exported function has or is using private name 'privateModule'.
interface privateInterfaceWithPrivateModuleParameterTypes {
new (): privateModule.publicClass;
@@ -1,5 +1,5 @@
tests/cases/compiler/privacyGloImport.ts(49,5): error TS4000: Import declaration 'm1_im2_private' is using private name 'm1_M2_private'.
tests/cases/compiler/privacyGloImport.ts(80,5): error TS4000: Import declaration 'm1_im2_public' is using private name 'm1_M2_private'.
tests/cases/compiler/privacyGloImport.ts(49,29): error TS4000: Import declaration 'm1_im2_private' is using private name 'm1_M2_private'.
tests/cases/compiler/privacyGloImport.ts(80,35): error TS4000: Import declaration 'm1_im2_public' is using private name 'm1_M2_private'.
==== tests/cases/compiler/privacyGloImport.ts (2 errors) ====
@@ -52,7 +52,7 @@ tests/cases/compiler/privacyGloImport.ts(80,5): error TS4000: Import declaration
import m1_im2_private = m1_M2_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~
!!! error TS4000: Import declaration 'm1_im2_private' is using private name 'm1_M2_private'.
export var m1_im2_private_v1_public = m1_im2_private.c1;
export var m1_im2_private_v2_public = new m1_im2_private.c1();
@@ -85,7 +85,7 @@ tests/cases/compiler/privacyGloImport.ts(80,5): error TS4000: Import declaration
export import m1_im1_public = m1_M1_public;
export import m1_im2_public = m1_M2_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~
!!! error TS4000: Import declaration 'm1_im2_public' is using private name 'm1_M2_private'.
//export import m1_im3_public = require("m1_M3_public");
//export import m1_im4_public = require("m1_M4_private");
@@ -1,5 +1,5 @@
tests/cases/compiler/privacyImport.ts(49,5): error TS4000: Import declaration 'm1_im2_private' is using private name 'm1_M2_private'.
tests/cases/compiler/privacyImport.ts(80,5): error TS4000: Import declaration 'm1_im2_public' is using private name 'm1_M2_private'.
tests/cases/compiler/privacyImport.ts(49,29): error TS4000: Import declaration 'm1_im2_private' is using private name 'm1_M2_private'.
tests/cases/compiler/privacyImport.ts(80,35): error TS4000: Import declaration 'm1_im2_public' is using private name 'm1_M2_private'.
==== tests/cases/compiler/privacyImport.ts (2 errors) ====
@@ -52,7 +52,7 @@ tests/cases/compiler/privacyImport.ts(80,5): error TS4000: Import declaration 'm
import m1_im2_private = m1_M2_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~
!!! error TS4000: Import declaration 'm1_im2_private' is using private name 'm1_M2_private'.
export var m1_im2_private_v1_public = m1_im2_private.c1;
export var m1_im2_private_v2_public = new m1_im2_private.c1();
@@ -85,7 +85,7 @@ tests/cases/compiler/privacyImport.ts(80,5): error TS4000: Import declaration 'm
export import m1_im1_public = m1_M1_public;
export import m1_im2_public = m1_M2_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~
!!! error TS4000: Import declaration 'm1_im2_public' is using private name 'm1_M2_private'.
//export import m1_im3_public = require("m1_M3_public");
//export import m1_im4_public = require("m1_M4_private");
@@ -1,9 +1,9 @@
tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_GlobalFile.ts(14,82): error TS4022: Extends clause of exported interface 'publicInterfaceImplementingPrivateInterfaceInModule' has or is using private name 'privateInterfaceInPublicModule'.
tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_externalModule.ts(15,82): error TS4022: Extends clause of exported interface 'publicInterfaceImplementingPrivateInterfaceInModule' has or is using private name 'privateInterfaceInPublicModule'.
tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_externalModule.ts(20,84): error TS4021: Extends clause of exported interface 'publicInterfaceImplementingFromPrivateModuleInterface' has or is using name 'privateModule.publicInterfaceInPrivateModule' from private module 'privateModule'.
tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_externalModule.ts(20,84): error TS4022: Extends clause of exported interface 'publicInterfaceImplementingFromPrivateModuleInterface' has or is using private name 'privateModule'.
tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_externalModule.ts(23,83): error TS4022: Extends clause of exported interface 'publicInterfaceImplementingPrivateAndPublicInterface' has or is using private name 'privateInterfaceInPublicModule'.
tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_externalModule.ts(63,70): error TS4022: Extends clause of exported interface 'publicInterfaceImplementingPrivateInterface' has or is using private name 'privateInterface'.
tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_externalModule.ts(68,80): error TS4021: Extends clause of exported interface 'publicInterfaceImplementingFromPrivateModuleInterface' has or is using name 'privateModule.publicInterfaceInPrivateModule' from private module 'privateModule'.
tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_externalModule.ts(68,80): error TS4022: Extends clause of exported interface 'publicInterfaceImplementingFromPrivateModuleInterface' has or is using private name 'privateModule'.
==== tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_externalModule.ts (5 errors) ====
@@ -29,8 +29,8 @@ tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_externalModule.ts(68,
interface privateInterfaceImplementingFromPrivateModuleInterface extends privateModule.publicInterfaceInPrivateModule {
}
export interface publicInterfaceImplementingFromPrivateModuleInterface extends privateModule.publicInterfaceInPrivateModule { // Should error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4021: Extends clause of exported interface 'publicInterfaceImplementingFromPrivateModuleInterface' has or is using name 'privateModule.publicInterfaceInPrivateModule' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4022: Extends clause of exported interface 'publicInterfaceImplementingFromPrivateModuleInterface' has or is using private name 'privateModule'.
}
export interface publicInterfaceImplementingPrivateAndPublicInterface extends privateInterfaceInPublicModule, publicInterfaceInPublicModule { // Should error
@@ -83,8 +83,8 @@ tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_externalModule.ts(68,
interface privateInterfaceImplementingFromPrivateModuleInterface extends privateModule.publicInterfaceInPrivateModule {
}
export interface publicInterfaceImplementingFromPrivateModuleInterface extends privateModule.publicInterfaceInPrivateModule { // Should error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4021: Extends clause of exported interface 'publicInterfaceImplementingFromPrivateModuleInterface' has or is using name 'privateModule.publicInterfaceInPrivateModule' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4022: Extends clause of exported interface 'publicInterfaceImplementingFromPrivateModuleInterface' has or is using private name 'privateModule'.
}
==== tests/cases/compiler/privacyInterfaceExtendsClauseDeclFile_GlobalFile.ts (1 errors) ====
@@ -1,10 +1,10 @@
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(51,5): error TS4000: Import declaration 'im_public_c_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(52,5): error TS4000: Import declaration 'im_public_e_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(53,5): error TS4000: Import declaration 'im_public_f_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(54,5): error TS4000: Import declaration 'im_public_v_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(55,5): error TS4000: Import declaration 'im_public_i_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(56,5): error TS4000: Import declaration 'im_public_mi_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(57,5): error TS4000: Import declaration 'im_public_mu_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(51,41): error TS4000: Import declaration 'im_public_c_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(52,41): error TS4000: Import declaration 'im_public_e_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(53,41): error TS4000: Import declaration 'im_public_f_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(54,41): error TS4000: Import declaration 'im_public_v_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(55,41): error TS4000: Import declaration 'im_public_i_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(56,42): error TS4000: Import declaration 'im_public_mi_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(57,42): error TS4000: Import declaration 'im_public_mu_private' is using private name 'm_private'.
==== tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts (7 errors) ====
@@ -59,25 +59,25 @@ tests/cases/compiler/privacyLocalInternalReferenceImportWithExport.ts(57,5): err
export module import_public {
// Privacy errors - importing private elements
export import im_public_c_private = m_private.c_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_c_private' is using private name 'm_private'.
export import im_public_e_private = m_private.e_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_e_private' is using private name 'm_private'.
export import im_public_f_private = m_private.f_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_f_private' is using private name 'm_private'.
export import im_public_v_private = m_private.v_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_v_private' is using private name 'm_private'.
export import im_public_i_private = m_private.i_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_i_private' is using private name 'm_private'.
export import im_public_mi_private = m_private.mi_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_mi_private' is using private name 'm_private'.
export import im_public_mu_private = m_private.mu_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_mu_private' is using private name 'm_private'.
// Usage of privacy error imports
@@ -1,8 +1,8 @@
tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(51,5): error TS4000: Import declaration 'im_private_c_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(52,5): error TS4000: Import declaration 'im_private_e_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(55,5): error TS4000: Import declaration 'im_private_i_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(56,5): error TS4000: Import declaration 'im_private_mi_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(57,5): error TS4000: Import declaration 'im_private_mu_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(51,35): error TS4000: Import declaration 'im_private_c_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(52,35): error TS4000: Import declaration 'im_private_e_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(55,35): error TS4000: Import declaration 'im_private_i_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(56,36): error TS4000: Import declaration 'im_private_mi_private' is using private name 'm_private'.
tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(57,36): error TS4000: Import declaration 'im_private_mu_private' is using private name 'm_private'.
==== tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts (5 errors) ====
@@ -57,21 +57,21 @@ tests/cases/compiler/privacyLocalInternalReferenceImportWithoutExport.ts(57,5):
export module import_public {
// No Privacy errors - importing private elements
import im_private_c_private = m_private.c_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_private_c_private' is using private name 'm_private'.
import im_private_e_private = m_private.e_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_private_e_private' is using private name 'm_private'.
import im_private_f_private = m_private.f_private;
import im_private_v_private = m_private.v_private;
import im_private_i_private = m_private.i_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_private_i_private' is using private name 'm_private'.
import im_private_mi_private = m_private.mi_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_private_mi_private' is using private name 'm_private'.
import im_private_mu_private = m_private.mu_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_private_mu_private' is using private name 'm_private'.
// Usage of above decls
@@ -1,10 +1,10 @@
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(50,1): error TS4000: Import declaration 'im_public_c_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(51,1): error TS4000: Import declaration 'im_public_e_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(52,1): error TS4000: Import declaration 'im_public_f_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(53,1): error TS4000: Import declaration 'im_public_v_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(54,1): error TS4000: Import declaration 'im_public_i_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(55,1): error TS4000: Import declaration 'im_public_mi_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(56,1): error TS4000: Import declaration 'im_public_mu_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(50,37): error TS4000: Import declaration 'im_public_c_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(51,37): error TS4000: Import declaration 'im_public_e_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(52,37): error TS4000: Import declaration 'im_public_f_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(53,37): error TS4000: Import declaration 'im_public_v_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(54,37): error TS4000: Import declaration 'im_public_i_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(55,38): error TS4000: Import declaration 'im_public_mi_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(56,38): error TS4000: Import declaration 'im_public_mu_private' is using private name 'm_private'.
==== tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts (7 errors) ====
@@ -58,25 +58,25 @@ tests/cases/compiler/privacyTopLevelInternalReferenceImportWithExport.ts(56,1):
// Privacy errors - importing private elements
export import im_public_c_private = m_private.c_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_c_private' is using private name 'm_private'.
export import im_public_e_private = m_private.e_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_e_private' is using private name 'm_private'.
export import im_public_f_private = m_private.f_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_f_private' is using private name 'm_private'.
export import im_public_v_private = m_private.v_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_v_private' is using private name 'm_private'.
export import im_public_i_private = m_private.i_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_i_private' is using private name 'm_private'.
export import im_public_mi_private = m_private.mi_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_mi_private' is using private name 'm_private'.
export import im_public_mu_private = m_private.mu_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_public_mu_private' is using private name 'm_private'.
// Usage of privacy error imports
@@ -1,8 +1,8 @@
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(51,1): error TS4000: Import declaration 'im_private_c_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(52,1): error TS4000: Import declaration 'im_private_e_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(55,1): error TS4000: Import declaration 'im_private_i_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(56,1): error TS4000: Import declaration 'im_private_mi_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(57,1): error TS4000: Import declaration 'im_private_mu_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(51,31): error TS4000: Import declaration 'im_private_c_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(52,31): error TS4000: Import declaration 'im_private_e_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(55,31): error TS4000: Import declaration 'im_private_i_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(56,32): error TS4000: Import declaration 'im_private_mi_private' is using private name 'm_private'.
tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(57,32): error TS4000: Import declaration 'im_private_mu_private' is using private name 'm_private'.
==== tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts (5 errors) ====
@@ -57,21 +57,21 @@ tests/cases/compiler/privacyTopLevelInternalReferenceImportWithoutExport.ts(57,1
// No Privacy errors - importing private elements
import im_private_c_private = m_private.c_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_private_c_private' is using private name 'm_private'.
import im_private_e_private = m_private.e_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_private_e_private' is using private name 'm_private'.
import im_private_f_private = m_private.f_private;
import im_private_v_private = m_private.v_private;
import im_private_i_private = m_private.i_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_private_i_private' is using private name 'm_private'.
import im_private_mi_private = m_private.mi_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_private_mi_private' is using private name 'm_private'.
import im_private_mu_private = m_private.mu_private;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~
!!! error TS4000: Import declaration 'im_private_mu_private' is using private name 'm_private'.
// Usage of above decls
@@ -1,39 +1,39 @@
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(8,5): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(8,10): error TS4006: Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(9,5): error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(9,6): error TS4008: Type parameter 'T' of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(10,5): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(10,14): error TS4014: Type parameter 'T' of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(32,33): error TS4010: Type parameter 'T' of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(36,20): error TS4012: Type parameter 'T' of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(75,57): error TS4016: Type parameter 'T' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(127,5): error TS4044: Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(127,10): error TS4005: Type parameter 'T' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(128,5): error TS4046: Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(128,6): error TS4007: Type parameter 'T' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(129,5): error TS4056: Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(129,14): error TS4013: Type parameter 'T' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(132,33): error TS4009: Type parameter 'T' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(134,20): error TS4011: Type parameter 'T' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(137,64): error TS4015: Type parameter 'T' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(164,9): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(164,14): error TS4006: Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(165,9): error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(165,10): error TS4008: Type parameter 'T' of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(166,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(166,18): error TS4014: Type parameter 'T' of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(188,37): error TS4010: Type parameter 'T' of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(192,24): error TS4012: Type parameter 'T' of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(231,61): error TS4016: Type parameter 'T' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(283,9): error TS4044: Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(283,14): error TS4005: Type parameter 'T' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(284,9): error TS4046: Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(284,10): error TS4007: Type parameter 'T' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(285,9): error TS4056: Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(285,18): error TS4013: Type parameter 'T' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(288,37): error TS4009: Type parameter 'T' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(290,24): error TS4011: Type parameter 'T' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(293,68): error TS4015: Type parameter 'T' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(8,20): error TS4006: Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(8,37): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(9,16): error TS4008: Type parameter 'T' of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(9,33): error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(10,24): error TS4014: Type parameter 'T' of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(10,41): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(32,43): error TS4010: Type parameter 'T' of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(36,30): error TS4012: Type parameter 'T' of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(75,67): error TS4016: Type parameter 'T' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(127,20): error TS4006: Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(127,50): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(128,16): error TS4008: Type parameter 'T' of call signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(128,46): error TS4047: Return type of call signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(129,24): error TS4014: Type parameter 'T' of method from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(129,54): error TS4057: Return type of method from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(132,43): error TS4010: Type parameter 'T' of public static method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(134,30): error TS4012: Type parameter 'T' of public method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(137,74): error TS4016: Type parameter 'T' of exported function has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(164,24): error TS4006: Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(164,41): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(165,20): error TS4008: Type parameter 'T' of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(165,37): error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(166,28): error TS4014: Type parameter 'T' of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(166,45): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(188,47): error TS4010: Type parameter 'T' of public static method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(192,34): error TS4012: Type parameter 'T' of public method from exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(231,71): error TS4016: Type parameter 'T' of exported function has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(283,24): error TS4006: Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(283,54): error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(284,20): error TS4008: Type parameter 'T' of call signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(284,50): error TS4047: Return type of call signature from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(285,28): error TS4014: Type parameter 'T' of method from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(285,58): error TS4057: Return type of method from exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(288,47): error TS4010: Type parameter 'T' of public static method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(290,34): error TS4012: Type parameter 'T' of public method from exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(293,78): error TS4016: Type parameter 'T' of exported function has or is using private name 'privateModule'.
==== tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts (36 errors) ====
@@ -45,20 +45,20 @@ tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(293,68): error TS
export interface publicInterfaceWithPrivateTypeParameters {
new <T extends privateClass>(): privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4006: Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
<T extends privateClass>(): privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4008: Type parameter 'T' of call signature from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
myMethod<T extends privateClass>(): privateClass; // Error
~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4014: Type parameter 'T' of method from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
}
export interface publicInterfaceWithPublicTypeParameters {
@@ -81,13 +81,13 @@ tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(293,68): error TS
export class publicClassWithWithPrivateTypeParameters {
static myPublicStaticMethod<T extends privateClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4010: Type parameter 'T' of public static method from exported class has or is using private name 'privateClass'.
}
private static myPrivateStaticMethod<T extends privateClass>() {
}
myPublicMethod<T extends privateClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4012: Type parameter 'T' of public method from exported class has or is using private name 'privateClass'.
}
private myPrivateMethod<T extends privateClass>() {
@@ -128,7 +128,7 @@ tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(293,68): error TS
}
export function publicFunctionWithPrivateTypeParameters<T extends privateClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4016: Type parameter 'T' of exported function has or is using private name 'privateClass'.
}
@@ -182,34 +182,34 @@ tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(293,68): error TS
export interface publicInterfaceWithPrivatModuleTypeParameters {
new <T extends privateModule.publicClass>(): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4044: Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4005: Type parameter 'T' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4006: Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateModule'.
<T extends privateModule.publicClass>(): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4046: Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4007: Type parameter 'T' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4008: Type parameter 'T' of call signature from exported interface has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateModule'.
myMethod<T extends privateModule.publicClass>(): privateModule.publicClass; // Error
~~~~~~~~
!!! error TS4056: Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4013: Type parameter 'T' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4014: Type parameter 'T' of method from exported interface has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateModule'.
}
export class publicClassWithWithPrivateModuleTypeParameters {
static myPublicStaticMethod<T extends privateModule.publicClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4009: Type parameter 'T' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4010: Type parameter 'T' of public static method from exported class has or is using private name 'privateModule'.
}
myPublicMethod<T extends privateModule.publicClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4011: Type parameter 'T' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4012: Type parameter 'T' of public method from exported class has or is using private name 'privateModule'.
}
}
export function publicFunctionWithPrivateMopduleTypeParameters<T extends privateModule.publicClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4015: Type parameter 'T' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4016: Type parameter 'T' of exported function has or is using private name 'privateModule'.
}
@@ -237,20 +237,20 @@ tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(293,68): error TS
export interface publicInterfaceWithPrivateTypeParameters {
new <T extends privateClass>(): privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4006: Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateClass'.
<T extends privateClass>(): privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4008: Type parameter 'T' of call signature from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateClass'.
myMethod<T extends privateClass>(): privateClass; // Error
~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4014: Type parameter 'T' of method from exported interface has or is using private name 'privateClass'.
~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
}
export interface publicInterfaceWithPublicTypeParameters {
@@ -273,13 +273,13 @@ tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(293,68): error TS
export class publicClassWithWithPrivateTypeParameters {
static myPublicStaticMethod<T extends privateClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4010: Type parameter 'T' of public static method from exported class has or is using private name 'privateClass'.
}
private static myPrivateStaticMethod<T extends privateClass>() {
}
myPublicMethod<T extends privateClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4012: Type parameter 'T' of public method from exported class has or is using private name 'privateClass'.
}
private myPrivateMethod<T extends privateClass>() {
@@ -320,7 +320,7 @@ tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(293,68): error TS
}
export function publicFunctionWithPrivateTypeParameters<T extends privateClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4016: Type parameter 'T' of exported function has or is using private name 'privateClass'.
}
@@ -374,34 +374,34 @@ tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts(293,68): error TS
export interface publicInterfaceWithPrivatModuleTypeParameters {
new <T extends privateModule.publicClass>(): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4044: Return type of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4005: Type parameter 'T' of constructor signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4006: Type parameter 'T' of constructor signature from exported interface has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4045: Return type of constructor signature from exported interface has or is using private name 'privateModule'.
<T extends privateModule.publicClass>(): privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4046: Return type of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4007: Type parameter 'T' of call signature from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4008: Type parameter 'T' of call signature from exported interface has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4047: Return type of call signature from exported interface has or is using private name 'privateModule'.
myMethod<T extends privateModule.publicClass>(): privateModule.publicClass; // Error
~~~~~~~~
!!! error TS4056: Return type of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4013: Type parameter 'T' of method from exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4014: Type parameter 'T' of method from exported interface has or is using private name 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateModule'.
}
export class publicClassWithWithPrivateModuleTypeParameters {
static myPublicStaticMethod<T extends privateModule.publicClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4009: Type parameter 'T' of public static method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4010: Type parameter 'T' of public static method from exported class has or is using private name 'privateModule'.
}
myPublicMethod<T extends privateModule.publicClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4011: Type parameter 'T' of public method from exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4012: Type parameter 'T' of public method from exported class has or is using private name 'privateModule'.
}
}
export function publicFunctionWithPrivateMopduleTypeParameters<T extends privateModule.publicClass>() { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4015: Type parameter 'T' of exported function has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4016: Type parameter 'T' of exported function has or is using private name 'privateModule'.
}
@@ -1,7 +1,7 @@
tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(7,51): error TS4002: Type parameter 'T' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(43,61): error TS4001: Type parameter 'T' of exported class has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(62,55): error TS4002: Type parameter 'T' of exported class has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(98,65): error TS4001: Type parameter 'T' of exported class has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(7,61): error TS4002: Type parameter 'T' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(43,71): error TS4002: Type parameter 'T' of exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(62,65): error TS4002: Type parameter 'T' of exported class has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(98,75): error TS4002: Type parameter 'T' of exported class has or is using private name 'privateModule'.
==== tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts (4 errors) ====
@@ -12,7 +12,7 @@ tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(98,65): error TS400
}
export class publicClassWithPrivateTypeParameters<T extends privateClass> { // Error
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4002: Type parameter 'T' of exported class has or is using private name 'privateClass'.
myMethod(val: T): T {
return val;
@@ -50,8 +50,8 @@ tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(98,65): error TS400
}
export class publicClassWithTypeParametersFromPrivateModule<T extends privateModule.publicClassInPrivateModule> { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4001: Type parameter 'T' of exported class has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4002: Type parameter 'T' of exported class has or is using private name 'privateModule'.
myMethod(val: T): T {
return val;
}
@@ -71,7 +71,7 @@ tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(98,65): error TS400
}
export class publicClassWithPrivateTypeParameters<T extends privateClassInPublicModule> { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4002: Type parameter 'T' of exported class has or is using private name 'privateClassInPublicModule'.
myMethod(val: T): T {
return val;
@@ -109,8 +109,8 @@ tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts(98,65): error TS400
}
export class publicClassWithTypeParametersFromPrivateModule<T extends privateModule.publicClassInPrivateModule> { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4001: Type parameter 'T' of exported class has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4002: Type parameter 'T' of exported class has or is using private name 'privateModule'.
myMethod(val: T): T {
return val;
}
@@ -1,23 +1,23 @@
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(13,59): error TS4004: Type parameter 'T' of exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(16,5): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(16,5): error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(17,5): error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(18,5): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(25,5): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(25,5): error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(26,5): error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(27,5): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(60,75): error TS4003: Type parameter 'T' of exported interface has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(79,63): error TS4004: Type parameter 'T' of exported interface has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(82,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(82,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(83,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(84,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(91,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(91,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(92,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(93,9): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(125,79): error TS4003: Type parameter 'T' of exported interface has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(13,69): error TS4004: Type parameter 'T' of exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(16,18): error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(16,32): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(17,18): error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(18,31): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(25,18): error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(25,32): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(26,18): error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(27,31): error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(60,85): error TS4004: Type parameter 'T' of exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(79,73): error TS4004: Type parameter 'T' of exported interface has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(82,22): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(82,50): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(83,22): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(84,49): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(91,22): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(91,50): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(92,22): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(93,49): error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(125,89): error TS4004: Type parameter 'T' of exported interface has or is using private name 'privateModule'.
==== tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts (20 errors) ====
@@ -34,20 +34,20 @@ tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(125,79): error
}
export interface publicInterfaceWithPrivateTypeParameters<T extends privateClass> { // Error
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4004: Type parameter 'T' of exported interface has or is using private name 'privateClass'.
myMethod(val: T): T;
myMethod0(): publicClassT<T>;
myMethod1(): privateClassT<privateClass>;
~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
~~~~~~~~~
~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
myMethod2(): privateClassT<publicClass>;
~~~~~~~~~
~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
myMethod3(): publicClassT<privateClass>;
~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
myMethod4(): publicClassT<publicClass>;
}
@@ -56,15 +56,15 @@ tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(125,79): error
myMethod(val: T): T;
myMethod0(): publicClassT<T>
myMethod1(): privateClassT<privateClass>;
~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
~~~~~~~~~
~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
myMethod2(): privateClassT<publicClass>;
~~~~~~~~~
~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassT'.
myMethod3(): publicClassT<privateClass>;
~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClass'.
myMethod4(): publicClassT<publicClass>;
}
@@ -99,8 +99,8 @@ tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(125,79): error
export interface publicInterfaceWithPrivateModuleTypeParameterConstraints<T extends privateModule.publicClassInPrivateModule> { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4003: Type parameter 'T' of exported interface has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4004: Type parameter 'T' of exported interface has or is using private name 'privateModule'.
}
interface privateInterfaceWithPrivateModuleTypeParameterConstraints<T extends privateModule.publicClassInPrivateModule> { // Error
@@ -120,20 +120,20 @@ tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(125,79): error
}
export interface publicInterfaceWithPrivateTypeParameters<T extends privateClassInPublicModule> { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4004: Type parameter 'T' of exported interface has or is using private name 'privateClassInPublicModule'.
myMethod(val: T): T;
myMethod0(): publicClassInPublicModuleT<T>;
myMethod1(): privateClassInPublicModuleT<privateClassInPublicModule>;
~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
myMethod2(): privateClassInPublicModuleT<publicClassInPublicModule>;
~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
myMethod3(): publicClassInPublicModuleT<privateClassInPublicModule>;
~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
myMethod4(): publicClassInPublicModuleT<publicClassInPublicModule>;
}
@@ -142,15 +142,15 @@ tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(125,79): error
myMethod(val: T): T;
myMethod0(): publicClassInPublicModuleT<T>
myMethod1(): privateClassInPublicModuleT<privateClassInPublicModule>;
~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
myMethod2(): privateClassInPublicModuleT<publicClassInPublicModule>;
~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModuleT'.
myMethod3(): publicClassInPublicModuleT<privateClassInPublicModule>;
~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4057: Return type of method from exported interface has or is using private name 'privateClassInPublicModule'.
myMethod4(): publicClassInPublicModuleT<publicClassInPublicModule>;
}
@@ -184,8 +184,8 @@ tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts(125,79): error
}
export interface publicInterfaceWithPrivateModuleTypeParameterConstraints<T extends privateModule.publicClassInPrivateModule> { // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4003: Type parameter 'T' of exported interface has or is using name 'privateModule.publicClassInPrivateModule' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4004: Type parameter 'T' of exported interface has or is using private name 'privateModule'.
}
interface privateInterfaceWithPrivateModuleTypeParameterConstraints<T extends privateModule.publicClassInPrivateModule> { // Error
@@ -1,33 +1,33 @@
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(105,9): error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(121,9): error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(123,9): error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(148,16): error TS4025: Exported variable 'publicVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(153,24): error TS4025: Exported variable 'publicAmbientVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(159,9): error TS4032: Property 'myProperty' of exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(162,9): error TS4027: Public static property 'myPublicStaticProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(163,9): error TS4030: Public property 'myPublicProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(165,16): error TS4024: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(166,24): error TS4024: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(9,5): error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(25,5): error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(27,5): error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(52,12): error TS4025: Exported variable 'publicVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(57,20): error TS4025: Exported variable 'publicAmbientVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(63,5): error TS4032: Property 'myProperty' of exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(66,5): error TS4027: Public static property 'myPublicStaticProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(67,5): error TS4030: Public property 'myPublicProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(69,12): error TS4024: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(70,20): error TS4024: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(90,9): error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(106,9): error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(108,9): error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(133,16): error TS4025: Exported variable 'publicVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(138,24): error TS4025: Exported variable 'publicAmbientVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(144,9): error TS4032: Property 'myProperty' of exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(147,9): error TS4027: Public static property 'myPublicStaticProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(148,9): error TS4030: Public property 'myPublicProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(150,16): error TS4024: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(105,21): error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(121,40): error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(123,27): error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(148,51): error TS4025: Exported variable 'publicVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(153,66): error TS4025: Exported variable 'publicAmbientVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(159,21): error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(162,40): error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(163,27): error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(165,57): error TS4025: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_GlobalFile.ts(166,72): error TS4025: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(9,17): error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(25,36): error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(27,23): error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(52,47): error TS4025: Exported variable 'publicVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(57,62): error TS4025: Exported variable 'publicAmbientVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(63,17): error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(66,36): error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(67,23): error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(69,53): error TS4025: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(70,68): error TS4025: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(90,21): error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(106,40): error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(108,27): error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(133,51): error TS4025: Exported variable 'publicVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(138,66): error TS4025: Exported variable 'publicAmbientVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(144,21): error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(147,40): error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(148,27): error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(150,57): error TS4025: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,72): error TS4025: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
==== tests/cases/compiler/privacyVarDeclFile_externalModule.ts (20 errors) ====
@@ -40,7 +40,7 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
export interface publicInterfaceWithPrivatePropertyTypes {
myProperty: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateClass'.
}
@@ -58,11 +58,11 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
export class publicClassWithWithPrivatePropertyTypes {
static myPublicStaticProperty: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateClass'.
private static myPrivateStaticProperty: privateClass;
myPublicProperty: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateClass'.
private myPrivateProperty: privateClass;
}
@@ -89,14 +89,14 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
}
export var publicVarWithPrivatePropertyTypes: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
export var publicVarWithPublicPropertyTypes: publicClass;
var privateVarWithPrivatePropertyTypes: privateClass;
var privateVarWithPublicPropertyTypes: publicClass;
export declare var publicAmbientVarWithPrivatePropertyTypes: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicAmbientVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
export declare var publicAmbientVarWithPublicPropertyTypes: publicClass;
declare var privateAmbientVarWithPrivatePropertyTypes: privateClass;
@@ -104,23 +104,23 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
export interface publicInterfaceWithPrivateModulePropertyTypes {
myProperty: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4032: Property 'myProperty' of exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateModule'.
}
export class publicClassWithPrivateModulePropertyTypes {
static myPublicStaticProperty: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4027: Public static property 'myPublicStaticProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateModule'.
myPublicProperty: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4030: Public property 'myPublicProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateModule'.
}
export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4024: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
export declare var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4024: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
interface privateInterfaceWithPrivateModulePropertyTypes {
myProperty: privateModule.publicClass;
@@ -141,7 +141,7 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
export interface publicInterfaceWithPrivatePropertyTypes {
myProperty: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateClass'.
}
@@ -159,11 +159,11 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
export class publicClassWithWithPrivatePropertyTypes {
static myPublicStaticProperty: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateClass'.
private static myPrivateStaticProperty: privateClass;
myPublicProperty: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateClass'.
private myPrivateProperty: privateClass;
}
@@ -190,14 +190,14 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
}
export var publicVarWithPrivatePropertyTypes: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
export var publicVarWithPublicPropertyTypes: publicClass;
var privateVarWithPrivatePropertyTypes: privateClass;
var privateVarWithPublicPropertyTypes: publicClass;
export declare var publicAmbientVarWithPrivatePropertyTypes: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicAmbientVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
export declare var publicAmbientVarWithPublicPropertyTypes: publicClass;
declare var privateAmbientVarWithPrivatePropertyTypes: privateClass;
@@ -205,23 +205,23 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
export interface publicInterfaceWithPrivateModulePropertyTypes {
myProperty: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4032: Property 'myProperty' of exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateModule'.
}
export class publicClassWithPrivateModulePropertyTypes {
static myPublicStaticProperty: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4027: Public static property 'myPublicStaticProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateModule'.
myPublicProperty: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4030: Public property 'myPublicProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateModule'.
}
export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4024: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
export declare var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4024: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
interface privateInterfaceWithPrivateModulePropertyTypes {
myProperty: privateModule.publicClass;
@@ -422,7 +422,7 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
export interface publicInterfaceWithPrivatePropertyTypes {
myProperty: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateClass'.
}
@@ -440,11 +440,11 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
export class publicClassWithWithPrivatePropertyTypes {
static myPublicStaticProperty: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateClass'.
private static myPrivateStaticProperty: privateClass;
myPublicProperty: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateClass'.
private myPrivateProperty: privateClass;
}
@@ -471,14 +471,14 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
}
export var publicVarWithPrivatePropertyTypes: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
export var publicVarWithPublicPropertyTypes: publicClass;
var privateVarWithPrivatePropertyTypes: privateClass;
var privateVarWithPublicPropertyTypes: publicClass;
export declare var publicAmbientVarWithPrivatePropertyTypes: privateClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicAmbientVarWithPrivatePropertyTypes' has or is using private name 'privateClass'.
export declare var publicAmbientVarWithPublicPropertyTypes: publicClass;
declare var privateAmbientVarWithPrivatePropertyTypes: privateClass;
@@ -486,23 +486,23 @@ tests/cases/compiler/privacyVarDeclFile_externalModule.ts(151,24): error TS4024:
export interface publicInterfaceWithPrivateModulePropertyTypes {
myProperty: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4032: Property 'myProperty' of exported interface has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4033: Property 'myProperty' of exported interface has or is using private name 'privateModule'.
}
export class publicClassWithPrivateModulePropertyTypes {
static myPublicStaticProperty: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4027: Public static property 'myPublicStaticProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4028: Public static property 'myPublicStaticProperty' of exported class has or is using private name 'privateModule'.
myPublicProperty: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4030: Public property 'myPublicProperty' of exported class has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4031: Public property 'myPublicProperty' of exported class has or is using private name 'privateModule'.
}
export var publicVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4024: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
export declare var publicAmbientVarWithPrivateModulePropertyTypes: privateModule.publicClass; // Error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4024: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using name 'privateModule.publicClass' from private module 'privateModule'.
~~~~~~~~~~~~~
!!! error TS4025: Exported variable 'publicAmbientVarWithPrivateModulePropertyTypes' has or is using private name 'privateModule'.
interface privateInterfaceWithPrivateModulePropertyTypes {
myProperty: privateModule.publicClass;
@@ -7510,7 +7510,7 @@ declare module julianae {
declare module ruatanica {
class hector<T0, T1> {
humulis(): julianae.steerii;
eurycerus(): panamensis.linulus<Praseodymium<Lanthanum.jugularis, dammermani.melanops>, lavali.wilsoni>;
eurycerus(): panamensis.linulus<ruatanica.Praseodymium<Lanthanum.jugularis, dammermani.melanops>, lavali.wilsoni>;
}
}
declare module Lanthanum {
@@ -7648,7 +7648,7 @@ declare module quasiater {
crassicaudatus(): samarensis.cahirinus<macrorhinos.daphaenodon, argurus.luctuosa>;
mulatta(): argurus.oreas;
ansorgei(): rendalli.moojeni<panglima.amphibius<trivirgatus.falconeri, caurinus.psilurus>, gabriellae.echinatus>;
Copper(): argurus.netscheri<carolinensis, dogramacii.kaiseri>;
Copper(): argurus.netscheri<quasiater.carolinensis, dogramacii.kaiseri>;
}
}
declare module ruatanica {
@@ -7769,10 +7769,10 @@ declare module lutreolus {
culionensis(): argurus.dauricus<ruatanica.americanus, rionegrensis.caniventer>;
scrofa(): petrophilus.sodyi<gabriellae.amicus, julianae.sumatrana>;
fernandoni(): quasiater.carolinensis;
Tin(): sagitta.leptoceros<punicus, daubentonii.arboreus<quasiater.carolinensis, rionegrensis.caniventer>>;
marmorata(): panamensis.setulosus<quasiater.carolinensis, daubentonii.arboreus<dogramacii.kaiseri, punicus>>;
Tin(): sagitta.leptoceros<lutreolus.punicus, daubentonii.arboreus<quasiater.carolinensis, rionegrensis.caniventer>>;
marmorata(): panamensis.setulosus<quasiater.carolinensis, daubentonii.arboreus<dogramacii.kaiseri, lutreolus.punicus>>;
tavaratra(): Lanthanum.nitidus<howi.marcanoi, macrorhinos.daphaenodon>;
peregrina(): daubentonii.nesiotes<macrorhinos.konganensis, punicus>;
peregrina(): daubentonii.nesiotes<macrorhinos.konganensis, lutreolus.punicus>;
frontalis(): macrorhinos.marmosurus<ruatanica.hector<julianae.sumatrana, samarensis.pelurus<Lanthanum.jugularis, sagitta.walkeri>>, samarensis.pallidus>;
cuniculus(): patas.uralensis;
magdalenae(): julianae.gerbillus<rionegrensis.caniventer, rendalli.crenulata<rendalli.zuluensis, dogramacii.robustulus>>;
@@ -7789,9 +7789,9 @@ declare module argurus {
darienensis(): trivirgatus.oconnelli;
hardwickii(): macrorhinos.daphaenodon;
albifrons(): rionegrensis.veraecrucis<lavali.lepturus, julianae.durangae>;
jacobitus(): caurinus.johorensis<macrorhinos.konganensis, caurinus.johorensis<peninsulae, daubentonii.arboreus<germaini, sagitta.stolzmanni>>>;
guentheri(): rendalli.moojeni<lutreolus.foina, oreas>;
mahomet(): imperfecta.ciliolabrum<germaini, lutreolus.foina>;
jacobitus(): caurinus.johorensis<macrorhinos.konganensis, caurinus.johorensis<argurus.peninsulae, daubentonii.arboreus<argurus.germaini, sagitta.stolzmanni>>>;
guentheri(): rendalli.moojeni<lutreolus.foina, argurus.oreas>;
mahomet(): imperfecta.ciliolabrum<argurus.germaini, lutreolus.foina>;
misionensis(): macrorhinos.marmosurus<daubentonii.arboreus<quasiater.carolinensis, rionegrensis.caniventer>, gabriellae.echinatus>;
}
}
@@ -7799,7 +7799,7 @@ declare module nigra {
class dolichurus<T0, T1> {
solomonis(): panglima.abidi<quasiater.carolinensis, rendalli.crenulata<gabriellae.klossii<julianae.nudicaudus, dogramacii.aurata>, argurus.netscheri<minutus.inez<argurus.peninsulae, julianae.nudicaudus>, julianae.oralis<lavali.xanthognathus, argurus.oreas>>>>;
alfredi(): caurinus.psilurus;
morrisi(): ruatanica.hector<trivirgatus.oconnelli, sagitta.cinereus<caucasica<julianae.sumatrana, trivirgatus.oconnelli>, quasiater.wattsi<julianae.galapagoensis, panamensis.linulus<lavali.xanthognathus, macrorhinos.konganensis>>>>;
morrisi(): ruatanica.hector<trivirgatus.oconnelli, sagitta.cinereus<nigra.caucasica<julianae.sumatrana, trivirgatus.oconnelli>, quasiater.wattsi<julianae.galapagoensis, panamensis.linulus<lavali.xanthognathus, macrorhinos.konganensis>>>>;
lekaguli(): Lanthanum.nitidus<dammermani.melanops, lavali.lepturus>;
dimissus(): imperfecta.subspinosus;
phaeotis(): julianae.sumatrana;
@@ -7847,7 +7847,7 @@ declare module minutus {
rusticus(): dogramacii.aurata;
latona(): daubentonii.nesiotes<dammermani.melanops, Lanthanum.megalonyx>;
famulus(): patas.uralensis;
flaviceps(): inez<argurus.oreas, panglima.fundatus<gabriellae.amicus, lutreolus.foina>>;
flaviceps(): minutus.inez<argurus.oreas, panglima.fundatus<gabriellae.amicus, lutreolus.foina>>;
paradoxolophus(): nigra.dolichurus<lutreolus.schlegeli, chrysaeolus.sarasinorum<Lanthanum.jugularis, imperfecta.subspinosus>>;
Osmium(): lavali.wilsoni;
vulgaris(): Lanthanum.nitidus<lavali.lepturus, julianae.acariensis>;
@@ -7858,12 +7858,12 @@ declare module minutus {
}
declare module caurinus {
class mahaganus<T0, T1> extends panglima.fundatus<quasiater.carolinensis, macrorhinos.daphaenodon> {
martiniquensis(): ruatanica.hector<julianae.sumatrana, macrorhinos.marmosurus<dammermani.melanops, mahaganus<julianae.nudicaudus, lavali.otion>>>;
martiniquensis(): ruatanica.hector<julianae.sumatrana, macrorhinos.marmosurus<dammermani.melanops, caurinus.mahaganus<julianae.nudicaudus, lavali.otion>>>;
devius(): samarensis.pelurus<dogramacii.aurata, minutus.inez<minutus.inez<sagitta.stolzmanni, dammermani.melanops>, trivirgatus.falconeri>>;
masalai(): argurus.oreas;
kathleenae(): nigra.dolichurus<patas.uralensis, psilurus>;
kathleenae(): nigra.dolichurus<patas.uralensis, caurinus.psilurus>;
simulus(): gabriellae.echinatus;
nigrovittatus(): mahaganus<gabriellae.echinatus, petrophilus.rosalia<Lanthanum.megalonyx, panglima.abidi<dogramacii.kaiseri, lavali.wilsoni>>>;
nigrovittatus(): caurinus.mahaganus<gabriellae.echinatus, petrophilus.rosalia<Lanthanum.megalonyx, panglima.abidi<dogramacii.kaiseri, lavali.wilsoni>>>;
senegalensis(): gabriellae.klossii<howi.coludo<lavali.lepturus, lutreolus.punicus>, dammermani.melanops>;
acticola(): argurus.luctuosa;
}
@@ -7875,7 +7875,7 @@ declare module macrorhinos {
}
declare module howi {
class angulatus<T0, T1> extends sagitta.stolzmanni {
pennatus(): marcanoi;
pennatus(): howi.marcanoi;
}
}
declare module daubentonii {
@@ -7923,13 +7923,13 @@ declare module panamensis {
}
declare module nigra {
class gracilis<T0, T1> {
weddellii(): dolichurus<dogramacii.aurata, julianae.steerii>;
weddellii(): nigra.dolichurus<dogramacii.aurata, julianae.steerii>;
echinothrix(): Lanthanum.nitidus<panglima.amphibius<caurinus.megaphyllus, lavali.lepturus>, argurus.oreas>;
garridoi(): dogramacii.koepckeae;
rouxii(): gracilis<argurus.dauricus<macrorhinos.konganensis, patas.uralensis>, thalia<patas.uralensis, julianae.galapagoensis>>;
rouxii(): nigra.gracilis<argurus.dauricus<macrorhinos.konganensis, patas.uralensis>, nigra.thalia<patas.uralensis, julianae.galapagoensis>>;
aurita(): sagitta.stolzmanni;
geoffrensis(): rionegrensis.caniventer;
theresa(): macrorhinos.marmosurus<argurus.netscheri<dammermani.siberu<lutreolus.foina, samarensis.pallidus>, argurus.luctuosa>, dolichurus<lavali.lepturus, samarensis.pallidus>>;
theresa(): macrorhinos.marmosurus<argurus.netscheri<dammermani.siberu<lutreolus.foina, samarensis.pallidus>, argurus.luctuosa>, nigra.dolichurus<lavali.lepturus, samarensis.pallidus>>;
melanocarpus(): julianae.albidens<dammermani.siberu<lutreolus.foina, samarensis.pallidus>, julianae.sumatrana>;
dubiaquercus(): dogramacii.robustulus;
pectoralis(): julianae.sumatrana;
@@ -7985,7 +7985,7 @@ declare module samarensis {
}
}
declare module sagitta {
class leptoceros<T0, T1> extends caurinus.johorensis<argurus.peninsulae, daubentonii.arboreus<argurus.germaini, stolzmanni>> {
class leptoceros<T0, T1> extends caurinus.johorensis<argurus.peninsulae, daubentonii.arboreus<argurus.germaini, sagitta.stolzmanni>> {
victus(): rionegrensis.caniventer;
hoplomyoides(): panglima.fundatus<julianae.gerbillus<imperfecta.subspinosus, julianae.durangae>, nigra.gracilis<argurus.luctuosa, imperfecta.subspinosus>>;
gratiosus(): lavali.lepturus;
@@ -8025,7 +8025,7 @@ declare module argurus {
leucoptera(): petrophilus.rosalia<dogramacii.koepckeae, lutreolus.foina>;
ochraventer(): sagitta.walkeri;
tephromelas(): Lanthanum.jugularis;
cracens(): gilbertii<lavali.thaeleri, lutreolus.punicus>;
cracens(): argurus.gilbertii<lavali.thaeleri, lutreolus.punicus>;
jamaicensis(): nigra.thalia<howi.marcanoi, rionegrensis.veraecrucis<trivirgatus.falconeri, quasiater.carolinensis>>;
gymnocaudus(): dogramacii.aurata;
mayori(): sagitta.stolzmanni;
@@ -8038,9 +8038,9 @@ declare module argurus {
fagani(): trivirgatus.oconnelli;
papuanus(): panglima.fundatus<quasiater.carolinensis, macrorhinos.daphaenodon>;
timidus(): dammermani.melanops;
nghetinhensis(): gabriellae.klossii<luctuosa, julianae.steerii>;
nghetinhensis(): gabriellae.klossii<argurus.luctuosa, julianae.steerii>;
barbei(): samarensis.cahirinus<lavali.lepturus, quasiater.carolinensis>;
univittatus(): peninsulae;
univittatus(): argurus.peninsulae;
}
}
declare module daubentonii {
@@ -8085,7 +8085,7 @@ declare module provocax {
declare module sagitta {
class sicarius<T0, T1> {
Chlorine(): samarensis.cahirinus<nigra.gracilis<argurus.luctuosa, imperfecta.subspinosus>, dogramacii.robustulus>;
simulator(): macrorhinos.marmosurus<Lanthanum.nitidus<dammermani.melanops, lavali.lepturus>, macrorhinos.marmosurus<rendalli.moojeni<panglima.amphibius<trivirgatus.falconeri, caurinus.psilurus>, gabriellae.echinatus>, stolzmanni>>;
simulator(): macrorhinos.marmosurus<Lanthanum.nitidus<dammermani.melanops, lavali.lepturus>, macrorhinos.marmosurus<rendalli.moojeni<panglima.amphibius<trivirgatus.falconeri, caurinus.psilurus>, gabriellae.echinatus>, sagitta.stolzmanni>>;
}
}
declare module howi {
@@ -8096,7 +8096,7 @@ declare module howi {
martinsi(): dogramacii.aurata;
beatrix(): imperfecta.ciliolabrum<provocax.melanoleuca, panglima.amphibius<minutus.inez<rendalli.moojeni<panglima.amphibius<trivirgatus.falconeri, caurinus.psilurus>, gabriellae.echinatus>, dogramacii.aurata>, imperfecta.ciliolabrum<quasiater.carolinensis, lavali.beisa>>>;
griseoventer(): argurus.oreas;
zerda(): quasiater.wattsi<julianae.oralis<julianae.steerii, lavali.lepturus>, coludo<julianae.steerii, julianae.gerbillus<lavali.thaeleri, quasiater.carolinensis>>>;
zerda(): quasiater.wattsi<julianae.oralis<julianae.steerii, lavali.lepturus>, howi.coludo<julianae.steerii, julianae.gerbillus<lavali.thaeleri, quasiater.carolinensis>>>;
yucatanicus(): julianae.nudicaudus;
nigrita(): argurus.peninsulae;
jouvenetae(): argurus.dauricus<argurus.germaini, julianae.durangae>;
@@ -8110,9 +8110,9 @@ declare module argurus {
class gilbertii<T0, T1> {
nasutus(): lavali.lepturus;
poecilops(): julianae.steerii;
sondaicus(): samarensis.fuscus<peninsulae, lavali.lepturus>;
sondaicus(): samarensis.fuscus<argurus.peninsulae, lavali.lepturus>;
auriventer(): petrophilus.rosalia<lavali.xanthognathus, trivirgatus.oconnelli>;
cherriei(): ruatanica.Praseodymium<Lanthanum.jugularis, oreas>;
cherriei(): ruatanica.Praseodymium<Lanthanum.jugularis, argurus.oreas>;
lindberghi(): minutus.inez<rendalli.zuluensis, rionegrensis.caniventer>;
pipistrellus(): quasiater.carolinensis;
paranus(): lutreolus.punicus;
@@ -8132,12 +8132,12 @@ declare module lutreolus {
lar(): caurinus.mahaganus<julianae.nudicaudus, lavali.otion>;
erica(): dogramacii.koepckeae;
trichura(): macrorhinos.konganensis;
lemniscatus(): panglima.fundatus<gabriellae.amicus, foina>;
lemniscatus(): panglima.fundatus<gabriellae.amicus, lutreolus.foina>;
aspalax(): panamensis.linulus<lavali.xanthognathus, macrorhinos.konganensis>;
marshalli(): julianae.nudicaudus;
Zinc(): julianae.galapagoensis;
monochromos(): howi.coludo<lavali.lepturus, punicus>;
purinus(): ruatanica.hector<schlegeli, provocax.melanoleuca>;
monochromos(): howi.coludo<lavali.lepturus, lutreolus.punicus>;
purinus(): ruatanica.hector<lutreolus.schlegeli, provocax.melanoleuca>;
ischyrus(): lavali.lepturus;
tenuis(): macrorhinos.daphaenodon;
Helium(): julianae.acariensis;
@@ -8165,8 +8165,8 @@ declare module sagitta {
dorsalis(): petrophilus.sodyi<argurus.luctuosa, julianae.sumatrana>;
fimbriatus(): provocax.melanoleuca;
sara(): nigra.gracilis<argurus.luctuosa, imperfecta.subspinosus>;
epimelas(): stolzmanni;
pittieri(): samarensis.fuscus<quasiater.carolinensis, stolzmanni>;
epimelas(): sagitta.stolzmanni;
pittieri(): samarensis.fuscus<quasiater.carolinensis, sagitta.stolzmanni>;
}
}
declare module nigra {
@@ -8264,7 +8264,7 @@ declare module minutus {
}
declare module lutreolus {
class foina {
tarfayensis(): punicus;
tarfayensis(): lutreolus.punicus;
Promethium(): samarensis.pelurus<argurus.germaini, julianae.durangae>;
salinae(): gabriellae.klossii<macrorhinos.konganensis, quasiater.carolinensis>;
kerri(): howi.coludo<quasiater.carolinensis, minutus.portoricensis>;
@@ -8276,7 +8276,7 @@ declare module lutreolus {
layardi(): julianae.albidens<howi.marcanoi, dogramacii.koepckeae>;
bishopi(): dogramacii.aurata;
apodemoides(): caurinus.psilurus;
argentiventer(): trivirgatus.mixtus<gabriellae.amicus, punicus>;
argentiventer(): trivirgatus.mixtus<gabriellae.amicus, lutreolus.punicus>;
}
}
declare module lutreolus {
@@ -8284,7 +8284,7 @@ declare module lutreolus {
antinorii(): petrophilus.sodyi<quasiater.carolinensis, argurus.germaini>;
voi(): caurinus.johorensis<dammermani.melanops, macrorhinos.konganensis>;
mussoi(): quasiater.carolinensis;
truncatus(): trivirgatus.lotor<sagitta.stolzmanni, foina>;
truncatus(): trivirgatus.lotor<sagitta.stolzmanni, lutreolus.foina>;
achates(): provocax.melanoleuca;
praedatrix(): howi.angulatus<dogramacii.kaiseri, julianae.steerii>;
mzabi(): quasiater.wattsi<trivirgatus.lotor<julianae.steerii, samarensis.pallidus>, minutus.inez<trivirgatus.oconnelli, Lanthanum.jugularis>>;
@@ -8321,8 +8321,8 @@ declare module sagitta {
}
}
declare module dammermani {
class melanops extends minutus.inez<sagitta.stolzmanni, melanops> {
blarina(): melanops;
class melanops extends minutus.inez<sagitta.stolzmanni, dammermani.melanops> {
blarina(): dammermani.melanops;
harwoodi(): rionegrensis.veraecrucis<nigra.dolichurus<lavali.lepturus, samarensis.pallidus>, lavali.wilsoni>;
ashaninka(): julianae.nudicaudus;
wiedii(): julianae.steerii;
@@ -8339,14 +8339,14 @@ declare module dammermani {
}
declare module argurus {
class peninsulae extends patas.uralensis {
aitkeni(): trivirgatus.mixtus<dauricus<dogramacii.aurata, dammermani.melanops>, panglima.amphibius<lavali.lepturus, quasiater.carolinensis>>;
aitkeni(): trivirgatus.mixtus<argurus.dauricus<dogramacii.aurata, dammermani.melanops>, panglima.amphibius<lavali.lepturus, quasiater.carolinensis>>;
novaeangliae(): lavali.xanthognathus;
olallae(): julianae.sumatrana;
anselli(): dogramacii.aurata;
timminsi(): macrorhinos.konganensis;
sordidus(): rendalli.moojeni<macrorhinos.konganensis, gabriellae.echinatus>;
telfordi(): trivirgatus.oconnelli;
cavernarum(): minutus.inez<gabriellae.echinatus, luctuosa>;
cavernarum(): minutus.inez<gabriellae.echinatus, argurus.luctuosa>;
}
}
declare module argurus {
@@ -8354,21 +8354,21 @@ declare module argurus {
gravis(): nigra.caucasica<rendalli.crenulata<trivirgatus.falconeri, howi.marcanoi>, dogramacii.kaiseri>;
ruschii(): imperfecta.lasiurus<howi.marcanoi, imperfecta.ciliolabrum<Lanthanum.megalonyx, petrophilus.minutilla>>;
tricuspidatus(): lavali.wilsoni;
fernandezi(): dammermani.siberu<nigra.thalia<lutreolus.schlegeli, julianae.sumatrana>, panglima.abidi<lutreolus.foina, peninsulae>>;
fernandezi(): dammermani.siberu<nigra.thalia<lutreolus.schlegeli, julianae.sumatrana>, panglima.abidi<lutreolus.foina, argurus.peninsulae>>;
colletti(): samarensis.pallidus;
microbullatus(): lutreolus.schlegeli;
eburneae(): chrysaeolus.sarasinorum<macrorhinos.konganensis, julianae.acariensis>;
tatei(): pygmaea<oreas, panglima.fundatus<quasiater.carolinensis, macrorhinos.daphaenodon>>;
tatei(): argurus.pygmaea<argurus.oreas, panglima.fundatus<quasiater.carolinensis, macrorhinos.daphaenodon>>;
millardi(): sagitta.walkeri;
pruinosus(): trivirgatus.falconeri;
delator(): netscheri<dogramacii.kaiseri, lavali.lepturus>;
delator(): argurus.netscheri<dogramacii.kaiseri, lavali.lepturus>;
nyikae(): trivirgatus.tumidifrons<howi.angulatus<howi.coludo<quasiater.carolinensis, minutus.portoricensis>, petrophilus.minutilla>, julianae.acariensis>;
ruemmleri(): panglima.amphibius<minutus.inez<rendalli.moojeni<panglima.amphibius<trivirgatus.falconeri, caurinus.psilurus>, gabriellae.echinatus>, dogramacii.aurata>, imperfecta.ciliolabrum<quasiater.carolinensis, lavali.beisa>>;
}
}
declare module ruatanica {
class Praseodymium<T0, T1> extends hector<lutreolus.punicus, gabriellae.amicus> {
clara(): panglima.amphibius<imperfecta.ciliolabrum<quasiater.carolinensis, lavali.beisa>, argurus.dauricus<americanus, rionegrensis.caniventer>>;
class Praseodymium<T0, T1> extends ruatanica.hector<lutreolus.punicus, gabriellae.amicus> {
clara(): panglima.amphibius<imperfecta.ciliolabrum<quasiater.carolinensis, lavali.beisa>, argurus.dauricus<ruatanica.americanus, rionegrensis.caniventer>>;
spectabilis(): petrophilus.sodyi<rionegrensis.caniventer, quasiater.carolinensis>;
kamensis(): trivirgatus.lotor<panamensis.linulus<dogramacii.kaiseri, minutus.portoricensis>, lavali.lepturus>;
ruddi(): lutreolus.foina;
@@ -8416,7 +8416,7 @@ declare module petrophilus {
}
declare module caurinus {
class psilurus extends lutreolus.punicus {
socialis(): panglima.amphibius<trivirgatus.falconeri, psilurus>;
socialis(): panglima.amphibius<trivirgatus.falconeri, caurinus.psilurus>;
lundi(): petrophilus.sodyi<trivirgatus.falconeri, quasiater.bobrinskoi>;
araeum(): imperfecta.ciliolabrum<quasiater.carolinensis, lavali.beisa>;
calamianensis(): julianae.gerbillus<lavali.thaeleri, quasiater.carolinensis>;
+1 -1
View File
@@ -9,5 +9,5 @@ var x; // shouldn't be an error since type is the same as the first declaration
//// [typeofUndefined.d.ts]
declare var x: any;
declare var x: typeof undefined;
declare var x: any;
+7 -3
View File
@@ -191,7 +191,7 @@ declare var complicatedArrayVar: {
y: string;
}[];
declare var n1: {
[x: string]: number;
[s: string]: number;
};
declare var c: {
new?(): any;
@@ -212,8 +212,12 @@ declare var d2: {
x: number;
};
};
declare var n2: () => void;
declare var n4: (() => void)[];
declare var n2: {
(): void;
};
declare var n4: {
(): void;
}[];
declare var d4: {
foo(n: string, x: {
x: number;
@@ -0,0 +1,53 @@
// @target: ES5
// @declaration: true
class c {
}
module m {
export class c {
}
export class g<T> {
}
}
class g<T> {
}
// Just the name
function foo(): c[] {
return [new c()];
}
function foo2() {
return [new c()];
}
// Qualified name
function foo3(): m.c[] {
return [new m.c()];
}
function foo4() {
return m.c;
}
// Just the name with type arguments
function foo5(): g<string>[] {
return [new g<string>()];
}
function foo6() {
return [new g<string>()];
}
// Qualified name with type arguments
function foo7(): m.g<number>[] {
return [new m.g<number>()];
}
function foo8() {
return [new m.g<number>()];
}
// Array of function types
function foo9(): (()=>c)[] {
return [() => new c()];
}
function foo10() {
return [() => new c()];
}
@@ -0,0 +1,42 @@
// @target: ES5
// @declaration: true
// string
function foo(): string {
return "";
}
function foo2() {
return "";
}
// number
function foo3(): number {
return 10;
}
function foo4() {
return 10;
}
// boolean
function foo5(): boolean {
return true;
}
function foo6() {
return false;
}
// void
function foo7(): void {
return;
}
function foo8() {
return;
}
// any
function foo9(): any {
return undefined;
}
function foo10() {
return undefined;
}
@@ -0,0 +1,12 @@
// @target: ES5
// @declaration: true
class c {
private p: string;
}
var x: (() => c)[] = [() => new c()];
var y = [() => new c()];
var k: (() => c) | string = (() => new c()) || "";
var l = (() => new c()) || "";
@@ -0,0 +1,13 @@
// @target: ES5
// @declaration: true
function foo(a: "hello"): number;
function foo(a: "name"): string;
function foo(a: string): string | number;
function foo(a: string): string | number {
if (a === "hello") {
return a.length;
}
return a;
}
@@ -0,0 +1,20 @@
// @target: ES5
// @declaration: true
class c {
}
module m {
export class c {
}
export class g<T> {
}
}
class g<T> {
}
// Just the name
var k: [c, m.c] = [new c(), new m.c()];
var l = k;
var x: [g<string>, m.g<number>, () => c] = [new g<string>(), new m.g<number>(), () => new c()];
var y = x;
@@ -0,0 +1,34 @@
// @target: ES5
// @module: commonjs
// @declaration: true
module M {
export type Value = string | number | boolean;
export var x: Value;
export class c {
}
export type C = c;
export module m {
export class c {
}
}
export type MC = m.c;
export type fc = () => c;
}
interface Window {
someMethod();
}
module M {
export type W = Window | string;
export module N {
export class Window { }
export var p: W;
}
}
@@ -0,0 +1,41 @@
// @target: ES5
// @declaration: true
class c {
}
class g<T> {
}
module m {
export class c {
}
}
// Object literal with everything
var x: {
// Call signatures
(a: number): c;
(a: string): g<string>;
// Construct signatures
new (a: number): c;
new (a: string): m.c;
// Indexers
[n: number]: c;
[n: string]: c;
// Properties
a: c;
b: g<string>;
// methods
m1(): g<number>;
m2(a: string, b?: number, ...c: c[]): string;
};
// Function type
var y: (a: string) => string;
// constructor type
var z: new (a: string) => m.c;
@@ -0,0 +1,45 @@
// @target: ES5
// @declaration: true
class c {
}
module m {
export class c {
}
export class g<T> {
}
}
class g<T> {
}
// Just the name
function foo(): typeof c {
return c;
}
function foo2() {
return c;
}
// Qualified name
function foo3(): typeof m.c {
return m.c;
}
function foo4() {
return m.c;
}
// Just the name with type arguments
function foo5(): typeof g {
return g;
}
function foo6() {
return g;
}
// Qualified name with type arguments
function foo7(): typeof m.g {
return m.g
}
function foo8() {
return m.g
}
@@ -0,0 +1,45 @@
// @target: ES5
// @declaration: true
class c {
}
module m {
export class c {
}
export class g<T> {
}
}
class g<T> {
}
// Just the name
function foo(): c {
return new c();
}
function foo2() {
return new c();
}
// Qualified name
function foo3(): m.c {
return new m.c();
}
function foo4() {
return new m.c();
}
// Just the name with type arguments
function foo5(): g<string> {
return new g<string>();
}
function foo6() {
return new g<string>();
}
// Qualified name with type arguments
function foo7(): m.g<number> {
return new m.g<number>();
}
function foo8() {
return new m.g<number>();
}
@@ -0,0 +1,24 @@
// @target: ES5
// @declaration: true
class c {
private p: string;
}
module m {
export class c {
private q: string;
}
export class g<T> {
private r: string;
}
}
class g<T> {
private s: string;
}
// Just the name
var k: c | m.c = new c() || new m.c();
var l = new c() || new m.c();
var x: g<string> | m.g<number> | (() => c) = new g<string>() || new m.g<number>() || (() => new c());
var y = new g<string>() || new m.g<number>() || (() => new c());
@@ -0,0 +1,102 @@
// @target: ES5
// @module: commonjs
// @declaration: true
module m {
class private1 {
}
export class public1 {
}
module m2 {
export class public2 {
}
}
export class c {
// getter with annotation
get foo1(): private1 {
return;
}
// getter without annotation
get foo2() {
return new private1();
}
// setter with annotation
set foo3(param: private1) {
}
// Both - getter without annotation, setter with annotation
get foo4() {
return new private1();
}
set foo4(param: private1) {
}
// Both - with annotation
get foo5(): private1 {
return;
}
set foo5(param: private1) {
}
// getter with annotation
get foo11(): public1 {
return;
}
// getter without annotation
get foo12() {
return new public1();
}
// setter with annotation
set foo13(param: public1) {
}
// Both - getter without annotation, setter with annotation
get foo14() {
return new public1();
}
set foo14(param: public1) {
}
// Both - with annotation
get foo15(): public1 {
return;
}
set foo15(param: public1) {
}
// getter with annotation
get foo111(): m2.public2 {
return;
}
// getter without annotation
get foo112() {
return new m2.public2();
}
// setter with annotation
set foo113(param: m2.public2) {
}
// Both - getter without annotation, setter with annotation
get foo114() {
return new m2.public2();
}
set foo114(param: m2.public2) {
}
// Both - with annotation
get foo115(): m2.public2 {
return;
}
set foo115(param: m2.public2) {
}
}
}
@@ -0,0 +1,47 @@
// @target: ES5
// @module: commonjs
// @declaration: true
module m {
class private1 {
}
export class public1 {
}
// Directly using names from this module
function foo1(param: private1) {
}
function foo2(param = new private1()) {
}
export function foo3(param : private1) {
}
export function foo4(param = new private1()) {
}
function foo11(param: public1) {
}
function foo12(param = new public1()) {
}
export function foo13(param: public1) {
}
export function foo14(param = new public1()) {
}
module m2 {
export class public2 {
}
}
function foo111(param: m2.public2) {
}
function foo112(param = new m2.public2()) {
}
export function foo113(param: m2.public2) {
}
export function foo114(param = new m2.public2()) {
}
}
@@ -0,0 +1,59 @@
// @target: ES5
// @module: commonjs
// @declaration: true
module m {
class private1 {
}
export class public1 {
}
// Directly using names from this module
function foo1(): private1 {
return;
}
function foo2() {
return new private1();
}
export function foo3(): private1 {
return;
}
export function foo4() {
return new private1();
}
function foo11(): public1 {
return;
}
function foo12() {
return new public1();
}
export function foo13(): public1 {
return;
}
export function foo14() {
return new public1();
}
module m2 {
export class public2 {
}
}
function foo111(): m2.public2 {
return;
}
function foo112() {
return new m2.public2();
}
export function foo113(): m2.public2 {
return;
}
export function foo114() {
return new m2.public2();
}
}
@@ -0,0 +1,43 @@
// @target: ES5
// @module: commonjs
// @declaration: true
interface Window {
someMethod();
}
module M {
type W = Window | string;
export module N {
export class Window { }
export var p: W; // Should report error that W is private
}
}
module M1 {
export type W = Window | string;
export module N {
export class Window { }
export var p: W; // No error
}
}
module M2 {
class private1 {
}
class public1 {
}
module m3 {
export class public1 {
}
}
type t1 = private1;
export type t2 = private1; // error
type t11 = public1;
export type t12 = public1;
type t111 = m3.public1;
export type t112 = m3.public1; // error
}
@@ -0,0 +1,37 @@
// @target: ES5
// @module: commonjs
// @declaration: true
module m {
class private1 {
}
module m2 {
export class public1 {
}
}
export var x: {
x: private1;
y: m2.public1;
(): m2.public1[];
method(): private1;
[n: number]: private1;
[s: string]: m2.public1;
};
export var x2 = {
x: new private1(),
y: new m2.public1(),
method() {
return new private1();
}
};
export var x3 = x;
// Function type
export var y: (a: private1) => m2.public1;
export var y2 = y;
// constructor type
export var z: new (a: private1) => m2.public1;
export var z2 = z;
}
@@ -0,0 +1,35 @@
// @target: ES5
// @module: commonjs
// @declaration: true
module m {
class private1 {
}
export class public1 {
}
// Directly using names from this module
var x: private1;
var y = new private1();
export var k: private1;
export var l = new private1();
var x2: public1;
var y2 = new public1();
export var k2: public1;
export var l2 = new public1();
module m2 {
export class public2 {
}
}
var x3: m2.public2;
var y3 = new m2.public2();
export var k3: m2.public2;
export var l3 = new m2.public2();
}