typescript 5.5.0-dev.20240408 → 5.5.0-dev.20240409
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/tsc.js +107 -43
- package/lib/typescript.d.ts +0 -1
- package/lib/typescript.js +126 -47
- package/package.json +2 -2
package/lib/tsc.js
CHANGED
|
@@ -18,7 +18,7 @@ and limitations under the License.
|
|
|
18
18
|
|
|
19
19
|
// src/compiler/corePublic.ts
|
|
20
20
|
var versionMajorMinor = "5.5";
|
|
21
|
-
var version = `${versionMajorMinor}.0-dev.
|
|
21
|
+
var version = `${versionMajorMinor}.0-dev.20240409`;
|
|
22
22
|
|
|
23
23
|
// src/compiler/core.ts
|
|
24
24
|
var emptyArray = [];
|
|
@@ -12934,6 +12934,9 @@ function isObjectLiteralOrClassExpressionMethodOrAccessor(node) {
|
|
|
12934
12934
|
function isIdentifierTypePredicate(predicate) {
|
|
12935
12935
|
return predicate && predicate.kind === 1 /* Identifier */;
|
|
12936
12936
|
}
|
|
12937
|
+
function isThisTypePredicate(predicate) {
|
|
12938
|
+
return predicate && predicate.kind === 0 /* This */;
|
|
12939
|
+
}
|
|
12937
12940
|
function forEachPropertyAssignment(objectLiteral, key, callback, key2) {
|
|
12938
12941
|
return forEach(objectLiteral == null ? void 0 : objectLiteral.properties, (property) => {
|
|
12939
12942
|
if (!isPropertyAssignment(property))
|
|
@@ -48119,7 +48122,7 @@ function createTypeChecker(host) {
|
|
|
48119
48122
|
typeToTypeNode: (type, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => typeToTypeNodeHelper(type, context)),
|
|
48120
48123
|
typePredicateToTypePredicateNode: (typePredicate, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => typePredicateToTypePredicateNodeHelper(typePredicate, context)),
|
|
48121
48124
|
expressionOrTypeToTypeNode: (expr, type, addUndefined, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => expressionOrTypeToTypeNode(context, expr, type, addUndefined)),
|
|
48122
|
-
serializeTypeForDeclaration: (type, symbol,
|
|
48125
|
+
serializeTypeForDeclaration: (declaration, type, symbol, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => serializeTypeForDeclaration(context, declaration, type, symbol)),
|
|
48123
48126
|
serializeReturnTypeForSignature: (signature, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => serializeReturnTypeForSignature(context, signature)),
|
|
48124
48127
|
indexInfoToIndexSignatureDeclaration: (indexInfo, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => indexInfoToIndexSignatureDeclarationHelper(
|
|
48125
48128
|
indexInfo,
|
|
@@ -48142,6 +48145,18 @@ function createTypeChecker(host) {
|
|
|
48142
48145
|
symbolTableToDeclarationStatements: (symbolTable, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => symbolTableToDeclarationStatements(symbolTable, context)),
|
|
48143
48146
|
symbolToNode: (symbol, meaning, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => symbolToNode(symbol, context, meaning))
|
|
48144
48147
|
};
|
|
48148
|
+
function setTextRange2(context, range, location) {
|
|
48149
|
+
if (!nodeIsSynthesized(range) && !(range.flags & 16 /* Synthesized */) && (!context.enclosingFile || context.enclosingFile !== getSourceFileOfNode(range))) {
|
|
48150
|
+
range = factory.cloneNode(range);
|
|
48151
|
+
}
|
|
48152
|
+
if (!location) {
|
|
48153
|
+
return range;
|
|
48154
|
+
}
|
|
48155
|
+
if (!context.enclosingFile || context.enclosingFile !== getSourceFileOfNode(getOriginalNode(location))) {
|
|
48156
|
+
return setOriginalNode(range, location);
|
|
48157
|
+
}
|
|
48158
|
+
return setTextRange(setOriginalNode(range, location), location);
|
|
48159
|
+
}
|
|
48145
48160
|
function expressionOrTypeToTypeNode(context, expr, type, addUndefined) {
|
|
48146
48161
|
if (expr) {
|
|
48147
48162
|
const typeNode = isAssertionExpression(expr) ? expr.type : isJSDocTypeAssertion(expr) ? getJSDocTypeAssertionType(expr) : void 0;
|
|
@@ -48206,6 +48221,7 @@ function createTypeChecker(host) {
|
|
|
48206
48221
|
const moduleResolverHost = (tracker == null ? void 0 : tracker.trackSymbol) ? tracker.moduleResolverHost : flags & 134217728 /* DoNotIncludeSymbolChain */ ? createBasicNodeBuilderModuleSpecifierResolutionHost(host) : void 0;
|
|
48207
48222
|
const context = {
|
|
48208
48223
|
enclosingDeclaration,
|
|
48224
|
+
enclosingFile: enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration),
|
|
48209
48225
|
flags: flags || 0 /* None */,
|
|
48210
48226
|
tracker: void 0,
|
|
48211
48227
|
encounteredError: false,
|
|
@@ -48738,7 +48754,7 @@ function createTypeChecker(host) {
|
|
|
48738
48754
|
if (!nodeIsSynthesized(node) && getParseTreeNode(node) === node) {
|
|
48739
48755
|
return node;
|
|
48740
48756
|
}
|
|
48741
|
-
return
|
|
48757
|
+
return setTextRange2(context, factory.cloneNode(visitEachChild(
|
|
48742
48758
|
node,
|
|
48743
48759
|
deepCloneOrReuseNode,
|
|
48744
48760
|
/*context*/
|
|
@@ -49080,7 +49096,13 @@ function createTypeChecker(host) {
|
|
|
49080
49096
|
context.reverseMappedStack || (context.reverseMappedStack = []);
|
|
49081
49097
|
context.reverseMappedStack.push(propertySymbol);
|
|
49082
49098
|
}
|
|
49083
|
-
propertyTypeNode = propertyType ? serializeTypeForDeclaration(
|
|
49099
|
+
propertyTypeNode = propertyType ? serializeTypeForDeclaration(
|
|
49100
|
+
context,
|
|
49101
|
+
/*declaration*/
|
|
49102
|
+
void 0,
|
|
49103
|
+
propertyType,
|
|
49104
|
+
propertySymbol
|
|
49105
|
+
) : factory.createKeywordTypeNode(133 /* AnyKeyword */);
|
|
49084
49106
|
if (propertyIsReverseMapped) {
|
|
49085
49107
|
context.reverseMappedStack.pop();
|
|
49086
49108
|
}
|
|
@@ -49469,8 +49491,7 @@ function createTypeChecker(host) {
|
|
|
49469
49491
|
function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags) {
|
|
49470
49492
|
const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);
|
|
49471
49493
|
const parameterType = getTypeOfSymbol(parameterSymbol);
|
|
49472
|
-
const
|
|
49473
|
-
const parameterTypeNode = serializeTypeForDeclaration(context, parameterType, parameterSymbol, context.enclosingDeclaration, addUndefined);
|
|
49494
|
+
const parameterTypeNode = serializeTypeForDeclaration(context, parameterDeclaration, parameterType, parameterSymbol);
|
|
49474
49495
|
const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;
|
|
49475
49496
|
const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;
|
|
49476
49497
|
const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;
|
|
@@ -50062,10 +50083,12 @@ function createTypeChecker(host) {
|
|
|
50062
50083
|
}
|
|
50063
50084
|
return enclosingDeclaration;
|
|
50064
50085
|
}
|
|
50065
|
-
function serializeTypeForDeclaration(context, type, symbol
|
|
50086
|
+
function serializeTypeForDeclaration(context, declaration, type, symbol) {
|
|
50066
50087
|
var _a;
|
|
50088
|
+
const addUndefined = declaration && (isParameter(declaration) || isJSDocParameterTag(declaration)) && requiresAddingImplicitUndefined(declaration);
|
|
50089
|
+
const enclosingDeclaration = context.enclosingDeclaration;
|
|
50067
50090
|
if (!isErrorType(type) && enclosingDeclaration) {
|
|
50068
|
-
const declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration));
|
|
50091
|
+
const declWithExistingAnnotation = declaration && getNonlocalEffectiveTypeAnnotationNode(declaration) ? declaration : getDeclarationWithTypeAnnotation(symbol, getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration));
|
|
50069
50092
|
if (declWithExistingAnnotation && !isFunctionLikeDeclaration(declWithExistingAnnotation) && !isGetAccessorDeclaration(declWithExistingAnnotation)) {
|
|
50070
50093
|
const existing = getNonlocalEffectiveTypeAnnotationNode(declWithExistingAnnotation);
|
|
50071
50094
|
const result2 = tryReuseExistingTypeNode(context, existing, type, declWithExistingAnnotation, addUndefined);
|
|
@@ -50078,7 +50101,7 @@ function createTypeChecker(host) {
|
|
|
50078
50101
|
if (type.flags & 8192 /* UniqueESSymbol */ && type.symbol === symbol && (!context.enclosingDeclaration || some(symbol.declarations, (d) => getSourceFileOfNode(d) === getSourceFileOfNode(context.enclosingDeclaration)))) {
|
|
50079
50102
|
context.flags |= 1048576 /* AllowUniqueESSymbolType */;
|
|
50080
50103
|
}
|
|
50081
|
-
const decl = symbol.valueDeclaration ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);
|
|
50104
|
+
const decl = declaration ?? symbol.valueDeclaration ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);
|
|
50082
50105
|
const expr = decl && isDeclarationWithPossibleInnerTypeNodeReuse(decl) ? getPossibleTypeNodeReuseExpression(decl) : void 0;
|
|
50083
50106
|
const result = expressionOrTypeToTypeNode(context, expr, type, addUndefined);
|
|
50084
50107
|
context.flags = oldFlags;
|
|
@@ -50192,7 +50215,7 @@ function createTypeChecker(host) {
|
|
|
50192
50215
|
const type = getDeclaredTypeOfSymbol(sym);
|
|
50193
50216
|
const name = sym.flags & 262144 /* TypeParameter */ ? typeParameterToName(type, context) : factory.cloneNode(node2);
|
|
50194
50217
|
name.symbol = sym;
|
|
50195
|
-
return
|
|
50218
|
+
return setTextRange2(context, setEmitFlags(name, 16777216 /* NoAsciiEscaping */), node2);
|
|
50196
50219
|
}
|
|
50197
50220
|
const updated = visitEachChild(
|
|
50198
50221
|
node2,
|
|
@@ -50201,7 +50224,7 @@ function createTypeChecker(host) {
|
|
|
50201
50224
|
void 0
|
|
50202
50225
|
);
|
|
50203
50226
|
if (updated !== node2) {
|
|
50204
|
-
|
|
50227
|
+
setTextRange2(context, updated, node2);
|
|
50205
50228
|
}
|
|
50206
50229
|
return updated;
|
|
50207
50230
|
}
|
|
@@ -50215,12 +50238,12 @@ function createTypeChecker(host) {
|
|
|
50215
50238
|
if (hadError) {
|
|
50216
50239
|
return void 0;
|
|
50217
50240
|
}
|
|
50218
|
-
return transformed
|
|
50241
|
+
return transformed;
|
|
50219
50242
|
function visitExistingNodeTreeSymbols(node) {
|
|
50220
50243
|
const onExitNewScope = isNewScopeNode(node) ? onEnterNewScope(node) : void 0;
|
|
50221
50244
|
const result = visitExistingNodeTreeSymbolsWorker(node);
|
|
50222
50245
|
onExitNewScope == null ? void 0 : onExitNewScope();
|
|
50223
|
-
return result;
|
|
50246
|
+
return result === node ? setTextRange2(context, factory.cloneNode(result), node) : result;
|
|
50224
50247
|
}
|
|
50225
50248
|
function onEnterNewScope(node) {
|
|
50226
50249
|
const oldContex = context;
|
|
@@ -50356,7 +50379,7 @@ function createTypeChecker(host) {
|
|
|
50356
50379
|
void 0
|
|
50357
50380
|
);
|
|
50358
50381
|
if (visited === node) {
|
|
50359
|
-
visited =
|
|
50382
|
+
visited = setTextRange2(context, factory.cloneNode(node), node);
|
|
50360
50383
|
}
|
|
50361
50384
|
visited.type = factory.createKeywordTypeNode(133 /* AnyKeyword */);
|
|
50362
50385
|
if (isParameter(node)) {
|
|
@@ -50379,11 +50402,16 @@ function createTypeChecker(host) {
|
|
|
50379
50402
|
/*context*/
|
|
50380
50403
|
void 0
|
|
50381
50404
|
);
|
|
50382
|
-
const clone =
|
|
50405
|
+
const clone = setTextRange2(context, visited === node ? factory.cloneNode(node) : visited, node);
|
|
50383
50406
|
const flags = getEmitFlags(clone);
|
|
50384
50407
|
setEmitFlags(clone, flags | (context.flags & 1024 /* MultilineObjectLiterals */ && isTypeLiteralNode(node) ? 0 : 1 /* SingleLine */));
|
|
50385
50408
|
return clone;
|
|
50386
50409
|
}
|
|
50410
|
+
if (isStringLiteral(node) && !!(context.flags & 268435456 /* UseSingleQuotesForStringLiteralType */) && !node.singleQuote) {
|
|
50411
|
+
const clone = factory.cloneNode(node);
|
|
50412
|
+
clone.singleQuote = true;
|
|
50413
|
+
return clone;
|
|
50414
|
+
}
|
|
50387
50415
|
if (isConditionalTypeNode(node)) {
|
|
50388
50416
|
const checkType = visitNode(node.checkType, visitExistingNodeTreeSymbols, isTypeNode);
|
|
50389
50417
|
const disposeScope = onEnterNewScope(node);
|
|
@@ -50762,7 +50790,8 @@ function createTypeChecker(host) {
|
|
|
50762
50790
|
);
|
|
50763
50791
|
context.tracker.trackSymbol(type.symbol, context.enclosingDeclaration, 111551 /* Value */);
|
|
50764
50792
|
} else {
|
|
50765
|
-
const statement =
|
|
50793
|
+
const statement = setTextRange2(
|
|
50794
|
+
context,
|
|
50766
50795
|
factory.createVariableStatement(
|
|
50767
50796
|
/*modifiers*/
|
|
50768
50797
|
void 0,
|
|
@@ -50771,7 +50800,13 @@ function createTypeChecker(host) {
|
|
|
50771
50800
|
name,
|
|
50772
50801
|
/*exclamationToken*/
|
|
50773
50802
|
void 0,
|
|
50774
|
-
serializeTypeForDeclaration(
|
|
50803
|
+
serializeTypeForDeclaration(
|
|
50804
|
+
context,
|
|
50805
|
+
/*declaration*/
|
|
50806
|
+
void 0,
|
|
50807
|
+
type,
|
|
50808
|
+
symbol
|
|
50809
|
+
)
|
|
50775
50810
|
)
|
|
50776
50811
|
], flags)
|
|
50777
50812
|
),
|
|
@@ -51044,7 +51079,7 @@ function createTypeChecker(host) {
|
|
|
51044
51079
|
const signatures = getSignaturesOfType(type, 0 /* Call */);
|
|
51045
51080
|
for (const sig of signatures) {
|
|
51046
51081
|
const decl = signatureToSignatureDeclarationHelper(sig, 262 /* FunctionDeclaration */, context, { name: factory.createIdentifier(localName) });
|
|
51047
|
-
addResult(
|
|
51082
|
+
addResult(setTextRange2(context, decl, getSignatureTextRangeLocation(sig)), modifierFlags);
|
|
51048
51083
|
}
|
|
51049
51084
|
if (!(symbol.flags & (512 /* ValueModule */ | 1024 /* NamespaceModule */) && !!symbol.exports && !!symbol.exports.size)) {
|
|
51050
51085
|
const props = filter(getPropertiesOfType(type), isNamespaceMember);
|
|
@@ -51222,7 +51257,8 @@ function createTypeChecker(host) {
|
|
|
51222
51257
|
const indexSignatures = serializeIndexSignatures(classType, baseTypes[0]);
|
|
51223
51258
|
context.enclosingDeclaration = oldEnclosing;
|
|
51224
51259
|
addResult(
|
|
51225
|
-
|
|
51260
|
+
setTextRange2(
|
|
51261
|
+
context,
|
|
51226
51262
|
factory.createClassDeclaration(
|
|
51227
51263
|
/*modifiers*/
|
|
51228
51264
|
void 0,
|
|
@@ -51582,7 +51618,13 @@ function createTypeChecker(host) {
|
|
|
51582
51618
|
varName,
|
|
51583
51619
|
/*exclamationToken*/
|
|
51584
51620
|
void 0,
|
|
51585
|
-
serializeTypeForDeclaration(
|
|
51621
|
+
serializeTypeForDeclaration(
|
|
51622
|
+
context,
|
|
51623
|
+
/*declaration*/
|
|
51624
|
+
void 0,
|
|
51625
|
+
typeToSerialize,
|
|
51626
|
+
symbol
|
|
51627
|
+
)
|
|
51586
51628
|
)
|
|
51587
51629
|
], flags)
|
|
51588
51630
|
);
|
|
@@ -51654,7 +51696,8 @@ function createTypeChecker(host) {
|
|
|
51654
51696
|
});
|
|
51655
51697
|
Debug.assert(!!setter);
|
|
51656
51698
|
const paramSymbol = isFunctionLikeDeclaration(setter) ? getSignatureFromDeclaration(setter).parameters[0] : void 0;
|
|
51657
|
-
result.push(
|
|
51699
|
+
result.push(setTextRange2(
|
|
51700
|
+
context,
|
|
51658
51701
|
factory.createSetAccessorDeclaration(
|
|
51659
51702
|
factory.createModifiersFromModifierFlags(flag),
|
|
51660
51703
|
name,
|
|
@@ -51666,7 +51709,13 @@ function createTypeChecker(host) {
|
|
|
51666
51709
|
paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : "value",
|
|
51667
51710
|
/*questionToken*/
|
|
51668
51711
|
void 0,
|
|
51669
|
-
isPrivate ? void 0 : serializeTypeForDeclaration(
|
|
51712
|
+
isPrivate ? void 0 : serializeTypeForDeclaration(
|
|
51713
|
+
context,
|
|
51714
|
+
/*declaration*/
|
|
51715
|
+
void 0,
|
|
51716
|
+
getTypeOfSymbol(p),
|
|
51717
|
+
p
|
|
51718
|
+
)
|
|
51670
51719
|
)],
|
|
51671
51720
|
/*body*/
|
|
51672
51721
|
void 0
|
|
@@ -51676,12 +51725,19 @@ function createTypeChecker(host) {
|
|
|
51676
51725
|
}
|
|
51677
51726
|
if (p.flags & 32768 /* GetAccessor */) {
|
|
51678
51727
|
const isPrivate2 = modifierFlags & 2 /* Private */;
|
|
51679
|
-
result.push(
|
|
51728
|
+
result.push(setTextRange2(
|
|
51729
|
+
context,
|
|
51680
51730
|
factory.createGetAccessorDeclaration(
|
|
51681
51731
|
factory.createModifiersFromModifierFlags(flag),
|
|
51682
51732
|
name,
|
|
51683
51733
|
[],
|
|
51684
|
-
isPrivate2 ? void 0 : serializeTypeForDeclaration(
|
|
51734
|
+
isPrivate2 ? void 0 : serializeTypeForDeclaration(
|
|
51735
|
+
context,
|
|
51736
|
+
/*declaration*/
|
|
51737
|
+
void 0,
|
|
51738
|
+
getTypeOfSymbol(p),
|
|
51739
|
+
p
|
|
51740
|
+
),
|
|
51685
51741
|
/*body*/
|
|
51686
51742
|
void 0
|
|
51687
51743
|
),
|
|
@@ -51690,12 +51746,19 @@ function createTypeChecker(host) {
|
|
|
51690
51746
|
}
|
|
51691
51747
|
return result;
|
|
51692
51748
|
} else if (p.flags & (4 /* Property */ | 3 /* Variable */ | 98304 /* Accessor */)) {
|
|
51693
|
-
return
|
|
51749
|
+
return setTextRange2(
|
|
51750
|
+
context,
|
|
51694
51751
|
createProperty2(
|
|
51695
51752
|
factory.createModifiersFromModifierFlags((isReadonlySymbol(p) ? 8 /* Readonly */ : 0) | flag),
|
|
51696
51753
|
name,
|
|
51697
51754
|
p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,
|
|
51698
|
-
isPrivate ? void 0 : serializeTypeForDeclaration(
|
|
51755
|
+
isPrivate ? void 0 : serializeTypeForDeclaration(
|
|
51756
|
+
context,
|
|
51757
|
+
/*declaration*/
|
|
51758
|
+
void 0,
|
|
51759
|
+
getWriteTypeOfSymbol(p),
|
|
51760
|
+
p
|
|
51761
|
+
),
|
|
51699
51762
|
// TODO: https://github.com/microsoft/TypeScript/pull/32372#discussion_r328386357
|
|
51700
51763
|
// interface members can't have initializers, however class members _can_
|
|
51701
51764
|
/*initializer*/
|
|
@@ -51708,7 +51771,8 @@ function createTypeChecker(host) {
|
|
|
51708
51771
|
const type = getTypeOfSymbol(p);
|
|
51709
51772
|
const signatures = getSignaturesOfType(type, 0 /* Call */);
|
|
51710
51773
|
if (flag & 2 /* Private */) {
|
|
51711
|
-
return
|
|
51774
|
+
return setTextRange2(
|
|
51775
|
+
context,
|
|
51712
51776
|
createProperty2(
|
|
51713
51777
|
factory.createModifiersFromModifierFlags((isReadonlySymbol(p) ? 8 /* Readonly */ : 0) | flag),
|
|
51714
51778
|
name,
|
|
@@ -51734,7 +51798,7 @@ function createTypeChecker(host) {
|
|
|
51734
51798
|
}
|
|
51735
51799
|
);
|
|
51736
51800
|
const location = sig.declaration && isPrototypePropertyAssignment(sig.declaration.parent) ? sig.declaration.parent : sig.declaration;
|
|
51737
|
-
results2.push(
|
|
51801
|
+
results2.push(setTextRange2(context, decl, location));
|
|
51738
51802
|
}
|
|
51739
51803
|
return results2;
|
|
51740
51804
|
}
|
|
@@ -51790,7 +51854,8 @@ function createTypeChecker(host) {
|
|
|
51790
51854
|
}
|
|
51791
51855
|
}
|
|
51792
51856
|
if (privateProtected) {
|
|
51793
|
-
return [
|
|
51857
|
+
return [setTextRange2(
|
|
51858
|
+
context,
|
|
51794
51859
|
factory.createConstructorDeclaration(
|
|
51795
51860
|
factory.createModifiersFromModifierFlags(privateProtected),
|
|
51796
51861
|
/*parameters*/
|
|
@@ -51805,7 +51870,7 @@ function createTypeChecker(host) {
|
|
|
51805
51870
|
const results2 = [];
|
|
51806
51871
|
for (const sig of signatures) {
|
|
51807
51872
|
const decl = signatureToSignatureDeclarationHelper(sig, outputKind, context);
|
|
51808
|
-
results2.push(
|
|
51873
|
+
results2.push(setTextRange2(context, decl, sig.declaration));
|
|
51809
51874
|
}
|
|
51810
51875
|
return results2;
|
|
51811
51876
|
}
|
|
@@ -55488,12 +55553,10 @@ function createTypeChecker(host) {
|
|
|
55488
55553
|
const target = type.target ?? type;
|
|
55489
55554
|
const typeVariable = getHomomorphicTypeVariable(target);
|
|
55490
55555
|
if (typeVariable && !target.declaration.nameType) {
|
|
55491
|
-
const
|
|
55492
|
-
|
|
55493
|
-
|
|
55494
|
-
|
|
55495
|
-
return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper));
|
|
55496
|
-
}
|
|
55556
|
+
const modifiersType = getModifiersTypeFromMappedType(type);
|
|
55557
|
+
const baseConstraint = isGenericMappedType(modifiersType) ? getApparentTypeOfMappedType(modifiersType) : getBaseConstraintOfType(modifiersType);
|
|
55558
|
+
if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) {
|
|
55559
|
+
return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper));
|
|
55497
55560
|
}
|
|
55498
55561
|
}
|
|
55499
55562
|
return type;
|
|
@@ -60923,7 +60986,7 @@ function createTypeChecker(host) {
|
|
|
60923
60986
|
const sourceTypePredicate = getTypePredicateOfSignature(source);
|
|
60924
60987
|
if (sourceTypePredicate) {
|
|
60925
60988
|
result &= compareTypePredicateRelatedTo(sourceTypePredicate, targetTypePredicate, reportErrors2, errorReporter, compareTypes);
|
|
60926
|
-
} else if (isIdentifierTypePredicate(targetTypePredicate)) {
|
|
60989
|
+
} else if (isIdentifierTypePredicate(targetTypePredicate) || isThisTypePredicate(targetTypePredicate)) {
|
|
60927
60990
|
if (reportErrors2) {
|
|
60928
60991
|
errorReporter(Diagnostics.Signature_0_must_be_a_type_predicate, signatureToString(source));
|
|
60929
60992
|
}
|
|
@@ -83307,9 +83370,10 @@ function createTypeChecker(host) {
|
|
|
83307
83370
|
return false;
|
|
83308
83371
|
}
|
|
83309
83372
|
function declaredParameterTypeContainsUndefined(parameter) {
|
|
83310
|
-
|
|
83373
|
+
const typeNode = getNonlocalEffectiveTypeAnnotationNode(parameter);
|
|
83374
|
+
if (!typeNode)
|
|
83311
83375
|
return false;
|
|
83312
|
-
const type = getTypeFromTypeNode(
|
|
83376
|
+
const type = getTypeFromTypeNode(typeNode);
|
|
83313
83377
|
return containsUndefinedType(type);
|
|
83314
83378
|
}
|
|
83315
83379
|
function requiresAddingImplicitUndefined(parameter) {
|
|
@@ -83319,7 +83383,7 @@ function createTypeChecker(host) {
|
|
|
83319
83383
|
return !!strictNullChecks && !isOptionalParameter(parameter) && !isJSDocParameterTag(parameter) && !!parameter.initializer && !hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
|
|
83320
83384
|
}
|
|
83321
83385
|
function isOptionalUninitializedParameterProperty(parameter) {
|
|
83322
|
-
return strictNullChecks && isOptionalParameter(parameter) && !parameter.initializer && hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
|
|
83386
|
+
return strictNullChecks && isOptionalParameter(parameter) && (isJSDocParameterTag(parameter) || !parameter.initializer) && hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
|
|
83323
83387
|
}
|
|
83324
83388
|
function isExpandoFunctionDeclaration(node) {
|
|
83325
83389
|
const declaration = getParseTreeNode(node, isFunctionDeclaration);
|
|
@@ -83469,14 +83533,14 @@ function createTypeChecker(host) {
|
|
|
83469
83533
|
return 11 /* ObjectType */;
|
|
83470
83534
|
}
|
|
83471
83535
|
}
|
|
83472
|
-
function createTypeOfDeclaration(declarationIn, enclosingDeclaration, flags, tracker
|
|
83536
|
+
function createTypeOfDeclaration(declarationIn, enclosingDeclaration, flags, tracker) {
|
|
83473
83537
|
const declaration = getParseTreeNode(declarationIn, isVariableLikeOrAccessor);
|
|
83474
83538
|
if (!declaration) {
|
|
83475
83539
|
return factory.createToken(133 /* AnyKeyword */);
|
|
83476
83540
|
}
|
|
83477
83541
|
const symbol = getSymbolOfDeclaration(declaration);
|
|
83478
83542
|
const type = symbol && !(symbol.flags & (2048 /* TypeLiteral */ | 131072 /* Signature */)) ? getWidenedLiteralType(getTypeOfSymbol(symbol)) : errorType;
|
|
83479
|
-
return nodeBuilder.serializeTypeForDeclaration(type, symbol,
|
|
83543
|
+
return nodeBuilder.serializeTypeForDeclaration(declaration, type, symbol, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, tracker);
|
|
83480
83544
|
}
|
|
83481
83545
|
function isDeclarationWithPossibleInnerTypeNodeReuse(declaration) {
|
|
83482
83546
|
return isFunctionLike(declaration) || isExportAssignment(declaration) || isVariableLike(declaration);
|
|
@@ -109129,7 +109193,7 @@ function transformDeclarations(context) {
|
|
|
109129
109193
|
case 172 /* PropertyDeclaration */:
|
|
109130
109194
|
case 208 /* BindingElement */:
|
|
109131
109195
|
case 260 /* VariableDeclaration */:
|
|
109132
|
-
typeNode = resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker
|
|
109196
|
+
typeNode = resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker);
|
|
109133
109197
|
break;
|
|
109134
109198
|
case 262 /* FunctionDeclaration */:
|
|
109135
109199
|
case 180 /* ConstructSignature */:
|
package/lib/typescript.d.ts
CHANGED
|
@@ -3233,7 +3233,6 @@ declare namespace ts {
|
|
|
3233
3233
|
private addFilesToNonInferredProject;
|
|
3234
3234
|
private updateNonInferredProjectFiles;
|
|
3235
3235
|
private updateRootAndOptionsOfNonInferredProject;
|
|
3236
|
-
private sendConfigFileDiagEvent;
|
|
3237
3236
|
private getOrCreateInferredProjectForProjectRootPathIfEnabled;
|
|
3238
3237
|
private getOrCreateSingleInferredProjectIfEnabled;
|
|
3239
3238
|
private getOrCreateSingleInferredWithoutProjectRoot;
|
package/lib/typescript.js
CHANGED
|
@@ -2335,7 +2335,7 @@ module.exports = __toCommonJS(typescript_exports);
|
|
|
2335
2335
|
|
|
2336
2336
|
// src/compiler/corePublic.ts
|
|
2337
2337
|
var versionMajorMinor = "5.5";
|
|
2338
|
-
var version = `${versionMajorMinor}.0-dev.
|
|
2338
|
+
var version = `${versionMajorMinor}.0-dev.20240409`;
|
|
2339
2339
|
var Comparison = /* @__PURE__ */ ((Comparison3) => {
|
|
2340
2340
|
Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
|
|
2341
2341
|
Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
|
|
@@ -52891,7 +52891,7 @@ function createTypeChecker(host) {
|
|
|
52891
52891
|
typeToTypeNode: (type, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => typeToTypeNodeHelper(type, context)),
|
|
52892
52892
|
typePredicateToTypePredicateNode: (typePredicate, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => typePredicateToTypePredicateNodeHelper(typePredicate, context)),
|
|
52893
52893
|
expressionOrTypeToTypeNode: (expr, type, addUndefined, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => expressionOrTypeToTypeNode(context, expr, type, addUndefined)),
|
|
52894
|
-
serializeTypeForDeclaration: (type, symbol,
|
|
52894
|
+
serializeTypeForDeclaration: (declaration, type, symbol, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => serializeTypeForDeclaration(context, declaration, type, symbol)),
|
|
52895
52895
|
serializeReturnTypeForSignature: (signature, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => serializeReturnTypeForSignature(context, signature)),
|
|
52896
52896
|
indexInfoToIndexSignatureDeclaration: (indexInfo, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => indexInfoToIndexSignatureDeclarationHelper(
|
|
52897
52897
|
indexInfo,
|
|
@@ -52914,6 +52914,18 @@ function createTypeChecker(host) {
|
|
|
52914
52914
|
symbolTableToDeclarationStatements: (symbolTable, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => symbolTableToDeclarationStatements(symbolTable, context)),
|
|
52915
52915
|
symbolToNode: (symbol, meaning, enclosingDeclaration, flags, tracker) => withContext(enclosingDeclaration, flags, tracker, (context) => symbolToNode(symbol, context, meaning))
|
|
52916
52916
|
};
|
|
52917
|
+
function setTextRange2(context, range, location) {
|
|
52918
|
+
if (!nodeIsSynthesized(range) && !(range.flags & 16 /* Synthesized */) && (!context.enclosingFile || context.enclosingFile !== getSourceFileOfNode(range))) {
|
|
52919
|
+
range = factory.cloneNode(range);
|
|
52920
|
+
}
|
|
52921
|
+
if (!location) {
|
|
52922
|
+
return range;
|
|
52923
|
+
}
|
|
52924
|
+
if (!context.enclosingFile || context.enclosingFile !== getSourceFileOfNode(getOriginalNode(location))) {
|
|
52925
|
+
return setOriginalNode(range, location);
|
|
52926
|
+
}
|
|
52927
|
+
return setTextRange(setOriginalNode(range, location), location);
|
|
52928
|
+
}
|
|
52917
52929
|
function expressionOrTypeToTypeNode(context, expr, type, addUndefined) {
|
|
52918
52930
|
if (expr) {
|
|
52919
52931
|
const typeNode = isAssertionExpression(expr) ? expr.type : isJSDocTypeAssertion(expr) ? getJSDocTypeAssertionType(expr) : void 0;
|
|
@@ -52978,6 +52990,7 @@ function createTypeChecker(host) {
|
|
|
52978
52990
|
const moduleResolverHost = (tracker == null ? void 0 : tracker.trackSymbol) ? tracker.moduleResolverHost : flags & 134217728 /* DoNotIncludeSymbolChain */ ? createBasicNodeBuilderModuleSpecifierResolutionHost(host) : void 0;
|
|
52979
52991
|
const context = {
|
|
52980
52992
|
enclosingDeclaration,
|
|
52993
|
+
enclosingFile: enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration),
|
|
52981
52994
|
flags: flags || 0 /* None */,
|
|
52982
52995
|
tracker: void 0,
|
|
52983
52996
|
encounteredError: false,
|
|
@@ -53510,7 +53523,7 @@ function createTypeChecker(host) {
|
|
|
53510
53523
|
if (!nodeIsSynthesized(node) && getParseTreeNode(node) === node) {
|
|
53511
53524
|
return node;
|
|
53512
53525
|
}
|
|
53513
|
-
return
|
|
53526
|
+
return setTextRange2(context, factory.cloneNode(visitEachChild(
|
|
53514
53527
|
node,
|
|
53515
53528
|
deepCloneOrReuseNode,
|
|
53516
53529
|
/*context*/
|
|
@@ -53852,7 +53865,13 @@ function createTypeChecker(host) {
|
|
|
53852
53865
|
context.reverseMappedStack || (context.reverseMappedStack = []);
|
|
53853
53866
|
context.reverseMappedStack.push(propertySymbol);
|
|
53854
53867
|
}
|
|
53855
|
-
propertyTypeNode = propertyType ? serializeTypeForDeclaration(
|
|
53868
|
+
propertyTypeNode = propertyType ? serializeTypeForDeclaration(
|
|
53869
|
+
context,
|
|
53870
|
+
/*declaration*/
|
|
53871
|
+
void 0,
|
|
53872
|
+
propertyType,
|
|
53873
|
+
propertySymbol
|
|
53874
|
+
) : factory.createKeywordTypeNode(133 /* AnyKeyword */);
|
|
53856
53875
|
if (propertyIsReverseMapped) {
|
|
53857
53876
|
context.reverseMappedStack.pop();
|
|
53858
53877
|
}
|
|
@@ -54241,8 +54260,7 @@ function createTypeChecker(host) {
|
|
|
54241
54260
|
function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags) {
|
|
54242
54261
|
const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);
|
|
54243
54262
|
const parameterType = getTypeOfSymbol(parameterSymbol);
|
|
54244
|
-
const
|
|
54245
|
-
const parameterTypeNode = serializeTypeForDeclaration(context, parameterType, parameterSymbol, context.enclosingDeclaration, addUndefined);
|
|
54263
|
+
const parameterTypeNode = serializeTypeForDeclaration(context, parameterDeclaration, parameterType, parameterSymbol);
|
|
54246
54264
|
const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;
|
|
54247
54265
|
const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;
|
|
54248
54266
|
const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;
|
|
@@ -54834,10 +54852,12 @@ function createTypeChecker(host) {
|
|
|
54834
54852
|
}
|
|
54835
54853
|
return enclosingDeclaration;
|
|
54836
54854
|
}
|
|
54837
|
-
function serializeTypeForDeclaration(context, type, symbol
|
|
54855
|
+
function serializeTypeForDeclaration(context, declaration, type, symbol) {
|
|
54838
54856
|
var _a;
|
|
54857
|
+
const addUndefined = declaration && (isParameter(declaration) || isJSDocParameterTag(declaration)) && requiresAddingImplicitUndefined(declaration);
|
|
54858
|
+
const enclosingDeclaration = context.enclosingDeclaration;
|
|
54839
54859
|
if (!isErrorType(type) && enclosingDeclaration) {
|
|
54840
|
-
const declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration));
|
|
54860
|
+
const declWithExistingAnnotation = declaration && getNonlocalEffectiveTypeAnnotationNode(declaration) ? declaration : getDeclarationWithTypeAnnotation(symbol, getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration));
|
|
54841
54861
|
if (declWithExistingAnnotation && !isFunctionLikeDeclaration(declWithExistingAnnotation) && !isGetAccessorDeclaration(declWithExistingAnnotation)) {
|
|
54842
54862
|
const existing = getNonlocalEffectiveTypeAnnotationNode(declWithExistingAnnotation);
|
|
54843
54863
|
const result2 = tryReuseExistingTypeNode(context, existing, type, declWithExistingAnnotation, addUndefined);
|
|
@@ -54850,7 +54870,7 @@ function createTypeChecker(host) {
|
|
|
54850
54870
|
if (type.flags & 8192 /* UniqueESSymbol */ && type.symbol === symbol && (!context.enclosingDeclaration || some(symbol.declarations, (d) => getSourceFileOfNode(d) === getSourceFileOfNode(context.enclosingDeclaration)))) {
|
|
54851
54871
|
context.flags |= 1048576 /* AllowUniqueESSymbolType */;
|
|
54852
54872
|
}
|
|
54853
|
-
const decl = symbol.valueDeclaration ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);
|
|
54873
|
+
const decl = declaration ?? symbol.valueDeclaration ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);
|
|
54854
54874
|
const expr = decl && isDeclarationWithPossibleInnerTypeNodeReuse(decl) ? getPossibleTypeNodeReuseExpression(decl) : void 0;
|
|
54855
54875
|
const result = expressionOrTypeToTypeNode(context, expr, type, addUndefined);
|
|
54856
54876
|
context.flags = oldFlags;
|
|
@@ -54964,7 +54984,7 @@ function createTypeChecker(host) {
|
|
|
54964
54984
|
const type = getDeclaredTypeOfSymbol(sym);
|
|
54965
54985
|
const name = sym.flags & 262144 /* TypeParameter */ ? typeParameterToName(type, context) : factory.cloneNode(node2);
|
|
54966
54986
|
name.symbol = sym;
|
|
54967
|
-
return
|
|
54987
|
+
return setTextRange2(context, setEmitFlags(name, 16777216 /* NoAsciiEscaping */), node2);
|
|
54968
54988
|
}
|
|
54969
54989
|
const updated = visitEachChild(
|
|
54970
54990
|
node2,
|
|
@@ -54973,7 +54993,7 @@ function createTypeChecker(host) {
|
|
|
54973
54993
|
void 0
|
|
54974
54994
|
);
|
|
54975
54995
|
if (updated !== node2) {
|
|
54976
|
-
|
|
54996
|
+
setTextRange2(context, updated, node2);
|
|
54977
54997
|
}
|
|
54978
54998
|
return updated;
|
|
54979
54999
|
}
|
|
@@ -54987,12 +55007,12 @@ function createTypeChecker(host) {
|
|
|
54987
55007
|
if (hadError) {
|
|
54988
55008
|
return void 0;
|
|
54989
55009
|
}
|
|
54990
|
-
return transformed
|
|
55010
|
+
return transformed;
|
|
54991
55011
|
function visitExistingNodeTreeSymbols(node) {
|
|
54992
55012
|
const onExitNewScope = isNewScopeNode(node) ? onEnterNewScope(node) : void 0;
|
|
54993
55013
|
const result = visitExistingNodeTreeSymbolsWorker(node);
|
|
54994
55014
|
onExitNewScope == null ? void 0 : onExitNewScope();
|
|
54995
|
-
return result;
|
|
55015
|
+
return result === node ? setTextRange2(context, factory.cloneNode(result), node) : result;
|
|
54996
55016
|
}
|
|
54997
55017
|
function onEnterNewScope(node) {
|
|
54998
55018
|
const oldContex = context;
|
|
@@ -55128,7 +55148,7 @@ function createTypeChecker(host) {
|
|
|
55128
55148
|
void 0
|
|
55129
55149
|
);
|
|
55130
55150
|
if (visited === node) {
|
|
55131
|
-
visited =
|
|
55151
|
+
visited = setTextRange2(context, factory.cloneNode(node), node);
|
|
55132
55152
|
}
|
|
55133
55153
|
visited.type = factory.createKeywordTypeNode(133 /* AnyKeyword */);
|
|
55134
55154
|
if (isParameter(node)) {
|
|
@@ -55151,11 +55171,16 @@ function createTypeChecker(host) {
|
|
|
55151
55171
|
/*context*/
|
|
55152
55172
|
void 0
|
|
55153
55173
|
);
|
|
55154
|
-
const clone2 =
|
|
55174
|
+
const clone2 = setTextRange2(context, visited === node ? factory.cloneNode(node) : visited, node);
|
|
55155
55175
|
const flags = getEmitFlags(clone2);
|
|
55156
55176
|
setEmitFlags(clone2, flags | (context.flags & 1024 /* MultilineObjectLiterals */ && isTypeLiteralNode(node) ? 0 : 1 /* SingleLine */));
|
|
55157
55177
|
return clone2;
|
|
55158
55178
|
}
|
|
55179
|
+
if (isStringLiteral(node) && !!(context.flags & 268435456 /* UseSingleQuotesForStringLiteralType */) && !node.singleQuote) {
|
|
55180
|
+
const clone2 = factory.cloneNode(node);
|
|
55181
|
+
clone2.singleQuote = true;
|
|
55182
|
+
return clone2;
|
|
55183
|
+
}
|
|
55159
55184
|
if (isConditionalTypeNode(node)) {
|
|
55160
55185
|
const checkType = visitNode(node.checkType, visitExistingNodeTreeSymbols, isTypeNode);
|
|
55161
55186
|
const disposeScope = onEnterNewScope(node);
|
|
@@ -55534,7 +55559,8 @@ function createTypeChecker(host) {
|
|
|
55534
55559
|
);
|
|
55535
55560
|
context.tracker.trackSymbol(type.symbol, context.enclosingDeclaration, 111551 /* Value */);
|
|
55536
55561
|
} else {
|
|
55537
|
-
const statement =
|
|
55562
|
+
const statement = setTextRange2(
|
|
55563
|
+
context,
|
|
55538
55564
|
factory.createVariableStatement(
|
|
55539
55565
|
/*modifiers*/
|
|
55540
55566
|
void 0,
|
|
@@ -55543,7 +55569,13 @@ function createTypeChecker(host) {
|
|
|
55543
55569
|
name,
|
|
55544
55570
|
/*exclamationToken*/
|
|
55545
55571
|
void 0,
|
|
55546
|
-
serializeTypeForDeclaration(
|
|
55572
|
+
serializeTypeForDeclaration(
|
|
55573
|
+
context,
|
|
55574
|
+
/*declaration*/
|
|
55575
|
+
void 0,
|
|
55576
|
+
type,
|
|
55577
|
+
symbol
|
|
55578
|
+
)
|
|
55547
55579
|
)
|
|
55548
55580
|
], flags)
|
|
55549
55581
|
),
|
|
@@ -55816,7 +55848,7 @@ function createTypeChecker(host) {
|
|
|
55816
55848
|
const signatures = getSignaturesOfType(type, 0 /* Call */);
|
|
55817
55849
|
for (const sig of signatures) {
|
|
55818
55850
|
const decl = signatureToSignatureDeclarationHelper(sig, 262 /* FunctionDeclaration */, context, { name: factory.createIdentifier(localName) });
|
|
55819
|
-
addResult(
|
|
55851
|
+
addResult(setTextRange2(context, decl, getSignatureTextRangeLocation(sig)), modifierFlags);
|
|
55820
55852
|
}
|
|
55821
55853
|
if (!(symbol.flags & (512 /* ValueModule */ | 1024 /* NamespaceModule */) && !!symbol.exports && !!symbol.exports.size)) {
|
|
55822
55854
|
const props = filter(getPropertiesOfType(type), isNamespaceMember);
|
|
@@ -55994,7 +56026,8 @@ function createTypeChecker(host) {
|
|
|
55994
56026
|
const indexSignatures = serializeIndexSignatures(classType, baseTypes[0]);
|
|
55995
56027
|
context.enclosingDeclaration = oldEnclosing;
|
|
55996
56028
|
addResult(
|
|
55997
|
-
|
|
56029
|
+
setTextRange2(
|
|
56030
|
+
context,
|
|
55998
56031
|
factory.createClassDeclaration(
|
|
55999
56032
|
/*modifiers*/
|
|
56000
56033
|
void 0,
|
|
@@ -56354,7 +56387,13 @@ function createTypeChecker(host) {
|
|
|
56354
56387
|
varName,
|
|
56355
56388
|
/*exclamationToken*/
|
|
56356
56389
|
void 0,
|
|
56357
|
-
serializeTypeForDeclaration(
|
|
56390
|
+
serializeTypeForDeclaration(
|
|
56391
|
+
context,
|
|
56392
|
+
/*declaration*/
|
|
56393
|
+
void 0,
|
|
56394
|
+
typeToSerialize,
|
|
56395
|
+
symbol
|
|
56396
|
+
)
|
|
56358
56397
|
)
|
|
56359
56398
|
], flags)
|
|
56360
56399
|
);
|
|
@@ -56426,7 +56465,8 @@ function createTypeChecker(host) {
|
|
|
56426
56465
|
});
|
|
56427
56466
|
Debug.assert(!!setter);
|
|
56428
56467
|
const paramSymbol = isFunctionLikeDeclaration(setter) ? getSignatureFromDeclaration(setter).parameters[0] : void 0;
|
|
56429
|
-
result.push(
|
|
56468
|
+
result.push(setTextRange2(
|
|
56469
|
+
context,
|
|
56430
56470
|
factory.createSetAccessorDeclaration(
|
|
56431
56471
|
factory.createModifiersFromModifierFlags(flag),
|
|
56432
56472
|
name,
|
|
@@ -56438,7 +56478,13 @@ function createTypeChecker(host) {
|
|
|
56438
56478
|
paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : "value",
|
|
56439
56479
|
/*questionToken*/
|
|
56440
56480
|
void 0,
|
|
56441
|
-
isPrivate ? void 0 : serializeTypeForDeclaration(
|
|
56481
|
+
isPrivate ? void 0 : serializeTypeForDeclaration(
|
|
56482
|
+
context,
|
|
56483
|
+
/*declaration*/
|
|
56484
|
+
void 0,
|
|
56485
|
+
getTypeOfSymbol(p),
|
|
56486
|
+
p
|
|
56487
|
+
)
|
|
56442
56488
|
)],
|
|
56443
56489
|
/*body*/
|
|
56444
56490
|
void 0
|
|
@@ -56448,12 +56494,19 @@ function createTypeChecker(host) {
|
|
|
56448
56494
|
}
|
|
56449
56495
|
if (p.flags & 32768 /* GetAccessor */) {
|
|
56450
56496
|
const isPrivate2 = modifierFlags & 2 /* Private */;
|
|
56451
|
-
result.push(
|
|
56497
|
+
result.push(setTextRange2(
|
|
56498
|
+
context,
|
|
56452
56499
|
factory.createGetAccessorDeclaration(
|
|
56453
56500
|
factory.createModifiersFromModifierFlags(flag),
|
|
56454
56501
|
name,
|
|
56455
56502
|
[],
|
|
56456
|
-
isPrivate2 ? void 0 : serializeTypeForDeclaration(
|
|
56503
|
+
isPrivate2 ? void 0 : serializeTypeForDeclaration(
|
|
56504
|
+
context,
|
|
56505
|
+
/*declaration*/
|
|
56506
|
+
void 0,
|
|
56507
|
+
getTypeOfSymbol(p),
|
|
56508
|
+
p
|
|
56509
|
+
),
|
|
56457
56510
|
/*body*/
|
|
56458
56511
|
void 0
|
|
56459
56512
|
),
|
|
@@ -56462,12 +56515,19 @@ function createTypeChecker(host) {
|
|
|
56462
56515
|
}
|
|
56463
56516
|
return result;
|
|
56464
56517
|
} else if (p.flags & (4 /* Property */ | 3 /* Variable */ | 98304 /* Accessor */)) {
|
|
56465
|
-
return
|
|
56518
|
+
return setTextRange2(
|
|
56519
|
+
context,
|
|
56466
56520
|
createProperty2(
|
|
56467
56521
|
factory.createModifiersFromModifierFlags((isReadonlySymbol(p) ? 8 /* Readonly */ : 0) | flag),
|
|
56468
56522
|
name,
|
|
56469
56523
|
p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,
|
|
56470
|
-
isPrivate ? void 0 : serializeTypeForDeclaration(
|
|
56524
|
+
isPrivate ? void 0 : serializeTypeForDeclaration(
|
|
56525
|
+
context,
|
|
56526
|
+
/*declaration*/
|
|
56527
|
+
void 0,
|
|
56528
|
+
getWriteTypeOfSymbol(p),
|
|
56529
|
+
p
|
|
56530
|
+
),
|
|
56471
56531
|
// TODO: https://github.com/microsoft/TypeScript/pull/32372#discussion_r328386357
|
|
56472
56532
|
// interface members can't have initializers, however class members _can_
|
|
56473
56533
|
/*initializer*/
|
|
@@ -56480,7 +56540,8 @@ function createTypeChecker(host) {
|
|
|
56480
56540
|
const type = getTypeOfSymbol(p);
|
|
56481
56541
|
const signatures = getSignaturesOfType(type, 0 /* Call */);
|
|
56482
56542
|
if (flag & 2 /* Private */) {
|
|
56483
|
-
return
|
|
56543
|
+
return setTextRange2(
|
|
56544
|
+
context,
|
|
56484
56545
|
createProperty2(
|
|
56485
56546
|
factory.createModifiersFromModifierFlags((isReadonlySymbol(p) ? 8 /* Readonly */ : 0) | flag),
|
|
56486
56547
|
name,
|
|
@@ -56506,7 +56567,7 @@ function createTypeChecker(host) {
|
|
|
56506
56567
|
}
|
|
56507
56568
|
);
|
|
56508
56569
|
const location = sig.declaration && isPrototypePropertyAssignment(sig.declaration.parent) ? sig.declaration.parent : sig.declaration;
|
|
56509
|
-
results2.push(
|
|
56570
|
+
results2.push(setTextRange2(context, decl, location));
|
|
56510
56571
|
}
|
|
56511
56572
|
return results2;
|
|
56512
56573
|
}
|
|
@@ -56562,7 +56623,8 @@ function createTypeChecker(host) {
|
|
|
56562
56623
|
}
|
|
56563
56624
|
}
|
|
56564
56625
|
if (privateProtected) {
|
|
56565
|
-
return [
|
|
56626
|
+
return [setTextRange2(
|
|
56627
|
+
context,
|
|
56566
56628
|
factory.createConstructorDeclaration(
|
|
56567
56629
|
factory.createModifiersFromModifierFlags(privateProtected),
|
|
56568
56630
|
/*parameters*/
|
|
@@ -56577,7 +56639,7 @@ function createTypeChecker(host) {
|
|
|
56577
56639
|
const results2 = [];
|
|
56578
56640
|
for (const sig of signatures) {
|
|
56579
56641
|
const decl = signatureToSignatureDeclarationHelper(sig, outputKind, context);
|
|
56580
|
-
results2.push(
|
|
56642
|
+
results2.push(setTextRange2(context, decl, sig.declaration));
|
|
56581
56643
|
}
|
|
56582
56644
|
return results2;
|
|
56583
56645
|
}
|
|
@@ -60260,12 +60322,10 @@ function createTypeChecker(host) {
|
|
|
60260
60322
|
const target = type.target ?? type;
|
|
60261
60323
|
const typeVariable = getHomomorphicTypeVariable(target);
|
|
60262
60324
|
if (typeVariable && !target.declaration.nameType) {
|
|
60263
|
-
const
|
|
60264
|
-
|
|
60265
|
-
|
|
60266
|
-
|
|
60267
|
-
return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper));
|
|
60268
|
-
}
|
|
60325
|
+
const modifiersType = getModifiersTypeFromMappedType(type);
|
|
60326
|
+
const baseConstraint = isGenericMappedType(modifiersType) ? getApparentTypeOfMappedType(modifiersType) : getBaseConstraintOfType(modifiersType);
|
|
60327
|
+
if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) {
|
|
60328
|
+
return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper));
|
|
60269
60329
|
}
|
|
60270
60330
|
}
|
|
60271
60331
|
return type;
|
|
@@ -65695,7 +65755,7 @@ function createTypeChecker(host) {
|
|
|
65695
65755
|
const sourceTypePredicate = getTypePredicateOfSignature(source);
|
|
65696
65756
|
if (sourceTypePredicate) {
|
|
65697
65757
|
result &= compareTypePredicateRelatedTo(sourceTypePredicate, targetTypePredicate, reportErrors2, errorReporter, compareTypes);
|
|
65698
|
-
} else if (isIdentifierTypePredicate(targetTypePredicate)) {
|
|
65758
|
+
} else if (isIdentifierTypePredicate(targetTypePredicate) || isThisTypePredicate(targetTypePredicate)) {
|
|
65699
65759
|
if (reportErrors2) {
|
|
65700
65760
|
errorReporter(Diagnostics.Signature_0_must_be_a_type_predicate, signatureToString(source));
|
|
65701
65761
|
}
|
|
@@ -88079,9 +88139,10 @@ function createTypeChecker(host) {
|
|
|
88079
88139
|
return false;
|
|
88080
88140
|
}
|
|
88081
88141
|
function declaredParameterTypeContainsUndefined(parameter) {
|
|
88082
|
-
|
|
88142
|
+
const typeNode = getNonlocalEffectiveTypeAnnotationNode(parameter);
|
|
88143
|
+
if (!typeNode)
|
|
88083
88144
|
return false;
|
|
88084
|
-
const type = getTypeFromTypeNode(
|
|
88145
|
+
const type = getTypeFromTypeNode(typeNode);
|
|
88085
88146
|
return containsUndefinedType(type);
|
|
88086
88147
|
}
|
|
88087
88148
|
function requiresAddingImplicitUndefined(parameter) {
|
|
@@ -88091,7 +88152,7 @@ function createTypeChecker(host) {
|
|
|
88091
88152
|
return !!strictNullChecks && !isOptionalParameter(parameter) && !isJSDocParameterTag(parameter) && !!parameter.initializer && !hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
|
|
88092
88153
|
}
|
|
88093
88154
|
function isOptionalUninitializedParameterProperty(parameter) {
|
|
88094
|
-
return strictNullChecks && isOptionalParameter(parameter) && !parameter.initializer && hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
|
|
88155
|
+
return strictNullChecks && isOptionalParameter(parameter) && (isJSDocParameterTag(parameter) || !parameter.initializer) && hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
|
|
88095
88156
|
}
|
|
88096
88157
|
function isExpandoFunctionDeclaration(node) {
|
|
88097
88158
|
const declaration = getParseTreeNode(node, isFunctionDeclaration);
|
|
@@ -88241,14 +88302,14 @@ function createTypeChecker(host) {
|
|
|
88241
88302
|
return 11 /* ObjectType */;
|
|
88242
88303
|
}
|
|
88243
88304
|
}
|
|
88244
|
-
function createTypeOfDeclaration(declarationIn, enclosingDeclaration, flags, tracker
|
|
88305
|
+
function createTypeOfDeclaration(declarationIn, enclosingDeclaration, flags, tracker) {
|
|
88245
88306
|
const declaration = getParseTreeNode(declarationIn, isVariableLikeOrAccessor);
|
|
88246
88307
|
if (!declaration) {
|
|
88247
88308
|
return factory.createToken(133 /* AnyKeyword */);
|
|
88248
88309
|
}
|
|
88249
88310
|
const symbol = getSymbolOfDeclaration(declaration);
|
|
88250
88311
|
const type = symbol && !(symbol.flags & (2048 /* TypeLiteral */ | 131072 /* Signature */)) ? getWidenedLiteralType(getTypeOfSymbol(symbol)) : errorType;
|
|
88251
|
-
return nodeBuilder.serializeTypeForDeclaration(type, symbol,
|
|
88312
|
+
return nodeBuilder.serializeTypeForDeclaration(declaration, type, symbol, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, tracker);
|
|
88252
88313
|
}
|
|
88253
88314
|
function isDeclarationWithPossibleInnerTypeNodeReuse(declaration) {
|
|
88254
88315
|
return isFunctionLike(declaration) || isExportAssignment(declaration) || isVariableLike(declaration);
|
|
@@ -114088,7 +114149,7 @@ function transformDeclarations(context) {
|
|
|
114088
114149
|
case 172 /* PropertyDeclaration */:
|
|
114089
114150
|
case 208 /* BindingElement */:
|
|
114090
114151
|
case 260 /* VariableDeclaration */:
|
|
114091
|
-
typeNode = resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker
|
|
114152
|
+
typeNode = resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, symbolTracker);
|
|
114092
114153
|
break;
|
|
114093
114154
|
case 262 /* FunctionDeclaration */:
|
|
114094
114155
|
case 180 /* ConstructSignature */:
|
|
@@ -181118,6 +181179,13 @@ var ConfiguredProject2 = class extends Project3 {
|
|
|
181118
181179
|
this.compilerHost = void 0;
|
|
181119
181180
|
this.projectService.sendProjectLoadingFinishEvent(this);
|
|
181120
181181
|
this.projectService.sendProjectTelemetry(this);
|
|
181182
|
+
if (!this.skipConfigDiagEvent && !result) {
|
|
181183
|
+
this.projectService.sendConfigFileDiagEvent(
|
|
181184
|
+
this,
|
|
181185
|
+
/*triggerFile*/
|
|
181186
|
+
void 0
|
|
181187
|
+
);
|
|
181188
|
+
}
|
|
181121
181189
|
return result;
|
|
181122
181190
|
}
|
|
181123
181191
|
/** @internal */
|
|
@@ -181572,7 +181640,12 @@ function projectContainsInfoDirectly(project, info) {
|
|
|
181572
181640
|
}
|
|
181573
181641
|
function updateProjectIfDirty(project) {
|
|
181574
181642
|
project.invalidateResolutionsOfFailedLookupLocations();
|
|
181575
|
-
return project.dirty && project.updateGraph();
|
|
181643
|
+
return project.dirty && !project.updateGraph();
|
|
181644
|
+
}
|
|
181645
|
+
function updateConfiguredProjectWithoutConfigDiagIfDirty(project) {
|
|
181646
|
+
project.skipConfigDiagEvent = true;
|
|
181647
|
+
updateProjectIfDirty(project);
|
|
181648
|
+
project.skipConfigDiagEvent = void 0;
|
|
181576
181649
|
}
|
|
181577
181650
|
function setProjectOptionsUsed(project) {
|
|
181578
181651
|
if (isConfiguredProject(project)) {
|
|
@@ -182864,6 +182937,7 @@ var _ProjectService = class _ProjectService {
|
|
|
182864
182937
|
/** @internal */
|
|
182865
182938
|
createLoadAndUpdateConfiguredProject(configFileName, reason) {
|
|
182866
182939
|
const project = this.createAndLoadConfiguredProject(configFileName, reason);
|
|
182940
|
+
project.skipConfigDiagEvent = true;
|
|
182867
182941
|
project.updateGraph();
|
|
182868
182942
|
return project;
|
|
182869
182943
|
}
|
|
@@ -183156,6 +183230,7 @@ var _ProjectService = class _ProjectService {
|
|
|
183156
183230
|
const configFileName = project.getConfigFilePath();
|
|
183157
183231
|
this.logger.info(`${isInitialLoad ? "Loading" : "Reloading"} configured project ${configFileName}`);
|
|
183158
183232
|
this.loadConfiguredProject(project, reason);
|
|
183233
|
+
project.skipConfigDiagEvent = true;
|
|
183159
183234
|
project.updateGraph();
|
|
183160
183235
|
this.sendConfigFileDiagEvent(project, configFileName);
|
|
183161
183236
|
}
|
|
@@ -183169,16 +183244,20 @@ var _ProjectService = class _ProjectService {
|
|
|
183169
183244
|
project.cleanupProgram();
|
|
183170
183245
|
project.markAsDirty();
|
|
183171
183246
|
}
|
|
183247
|
+
/** @internal */
|
|
183172
183248
|
sendConfigFileDiagEvent(project, triggerFile) {
|
|
183173
183249
|
if (!this.eventHandler || this.suppressDiagnosticEvents) {
|
|
183174
183250
|
return;
|
|
183175
183251
|
}
|
|
183176
183252
|
const diagnostics = project.getLanguageService().getCompilerOptionsDiagnostics();
|
|
183177
183253
|
diagnostics.push(...project.getAllProjectErrors());
|
|
183254
|
+
if (!triggerFile && !!diagnostics.length === !!project.hasConfigFileDiagnostics)
|
|
183255
|
+
return;
|
|
183256
|
+
project.hasConfigFileDiagnostics = !!diagnostics.length;
|
|
183178
183257
|
this.eventHandler(
|
|
183179
183258
|
{
|
|
183180
183259
|
eventName: ConfigFileDiagEvent,
|
|
183181
|
-
data: { configFileName: project.getConfigFilePath(), diagnostics, triggerFile }
|
|
183260
|
+
data: { configFileName: project.getConfigFilePath(), diagnostics, triggerFile: triggerFile ?? project.getConfigFilePath() }
|
|
183182
183261
|
}
|
|
183183
183262
|
);
|
|
183184
183263
|
}
|
|
@@ -183968,7 +184047,7 @@ Dynamic files must always be opened with service's current directory or service
|
|
|
183968
184047
|
project = this.createLoadAndUpdateConfiguredProject(configFileName, `Creating possible configured project for ${info.fileName} to open`);
|
|
183969
184048
|
defaultConfigProjectIsCreated = true;
|
|
183970
184049
|
} else {
|
|
183971
|
-
|
|
184050
|
+
updateConfiguredProjectWithoutConfigDiagIfDirty(project);
|
|
183972
184051
|
}
|
|
183973
184052
|
projectForConfigFileDiag = project.containsScriptInfo(info) ? project : void 0;
|
|
183974
184053
|
retainProjects = project;
|
|
@@ -183977,7 +184056,7 @@ Dynamic files must always be opened with service's current directory or service
|
|
|
183977
184056
|
project,
|
|
183978
184057
|
info.path,
|
|
183979
184058
|
(child) => {
|
|
183980
|
-
|
|
184059
|
+
updateConfiguredProjectWithoutConfigDiagIfDirty(child);
|
|
183981
184060
|
if (!isArray(retainProjects)) {
|
|
183982
184061
|
retainProjects = [project, child];
|
|
183983
184062
|
} else {
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "typescript",
|
|
3
3
|
"author": "Microsoft Corp.",
|
|
4
4
|
"homepage": "https://www.typescriptlang.org/",
|
|
5
|
-
"version": "5.5.0-dev.
|
|
5
|
+
"version": "5.5.0-dev.20240409",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"description": "TypeScript is a language for application scale JavaScript development",
|
|
8
8
|
"keywords": [
|
|
@@ -111,5 +111,5 @@
|
|
|
111
111
|
"node": "20.1.0",
|
|
112
112
|
"npm": "8.19.4"
|
|
113
113
|
},
|
|
114
|
-
"gitHead": "
|
|
114
|
+
"gitHead": "7a4cbfa7ea8c6b7a09a84d04bd7e45c815e8e0d1"
|
|
115
115
|
}
|