@@ -18,7 +18,7 @@ and limitations under the License.
18
18
19
19
// src/compiler/corePublic.ts
20
20
var versionMajorMinor = "5.8";
21
- var version = "5.8.2 ";
21
+ var version = "5.8.3 ";
22
22
23
23
// src/compiler/core.ts
24
24
var emptyArray = [];
@@ -50405,10 +50405,11 @@ function createTypeChecker(host) {
50405
50405
serializeExistingTypeNode(context, typeNode, addUndefined) {
50406
50406
return serializeExistingTypeNode(context, typeNode, !!addUndefined);
50407
50407
},
50408
- serializeReturnTypeForSignature(syntacticContext, signatureDeclaration) {
50408
+ serializeReturnTypeForSignature(syntacticContext, signatureDeclaration, symbol ) {
50409
50409
const context = syntacticContext;
50410
50410
const signature = getSignatureFromDeclaration(signatureDeclaration);
50411
- const returnType = context.enclosingSymbolTypes.get(getSymbolId(getSymbolOfDeclaration(signatureDeclaration))) ?? instantiateType(getReturnTypeOfSignature(signature), context.mapper);
50411
+ symbol ?? (symbol = getSymbolOfDeclaration(signatureDeclaration));
50412
+ const returnType = context.enclosingSymbolTypes.get(getSymbolId(symbol)) ?? instantiateType(getReturnTypeOfSignature(signature), context.mapper);
50412
50413
return serializeInferredReturnTypeForSignature(context, signature, returnType);
50413
50414
},
50414
50415
serializeTypeOfExpression(syntacticContext, expr) {
@@ -50422,7 +50423,7 @@ function createTypeChecker(host) {
50422
50423
symbol ?? (symbol = getSymbolOfDeclaration(declaration));
50423
50424
let type = (_a = context.enclosingSymbolTypes) == null ? void 0 : _a.get(getSymbolId(symbol));
50424
50425
if (type === void 0) {
50425
- type = symbol && !(symbol.flags & (2048 /* TypeLiteral */ | 131072 /* Signature */)) ? instantiateType(getWidenedLiteralType(getTypeOfSymbol(symbol)), context.mapper) : errorType;
50426
+ type = symbol.flags & 98304 /* Accessor */ && declaration.kind === 178 /* SetAccessor */ ? instantiateType(getWriteTypeOfSymbol(symbol), context.mapper) : symbol && !(symbol.flags & (2048 /* TypeLiteral */ | 131072 /* Signature */)) ? instantiateType(getWidenedLiteralType(getTypeOfSymbol(symbol)), context.mapper) : errorType;
50426
50427
}
50427
50428
const addUndefinedForParameter = declaration && (isParameter(declaration) || isJSDocParameterTag(declaration)) && requiresAddingImplicitUndefined(declaration, context.enclosingDeclaration);
50428
50429
if (addUndefinedForParameter) {
@@ -50482,6 +50483,7 @@ function createTypeChecker(host) {
50482
50483
const context = syntacticContext;
50483
50484
if (context.bundled || context.enclosingFile !== getSourceFileOfNode(lit)) {
50484
50485
let name = lit.text;
50486
+ const originalName = name;
50485
50487
const nodeSymbol = getNodeLinks(parent).resolvedSymbol;
50486
50488
const meaning = parent.isTypeOf ? 111551 /* Value */ : 788968 /* Type */;
50487
50489
const parentSymbol = nodeSymbol && isSymbolAccessible(
@@ -50511,7 +50513,9 @@ function createTypeChecker(host) {
50511
50513
context.tracker.reportLikelyUnsafeImportRequiredError(name);
50512
50514
}
50513
50515
}
50514
- return name;
50516
+ if (name !== originalName) {
50517
+ return name;
50518
+ }
50515
50519
}
50516
50520
},
50517
50521
canReuseTypeNode(context, typeNode) {
@@ -51568,12 +51572,13 @@ function createTypeChecker(host) {
51568
51572
if (propertySymbol.flags & 98304 /* Accessor */) {
51569
51573
const writeType = getWriteTypeOfSymbol(propertySymbol);
51570
51574
if (propertyType !== writeType && !isErrorType(propertyType) && !isErrorType(writeType)) {
51575
+ const symbolMapper = getSymbolLinks(propertySymbol).mapper;
51571
51576
const getterDeclaration = getDeclarationOfKind(propertySymbol, 177 /* GetAccessor */);
51572
51577
const getterSignature = getSignatureFromDeclaration(getterDeclaration);
51573
51578
typeElements.push(
51574
51579
setCommentRange2(
51575
51580
context,
51576
- signatureToSignatureDeclarationHelper(getterSignature, 177 /* GetAccessor */, context, { name: propertyName }),
51581
+ signatureToSignatureDeclarationHelper(symbolMapper ? instantiateSignature(getterSignature, symbolMapper) : getterSignature, 177 /* GetAccessor */, context, { name: propertyName }),
51577
51582
getterDeclaration
51578
51583
)
51579
51584
);
@@ -51582,7 +51587,7 @@ function createTypeChecker(host) {
51582
51587
typeElements.push(
51583
51588
setCommentRange2(
51584
51589
context,
51585
- signatureToSignatureDeclarationHelper(setterSignature, 178 /* SetAccessor */, context, { name: propertyName }),
51590
+ signatureToSignatureDeclarationHelper(symbolMapper ? instantiateSignature(setterSignature, symbolMapper) : setterSignature, 178 /* SetAccessor */, context, { name: propertyName }),
51586
51591
setterDeclaration
51587
51592
)
51588
51593
);
@@ -52725,13 +52730,13 @@ function createTypeChecker(host) {
52725
52730
const addUndefinedForParameter = declaration && (isParameter(declaration) || isJSDocParameterTag(declaration)) && requiresAddingImplicitUndefined(declaration, context.enclosingDeclaration);
52726
52731
const decl = declaration ?? symbol.valueDeclaration ?? getDeclarationWithTypeAnnotation(symbol) ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);
52727
52732
if (decl) {
52733
+ const restore = addSymbolTypeToContext(context, symbol, type);
52728
52734
if (isAccessor(decl)) {
52729
52735
result = syntacticNodeBuilder.serializeTypeOfAccessor(decl, symbol, context);
52730
52736
} else if (hasInferredType(decl) && !nodeIsSynthesized(decl) && !(getObjectFlags(type) & 196608 /* RequiresWidening */)) {
52731
- const restore = addSymbolTypeToContext(context, symbol, type);
52732
52737
result = syntacticNodeBuilder.serializeTypeOfDeclaration(decl, symbol, context);
52733
- restore();
52734
52738
}
52739
+ restore();
52735
52740
}
52736
52741
if (!result) {
52737
52742
if (addUndefinedForParameter) {
@@ -52885,10 +52890,7 @@ function createTypeChecker(host) {
52885
52890
/*context*/
52886
52891
void 0
52887
52892
);
52888
- if (updated !== node2) {
52889
- setTextRange2(context, updated, node2);
52890
- }
52891
- return updated;
52893
+ return setTextRange2(context, updated, node2);
52892
52894
}
52893
52895
}
52894
52896
function serializeTypeName(context, node, isTypeOf, typeArguments) {
@@ -76781,6 +76783,11 @@ function createTypeChecker(host) {
76781
76783
if (file && fileExtensionIsOneOf(file.fileName, [".cts" /* Cts */, ".mts" /* Mts */])) {
76782
76784
grammarErrorOnNode(node, Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead);
76783
76785
}
76786
+ if (compilerOptions.erasableSyntaxOnly) {
76787
+ const start = skipTrivia(file.text, node.pos);
76788
+ const end = node.expression.pos;
76789
+ diagnostics.add(createFileDiagnostic(file, start, end - start, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled));
76790
+ }
76784
76791
}
76785
76792
return checkAssertionWorker(node, checkMode);
76786
76793
}
@@ -131862,9 +131869,11 @@ function createSyntacticTypeNodeBuilder(options, resolver) {
131862
131869
if (!resolver.canReuseTypeNode(context, node)) {
131863
131870
return resolver.serializeExistingTypeNode(context, node);
131864
131871
}
131872
+ const specifier = rewriteModuleSpecifier2(node, node.argument.literal);
131873
+ const literal = specifier === node.argument.literal ? reuseNode(context, node.argument.literal) : specifier;
131865
131874
return factory.updateImportTypeNode(
131866
131875
node,
131867
- factory.updateLiteralTypeNode( node.argument, rewriteModuleSpecifier2(node , node.argument. literal) ),
131876
+ literal === node.argument.literal ? reuseNode(context , node.argument) : factory.createLiteralTypeNode( literal),
131868
131877
visitNode(node.attributes, visitExistingNodeTreeSymbols, isImportAttributes),
131869
131878
visitNode(node.qualifier, visitExistingNodeTreeSymbols, isEntityName),
131870
131879
visitNodes2(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode),
@@ -132019,10 +132028,7 @@ function createSyntacticTypeNodeBuilder(options, resolver) {
132019
132028
}
132020
132029
function rewriteModuleSpecifier2(parent, lit) {
132021
132030
const newName = resolver.getModuleSpecifierOverride(context, parent, lit);
132022
- if (newName) {
132023
- return setOriginalNode(factory.createStringLiteral(newName), lit);
132024
- }
132025
- return visitNode(lit, visitExistingNodeTreeSymbols, isStringLiteral);
132031
+ return newName ? setOriginalNode(factory.createStringLiteral(newName), lit) : lit;
132026
132032
}
132027
132033
}
132028
132034
}
@@ -132189,12 +132195,7 @@ function createSyntacticTypeNodeBuilder(options, resolver) {
132189
132195
return withNewScope(context, node, () => serializeTypeAnnotationOfDeclaration(accessorType, context, node, symbol) ?? inferTypeOfDeclaration(node, symbol, context));
132190
132196
}
132191
132197
if (accessorDeclarations.getAccessor) {
132192
- return withNewScope(context, accessorDeclarations.getAccessor, () => createReturnFromSignature(
132193
- accessorDeclarations.getAccessor,
132194
- /*symbol*/
132195
- void 0,
132196
- context
132197
- ));
132198
+ return withNewScope(context, accessorDeclarations.getAccessor, () => createReturnFromSignature(accessorDeclarations.getAccessor, symbol, context));
132198
132199
}
132199
132200
return void 0;
132200
132201
}
@@ -132304,14 +132305,14 @@ function createSyntacticTypeNodeBuilder(options, resolver) {
132304
132305
}
132305
132306
return resolver.serializeTypeOfExpression(context, node) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);
132306
132307
}
132307
- function inferReturnTypeOfSignatureSignature(node, context, reportFallback) {
132308
+ function inferReturnTypeOfSignatureSignature(node, context, symbol, reportFallback) {
132308
132309
if (reportFallback) {
132309
132310
context.tracker.reportInferenceFallback(node);
132310
132311
}
132311
132312
if (context.noInferenceFallback === true) {
132312
132313
return factory.createKeywordTypeNode(133 /* AnyKeyword */);
132313
132314
}
132314
- return resolver.serializeReturnTypeForSignature(context, node) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);
132315
+ return resolver.serializeReturnTypeForSignature(context, node, symbol ) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);
132315
132316
}
132316
132317
function inferAccessorType(node, allAccessors, context, symbol, reportFallback = true) {
132317
132318
if (node.kind === 177 /* GetAccessor */) {
@@ -132601,18 +132602,17 @@ function createSyntacticTypeNodeBuilder(options, resolver) {
132601
132602
);
132602
132603
}
132603
132604
function reuseTypeParameters(typeParameters, context) {
132604
- return typeParameters == null ? void 0 : typeParameters.map(
132605
- (tp) => {
132606
- var _a;
132607
- return factory.updateTypeParameterDeclaration(
132608
- tp,
132609
- (_a = tp.modifiers) == null ? void 0 : _a.map((m) => reuseNode(context, m)),
132610
- reuseNode(context, tp.name),
132611
- serializeExistingTypeNodeWithFallback(tp.constraint, context),
132612
- serializeExistingTypeNodeWithFallback(tp.default, context)
132613
- );
132614
- }
132615
- );
132605
+ return typeParameters == null ? void 0 : typeParameters.map((tp) => {
132606
+ var _a;
132607
+ const { node: tpName } = resolver.trackExistingEntityName(context, tp.name);
132608
+ return factory.updateTypeParameterDeclaration(
132609
+ tp,
132610
+ (_a = tp.modifiers) == null ? void 0 : _a.map((m) => reuseNode(context, m)),
132611
+ tpName,
132612
+ serializeExistingTypeNodeWithFallback(tp.constraint, context),
132613
+ serializeExistingTypeNodeWithFallback(tp.default, context)
132614
+ );
132615
+ });
132616
132616
}
132617
132617
function typeFromObjectLiteralMethod(method, name, context, isConstContext) {
132618
132618
const returnType = createReturnFromSignature(
@@ -132747,7 +132747,7 @@ function createSyntacticTypeNodeBuilder(options, resolver) {
132747
132747
} else if (isValueSignatureDeclaration(fn)) {
132748
132748
returnType = typeFromSingleReturnExpression(fn, context);
132749
132749
}
132750
- return returnType.type !== void 0 ? returnType.type : inferReturnTypeOfSignatureSignature(fn, context, reportFallback && returnType.reportFallback && !returnTypeNode);
132750
+ return returnType.type !== void 0 ? returnType.type : inferReturnTypeOfSignatureSignature(fn, context, symbol, reportFallback && returnType.reportFallback && !returnTypeNode);
132751
132751
}
132752
132752
function typeFromSingleReturnExpression(declaration, context) {
132753
132753
let candidateExpr;
0 commit comments