mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-20 22:51:17 -05:00
Merge branch 'master' into usingShorthand
Conflicts: bin/tsc.js bin/typescriptServices.js src/compiler/parser.ts
This commit is contained in:
20
bin/tsc.js
20
bin/tsc.js
@@ -1056,6 +1056,7 @@ var ts;
|
||||
Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: 1 /* Error */, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." },
|
||||
Type_alias_0_circularly_references_itself: { code: 2456, category: 1 /* Error */, key: "Type alias '{0}' circularly references itself." },
|
||||
Type_alias_name_cannot_be_0: { code: 2457, category: 1 /* Error */, key: "Type alias name cannot be '{0}'" },
|
||||
An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1 /* Error */, key: "An AMD module cannot have multiple name assignments." },
|
||||
Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
|
||||
@@ -5542,6 +5543,7 @@ var ts;
|
||||
function processReferenceComments() {
|
||||
var referencedFiles = [];
|
||||
var amdDependencies = [];
|
||||
var amdModuleName;
|
||||
commentRanges = [];
|
||||
token = scanner.scan();
|
||||
for (var i = 0; i < commentRanges.length; i++) {
|
||||
@@ -5560,6 +5562,14 @@ var ts;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var amdModuleNameRegEx = /^\/\/\/\s*<amd-module\s+name\s*=\s*('|")(.+?)\1/gim;
|
||||
var amdModuleNameMatchResult = amdModuleNameRegEx.exec(comment);
|
||||
if (amdModuleNameMatchResult) {
|
||||
if (amdModuleName) {
|
||||
errorAtPos(range.pos, range.end - range.pos, ts.Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments);
|
||||
}
|
||||
amdModuleName = amdModuleNameMatchResult[2];
|
||||
}
|
||||
var amdDependencyRegEx = /^\/\/\/\s*<amd-dependency\s+path\s*=\s*('|")(.+?)\1/gim;
|
||||
var amdDependencyMatchResult = amdDependencyRegEx.exec(comment);
|
||||
if (amdDependencyMatchResult) {
|
||||
@@ -5570,7 +5580,8 @@ var ts;
|
||||
commentRanges = undefined;
|
||||
return {
|
||||
referencedFiles: referencedFiles,
|
||||
amdDependencies: amdDependencies
|
||||
amdDependencies: amdDependencies,
|
||||
amdModuleName: amdModuleName
|
||||
};
|
||||
}
|
||||
function getExternalModuleIndicator() {
|
||||
@@ -5593,6 +5604,7 @@ var ts;
|
||||
var referenceComments = processReferenceComments();
|
||||
file.referencedFiles = referenceComments.referencedFiles;
|
||||
file.amdDependencies = referenceComments.amdDependencies;
|
||||
file.amdModuleName = referenceComments.amdModuleName;
|
||||
file.statements = parseList(0 /* SourceElements */, true, parseSourceElement);
|
||||
file.externalModuleIndicator = getExternalModuleIndicator();
|
||||
file.nodeCount = nodeCount;
|
||||
@@ -7953,7 +7965,11 @@ var ts;
|
||||
function emitAMDModule(node, startIndex) {
|
||||
var imports = getExternalImportDeclarations(node);
|
||||
writeLine();
|
||||
write("define([\"require\", \"exports\"");
|
||||
write("define(");
|
||||
if (node.amdModuleName) {
|
||||
write("\"" + node.amdModuleName + "\", ");
|
||||
}
|
||||
write("[\"require\", \"exports\"");
|
||||
ts.forEach(imports, function (imp) {
|
||||
write(", ");
|
||||
emitLiteral(imp.externalModuleName);
|
||||
|
||||
@@ -861,6 +861,7 @@ var ts;
|
||||
Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: 1 /* Error */, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." },
|
||||
Type_alias_0_circularly_references_itself: { code: 2456, category: 1 /* Error */, key: "Type alias '{0}' circularly references itself." },
|
||||
Type_alias_name_cannot_be_0: { code: 2457, category: 1 /* Error */, key: "Type alias name cannot be '{0}'" },
|
||||
An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1 /* Error */, key: "An AMD module cannot have multiple name assignments." },
|
||||
Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1 /* 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: 1 /* 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: 1 /* Error */, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
|
||||
@@ -5347,6 +5348,7 @@ var ts;
|
||||
function processReferenceComments() {
|
||||
var referencedFiles = [];
|
||||
var amdDependencies = [];
|
||||
var amdModuleName;
|
||||
commentRanges = [];
|
||||
token = scanner.scan();
|
||||
for (var i = 0; i < commentRanges.length; i++) {
|
||||
@@ -5365,6 +5367,14 @@ var ts;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var amdModuleNameRegEx = /^\/\/\/\s*<amd-module\s+name\s*=\s*('|")(.+?)\1/gim;
|
||||
var amdModuleNameMatchResult = amdModuleNameRegEx.exec(comment);
|
||||
if (amdModuleNameMatchResult) {
|
||||
if (amdModuleName) {
|
||||
errorAtPos(range.pos, range.end - range.pos, ts.Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments);
|
||||
}
|
||||
amdModuleName = amdModuleNameMatchResult[2];
|
||||
}
|
||||
var amdDependencyRegEx = /^\/\/\/\s*<amd-dependency\s+path\s*=\s*('|")(.+?)\1/gim;
|
||||
var amdDependencyMatchResult = amdDependencyRegEx.exec(comment);
|
||||
if (amdDependencyMatchResult) {
|
||||
@@ -5375,7 +5385,8 @@ var ts;
|
||||
commentRanges = undefined;
|
||||
return {
|
||||
referencedFiles: referencedFiles,
|
||||
amdDependencies: amdDependencies
|
||||
amdDependencies: amdDependencies,
|
||||
amdModuleName: amdModuleName
|
||||
};
|
||||
}
|
||||
function getExternalModuleIndicator() {
|
||||
@@ -5398,6 +5409,7 @@ var ts;
|
||||
var referenceComments = processReferenceComments();
|
||||
file.referencedFiles = referenceComments.referencedFiles;
|
||||
file.amdDependencies = referenceComments.amdDependencies;
|
||||
file.amdModuleName = referenceComments.amdModuleName;
|
||||
file.statements = parseList(0 /* SourceElements */, true, parseSourceElement);
|
||||
file.externalModuleIndicator = getExternalModuleIndicator();
|
||||
file.nodeCount = nodeCount;
|
||||
@@ -7758,7 +7770,11 @@ var ts;
|
||||
function emitAMDModule(node, startIndex) {
|
||||
var imports = getExternalImportDeclarations(node);
|
||||
writeLine();
|
||||
write("define([\"require\", \"exports\"");
|
||||
write("define(");
|
||||
if (node.amdModuleName) {
|
||||
write("\"" + node.amdModuleName + "\", ");
|
||||
}
|
||||
write("[\"require\", \"exports\"");
|
||||
ts.forEach(imports, function (imp) {
|
||||
write(", ");
|
||||
emitLiteral(imp.externalModuleName);
|
||||
|
||||
@@ -273,6 +273,7 @@ module ts {
|
||||
Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: DiagnosticCategory.Error, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." },
|
||||
Type_alias_0_circularly_references_itself: { code: 2456, category: DiagnosticCategory.Error, key: "Type alias '{0}' circularly references itself." },
|
||||
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}'." },
|
||||
|
||||
@@ -1089,6 +1089,10 @@
|
||||
"category": "Error",
|
||||
"code": 2457
|
||||
},
|
||||
"An AMD module cannot have multiple name assignments.": {
|
||||
"category": "Error",
|
||||
"code": 2458
|
||||
},
|
||||
|
||||
"Import declaration '{0}' is using private name '{1}'.": {
|
||||
"category": "Error",
|
||||
|
||||
@@ -2134,7 +2134,11 @@ module ts {
|
||||
function emitAMDModule(node: SourceFile, startIndex: number) {
|
||||
var imports = getExternalImportDeclarations(node);
|
||||
writeLine();
|
||||
write("define([\"require\", \"exports\"");
|
||||
write("define(");
|
||||
if(node.amdModuleName) {
|
||||
write("\"" + node.amdModuleName + "\", ");
|
||||
}
|
||||
write("[\"require\", \"exports\"");
|
||||
forEach(imports, imp => {
|
||||
write(", ");
|
||||
emitLiteral(imp.externalModuleName);
|
||||
|
||||
@@ -20,6 +20,7 @@ module ts {
|
||||
interface ReferenceComments {
|
||||
referencedFiles: FileReference[];
|
||||
amdDependencies: string[];
|
||||
amdModuleName: string;
|
||||
}
|
||||
|
||||
export function getSourceFileOfNode(node: Node): SourceFile {
|
||||
@@ -4247,6 +4248,7 @@ module ts {
|
||||
function processReferenceComments(): ReferenceComments {
|
||||
var referencedFiles: FileReference[] = [];
|
||||
var amdDependencies: string[] = [];
|
||||
var amdModuleName: string;
|
||||
commentRanges = [];
|
||||
token = scanner.scan();
|
||||
|
||||
@@ -4266,6 +4268,15 @@ module ts {
|
||||
}
|
||||
}
|
||||
else {
|
||||
var amdModuleNameRegEx = /^\/\/\/\s*<amd-module\s+name\s*=\s*('|")(.+?)\1/gim;
|
||||
var amdModuleNameMatchResult = amdModuleNameRegEx.exec(comment);
|
||||
if(amdModuleNameMatchResult) {
|
||||
if(amdModuleName) {
|
||||
errorAtPos(range.pos, range.end - range.pos, Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments);
|
||||
}
|
||||
amdModuleName = amdModuleNameMatchResult[2];
|
||||
}
|
||||
|
||||
var amdDependencyRegEx = /^\/\/\/\s*<amd-dependency\s+path\s*=\s*('|")(.+?)\1/gim;
|
||||
var amdDependencyMatchResult = amdDependencyRegEx.exec(comment);
|
||||
if (amdDependencyMatchResult) {
|
||||
@@ -4276,7 +4287,8 @@ module ts {
|
||||
commentRanges = undefined;
|
||||
return {
|
||||
referencedFiles,
|
||||
amdDependencies
|
||||
amdDependencies,
|
||||
amdModuleName
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4306,6 +4318,7 @@ module ts {
|
||||
var referenceComments = processReferenceComments();
|
||||
file.referencedFiles = referenceComments.referencedFiles;
|
||||
file.amdDependencies = referenceComments.amdDependencies;
|
||||
file.amdModuleName = referenceComments.amdModuleName;
|
||||
file.statements = parseList(ParsingContext.SourceElements, /*checkForStrictMode*/ true, parseSourceElement);
|
||||
file.externalModuleIndicator = getExternalModuleIndicator();
|
||||
file.nodeCount = nodeCount;
|
||||
|
||||
@@ -642,6 +642,7 @@ module ts {
|
||||
getPositionFromLineAndCharacter(line: number, character: number): number;
|
||||
getLineStarts(): number[];
|
||||
amdDependencies: string[];
|
||||
amdModuleName: string;
|
||||
referencedFiles: FileReference[];
|
||||
syntacticErrors: Diagnostic[];
|
||||
semanticErrors: Diagnostic[];
|
||||
|
||||
@@ -718,6 +718,7 @@ module ts {
|
||||
public getPositionFromLineAndCharacter(line: number, character: number): number { return -1; }
|
||||
public getLineStarts(): number[] { return undefined; }
|
||||
public amdDependencies: string[];
|
||||
public amdModuleName: string;
|
||||
public referencedFiles: FileReference[];
|
||||
public syntacticErrors: Diagnostic[];
|
||||
public semanticErrors: Diagnostic[];
|
||||
|
||||
22
tests/baselines/reference/amdModuleName1.js
Normal file
22
tests/baselines/reference/amdModuleName1.js
Normal file
@@ -0,0 +1,22 @@
|
||||
//// [amdModuleName1.ts]
|
||||
///<amd-module name='NamedModule'/>
|
||||
class Foo {
|
||||
x: number;
|
||||
constructor() {
|
||||
this.x = 5;
|
||||
}
|
||||
}
|
||||
export = Foo;
|
||||
|
||||
|
||||
//// [amdModuleName1.js]
|
||||
define("NamedModule", ["require", "exports"], function (require, exports) {
|
||||
///<amd-module name='NamedModule'/>
|
||||
var Foo = (function () {
|
||||
function Foo() {
|
||||
this.x = 5;
|
||||
}
|
||||
return Foo;
|
||||
})();
|
||||
return Foo;
|
||||
});
|
||||
19
tests/baselines/reference/amdModuleName1.types
Normal file
19
tests/baselines/reference/amdModuleName1.types
Normal file
@@ -0,0 +1,19 @@
|
||||
=== tests/cases/compiler/amdModuleName1.ts ===
|
||||
///<amd-module name='NamedModule'/>
|
||||
class Foo {
|
||||
>Foo : Foo
|
||||
|
||||
x: number;
|
||||
>x : number
|
||||
|
||||
constructor() {
|
||||
this.x = 5;
|
||||
>this.x = 5 : number
|
||||
>this.x : number
|
||||
>this : Foo
|
||||
>x : number
|
||||
}
|
||||
}
|
||||
export = Foo;
|
||||
>Foo : Foo
|
||||
|
||||
16
tests/baselines/reference/amdModuleName2.errors.txt
Normal file
16
tests/baselines/reference/amdModuleName2.errors.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
tests/cases/compiler/amdModuleName2.ts(2,1): error TS2458: An AMD module cannot have multiple name assignments.
|
||||
|
||||
|
||||
==== tests/cases/compiler/amdModuleName2.ts (1 errors) ====
|
||||
///<amd-module name='FirstModuleName'/>
|
||||
///<amd-module name='SecondModuleName'/>
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2458: An AMD module cannot have multiple name assignments.
|
||||
class Foo {
|
||||
x: number;
|
||||
constructor() {
|
||||
this.x = 5;
|
||||
}
|
||||
}
|
||||
export = Foo;
|
||||
|
||||
9
tests/cases/compiler/amdModuleName1.ts
Normal file
9
tests/cases/compiler/amdModuleName1.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
//@module: amd
|
||||
///<amd-module name='NamedModule'/>
|
||||
class Foo {
|
||||
x: number;
|
||||
constructor() {
|
||||
this.x = 5;
|
||||
}
|
||||
}
|
||||
export = Foo;
|
||||
10
tests/cases/compiler/amdModuleName2.ts
Normal file
10
tests/cases/compiler/amdModuleName2.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
//@module: amd
|
||||
///<amd-module name='FirstModuleName'/>
|
||||
///<amd-module name='SecondModuleName'/>
|
||||
class Foo {
|
||||
x: number;
|
||||
constructor() {
|
||||
this.x = 5;
|
||||
}
|
||||
}
|
||||
export = Foo;
|
||||
Reference in New Issue
Block a user