addressed PR feedback

This commit is contained in:
Vladimir Matveev
2015-03-18 14:29:02 -07:00
parent c38e065b6b
commit 2ad40c25c9
33 changed files with 21 additions and 389 deletions
+2 -2
View File
@@ -1861,7 +1861,7 @@ module ts {
}
}
function setDeclarationsOfIdentifierAsVisible(node: Identifier): Node[]{
function collectLinkedAliases(node: Identifier): Node[]{
var exportSymbol: Symbol;
if (node.parent && node.parent.kind === SyntaxKind.ExportAssignment) {
exportSymbol = resolveName(node.parent, node.text, SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace, Diagnostics.Cannot_find_name_0, node);
@@ -11268,7 +11268,7 @@ module ts {
isEntityNameVisible,
getConstantValue,
isUnknownIdentifier,
setDeclarationsOfIdentifierAsVisible,
collectLinkedAliases,
getBlockScopedVariableId,
};
}
@@ -414,7 +414,7 @@ module ts {
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_private_name_1: { code: 4081, category: DiagnosticCategory.Error, key: "Exported type alias '{0}' has or is using private name '{1}'." },
Default_export_of_the_module_has_or_is_using_private_name_0: { code: 4081, category: DiagnosticCategory.Error, key: "Default export of the module has or is using private name '{0}'." },
Default_export_of_the_module_has_or_is_using_private_name_0: { code: 4082, category: DiagnosticCategory.Error, key: "Default export of the module has or is using private name '{0}'." },
Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher: { code: 4091, category: DiagnosticCategory.Error, key: "Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher." },
The_current_host_does_not_support_the_0_option: { code: 5001, category: DiagnosticCategory.Error, key: "The current host does not support the '{0}' option." },
Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: DiagnosticCategory.Error, key: "Cannot find the common subdirectory path for the input files." },
+1 -1
View File
@@ -1651,7 +1651,7 @@
},
"Default export of the module has or is using private name '{0}'.": {
"category": "Error",
"code": 4081
"code": 4082
},
"Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher.": {
"category": "Error",
+2 -2
View File
@@ -769,7 +769,7 @@ module ts {
// Make all the declarations visible for the export name
if (node.expression.kind === SyntaxKind.Identifier) {
let nodes = resolver.setDeclarationsOfIdentifierAsVisible(<Identifier>node.expression);
let nodes = resolver.collectLinkedAliases(<Identifier>node.expression);
// write each of these declarations asynchronously
writeAsynchronousModuleElements(nodes);
@@ -967,7 +967,7 @@ module ts {
emitImportOrExportSpecifier(node);
// Make all the declarations visible for the export name
let nodes = resolver.setDeclarationsOfIdentifierAsVisible(node.propertyName || node.name);
let nodes = resolver.collectLinkedAliases(node.propertyName || node.name);
// write each of these declarations asynchronously
writeAsynchronousModuleElements(nodes);
+1 -1
View File
@@ -1210,7 +1210,7 @@ module ts {
isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean;
getNodeCheckFlags(node: Node): NodeCheckFlags;
isDeclarationVisible(node: Declaration): boolean;
setDeclarationsOfIdentifierAsVisible(node: Identifier): Node[];
collectLinkedAliases(node: Identifier): Node[];
isImplementationOfOverload(node: FunctionLikeDeclaration): boolean;
writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
@@ -945,7 +945,7 @@ declare module "typescript" {
isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean;
getNodeCheckFlags(node: Node): NodeCheckFlags;
isDeclarationVisible(node: Declaration): boolean;
setDeclarationsOfIdentifierAsVisible(node: Identifier): Node[];
collectLinkedAliases(node: Identifier): Node[];
isImplementationOfOverload(node: FunctionLikeDeclaration): boolean;
writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
@@ -3039,8 +3039,8 @@ declare module "typescript" {
>node : Declaration
>Declaration : Declaration
setDeclarationsOfIdentifierAsVisible(node: Identifier): Node[];
>setDeclarationsOfIdentifierAsVisible : (node: Identifier) => Node[]
collectLinkedAliases(node: Identifier): Node[];
>collectLinkedAliases : (node: Identifier) => Node[]
>node : Identifier
>Identifier : Identifier
>Node : Node
@@ -976,7 +976,7 @@ declare module "typescript" {
isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean;
getNodeCheckFlags(node: Node): NodeCheckFlags;
isDeclarationVisible(node: Declaration): boolean;
setDeclarationsOfIdentifierAsVisible(node: Identifier): Node[];
collectLinkedAliases(node: Identifier): Node[];
isImplementationOfOverload(node: FunctionLikeDeclaration): boolean;
writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
@@ -3185,8 +3185,8 @@ declare module "typescript" {
>node : Declaration
>Declaration : Declaration
setDeclarationsOfIdentifierAsVisible(node: Identifier): Node[];
>setDeclarationsOfIdentifierAsVisible : (node: Identifier) => Node[]
collectLinkedAliases(node: Identifier): Node[];
>collectLinkedAliases : (node: Identifier) => Node[]
>node : Identifier
>Identifier : Identifier
>Node : Node
@@ -977,7 +977,7 @@ declare module "typescript" {
isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean;
getNodeCheckFlags(node: Node): NodeCheckFlags;
isDeclarationVisible(node: Declaration): boolean;
setDeclarationsOfIdentifierAsVisible(node: Identifier): Node[];
collectLinkedAliases(node: Identifier): Node[];
isImplementationOfOverload(node: FunctionLikeDeclaration): boolean;
writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
@@ -3135,8 +3135,8 @@ declare module "typescript" {
>node : Declaration
>Declaration : Declaration
setDeclarationsOfIdentifierAsVisible(node: Identifier): Node[];
>setDeclarationsOfIdentifierAsVisible : (node: Identifier) => Node[]
collectLinkedAliases(node: Identifier): Node[];
>collectLinkedAliases : (node: Identifier) => Node[]
>node : Identifier
>Identifier : Identifier
>Node : Node
@@ -1014,7 +1014,7 @@ declare module "typescript" {
isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean;
getNodeCheckFlags(node: Node): NodeCheckFlags;
isDeclarationVisible(node: Declaration): boolean;
setDeclarationsOfIdentifierAsVisible(node: Identifier): Node[];
collectLinkedAliases(node: Identifier): Node[];
isImplementationOfOverload(node: FunctionLikeDeclaration): boolean;
writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void;
@@ -3308,8 +3308,8 @@ declare module "typescript" {
>node : Declaration
>Declaration : Declaration
setDeclarationsOfIdentifierAsVisible(node: Identifier): Node[];
>setDeclarationsOfIdentifierAsVisible : (node: Identifier) => Node[]
collectLinkedAliases(node: Identifier): Node[];
>collectLinkedAliases : (node: Identifier) => Node[]
>node : Identifier
>Identifier : Identifier
>Node : Node
@@ -1,9 +1,9 @@
tests/cases/compiler/declarationEmitDefaultExport7.ts(2,1): error TS4081: Default export of the module has or is using private name 'A'.
tests/cases/compiler/declarationEmitDefaultExport7.ts(2,1): error TS4082: Default export of the module has or is using private name 'A'.
==== tests/cases/compiler/declarationEmitDefaultExport7.ts (1 errors) ====
class A {}
export default new A();
~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4081: Default export of the module has or is using private name 'A'.
!!! error TS4082: Default export of the module has or is using private name 'A'.
@@ -1,18 +0,0 @@
// @target: es6
<<<<<<< HEAD
// @module: commonjs
=======
>>>>>>> master
// @declaration: true
// @filename: es6ImportDefaultBinding_0.ts
var a = 10;
export = a;
// @filename: es6ImportDefaultBinding_1.ts
import defaultBinding from "es6ImportDefaultBinding_0";
<<<<<<< HEAD
var x = defaultBinding;
import defaultBinding2 from "es6ImportDefaultBinding_0"; // elide this import since defaultBinding2 is not used
=======
>>>>>>> master
@@ -1,34 +0,0 @@
// @target: es6
<<<<<<< HEAD
// @module: commonjs
=======
>>>>>>> master
// @declaration: true
// @filename: es6ImportDefaultBindingFollowedWithNamedImport_0.ts
export var a = 10;
export var x = a;
export var m = a;
// @filename: es6ImportDefaultBindingFollowedWithNamedImport_1.ts
<<<<<<< HEAD
import defaultBinding1, { } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
import defaultBinding2, { a } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
var x1: number = a;
import defaultBinding3, { a as b } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
var x1: number = b;
import defaultBinding4, { x, a as y } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
var x1: number = x;
var x1: number = y;
import defaultBinding5, { x as z, } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
var x1: number = z;
import defaultBinding6, { m, } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
var x1: number = m;
=======
import defaultBinding, { } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
import defaultBinding, { a } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
import defaultBinding, { a as b } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
import defaultBinding, { x, a as y } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
import defaultBinding, { x as z, } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
import defaultBinding, { m, } from "es6ImportDefaultBindingFollowedWithNamedImport_0";
>>>>>>> master
@@ -1,24 +0,0 @@
// @target: es6
<<<<<<< HEAD
// @module: commonjs
=======
>>>>>>> master
// @declaration: true
// @filename: es6ImportDefaultBindingFollowedWithNamedImport1_0.ts
var a = 10;
export = a;
// @filename: es6ImportDefaultBindingFollowedWithNamedImport1_1.ts
import defaultBinding1, { } from "es6ImportDefaultBindingFollowedWithNamedImport1_0";
var x1: number = defaultBinding1;
import defaultBinding2, { a } from "es6ImportDefaultBindingFollowedWithNamedImport1_0";
var x1: number = defaultBinding2;
import defaultBinding3, { a as b } from "es6ImportDefaultBindingFollowedWithNamedImport1_0";
var x1: number = defaultBinding3;
import defaultBinding4, { x, a as y } from "es6ImportDefaultBindingFollowedWithNamedImport1_0";
var x1: number = defaultBinding4;
import defaultBinding5, { x as z, } from "es6ImportDefaultBindingFollowedWithNamedImport1_0";
var x1: number = defaultBinding5;
import defaultBinding6, { m, } from "es6ImportDefaultBindingFollowedWithNamedImport1_0";
var x1: number = defaultBinding6;
@@ -1,28 +0,0 @@
<<<<<<< HEAD
// @target: es6
=======
>>>>>>> master
// @module: commonjs
// @declaration: true
// @filename: server.ts
export class a { }
export class x { }
export class m { }
export class a11 { }
export class a12 { }
export class x11 { }
// @filename: client.ts
import defaultBinding1, { } from "server";
import defaultBinding2, { a } from "server";
export var x1 = new a();
import defaultBinding3, { a11 as b } from "server";
export var x2 = new b();
import defaultBinding4, { x, a12 as y } from "server";
export var x4 = new x();
export var x5 = new y();
import defaultBinding5, { x11 as z, } from "server";
export var x3 = new z();
import defaultBinding6, { m, } from "server";
export var x6 = new m();
@@ -1,13 +0,0 @@
// @target: es6
<<<<<<< HEAD
// @module: commonjs
=======
>>>>>>> master
// @declaration: true
// @filename: es6ImportDefaultBindingFollowedWithNamespaceBinding_0.ts
export var a = 10;
// @filename: es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts
import defaultBinding, * as nameSpaceBinding from "es6ImportDefaultBindingFollowedWithNamespaceBinding_0";
var x: number = nameSpaceBinding.a;
@@ -1,14 +0,0 @@
// @target: es6
<<<<<<< HEAD
// @module: commonjs
=======
>>>>>>> master
// @declaration: true
// @filename: es6ImportDefaultBindingFollowedWithNamespaceBinding_0.ts
var a = 10;
export = a;
// @filename: es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts
import defaultBinding, * as nameSpaceBinding from "es6ImportDefaultBindingFollowedWithNamespaceBinding_0";
var x: number = defaultBinding;
@@ -1,19 +0,0 @@
<<<<<<< HEAD
// @target: es6
=======
>>>>>>> master
// @module: commonjs
// @filename: es6ImportDefaultBindingMergeErrors_0.ts
var a = 10;
export = a;
// @filename: es6ImportDefaultBindingMergeErrors_1.ts
import defaultBinding from "es6ImportDefaultBindingMergeErrors_0";
interface defaultBinding { // This is ok
}
var x = defaultBinding;
import defaultBinding2 from "es6ImportDefaultBindingMergeErrors_0"; // Should be error
var defaultBinding2 = "hello world";
import defaultBinding3 from "es6ImportDefaultBindingMergeErrors_0"; // Should be error
import defaultBinding3 from "es6ImportDefaultBindingMergeErrors_0"; // SHould be error
@@ -1,11 +0,0 @@
<<<<<<< HEAD
// @target: es6
=======
>>>>>>> master
// @module: commonjs
// @filename: es6ImportDefaultBindingNoDefaultProperty_0.ts
export var a = 10;
// @filename: es6ImportDefaultBindingNoDefaultProperty_1.ts
import defaultBinding from "es6ImportDefaultBindingNoDefaultProperty_0";
@@ -1,17 +0,0 @@
// @target: es6
<<<<<<< HEAD
// @module: commonjs
=======
>>>>>>> master
// @declaration: true
// @filename: es6ImportNameSpaceImport_0.ts
export var a = 10;
// @filename: es6ImportNameSpaceImport_1.ts
import * as nameSpaceBinding from "es6ImportNameSpaceImport_0";
<<<<<<< HEAD
var x = nameSpaceBinding.a;
import * as nameSpaceBinding2 from "es6ImportNameSpaceImport_0"; // elide this
=======
>>>>>>> master
@@ -1,19 +0,0 @@
<<<<<<< HEAD
// @target: es6
=======
// @target: es5
>>>>>>> master
// @module: commonjs
// @filename: es6ImportNameSpaceImportMergeErrors_0.ts
export var a = 10;
// @filename: es6ImportNameSpaceImportMergeErrors_1.ts
import * as nameSpaceBinding from "es6ImportNameSpaceImportMergeErrors_0";
interface nameSpaceBinding { } // this should be ok
import * as nameSpaceBinding1 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
import * as nameSpaceBinding1 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
import * as nameSpaceBinding3 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
var nameSpaceBinding3 = 10;
@@ -1,13 +0,0 @@
<<<<<<< HEAD
// @target: es6
=======
// @target: es5
>>>>>>> master
// @module: commonjs
// @filename: es6ImportNameSpaceImportNoNamedExports_0.ts
var a = 10;
export = a;
// @filename: es6ImportNameSpaceImportNoNamedExports_1.ts
import * as nameSpaceBinding from "es6ImportNameSpaceImportNoNamedExports_0"; // error
@@ -1,49 +0,0 @@
// @target: es6
<<<<<<< HEAD
// @module: commonjs
=======
>>>>>>> master
// @declaration: true
// @filename: es6ImportNamedImport_0.ts
export var a = 10;
export var x = a;
export var m = a;
export var a1 = 10;
export var x1 = 10;
export var z1 = 10;
export var z2 = 10;
export var aaaa = 10;
// @filename: es6ImportNamedImport_1.ts
import { } from "es6ImportNamedImport_0";
import { a } from "es6ImportNamedImport_0";
var xxxx = a;
import { a as b } from "es6ImportNamedImport_0";
var xxxx = b;
import { x, a as y } from "es6ImportNamedImport_0";
var xxxx = x;
var xxxx = y;
import { x as z, } from "es6ImportNamedImport_0";
var xxxx = z;
import { m, } from "es6ImportNamedImport_0";
var xxxx = m;
import { a1, x1 } from "es6ImportNamedImport_0";
<<<<<<< HEAD
var xxxx = a1;
var xxxx = x1;
import { a1 as a11, x1 as x11 } from "es6ImportNamedImport_0";
var xxxx = a11;
var xxxx = x11;
import { z1 } from "es6ImportNamedImport_0";
var z111 = z1;
import { z2 as z3 } from "es6ImportNamedImport_0";
var z2 = z3; // z2 shouldn't give redeclare error
// These are elided
import { aaaa } from "es6ImportNamedImport_0";
// These are elided
import { aaaa as bbbb } from "es6ImportNamedImport_0";
=======
import { a1 as a11, x1 as x11 } from "es6ImportNamedImport_0";
>>>>>>> master
@@ -1,13 +0,0 @@
<<<<<<< HEAD
// @target: es6
=======
>>>>>>> master
// @module: commonjs
// @declaration: true
// @filename: es6ImportNamedImportInExportAssignment_0.ts
export var a = 10;
// @filename: es6ImportNamedImportInExportAssignment_1.ts
import { a } from "es6ImportNamedImportInExportAssignment_0";
export = a;
@@ -1,17 +0,0 @@
<<<<<<< HEAD
// @target: es6
=======
>>>>>>> master
// @module: commonjs
// @declaration: true
// @filename: es6ImportNamedImportInIndirectExportAssignment_0.ts
export module a {
export class c {
}
}
// @filename: es6ImportNamedImportInIndirectExportAssignment_1.ts
import { a } from "es6ImportNamedImportInIndirectExportAssignment_0";
import x = a;
export = x;
@@ -1,23 +0,0 @@
<<<<<<< HEAD
// @target: es6
=======
>>>>>>> master
// @module: commonjs
// @filename: es6ImportNamedImportMergeErrors_0.ts
export var a = 10;
export var x = a;
export var z = a;
export var z1 = a;
// @filename: es6ImportNamedImportMergeErrors_1.ts
import { a } from "es6ImportNamedImportMergeErrors_0";
interface a { } // shouldnt be error
import { x as x1 } from "es6ImportNamedImportMergeErrors_0";
interface x1 { } // shouldnt be error
import { x } from "es6ImportNamedImportMergeErrors_0"; // should be error
var x = 10;
import { x as x44 } from "es6ImportNamedImportMergeErrors_0"; // should be error
var x44 = 10;
import { z } from "es6ImportNamedImportMergeErrors_0"; // should be error
import { z1 as z } from "es6ImportNamedImportMergeErrors_0"; // should be error
@@ -1,13 +0,0 @@
<<<<<<< HEAD
// @target: es6
=======
>>>>>>> master
// @module: commonjs
// @filename: es6ImportNamedImportNoExportMember_0.ts
export var a = 10;
export var x = a;
// @filename: es6ImportNamedImport_1.ts
import { a1 } from "es6ImportNamedImportNoExportMember_0";
import { x1 as x } from "es6ImportNamedImportNoExportMember_0";
@@ -1,14 +0,0 @@
<<<<<<< HEAD
// @target: es6
=======
// @target: es5
>>>>>>> master
// @module: commonjs
// @filename: es6ImportNamedImportNoNamedExports_0.ts
var a = 10;
export = a;
// @filename: es6ImportNamedImportNoNamedExports_1.ts
import { a } from "es6ImportNamedImportNoNamedExports_0";
import { a as x } from "es6ImportNamedImportNoNamedExports_0";
@@ -1,16 +0,0 @@
// @target: es6
<<<<<<< HEAD
// @module: commonjs
=======
>>>>>>> master
// @declaration: true
// @filename: es6ImportWithoutFromClause_0.ts
export var a = 10;
// @filename: es6ImportWithoutFromClause_1.ts
<<<<<<< HEAD
import "es6ImportWithoutFromClause_0";
=======
import "es6ImportWithoutFromClause_0";
>>>>>>> master
@@ -1,13 +0,0 @@
// @target: es6
<<<<<<< HEAD
// @module: commonjs
=======
>>>>>>> master
// @declaration: true
// @filename: es6ImportWithoutFromClauseNonInstantiatedModule_0.ts
export interface i {
}
// @filename: es6ImportWithoutFromClauseNonInstantiatedModule_1.ts
import "es6ImportWithoutFromClauseNonInstantiatedModule_0";