typescript 5.4.0-dev.20240104 → 5.4.0-dev.20240106
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 +158 -68
- package/lib/tsserver.js +178 -63
- package/lib/typescript.js +178 -63
- package/lib/typingsInstaller.js +1 -1
- package/package.json +2 -2
package/lib/typescript.js
CHANGED
|
@@ -35,7 +35,7 @@ var ts = (() => {
|
|
|
35
35
|
"src/compiler/corePublic.ts"() {
|
|
36
36
|
"use strict";
|
|
37
37
|
versionMajorMinor = "5.4";
|
|
38
|
-
version = `${versionMajorMinor}.0-dev.
|
|
38
|
+
version = `${versionMajorMinor}.0-dev.20240106`;
|
|
39
39
|
Comparison = /* @__PURE__ */ ((Comparison3) => {
|
|
40
40
|
Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
|
|
41
41
|
Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
|
|
@@ -96262,22 +96262,49 @@ ${lanes.join("\n")}
|
|
|
96262
96262
|
}
|
|
96263
96263
|
function createClassInfo(node) {
|
|
96264
96264
|
const metadataReference = factory2.createUniqueName("_metadata", 16 /* Optimistic */ | 32 /* FileLevel */);
|
|
96265
|
-
let
|
|
96266
|
-
let
|
|
96265
|
+
let instanceMethodExtraInitializersName;
|
|
96266
|
+
let staticMethodExtraInitializersName;
|
|
96267
96267
|
let hasStaticInitializers = false;
|
|
96268
96268
|
let hasNonAmbientInstanceFields = false;
|
|
96269
96269
|
let hasStaticPrivateClassElements = false;
|
|
96270
|
+
let classThis2;
|
|
96271
|
+
let pendingStaticInitializers;
|
|
96272
|
+
let pendingInstanceInitializers;
|
|
96273
|
+
if (nodeIsDecorated(
|
|
96274
|
+
/*useLegacyDecorators*/
|
|
96275
|
+
false,
|
|
96276
|
+
node
|
|
96277
|
+
)) {
|
|
96278
|
+
const needsUniqueClassThis = some(node.members, (member) => (isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member));
|
|
96279
|
+
classThis2 = factory2.createUniqueName(
|
|
96280
|
+
"_classThis",
|
|
96281
|
+
needsUniqueClassThis ? 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */ : 16 /* Optimistic */ | 32 /* FileLevel */
|
|
96282
|
+
);
|
|
96283
|
+
}
|
|
96270
96284
|
for (const member of node.members) {
|
|
96271
|
-
if (
|
|
96285
|
+
if (isMethodOrAccessor(member) && nodeOrChildIsDecorated(
|
|
96272
96286
|
/*useLegacyDecorators*/
|
|
96273
96287
|
false,
|
|
96274
96288
|
member,
|
|
96275
96289
|
node
|
|
96276
96290
|
)) {
|
|
96277
96291
|
if (hasStaticModifier(member)) {
|
|
96278
|
-
|
|
96292
|
+
if (!staticMethodExtraInitializersName) {
|
|
96293
|
+
staticMethodExtraInitializersName = factory2.createUniqueName("_staticExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */);
|
|
96294
|
+
const initializer = emitHelpers().createRunInitializersHelper(classThis2 ?? factory2.createThis(), staticMethodExtraInitializersName);
|
|
96295
|
+
setSourceMapRange(initializer, node.name ?? moveRangePastDecorators(node));
|
|
96296
|
+
pendingStaticInitializers ?? (pendingStaticInitializers = []);
|
|
96297
|
+
pendingStaticInitializers.push(initializer);
|
|
96298
|
+
}
|
|
96279
96299
|
} else {
|
|
96280
|
-
|
|
96300
|
+
if (!instanceMethodExtraInitializersName) {
|
|
96301
|
+
instanceMethodExtraInitializersName = factory2.createUniqueName("_instanceExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */);
|
|
96302
|
+
const initializer = emitHelpers().createRunInitializersHelper(factory2.createThis(), instanceMethodExtraInitializersName);
|
|
96303
|
+
setSourceMapRange(initializer, node.name ?? moveRangePastDecorators(node));
|
|
96304
|
+
pendingInstanceInitializers ?? (pendingInstanceInitializers = []);
|
|
96305
|
+
pendingInstanceInitializers.push(initializer);
|
|
96306
|
+
}
|
|
96307
|
+
instanceMethodExtraInitializersName ?? (instanceMethodExtraInitializersName = factory2.createUniqueName("_instanceExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */));
|
|
96281
96308
|
}
|
|
96282
96309
|
}
|
|
96283
96310
|
if (isClassStaticBlockDeclaration(member)) {
|
|
@@ -96294,18 +96321,21 @@ ${lanes.join("\n")}
|
|
|
96294
96321
|
if ((isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member)) {
|
|
96295
96322
|
hasStaticPrivateClassElements = true;
|
|
96296
96323
|
}
|
|
96297
|
-
if (
|
|
96324
|
+
if (staticMethodExtraInitializersName && instanceMethodExtraInitializersName && hasStaticInitializers && hasNonAmbientInstanceFields && hasStaticPrivateClassElements) {
|
|
96298
96325
|
break;
|
|
96299
96326
|
}
|
|
96300
96327
|
}
|
|
96301
96328
|
return {
|
|
96302
96329
|
class: node,
|
|
96330
|
+
classThis: classThis2,
|
|
96303
96331
|
metadataReference,
|
|
96304
|
-
|
|
96305
|
-
|
|
96332
|
+
instanceMethodExtraInitializersName,
|
|
96333
|
+
staticMethodExtraInitializersName,
|
|
96306
96334
|
hasStaticInitializers,
|
|
96307
96335
|
hasNonAmbientInstanceFields,
|
|
96308
|
-
hasStaticPrivateClassElements
|
|
96336
|
+
hasStaticPrivateClassElements,
|
|
96337
|
+
pendingStaticInitializers,
|
|
96338
|
+
pendingInstanceInitializers
|
|
96309
96339
|
};
|
|
96310
96340
|
}
|
|
96311
96341
|
function transformClassLike(node) {
|
|
@@ -96338,11 +96368,7 @@ ${lanes.join("\n")}
|
|
|
96338
96368
|
classInfo2.classDecoratorsName = factory2.createUniqueName("_classDecorators", 16 /* Optimistic */ | 32 /* FileLevel */);
|
|
96339
96369
|
classInfo2.classDescriptorName = factory2.createUniqueName("_classDescriptor", 16 /* Optimistic */ | 32 /* FileLevel */);
|
|
96340
96370
|
classInfo2.classExtraInitializersName = factory2.createUniqueName("_classExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */);
|
|
96341
|
-
|
|
96342
|
-
classInfo2.classThis = factory2.createUniqueName(
|
|
96343
|
-
"_classThis",
|
|
96344
|
-
needsUniqueClassThis ? 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */ : 16 /* Optimistic */ | 32 /* FileLevel */
|
|
96345
|
-
);
|
|
96371
|
+
Debug.assertIsDefined(classInfo2.classThis);
|
|
96346
96372
|
classDefinitionStatements.push(
|
|
96347
96373
|
createLet(classInfo2.classDecoratorsName, factory2.createArrayLiteralExpression(classDecorators)),
|
|
96348
96374
|
createLet(classInfo2.classDescriptorName),
|
|
@@ -96374,7 +96400,9 @@ ${lanes.join("\n")}
|
|
|
96374
96400
|
const renamedClassThis = classInfo2.classThis ?? factory2.createThis();
|
|
96375
96401
|
enterClass(classInfo2);
|
|
96376
96402
|
leadingBlockStatements = append(leadingBlockStatements, createMetadata(classInfo2.metadataReference, classInfo2.classSuper));
|
|
96377
|
-
let members =
|
|
96403
|
+
let members = node.members;
|
|
96404
|
+
members = visitNodes2(members, (node2) => isConstructorDeclaration(node2) ? node2 : classElementVisitor(node2), isClassElement);
|
|
96405
|
+
members = visitNodes2(members, (node2) => isConstructorDeclaration(node2) ? classElementVisitor(node2) : node2, isClassElement);
|
|
96378
96406
|
if (pendingExpressions) {
|
|
96379
96407
|
let outerThis;
|
|
96380
96408
|
for (let expression of pendingExpressions) {
|
|
@@ -96399,7 +96427,7 @@ ${lanes.join("\n")}
|
|
|
96399
96427
|
pendingExpressions = void 0;
|
|
96400
96428
|
}
|
|
96401
96429
|
exitClass();
|
|
96402
|
-
if (classInfo2.
|
|
96430
|
+
if (some(classInfo2.pendingInstanceInitializers) && !getFirstConstructorWithBody(node)) {
|
|
96403
96431
|
const initializerStatements = prepareConstructor(node, classInfo2);
|
|
96404
96432
|
if (initializerStatements) {
|
|
96405
96433
|
const extendsClauseElement = getEffectiveBaseTypeNode(node);
|
|
@@ -96429,14 +96457,14 @@ ${lanes.join("\n")}
|
|
|
96429
96457
|
);
|
|
96430
96458
|
}
|
|
96431
96459
|
}
|
|
96432
|
-
if (classInfo2.
|
|
96460
|
+
if (classInfo2.staticMethodExtraInitializersName) {
|
|
96433
96461
|
classDefinitionStatements.push(
|
|
96434
|
-
createLet(classInfo2.
|
|
96462
|
+
createLet(classInfo2.staticMethodExtraInitializersName, factory2.createArrayLiteralExpression())
|
|
96435
96463
|
);
|
|
96436
96464
|
}
|
|
96437
|
-
if (classInfo2.
|
|
96465
|
+
if (classInfo2.instanceMethodExtraInitializersName) {
|
|
96438
96466
|
classDefinitionStatements.push(
|
|
96439
|
-
createLet(classInfo2.
|
|
96467
|
+
createLet(classInfo2.instanceMethodExtraInitializersName, factory2.createArrayLiteralExpression())
|
|
96440
96468
|
);
|
|
96441
96469
|
}
|
|
96442
96470
|
if (classInfo2.memberInfos) {
|
|
@@ -96446,6 +96474,9 @@ ${lanes.join("\n")}
|
|
|
96446
96474
|
if (memberInfo.memberInitializersName) {
|
|
96447
96475
|
classDefinitionStatements.push(createLet(memberInfo.memberInitializersName, factory2.createArrayLiteralExpression()));
|
|
96448
96476
|
}
|
|
96477
|
+
if (memberInfo.memberExtraInitializersName) {
|
|
96478
|
+
classDefinitionStatements.push(createLet(memberInfo.memberExtraInitializersName, factory2.createArrayLiteralExpression()));
|
|
96479
|
+
}
|
|
96449
96480
|
if (memberInfo.memberDescriptorName) {
|
|
96450
96481
|
classDefinitionStatements.push(createLet(memberInfo.memberDescriptorName));
|
|
96451
96482
|
}
|
|
@@ -96459,6 +96490,9 @@ ${lanes.join("\n")}
|
|
|
96459
96490
|
if (memberInfo.memberInitializersName) {
|
|
96460
96491
|
classDefinitionStatements.push(createLet(memberInfo.memberInitializersName, factory2.createArrayLiteralExpression()));
|
|
96461
96492
|
}
|
|
96493
|
+
if (memberInfo.memberExtraInitializersName) {
|
|
96494
|
+
classDefinitionStatements.push(createLet(memberInfo.memberExtraInitializersName, factory2.createArrayLiteralExpression()));
|
|
96495
|
+
}
|
|
96462
96496
|
if (memberInfo.memberDescriptorName) {
|
|
96463
96497
|
classDefinitionStatements.push(createLet(memberInfo.memberDescriptorName));
|
|
96464
96498
|
}
|
|
@@ -96492,11 +96526,13 @@ ${lanes.join("\n")}
|
|
|
96492
96526
|
leadingBlockStatements.push(factory2.createExpressionStatement(classReferenceAssignment));
|
|
96493
96527
|
}
|
|
96494
96528
|
leadingBlockStatements.push(createSymbolMetadata(renamedClassThis, classInfo2.metadataReference));
|
|
96495
|
-
if (classInfo2.
|
|
96496
|
-
const
|
|
96497
|
-
|
|
96498
|
-
|
|
96499
|
-
|
|
96529
|
+
if (some(classInfo2.pendingStaticInitializers)) {
|
|
96530
|
+
for (const initializer of classInfo2.pendingStaticInitializers) {
|
|
96531
|
+
const initializerStatement = factory2.createExpressionStatement(initializer);
|
|
96532
|
+
setSourceMapRange(initializerStatement, getSourceMapRange(initializer));
|
|
96533
|
+
trailingBlockStatements = append(trailingBlockStatements, initializerStatement);
|
|
96534
|
+
}
|
|
96535
|
+
classInfo2.pendingStaticInitializers = void 0;
|
|
96500
96536
|
}
|
|
96501
96537
|
if (classInfo2.classExtraInitializersName) {
|
|
96502
96538
|
const runClassInitializersHelper = emitHelpers().createRunInitializersHelper(renamedClassThis, classInfo2.classExtraInitializersName);
|
|
@@ -96727,16 +96763,14 @@ ${lanes.join("\n")}
|
|
|
96727
96763
|
}
|
|
96728
96764
|
}
|
|
96729
96765
|
function prepareConstructor(_parent, classInfo2) {
|
|
96730
|
-
if (classInfo2.
|
|
96766
|
+
if (some(classInfo2.pendingInstanceInitializers)) {
|
|
96731
96767
|
const statements = [];
|
|
96732
96768
|
statements.push(
|
|
96733
96769
|
factory2.createExpressionStatement(
|
|
96734
|
-
|
|
96735
|
-
factory2.createThis(),
|
|
96736
|
-
classInfo2.instanceExtraInitializersName
|
|
96737
|
-
)
|
|
96770
|
+
factory2.inlineExpressions(classInfo2.pendingInstanceInitializers)
|
|
96738
96771
|
)
|
|
96739
96772
|
);
|
|
96773
|
+
classInfo2.pendingInstanceInitializers = void 0;
|
|
96740
96774
|
return statements;
|
|
96741
96775
|
}
|
|
96742
96776
|
}
|
|
@@ -96816,6 +96850,7 @@ ${lanes.join("\n")}
|
|
|
96816
96850
|
let referencedName;
|
|
96817
96851
|
let name;
|
|
96818
96852
|
let initializersName;
|
|
96853
|
+
let extraInitializersName;
|
|
96819
96854
|
let thisArg;
|
|
96820
96855
|
let descriptorName;
|
|
96821
96856
|
if (!classInfo2) {
|
|
@@ -96873,20 +96908,22 @@ ${lanes.join("\n")}
|
|
|
96873
96908
|
},
|
|
96874
96909
|
metadata: classInfo2.metadataReference
|
|
96875
96910
|
};
|
|
96876
|
-
const extraInitializers = isStatic(member) ? classInfo2.staticExtraInitializersName ?? (classInfo2.staticExtraInitializersName = factory2.createUniqueName("_staticExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */)) : classInfo2.instanceExtraInitializersName ?? (classInfo2.instanceExtraInitializersName = factory2.createUniqueName("_instanceExtraInitializers", 16 /* Optimistic */ | 32 /* FileLevel */));
|
|
96877
96911
|
if (isMethodOrAccessor(member)) {
|
|
96912
|
+
const methodExtraInitializersName = isStatic(member) ? classInfo2.staticMethodExtraInitializersName : classInfo2.instanceMethodExtraInitializersName;
|
|
96913
|
+
Debug.assertIsDefined(methodExtraInitializersName);
|
|
96878
96914
|
let descriptor;
|
|
96879
96915
|
if (isPrivateIdentifierClassElementDeclaration(member) && createDescriptor) {
|
|
96880
96916
|
descriptor = createDescriptor(member, visitNodes2(modifiers, (node) => tryCast(node, isAsyncModifier), isModifier));
|
|
96881
96917
|
memberInfo.memberDescriptorName = descriptorName = createHelperVariable(member, "descriptor");
|
|
96882
96918
|
descriptor = factory2.createAssignment(descriptorName, descriptor);
|
|
96883
96919
|
}
|
|
96884
|
-
const esDecorateExpression = emitHelpers().createESDecorateHelper(factory2.createThis(), descriptor ?? factory2.createNull(), memberDecoratorsName, context2, factory2.createNull(),
|
|
96920
|
+
const esDecorateExpression = emitHelpers().createESDecorateHelper(factory2.createThis(), descriptor ?? factory2.createNull(), memberDecoratorsName, context2, factory2.createNull(), methodExtraInitializersName);
|
|
96885
96921
|
const esDecorateStatement = factory2.createExpressionStatement(esDecorateExpression);
|
|
96886
96922
|
setSourceMapRange(esDecorateStatement, moveRangePastDecorators(member));
|
|
96887
96923
|
statements.push(esDecorateStatement);
|
|
96888
96924
|
} else if (isPropertyDeclaration(member)) {
|
|
96889
96925
|
initializersName = memberInfo.memberInitializersName ?? (memberInfo.memberInitializersName = createHelperVariable(member, "initializers"));
|
|
96926
|
+
extraInitializersName = memberInfo.memberExtraInitializersName ?? (memberInfo.memberExtraInitializersName = createHelperVariable(member, "extraInitializers"));
|
|
96890
96927
|
if (isStatic(member)) {
|
|
96891
96928
|
thisArg = classInfo2.classThis;
|
|
96892
96929
|
}
|
|
@@ -96906,7 +96943,7 @@ ${lanes.join("\n")}
|
|
|
96906
96943
|
memberDecoratorsName,
|
|
96907
96944
|
context2,
|
|
96908
96945
|
initializersName,
|
|
96909
|
-
|
|
96946
|
+
extraInitializersName
|
|
96910
96947
|
);
|
|
96911
96948
|
const esDecorateStatement = factory2.createExpressionStatement(esDecorateExpression);
|
|
96912
96949
|
setSourceMapRange(esDecorateStatement, moveRangePastDecorators(member));
|
|
@@ -96921,7 +96958,7 @@ ${lanes.join("\n")}
|
|
|
96921
96958
|
if (!some(modifiers) && (isMethodDeclaration(member) || isPropertyDeclaration(member))) {
|
|
96922
96959
|
setEmitFlags(name, 1024 /* NoLeadingComments */);
|
|
96923
96960
|
}
|
|
96924
|
-
return { modifiers, referencedName, name, initializersName, descriptorName, thisArg };
|
|
96961
|
+
return { modifiers, referencedName, name, initializersName, extraInitializersName, descriptorName, thisArg };
|
|
96925
96962
|
}
|
|
96926
96963
|
function visitMethodDeclaration(node) {
|
|
96927
96964
|
enterClassElement(node);
|
|
@@ -96994,9 +97031,27 @@ ${lanes.join("\n")}
|
|
|
96994
97031
|
result = visitEachChild(node, visitor, context);
|
|
96995
97032
|
classThis = savedClassThis;
|
|
96996
97033
|
} else {
|
|
96997
|
-
|
|
97034
|
+
node = visitEachChild(node, visitor, context);
|
|
97035
|
+
result = node;
|
|
97036
|
+
if (classInfo) {
|
|
96998
97037
|
classInfo.hasStaticInitializers = true;
|
|
96999
|
-
|
|
97038
|
+
if (some(classInfo.pendingStaticInitializers)) {
|
|
97039
|
+
const statements = [];
|
|
97040
|
+
for (const initializer of classInfo.pendingStaticInitializers) {
|
|
97041
|
+
const initializerStatement = factory2.createExpressionStatement(initializer);
|
|
97042
|
+
setSourceMapRange(initializerStatement, getSourceMapRange(initializer));
|
|
97043
|
+
statements.push(initializerStatement);
|
|
97044
|
+
}
|
|
97045
|
+
const body = factory2.createBlock(
|
|
97046
|
+
statements,
|
|
97047
|
+
/*multiLine*/
|
|
97048
|
+
true
|
|
97049
|
+
);
|
|
97050
|
+
const staticBlock = factory2.createClassStaticBlockDeclaration(body);
|
|
97051
|
+
result = [staticBlock, result];
|
|
97052
|
+
classInfo.pendingStaticInitializers = void 0;
|
|
97053
|
+
}
|
|
97054
|
+
}
|
|
97000
97055
|
}
|
|
97001
97056
|
exitClassElement();
|
|
97002
97057
|
return result;
|
|
@@ -97007,7 +97062,7 @@ ${lanes.join("\n")}
|
|
|
97007
97062
|
}
|
|
97008
97063
|
enterClassElement(node);
|
|
97009
97064
|
Debug.assert(!isAmbientPropertyDeclaration(node), "Not yet implemented.");
|
|
97010
|
-
const { modifiers, name, initializersName, descriptorName, thisArg } = partialTransformClassElement(node, classInfo, hasAccessorModifier(node) ? createAccessorPropertyDescriptorObject : void 0);
|
|
97065
|
+
const { modifiers, name, initializersName, extraInitializersName, descriptorName, thisArg } = partialTransformClassElement(node, classInfo, hasAccessorModifier(node) ? createAccessorPropertyDescriptorObject : void 0);
|
|
97011
97066
|
startLexicalEnvironment();
|
|
97012
97067
|
let initializer = visitNode(node.initializer, visitor, isExpression);
|
|
97013
97068
|
if (initializersName) {
|
|
@@ -97017,17 +97072,6 @@ ${lanes.join("\n")}
|
|
|
97017
97072
|
initializer ?? factory2.createVoidZero()
|
|
97018
97073
|
);
|
|
97019
97074
|
}
|
|
97020
|
-
if (!isStatic(node) && (classInfo == null ? void 0 : classInfo.instanceExtraInitializersName) && !(classInfo == null ? void 0 : classInfo.hasInjectedInstanceInitializers)) {
|
|
97021
|
-
classInfo.hasInjectedInstanceInitializers = true;
|
|
97022
|
-
initializer ?? (initializer = factory2.createVoidZero());
|
|
97023
|
-
initializer = factory2.createParenthesizedExpression(factory2.createComma(
|
|
97024
|
-
emitHelpers().createRunInitializersHelper(
|
|
97025
|
-
factory2.createThis(),
|
|
97026
|
-
classInfo.instanceExtraInitializersName
|
|
97027
|
-
),
|
|
97028
|
-
initializer
|
|
97029
|
-
));
|
|
97030
|
-
}
|
|
97031
97075
|
if (isStatic(node) && classInfo && initializer) {
|
|
97032
97076
|
classInfo.hasStaticInitializers = true;
|
|
97033
97077
|
}
|
|
@@ -97038,6 +97082,41 @@ ${lanes.join("\n")}
|
|
|
97038
97082
|
factory2.createReturnStatement(initializer)
|
|
97039
97083
|
]);
|
|
97040
97084
|
}
|
|
97085
|
+
if (classInfo) {
|
|
97086
|
+
if (isStatic(node)) {
|
|
97087
|
+
initializer = injectPendingInitializers(
|
|
97088
|
+
classInfo,
|
|
97089
|
+
/*isStatic*/
|
|
97090
|
+
true,
|
|
97091
|
+
initializer
|
|
97092
|
+
);
|
|
97093
|
+
if (extraInitializersName) {
|
|
97094
|
+
classInfo.pendingStaticInitializers ?? (classInfo.pendingStaticInitializers = []);
|
|
97095
|
+
classInfo.pendingStaticInitializers.push(
|
|
97096
|
+
emitHelpers().createRunInitializersHelper(
|
|
97097
|
+
classInfo.classThis ?? factory2.createThis(),
|
|
97098
|
+
extraInitializersName
|
|
97099
|
+
)
|
|
97100
|
+
);
|
|
97101
|
+
}
|
|
97102
|
+
} else {
|
|
97103
|
+
initializer = injectPendingInitializers(
|
|
97104
|
+
classInfo,
|
|
97105
|
+
/*isStatic*/
|
|
97106
|
+
false,
|
|
97107
|
+
initializer
|
|
97108
|
+
);
|
|
97109
|
+
if (extraInitializersName) {
|
|
97110
|
+
classInfo.pendingInstanceInitializers ?? (classInfo.pendingInstanceInitializers = []);
|
|
97111
|
+
classInfo.pendingInstanceInitializers.push(
|
|
97112
|
+
emitHelpers().createRunInitializersHelper(
|
|
97113
|
+
factory2.createThis(),
|
|
97114
|
+
extraInitializersName
|
|
97115
|
+
)
|
|
97116
|
+
);
|
|
97117
|
+
}
|
|
97118
|
+
}
|
|
97119
|
+
}
|
|
97041
97120
|
exitClassElement();
|
|
97042
97121
|
if (hasAccessorModifier(node) && descriptorName) {
|
|
97043
97122
|
const commentRange = getCommentRange(node);
|
|
@@ -97452,19 +97531,41 @@ ${lanes.join("\n")}
|
|
|
97452
97531
|
const expression = visitNode(node.expression, visitorFunc, isExpression);
|
|
97453
97532
|
return factory2.updatePartiallyEmittedExpression(node, expression);
|
|
97454
97533
|
}
|
|
97455
|
-
function
|
|
97456
|
-
if (some(
|
|
97457
|
-
if (
|
|
97458
|
-
|
|
97459
|
-
|
|
97534
|
+
function injectPendingExpressionsCommon(pendingExpressions2, expression) {
|
|
97535
|
+
if (some(pendingExpressions2)) {
|
|
97536
|
+
if (expression) {
|
|
97537
|
+
if (isParenthesizedExpression(expression)) {
|
|
97538
|
+
pendingExpressions2.push(expression.expression);
|
|
97539
|
+
expression = factory2.updateParenthesizedExpression(expression, factory2.inlineExpressions(pendingExpressions2));
|
|
97540
|
+
} else {
|
|
97541
|
+
pendingExpressions2.push(expression);
|
|
97542
|
+
expression = factory2.inlineExpressions(pendingExpressions2);
|
|
97543
|
+
}
|
|
97460
97544
|
} else {
|
|
97461
|
-
|
|
97462
|
-
expression = factory2.inlineExpressions(pendingExpressions);
|
|
97545
|
+
expression = factory2.inlineExpressions(pendingExpressions2);
|
|
97463
97546
|
}
|
|
97464
|
-
pendingExpressions = void 0;
|
|
97465
97547
|
}
|
|
97466
97548
|
return expression;
|
|
97467
97549
|
}
|
|
97550
|
+
function injectPendingExpressions(expression) {
|
|
97551
|
+
const result = injectPendingExpressionsCommon(pendingExpressions, expression);
|
|
97552
|
+
Debug.assertIsDefined(result);
|
|
97553
|
+
if (result !== expression) {
|
|
97554
|
+
pendingExpressions = void 0;
|
|
97555
|
+
}
|
|
97556
|
+
return result;
|
|
97557
|
+
}
|
|
97558
|
+
function injectPendingInitializers(classInfo2, isStatic2, expression) {
|
|
97559
|
+
const result = injectPendingExpressionsCommon(isStatic2 ? classInfo2.pendingStaticInitializers : classInfo2.pendingInstanceInitializers, expression);
|
|
97560
|
+
if (result !== expression) {
|
|
97561
|
+
if (isStatic2) {
|
|
97562
|
+
classInfo2.pendingStaticInitializers = void 0;
|
|
97563
|
+
} else {
|
|
97564
|
+
classInfo2.pendingInstanceInitializers = void 0;
|
|
97565
|
+
}
|
|
97566
|
+
}
|
|
97567
|
+
return result;
|
|
97568
|
+
}
|
|
97468
97569
|
function transformAllDecoratorsOfDeclaration(allDecorators) {
|
|
97469
97570
|
if (!allDecorators) {
|
|
97470
97571
|
return void 0;
|
|
@@ -138260,11 +138361,9 @@ ${lanes.join("\n")}
|
|
|
138260
138361
|
function getRangeToExtract(context, considerEmptySpans = true) {
|
|
138261
138362
|
const { file, startPosition } = context;
|
|
138262
138363
|
const isJS = isSourceFileJS(file);
|
|
138263
|
-
const current = getTokenAtPosition(file, startPosition);
|
|
138264
138364
|
const range = createTextRangeFromSpan(getRefactorContextSpan(context));
|
|
138265
|
-
const
|
|
138266
|
-
const
|
|
138267
|
-
const firstType = findAncestor(current, (node) => node.parent && isTypeNode(node) && !rangeContainsSkipTrivia(range, node.parent, file) && (cursorRequest || overlappingRange));
|
|
138365
|
+
const isCursorRequest = range.pos === range.end && considerEmptySpans;
|
|
138366
|
+
const firstType = getFirstTypeAt(file, startPosition, range, isCursorRequest);
|
|
138268
138367
|
if (!firstType || !isTypeNode(firstType))
|
|
138269
138368
|
return { error: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_type_node) };
|
|
138270
138369
|
const checker = context.program.getTypeChecker();
|
|
@@ -138290,6 +138389,21 @@ ${lanes.join("\n")}
|
|
|
138290
138389
|
const typeElements = flattenTypeLiteralNodeReference(checker, selection);
|
|
138291
138390
|
return { isJS, selection, enclosingNode, typeParameters, typeElements };
|
|
138292
138391
|
}
|
|
138392
|
+
function getFirstTypeAt(file, startPosition, range, isCursorRequest) {
|
|
138393
|
+
const currentNodes = [
|
|
138394
|
+
() => getTokenAtPosition(file, startPosition),
|
|
138395
|
+
() => getTouchingToken(file, startPosition, () => true)
|
|
138396
|
+
];
|
|
138397
|
+
for (const f of currentNodes) {
|
|
138398
|
+
const current = f();
|
|
138399
|
+
const overlappingRange = nodeOverlapsWithStartEnd(current, file, range.pos, range.end);
|
|
138400
|
+
const firstType = findAncestor(current, (node) => node.parent && isTypeNode(node) && !rangeContainsSkipTrivia(range, node.parent, file) && (isCursorRequest || overlappingRange));
|
|
138401
|
+
if (firstType) {
|
|
138402
|
+
return firstType;
|
|
138403
|
+
}
|
|
138404
|
+
}
|
|
138405
|
+
return void 0;
|
|
138406
|
+
}
|
|
138293
138407
|
function flattenTypeLiteralNodeReference(checker, selection) {
|
|
138294
138408
|
if (!selection)
|
|
138295
138409
|
return void 0;
|
|
@@ -145058,13 +145172,14 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
|
|
|
145058
145172
|
const symbol = contextualType.getProperty(name);
|
|
145059
145173
|
return symbol ? [symbol] : emptyArray;
|
|
145060
145174
|
}
|
|
145061
|
-
const
|
|
145175
|
+
const filteredTypes = isObjectLiteralExpression(node.parent) || isJsxAttributes(node.parent) ? filter(contextualType.types, (t) => !checker.isTypeInvalidDueToUnionDiscriminant(t, node.parent)) : contextualType.types;
|
|
145176
|
+
const discriminatedPropertySymbols = mapDefined(filteredTypes, (t) => t.getProperty(name));
|
|
145062
145177
|
if (unionSymbolOk && (discriminatedPropertySymbols.length === 0 || discriminatedPropertySymbols.length === contextualType.types.length)) {
|
|
145063
145178
|
const symbol = contextualType.getProperty(name);
|
|
145064
145179
|
if (symbol)
|
|
145065
145180
|
return [symbol];
|
|
145066
145181
|
}
|
|
145067
|
-
if (
|
|
145182
|
+
if (!filteredTypes.length && !discriminatedPropertySymbols.length) {
|
|
145068
145183
|
return mapDefined(contextualType.types, (t) => t.getProperty(name));
|
|
145069
145184
|
}
|
|
145070
145185
|
return deduplicate(discriminatedPropertySymbols, equateValues);
|
package/lib/typingsInstaller.js
CHANGED
|
@@ -54,7 +54,7 @@ var path = __toESM(require("path"));
|
|
|
54
54
|
|
|
55
55
|
// src/compiler/corePublic.ts
|
|
56
56
|
var versionMajorMinor = "5.4";
|
|
57
|
-
var version = `${versionMajorMinor}.0-dev.
|
|
57
|
+
var version = `${versionMajorMinor}.0-dev.20240106`;
|
|
58
58
|
|
|
59
59
|
// src/compiler/core.ts
|
|
60
60
|
var emptyArray = [];
|
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.4.0-dev.
|
|
5
|
+
"version": "5.4.0-dev.20240106",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"description": "TypeScript is a language for application scale JavaScript development",
|
|
8
8
|
"keywords": [
|
|
@@ -113,5 +113,5 @@
|
|
|
113
113
|
"node": "20.1.0",
|
|
114
114
|
"npm": "8.19.4"
|
|
115
115
|
},
|
|
116
|
-
"gitHead": "
|
|
116
|
+
"gitHead": "01a51d2d017dd50d487835282b7e4a2a4f7300ab"
|
|
117
117
|
}
|