Skip to content

Commit fc344ee

Browse files
Merge branch 'master' into navbar
Conflicts: tests/baselines/reference/parserEqualsGreaterThanAfterFunction1.errors.txt tests/baselines/reference/parserEqualsGreaterThanAfterFunction2.errors.txt
2 parents 915a27f + 80bab05 commit fc344ee

File tree

2,424 files changed

+36997
-15102
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,424 files changed

+36997
-15102
lines changed

Jakefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ function exec(cmd, completeHandler) {
318318
complete();
319319
})
320320
try{
321-
ex.run();
321+
ex.run();
322322
} catch(e) {
323323
console.log('Exception: ' + e)
324324
}
@@ -385,7 +385,7 @@ desc("Generates code coverage data via instanbul")
385385
task("generate-code-coverage", ["tests", builtLocalDirectory], function () {
386386
var cmd = 'istanbul cover node_modules/mocha/bin/_mocha -- -R min -t ' + testTimeout + ' ' + run;
387387
console.log(cmd);
388-
exec(cmd);
388+
exec(cmd);
389389
}, { async: true });
390390

391391
// Browser tests

bin/tsc.js

+38-19
Original file line numberDiff line numberDiff line change
@@ -3458,14 +3458,21 @@ var ts;
34583458
node.initializer = parseInitializer(true);
34593459
return finishNode(node);
34603460
}
3461-
function parseSignature(kind, returnToken) {
3461+
function parseSignature(kind, returnToken, returnTokenRequired) {
34623462
if (kind === 121 /* ConstructSignature */) {
34633463
parseExpected(78 /* NewKeyword */);
34643464
}
34653465
var typeParameters = parseTypeParameters();
34663466
var parameters = parseParameterList(7 /* OpenParenToken */, 8 /* CloseParenToken */);
34673467
checkParameterList(parameters);
3468-
var type = parseOptional(returnToken) ? parseType() : undefined;
3468+
var type;
3469+
if (returnTokenRequired) {
3470+
parseExpected(returnToken);
3471+
type = parseType();
3472+
}
3473+
else if (parseOptional(returnToken)) {
3474+
type = parseType();
3475+
}
34693476
return {
34703477
typeParameters: typeParameters,
34713478
parameters: parameters,
@@ -3515,7 +3522,7 @@ var ts;
35153522
}
35163523
function parseSignatureMember(kind, returnToken) {
35173524
var node = createNode(kind);
3518-
var sig = parseSignature(kind, returnToken);
3525+
var sig = parseSignature(kind, returnToken, false);
35193526
node.typeParameters = sig.typeParameters;
35203527
node.parameters = sig.parameters;
35213528
node.type = sig.type;
@@ -3584,7 +3591,7 @@ var ts;
35843591
}
35853592
if (token === 7 /* OpenParenToken */ || token === 15 /* LessThanToken */) {
35863593
node.kind = 116 /* Method */;
3587-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
3594+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
35883595
node.typeParameters = sig.typeParameters;
35893596
node.parameters = sig.parameters;
35903597
node.type = sig.type;
@@ -3640,7 +3647,7 @@ var ts;
36403647
function parseFunctionType(signatureKind) {
36413648
var node = createNode(125 /* TypeLiteral */);
36423649
var member = createNode(signatureKind);
3643-
var sig = parseSignature(signatureKind, 23 /* EqualsGreaterThanToken */);
3650+
var sig = parseSignature(signatureKind, 23 /* EqualsGreaterThanToken */, true);
36443651
member.typeParameters = sig.typeParameters;
36453652
member.parameters = sig.parameters;
36463653
member.type = sig.type;
@@ -3828,7 +3835,7 @@ var ts;
38283835
}
38293836
var pos = getNodePos();
38303837
if (triState === 1 /* True */) {
3831-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
3838+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
38323839
if (parseExpected(23 /* EqualsGreaterThanToken */) || token === 5 /* OpenBraceToken */) {
38333840
return parseArrowExpressionTail(pos, sig, false);
38343841
}
@@ -3889,7 +3896,7 @@ var ts;
38893896
}
38903897
function tryParseSignatureIfArrowOrBraceFollows() {
38913898
return tryParse(function () {
3892-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
3899+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
38933900
if (token === 23 /* EqualsGreaterThanToken */ || token === 5 /* OpenBraceToken */) {
38943901
return sig;
38953902
}
@@ -4161,7 +4168,7 @@ var ts;
41614168
var node = createNode(129 /* PropertyAssignment */);
41624169
node.name = parsePropertyName();
41634170
if (token === 7 /* OpenParenToken */ || token === 15 /* LessThanToken */) {
4164-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4171+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
41654172
var body = parseBody(false);
41664173
node.initializer = makeFunctionExpression(136 /* FunctionExpression */, node.pos, undefined, sig, body);
41674174
}
@@ -4240,7 +4247,7 @@ var ts;
42404247
var pos = getNodePos();
42414248
parseExpected(73 /* FunctionKeyword */);
42424249
var name = isIdentifier() ? parseIdentifier() : undefined;
4243-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4250+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
42444251
var body = parseBody(false);
42454252
if (name && isInStrictMode && isEvalOrArgumentsIdentifier(name)) {
42464253
reportInvalidUseInStrictMode(name);
@@ -4752,7 +4759,7 @@ var ts;
47524759
node.flags = flags;
47534760
parseExpected(73 /* FunctionKeyword */);
47544761
node.name = parseIdentifier();
4755-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4762+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
47564763
node.typeParameters = sig.typeParameters;
47574764
node.parameters = sig.parameters;
47584765
node.type = sig.type;
@@ -4766,7 +4773,7 @@ var ts;
47664773
var node = createNode(117 /* Constructor */, pos);
47674774
node.flags = flags;
47684775
parseExpected(103 /* ConstructorKeyword */);
4769-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4776+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
47704777
node.typeParameters = sig.typeParameters;
47714778
node.parameters = sig.parameters;
47724779
node.type = sig.type;
@@ -4790,7 +4797,7 @@ var ts;
47904797
var method = createNode(116 /* Method */, pos);
47914798
method.flags = flags;
47924799
method.name = name;
4793-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4800+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
47944801
method.typeParameters = sig.typeParameters;
47954802
method.parameters = sig.parameters;
47964803
method.type = sig.type;
@@ -4858,7 +4865,7 @@ var ts;
48584865
var node = createNode(kind, pos);
48594866
node.flags = flags;
48604867
node.name = parsePropertyName();
4861-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4868+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
48624869
node.typeParameters = sig.typeParameters;
48634870
node.parameters = sig.parameters;
48644871
node.type = sig.type;
@@ -5421,17 +5428,27 @@ var ts;
54215428
var start = refPos;
54225429
var length = refEnd - refPos;
54235430
}
5431+
var diagnostic;
54245432
if (hasExtension(filename)) {
54255433
if (!ts.fileExtensionIs(filename, ".ts")) {
5426-
errors.push(ts.createFileDiagnostic(refFile, start, length, ts.Diagnostics.File_0_must_have_extension_ts_or_d_ts, filename));
5434+
diagnostic = ts.Diagnostics.File_0_must_have_extension_ts_or_d_ts;
54275435
}
54285436
else if (!findSourceFile(filename, isDefaultLib, refFile, refPos, refEnd)) {
5429-
errors.push(ts.createFileDiagnostic(refFile, start, length, ts.Diagnostics.File_0_not_found, filename));
5437+
diagnostic = ts.Diagnostics.File_0_not_found;
54305438
}
54315439
}
54325440
else {
54335441
if (!(findSourceFile(filename + ".ts", isDefaultLib, refFile, refPos, refEnd) || findSourceFile(filename + ".d.ts", isDefaultLib, refFile, refPos, refEnd))) {
5434-
errors.push(ts.createFileDiagnostic(refFile, start, length, ts.Diagnostics.File_0_not_found, filename + ".ts"));
5442+
diagnostic = ts.Diagnostics.File_0_not_found;
5443+
filename += ".ts";
5444+
}
5445+
}
5446+
if (diagnostic) {
5447+
if (refFile) {
5448+
errors.push(ts.createFileDiagnostic(refFile, start, length, diagnostic, filename));
5449+
}
5450+
else {
5451+
errors.push(ts.createCompilerDiagnostic(diagnostic, filename));
54355452
}
54365453
}
54375454
}
@@ -10897,10 +10914,12 @@ var ts;
1089710914
continue;
1089810915
}
1089910916
if (getDeclarationFlagsFromSymbol(sourceProp) & 32 /* Private */ || getDeclarationFlagsFromSymbol(targetProp) & 32 /* Private */) {
10900-
if (reportErrors) {
10901-
reportError(ts.Diagnostics.Private_property_0_cannot_be_reimplemented, symbolToString(targetProp));
10917+
if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) {
10918+
if (reportErrors) {
10919+
reportError(ts.Diagnostics.Private_property_0_cannot_be_reimplemented, symbolToString(targetProp));
10920+
}
10921+
return false;
1090210922
}
10903-
return false;
1090410923
}
1090510924
if (!isRelatedTo(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp), reportErrors)) {
1090610925
if (reportErrors) {

bin/typescriptServices.js

+38-19
Original file line numberDiff line numberDiff line change
@@ -3263,14 +3263,21 @@ var ts;
32633263
node.initializer = parseInitializer(true);
32643264
return finishNode(node);
32653265
}
3266-
function parseSignature(kind, returnToken) {
3266+
function parseSignature(kind, returnToken, returnTokenRequired) {
32673267
if (kind === 121 /* ConstructSignature */) {
32683268
parseExpected(78 /* NewKeyword */);
32693269
}
32703270
var typeParameters = parseTypeParameters();
32713271
var parameters = parseParameterList(7 /* OpenParenToken */, 8 /* CloseParenToken */);
32723272
checkParameterList(parameters);
3273-
var type = parseOptional(returnToken) ? parseType() : undefined;
3273+
var type;
3274+
if (returnTokenRequired) {
3275+
parseExpected(returnToken);
3276+
type = parseType();
3277+
}
3278+
else if (parseOptional(returnToken)) {
3279+
type = parseType();
3280+
}
32743281
return {
32753282
typeParameters: typeParameters,
32763283
parameters: parameters,
@@ -3320,7 +3327,7 @@ var ts;
33203327
}
33213328
function parseSignatureMember(kind, returnToken) {
33223329
var node = createNode(kind);
3323-
var sig = parseSignature(kind, returnToken);
3330+
var sig = parseSignature(kind, returnToken, false);
33243331
node.typeParameters = sig.typeParameters;
33253332
node.parameters = sig.parameters;
33263333
node.type = sig.type;
@@ -3389,7 +3396,7 @@ var ts;
33893396
}
33903397
if (token === 7 /* OpenParenToken */ || token === 15 /* LessThanToken */) {
33913398
node.kind = 116 /* Method */;
3392-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
3399+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
33933400
node.typeParameters = sig.typeParameters;
33943401
node.parameters = sig.parameters;
33953402
node.type = sig.type;
@@ -3445,7 +3452,7 @@ var ts;
34453452
function parseFunctionType(signatureKind) {
34463453
var node = createNode(125 /* TypeLiteral */);
34473454
var member = createNode(signatureKind);
3448-
var sig = parseSignature(signatureKind, 23 /* EqualsGreaterThanToken */);
3455+
var sig = parseSignature(signatureKind, 23 /* EqualsGreaterThanToken */, true);
34493456
member.typeParameters = sig.typeParameters;
34503457
member.parameters = sig.parameters;
34513458
member.type = sig.type;
@@ -3633,7 +3640,7 @@ var ts;
36333640
}
36343641
var pos = getNodePos();
36353642
if (triState === 1 /* True */) {
3636-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
3643+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
36373644
if (parseExpected(23 /* EqualsGreaterThanToken */) || token === 5 /* OpenBraceToken */) {
36383645
return parseArrowExpressionTail(pos, sig, false);
36393646
}
@@ -3694,7 +3701,7 @@ var ts;
36943701
}
36953702
function tryParseSignatureIfArrowOrBraceFollows() {
36963703
return tryParse(function () {
3697-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
3704+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
36983705
if (token === 23 /* EqualsGreaterThanToken */ || token === 5 /* OpenBraceToken */) {
36993706
return sig;
37003707
}
@@ -3966,7 +3973,7 @@ var ts;
39663973
var node = createNode(129 /* PropertyAssignment */);
39673974
node.name = parsePropertyName();
39683975
if (token === 7 /* OpenParenToken */ || token === 15 /* LessThanToken */) {
3969-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
3976+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
39703977
var body = parseBody(false);
39713978
node.initializer = makeFunctionExpression(136 /* FunctionExpression */, node.pos, undefined, sig, body);
39723979
}
@@ -4045,7 +4052,7 @@ var ts;
40454052
var pos = getNodePos();
40464053
parseExpected(73 /* FunctionKeyword */);
40474054
var name = isIdentifier() ? parseIdentifier() : undefined;
4048-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4055+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
40494056
var body = parseBody(false);
40504057
if (name && isInStrictMode && isEvalOrArgumentsIdentifier(name)) {
40514058
reportInvalidUseInStrictMode(name);
@@ -4557,7 +4564,7 @@ var ts;
45574564
node.flags = flags;
45584565
parseExpected(73 /* FunctionKeyword */);
45594566
node.name = parseIdentifier();
4560-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4567+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
45614568
node.typeParameters = sig.typeParameters;
45624569
node.parameters = sig.parameters;
45634570
node.type = sig.type;
@@ -4571,7 +4578,7 @@ var ts;
45714578
var node = createNode(117 /* Constructor */, pos);
45724579
node.flags = flags;
45734580
parseExpected(103 /* ConstructorKeyword */);
4574-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4581+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
45754582
node.typeParameters = sig.typeParameters;
45764583
node.parameters = sig.parameters;
45774584
node.type = sig.type;
@@ -4595,7 +4602,7 @@ var ts;
45954602
var method = createNode(116 /* Method */, pos);
45964603
method.flags = flags;
45974604
method.name = name;
4598-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4605+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
45994606
method.typeParameters = sig.typeParameters;
46004607
method.parameters = sig.parameters;
46014608
method.type = sig.type;
@@ -4663,7 +4670,7 @@ var ts;
46634670
var node = createNode(kind, pos);
46644671
node.flags = flags;
46654672
node.name = parsePropertyName();
4666-
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4673+
var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false);
46674674
node.typeParameters = sig.typeParameters;
46684675
node.parameters = sig.parameters;
46694676
node.type = sig.type;
@@ -5226,17 +5233,27 @@ var ts;
52265233
var start = refPos;
52275234
var length = refEnd - refPos;
52285235
}
5236+
var diagnostic;
52295237
if (hasExtension(filename)) {
52305238
if (!ts.fileExtensionIs(filename, ".ts")) {
5231-
errors.push(ts.createFileDiagnostic(refFile, start, length, ts.Diagnostics.File_0_must_have_extension_ts_or_d_ts, filename));
5239+
diagnostic = ts.Diagnostics.File_0_must_have_extension_ts_or_d_ts;
52325240
}
52335241
else if (!findSourceFile(filename, isDefaultLib, refFile, refPos, refEnd)) {
5234-
errors.push(ts.createFileDiagnostic(refFile, start, length, ts.Diagnostics.File_0_not_found, filename));
5242+
diagnostic = ts.Diagnostics.File_0_not_found;
52355243
}
52365244
}
52375245
else {
52385246
if (!(findSourceFile(filename + ".ts", isDefaultLib, refFile, refPos, refEnd) || findSourceFile(filename + ".d.ts", isDefaultLib, refFile, refPos, refEnd))) {
5239-
errors.push(ts.createFileDiagnostic(refFile, start, length, ts.Diagnostics.File_0_not_found, filename + ".ts"));
5247+
diagnostic = ts.Diagnostics.File_0_not_found;
5248+
filename += ".ts";
5249+
}
5250+
}
5251+
if (diagnostic) {
5252+
if (refFile) {
5253+
errors.push(ts.createFileDiagnostic(refFile, start, length, diagnostic, filename));
5254+
}
5255+
else {
5256+
errors.push(ts.createCompilerDiagnostic(diagnostic, filename));
52405257
}
52415258
}
52425259
}
@@ -10702,10 +10719,12 @@ var ts;
1070210719
continue;
1070310720
}
1070410721
if (getDeclarationFlagsFromSymbol(sourceProp) & 32 /* Private */ || getDeclarationFlagsFromSymbol(targetProp) & 32 /* Private */) {
10705-
if (reportErrors) {
10706-
reportError(ts.Diagnostics.Private_property_0_cannot_be_reimplemented, symbolToString(targetProp));
10722+
if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) {
10723+
if (reportErrors) {
10724+
reportError(ts.Diagnostics.Private_property_0_cannot_be_reimplemented, symbolToString(targetProp));
10725+
}
10726+
return false;
1070710727
}
10708-
return false;
1070910728
}
1071010729
if (!isRelatedTo(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp), reportErrors)) {
1071110730
if (reportErrors) {

0 commit comments

Comments
 (0)