@@ -3458,14 +3458,21 @@ var ts;
3458
3458
node.initializer = parseInitializer(true);
3459
3459
return finishNode(node);
3460
3460
}
3461
- function parseSignature(kind, returnToken) {
3461
+ function parseSignature(kind, returnToken, returnTokenRequired ) {
3462
3462
if (kind === 121 /* ConstructSignature */) {
3463
3463
parseExpected(78 /* NewKeyword */);
3464
3464
}
3465
3465
var typeParameters = parseTypeParameters();
3466
3466
var parameters = parseParameterList(7 /* OpenParenToken */, 8 /* CloseParenToken */);
3467
3467
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
+ }
3469
3476
return {
3470
3477
typeParameters: typeParameters,
3471
3478
parameters: parameters,
@@ -3515,7 +3522,7 @@ var ts;
3515
3522
}
3516
3523
function parseSignatureMember(kind, returnToken) {
3517
3524
var node = createNode(kind);
3518
- var sig = parseSignature(kind, returnToken);
3525
+ var sig = parseSignature(kind, returnToken, false );
3519
3526
node.typeParameters = sig.typeParameters;
3520
3527
node.parameters = sig.parameters;
3521
3528
node.type = sig.type;
@@ -3584,7 +3591,7 @@ var ts;
3584
3591
}
3585
3592
if (token === 7 /* OpenParenToken */ || token === 15 /* LessThanToken */) {
3586
3593
node.kind = 116 /* Method */;
3587
- var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
3594
+ var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false );
3588
3595
node.typeParameters = sig.typeParameters;
3589
3596
node.parameters = sig.parameters;
3590
3597
node.type = sig.type;
@@ -3640,7 +3647,7 @@ var ts;
3640
3647
function parseFunctionType(signatureKind) {
3641
3648
var node = createNode(125 /* TypeLiteral */);
3642
3649
var member = createNode(signatureKind);
3643
- var sig = parseSignature(signatureKind, 23 /* EqualsGreaterThanToken */);
3650
+ var sig = parseSignature(signatureKind, 23 /* EqualsGreaterThanToken */, true );
3644
3651
member.typeParameters = sig.typeParameters;
3645
3652
member.parameters = sig.parameters;
3646
3653
member.type = sig.type;
@@ -3828,7 +3835,7 @@ var ts;
3828
3835
}
3829
3836
var pos = getNodePos();
3830
3837
if (triState === 1 /* True */) {
3831
- var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
3838
+ var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false );
3832
3839
if (parseExpected(23 /* EqualsGreaterThanToken */) || token === 5 /* OpenBraceToken */) {
3833
3840
return parseArrowExpressionTail(pos, sig, false);
3834
3841
}
@@ -3889,7 +3896,7 @@ var ts;
3889
3896
}
3890
3897
function tryParseSignatureIfArrowOrBraceFollows() {
3891
3898
return tryParse(function () {
3892
- var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
3899
+ var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false );
3893
3900
if (token === 23 /* EqualsGreaterThanToken */ || token === 5 /* OpenBraceToken */) {
3894
3901
return sig;
3895
3902
}
@@ -4161,7 +4168,7 @@ var ts;
4161
4168
var node = createNode(129 /* PropertyAssignment */);
4162
4169
node.name = parsePropertyName();
4163
4170
if (token === 7 /* OpenParenToken */ || token === 15 /* LessThanToken */) {
4164
- var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4171
+ var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false );
4165
4172
var body = parseBody(false);
4166
4173
node.initializer = makeFunctionExpression(136 /* FunctionExpression */, node.pos, undefined, sig, body);
4167
4174
}
@@ -4240,7 +4247,7 @@ var ts;
4240
4247
var pos = getNodePos();
4241
4248
parseExpected(73 /* FunctionKeyword */);
4242
4249
var name = isIdentifier() ? parseIdentifier() : undefined;
4243
- var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4250
+ var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false );
4244
4251
var body = parseBody(false);
4245
4252
if (name && isInStrictMode && isEvalOrArgumentsIdentifier(name)) {
4246
4253
reportInvalidUseInStrictMode(name);
@@ -4752,7 +4759,7 @@ var ts;
4752
4759
node.flags = flags;
4753
4760
parseExpected(73 /* FunctionKeyword */);
4754
4761
node.name = parseIdentifier();
4755
- var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4762
+ var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false );
4756
4763
node.typeParameters = sig.typeParameters;
4757
4764
node.parameters = sig.parameters;
4758
4765
node.type = sig.type;
@@ -4766,7 +4773,7 @@ var ts;
4766
4773
var node = createNode(117 /* Constructor */, pos);
4767
4774
node.flags = flags;
4768
4775
parseExpected(103 /* ConstructorKeyword */);
4769
- var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4776
+ var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false );
4770
4777
node.typeParameters = sig.typeParameters;
4771
4778
node.parameters = sig.parameters;
4772
4779
node.type = sig.type;
@@ -4790,7 +4797,7 @@ var ts;
4790
4797
var method = createNode(116 /* Method */, pos);
4791
4798
method.flags = flags;
4792
4799
method.name = name;
4793
- var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4800
+ var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false );
4794
4801
method.typeParameters = sig.typeParameters;
4795
4802
method.parameters = sig.parameters;
4796
4803
method.type = sig.type;
@@ -4858,7 +4865,7 @@ var ts;
4858
4865
var node = createNode(kind, pos);
4859
4866
node.flags = flags;
4860
4867
node.name = parsePropertyName();
4861
- var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */);
4868
+ var sig = parseSignature(120 /* CallSignature */, 42 /* ColonToken */, false );
4862
4869
node.typeParameters = sig.typeParameters;
4863
4870
node.parameters = sig.parameters;
4864
4871
node.type = sig.type;
@@ -5421,17 +5428,27 @@ var ts;
5421
5428
var start = refPos;
5422
5429
var length = refEnd - refPos;
5423
5430
}
5431
+ var diagnostic;
5424
5432
if (hasExtension(filename)) {
5425
5433
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;
5427
5435
}
5428
5436
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;
5430
5438
}
5431
5439
}
5432
5440
else {
5433
5441
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));
5435
5452
}
5436
5453
}
5437
5454
}
@@ -10897,10 +10914,12 @@ var ts;
10897
10914
continue;
10898
10915
}
10899
10916
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;
10902
10922
}
10903
- return false;
10904
10923
}
10905
10924
if (!isRelatedTo(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp), reportErrors)) {
10906
10925
if (reportErrors) {
0 commit comments