typescript 5.4.0-dev.20240216 → 5.4.0-dev.20240218

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 CHANGED
@@ -18,7 +18,7 @@ and limitations under the License.
18
18
 
19
19
  // src/compiler/corePublic.ts
20
20
  var versionMajorMinor = "5.4";
21
- var version = `${versionMajorMinor}.0-dev.20240216`;
21
+ var version = `${versionMajorMinor}.0-dev.20240218`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -57358,7 +57358,7 @@ function createTypeChecker(host) {
57358
57358
  return target.objectFlags & 8 /* Tuple */ ? createNormalizedTupleType(target, typeArguments) : createTypeReference(target, typeArguments);
57359
57359
  }
57360
57360
  function createNormalizedTupleType(target, elementTypes) {
57361
- var _a, _b, _c;
57361
+ var _a, _b, _c, _d;
57362
57362
  if (!(target.combinedFlags & 14 /* NonRequired */)) {
57363
57363
  return createTypeReference(target, elementTypes);
57364
57364
  }
@@ -57378,8 +57378,10 @@ function createTypeChecker(host) {
57378
57378
  const type = elementTypes[i];
57379
57379
  const flags = target.elementFlags[i];
57380
57380
  if (flags & 8 /* Variadic */) {
57381
- if (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type)) {
57382
- addElement(type, 8 /* Variadic */, (_a = target.labeledElementDeclarations) == null ? void 0 : _a[i]);
57381
+ if (type.flags & 1 /* Any */) {
57382
+ addElement(type, 4 /* Rest */, (_a = target.labeledElementDeclarations) == null ? void 0 : _a[i]);
57383
+ } else if (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type)) {
57384
+ addElement(type, 8 /* Variadic */, (_b = target.labeledElementDeclarations) == null ? void 0 : _b[i]);
57383
57385
  } else if (isTupleType(type)) {
57384
57386
  const elements = getElementTypes(type);
57385
57387
  if (elements.length + expandedTypes.length >= 1e4) {
@@ -57394,10 +57396,10 @@ function createTypeChecker(host) {
57394
57396
  return addElement(t, type.target.elementFlags[n], (_a2 = type.target.labeledElementDeclarations) == null ? void 0 : _a2[n]);
57395
57397
  });
57396
57398
  } else {
57397
- addElement(isArrayLikeType(type) && getIndexTypeOfType(type, numberType) || errorType, 4 /* Rest */, (_b = target.labeledElementDeclarations) == null ? void 0 : _b[i]);
57399
+ addElement(isArrayLikeType(type) && getIndexTypeOfType(type, numberType) || errorType, 4 /* Rest */, (_c = target.labeledElementDeclarations) == null ? void 0 : _c[i]);
57398
57400
  }
57399
57401
  } else {
57400
- addElement(type, flags, (_c = target.labeledElementDeclarations) == null ? void 0 : _c[i]);
57402
+ addElement(type, flags, (_d = target.labeledElementDeclarations) == null ? void 0 : _d[i]);
57401
57403
  }
57402
57404
  }
57403
57405
  for (let i = 0; i < lastRequiredIndex; i++) {
@@ -58761,10 +58763,6 @@ function createTypeChecker(host) {
58761
58763
  }
58762
58764
  return type;
58763
58765
  }
58764
- function maybeCloneTypeParameter(p) {
58765
- const constraint = getConstraintOfTypeParameter(p);
58766
- return constraint && (isGenericObjectType(constraint) || isGenericIndexType(constraint)) ? cloneTypeParameter(p) : p;
58767
- }
58768
58766
  function isSimpleTupleType(node) {
58769
58767
  return isTupleTypeNode(node) && length(node.elements) > 0 && !some(node.elements, (e) => isOptionalTypeNode(e) || isRestTypeNode(e) || isNamedTupleMember(e) && !!(e.questionToken || e.dotDotDotToken));
58770
58768
  }
@@ -58794,27 +58792,19 @@ function createTypeChecker(host) {
58794
58792
  const checkTypeDeferred = isDeferredType(checkType, checkTuples);
58795
58793
  let combinedMapper;
58796
58794
  if (root.inferTypeParameters) {
58797
- const freshParams = sameMap(root.inferTypeParameters, maybeCloneTypeParameter);
58798
- const freshMapper = freshParams !== root.inferTypeParameters ? createTypeMapper(root.inferTypeParameters, freshParams) : void 0;
58799
58795
  const context = createInferenceContext(
58800
- freshParams,
58796
+ root.inferTypeParameters,
58801
58797
  /*signature*/
58802
58798
  void 0,
58803
58799
  0 /* None */
58804
58800
  );
58805
- if (freshMapper) {
58806
- const freshCombinedMapper = combineTypeMappers(mapper, freshMapper);
58807
- for (let i = 0; i < freshParams.length; i++) {
58808
- if (freshParams[i] !== root.inferTypeParameters[i]) {
58809
- freshParams[i].mapper = freshCombinedMapper;
58810
- }
58811
- }
58801
+ if (mapper) {
58802
+ context.nonFixingMapper = combineTypeMappers(context.nonFixingMapper, mapper);
58812
58803
  }
58813
58804
  if (!checkTypeDeferred) {
58814
- inferTypes(context.inferences, checkType, instantiateType(extendsType, freshMapper), 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
58805
+ inferTypes(context.inferences, checkType, extendsType, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
58815
58806
  }
58816
- const innerMapper = combineTypeMappers(freshMapper, context.mapper);
58817
- combinedMapper = mapper ? combineTypeMappers(innerMapper, mapper) : innerMapper;
58807
+ combinedMapper = mapper ? combineTypeMappers(context.mapper, mapper) : context.mapper;
58818
58808
  }
58819
58809
  const inferredExtendsType = combinedMapper ? instantiateType(root.extendsType, combinedMapper) : extendsType;
58820
58810
  if (!checkTypeDeferred && !isDeferredType(inferredExtendsType, checkTuples)) {
package/lib/tsserver.js CHANGED
@@ -2340,7 +2340,7 @@ module.exports = __toCommonJS(server_exports);
2340
2340
 
2341
2341
  // src/compiler/corePublic.ts
2342
2342
  var versionMajorMinor = "5.4";
2343
- var version = `${versionMajorMinor}.0-dev.20240216`;
2343
+ var version = `${versionMajorMinor}.0-dev.20240218`;
2344
2344
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2345
2345
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2346
2346
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -62102,7 +62102,7 @@ function createTypeChecker(host) {
62102
62102
  return target.objectFlags & 8 /* Tuple */ ? createNormalizedTupleType(target, typeArguments) : createTypeReference(target, typeArguments);
62103
62103
  }
62104
62104
  function createNormalizedTupleType(target, elementTypes) {
62105
- var _a, _b, _c;
62105
+ var _a, _b, _c, _d;
62106
62106
  if (!(target.combinedFlags & 14 /* NonRequired */)) {
62107
62107
  return createTypeReference(target, elementTypes);
62108
62108
  }
@@ -62122,8 +62122,10 @@ function createTypeChecker(host) {
62122
62122
  const type = elementTypes[i];
62123
62123
  const flags = target.elementFlags[i];
62124
62124
  if (flags & 8 /* Variadic */) {
62125
- if (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type)) {
62126
- addElement(type, 8 /* Variadic */, (_a = target.labeledElementDeclarations) == null ? void 0 : _a[i]);
62125
+ if (type.flags & 1 /* Any */) {
62126
+ addElement(type, 4 /* Rest */, (_a = target.labeledElementDeclarations) == null ? void 0 : _a[i]);
62127
+ } else if (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type)) {
62128
+ addElement(type, 8 /* Variadic */, (_b = target.labeledElementDeclarations) == null ? void 0 : _b[i]);
62127
62129
  } else if (isTupleType(type)) {
62128
62130
  const elements = getElementTypes(type);
62129
62131
  if (elements.length + expandedTypes.length >= 1e4) {
@@ -62138,10 +62140,10 @@ function createTypeChecker(host) {
62138
62140
  return addElement(t, type.target.elementFlags[n], (_a2 = type.target.labeledElementDeclarations) == null ? void 0 : _a2[n]);
62139
62141
  });
62140
62142
  } else {
62141
- addElement(isArrayLikeType(type) && getIndexTypeOfType(type, numberType) || errorType, 4 /* Rest */, (_b = target.labeledElementDeclarations) == null ? void 0 : _b[i]);
62143
+ addElement(isArrayLikeType(type) && getIndexTypeOfType(type, numberType) || errorType, 4 /* Rest */, (_c = target.labeledElementDeclarations) == null ? void 0 : _c[i]);
62142
62144
  }
62143
62145
  } else {
62144
- addElement(type, flags, (_c = target.labeledElementDeclarations) == null ? void 0 : _c[i]);
62146
+ addElement(type, flags, (_d = target.labeledElementDeclarations) == null ? void 0 : _d[i]);
62145
62147
  }
62146
62148
  }
62147
62149
  for (let i = 0; i < lastRequiredIndex; i++) {
@@ -63505,10 +63507,6 @@ function createTypeChecker(host) {
63505
63507
  }
63506
63508
  return type;
63507
63509
  }
63508
- function maybeCloneTypeParameter(p) {
63509
- const constraint = getConstraintOfTypeParameter(p);
63510
- return constraint && (isGenericObjectType(constraint) || isGenericIndexType(constraint)) ? cloneTypeParameter(p) : p;
63511
- }
63512
63510
  function isSimpleTupleType(node) {
63513
63511
  return isTupleTypeNode(node) && length(node.elements) > 0 && !some(node.elements, (e) => isOptionalTypeNode(e) || isRestTypeNode(e) || isNamedTupleMember(e) && !!(e.questionToken || e.dotDotDotToken));
63514
63512
  }
@@ -63538,27 +63536,19 @@ function createTypeChecker(host) {
63538
63536
  const checkTypeDeferred = isDeferredType(checkType, checkTuples);
63539
63537
  let combinedMapper;
63540
63538
  if (root.inferTypeParameters) {
63541
- const freshParams = sameMap(root.inferTypeParameters, maybeCloneTypeParameter);
63542
- const freshMapper = freshParams !== root.inferTypeParameters ? createTypeMapper(root.inferTypeParameters, freshParams) : void 0;
63543
63539
  const context = createInferenceContext(
63544
- freshParams,
63540
+ root.inferTypeParameters,
63545
63541
  /*signature*/
63546
63542
  void 0,
63547
63543
  0 /* None */
63548
63544
  );
63549
- if (freshMapper) {
63550
- const freshCombinedMapper = combineTypeMappers(mapper, freshMapper);
63551
- for (let i = 0; i < freshParams.length; i++) {
63552
- if (freshParams[i] !== root.inferTypeParameters[i]) {
63553
- freshParams[i].mapper = freshCombinedMapper;
63554
- }
63555
- }
63545
+ if (mapper) {
63546
+ context.nonFixingMapper = combineTypeMappers(context.nonFixingMapper, mapper);
63556
63547
  }
63557
63548
  if (!checkTypeDeferred) {
63558
- inferTypes(context.inferences, checkType, instantiateType(extendsType, freshMapper), 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
63549
+ inferTypes(context.inferences, checkType, extendsType, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
63559
63550
  }
63560
- const innerMapper = combineTypeMappers(freshMapper, context.mapper);
63561
- combinedMapper = mapper ? combineTypeMappers(innerMapper, mapper) : innerMapper;
63551
+ combinedMapper = mapper ? combineTypeMappers(context.mapper, mapper) : context.mapper;
63562
63552
  }
63563
63553
  const inferredExtendsType = combinedMapper ? instantiateType(root.extendsType, combinedMapper) : extendsType;
63564
63554
  if (!checkTypeDeferred && !isDeferredType(inferredExtendsType, checkTuples)) {
@@ -139662,6 +139652,7 @@ __export(ts_refactor_exports, {
139662
139652
  addExports: () => addExports,
139663
139653
  addNewFileToTsconfig: () => addNewFileToTsconfig,
139664
139654
  addOrRemoveBracesToArrowFunction: () => ts_refactor_addOrRemoveBracesToArrowFunction_exports,
139655
+ containsJsx: () => containsJsx,
139665
139656
  convertArrowFunctionOrFunctionExpression: () => ts_refactor_convertArrowFunctionOrFunctionExpression_exports,
139666
139657
  convertParamsToDestructuredObject: () => ts_refactor_convertParamsToDestructuredObject_exports,
139667
139658
  convertStringOrTemplateLiteral: () => ts_refactor_convertStringOrTemplateLiteral_exports,
@@ -140722,14 +140713,14 @@ registerRefactor(refactorName5, {
140722
140713
  getEditsForAction: function getRefactorEditsToMoveToNewFile(context, actionName2) {
140723
140714
  Debug.assert(actionName2 === refactorName5, "Wrong refactor invoked");
140724
140715
  const statements = Debug.checkDefined(getStatementsToMove(context));
140725
- const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange3(context.file, context.program, statements, t, context.host, context.preferences, context));
140716
+ const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange3(context.file, context.program, statements, t, context.host, context.preferences));
140726
140717
  return { edits, renameFilename: void 0, renameLocation: void 0 };
140727
140718
  }
140728
140719
  });
140729
- function doChange3(oldFile, program, toMove, changes, host, preferences, context) {
140720
+ function doChange3(oldFile, program, toMove, changes, host, preferences) {
140730
140721
  const checker = program.getTypeChecker();
140731
140722
  const usage = getUsageInfo(oldFile, toMove.all, checker);
140732
- const newFilename = createNewFileName(oldFile, program, context, host);
140723
+ const newFilename = createNewFileName(oldFile, program, host, toMove);
140733
140724
  changes.createNewFile(oldFile, newFilename, getNewStatementsAndRemoveFromOldFile(oldFile, usage, changes, toMove, program, host, newFilename, preferences));
140734
140725
  addNewFileToTsconfig(program, changes, oldFile.fileName, newFilename, hostGetCanonicalFileName(host));
140735
140726
  }
@@ -141442,12 +141433,10 @@ function addExportToChanges(sourceFile, decl, name, changes, useEs6Exports) {
141442
141433
  changes.insertNodesAfter(sourceFile, decl, names.map(createExportAssignment));
141443
141434
  }
141444
141435
  }
141445
- function createNewFileName(oldFile, program, context, host) {
141436
+ function createNewFileName(oldFile, program, host, toMove) {
141446
141437
  const checker = program.getTypeChecker();
141447
- const toMove = getStatementsToMove(context);
141448
- let usage;
141449
141438
  if (toMove) {
141450
- usage = getUsageInfo(oldFile, toMove.all, checker);
141439
+ const usage = getUsageInfo(oldFile, toMove.all, checker);
141451
141440
  const currentDirectory = getDirectoryPath(oldFile.fileName);
141452
141441
  const extension = extensionFromPath(oldFile.fileName);
141453
141442
  const newFileName = combinePaths(
@@ -141505,6 +141494,9 @@ function getStatementsToMove(context) {
141505
141494
  });
141506
141495
  return all.length === 0 ? void 0 : { all, ranges };
141507
141496
  }
141497
+ function containsJsx(statements) {
141498
+ return find(statements, (statement) => !!(statement.transformFlags & 2 /* ContainsJsx */));
141499
+ }
141508
141500
  function isAllowedStatementToMove(statement) {
141509
141501
  return !isPureImport(statement) && !isPrologueDirective(statement);
141510
141502
  }
@@ -141528,8 +141520,7 @@ function getUsageInfo(oldFile, toMove, checker, existingTargetLocals = /* @__PUR
141528
141520
  const movedSymbols = /* @__PURE__ */ new Set();
141529
141521
  const oldImportsNeededByTargetFile = /* @__PURE__ */ new Map();
141530
141522
  const targetFileImportsFromOldFile = /* @__PURE__ */ new Set();
141531
- const containsJsx = find(toMove, (statement) => !!(statement.transformFlags & 2 /* ContainsJsx */));
141532
- const jsxNamespaceSymbol = getJsxNamespaceSymbol(containsJsx);
141523
+ const jsxNamespaceSymbol = getJsxNamespaceSymbol(containsJsx(toMove));
141533
141524
  if (jsxNamespaceSymbol) {
141534
141525
  oldImportsNeededByTargetFile.set(jsxNamespaceSymbol, false);
141535
141526
  }
@@ -147257,9 +147248,14 @@ function createLanguageService(host, documentRegistry = createDocumentRegistry(h
147257
147248
  const sourceFile = getValidSourceFile(fileName);
147258
147249
  const allFiles = Debug.checkDefined(program.getSourceFiles());
147259
147250
  const extension = extensionFromPath(fileName);
147260
- const files = mapDefined(allFiles, (file) => !(program == null ? void 0 : program.isSourceFileFromExternalLibrary(sourceFile)) && !(sourceFile === getValidSourceFile(file.fileName) || extension === ".ts" /* Ts */ && extensionFromPath(file.fileName) === ".d.ts" /* Dts */ || extension === ".d.ts" /* Dts */ && startsWith(getBaseFileName(file.fileName), "lib.") && extensionFromPath(file.fileName) === ".d.ts" /* Dts */) && extension === extensionFromPath(file.fileName) ? file.fileName : void 0);
147261
- const newFileName = createNewFileName(sourceFile, program, getRefactorContext(sourceFile, positionOrRange, preferences, emptyOptions), host);
147262
- return { newFileName, files };
147251
+ const toMove = getStatementsToMove(getRefactorContext(sourceFile, positionOrRange, preferences, emptyOptions));
147252
+ const toMoveContainsJsx = containsJsx(toMove == null ? void 0 : toMove.all);
147253
+ const files = mapDefined(allFiles, (file) => {
147254
+ const fileNameExtension = extensionFromPath(file.fileName);
147255
+ const isValidSourceFile = !(program == null ? void 0 : program.isSourceFileFromExternalLibrary(sourceFile)) && !(sourceFile === getValidSourceFile(file.fileName) || extension === ".ts" /* Ts */ && fileNameExtension === ".d.ts" /* Dts */ || extension === ".d.ts" /* Dts */ && startsWith(getBaseFileName(file.fileName), "lib.") && fileNameExtension === ".d.ts" /* Dts */);
147256
+ return isValidSourceFile && (extension === fileNameExtension || (extension === ".tsx" /* Tsx */ && fileNameExtension === ".ts" /* Ts */ || extension === ".jsx" /* Jsx */ && fileNameExtension === ".js" /* Js */) && !toMoveContainsJsx) ? file.fileName : void 0;
147257
+ });
147258
+ return { newFileName: createNewFileName(sourceFile, program, host, toMove), files };
147263
147259
  }
147264
147260
  function getEditsForRefactor2(fileName, formatOptions, positionOrRange, refactorName14, actionName2, preferences = emptyOptions, interactiveRefactorArguments) {
147265
147261
  synchronizeHostData();
@@ -162287,7 +162283,7 @@ function isClassMemberCompletionKeyword(kind) {
162287
162283
  }
162288
162284
  }
162289
162285
  function isFunctionLikeBodyKeyword(kind) {
162290
- return kind === 134 /* AsyncKeyword */ || kind === 135 /* AwaitKeyword */ || kind === 130 /* AsKeyword */ || kind === 152 /* SatisfiesKeyword */ || kind === 156 /* TypeKeyword */ || !isContextualKeyword(kind) && !isClassMemberCompletionKeyword(kind);
162286
+ return kind === 134 /* AsyncKeyword */ || kind === 135 /* AwaitKeyword */ || kind === 160 /* UsingKeyword */ || kind === 130 /* AsKeyword */ || kind === 152 /* SatisfiesKeyword */ || kind === 156 /* TypeKeyword */ || !isContextualKeyword(kind) && !isClassMemberCompletionKeyword(kind);
162291
162287
  }
162292
162288
  function keywordForNode(node) {
162293
162289
  return isIdentifier(node) ? identifierToKeywordKind(node) ?? 0 /* Unknown */ : node.kind;
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.20240216`;
38
+ version = `${versionMajorMinor}.0-dev.20240218`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -59857,7 +59857,7 @@ ${lanes.join("\n")}
59857
59857
  return target.objectFlags & 8 /* Tuple */ ? createNormalizedTupleType(target, typeArguments) : createTypeReference(target, typeArguments);
59858
59858
  }
59859
59859
  function createNormalizedTupleType(target, elementTypes) {
59860
- var _a, _b, _c;
59860
+ var _a, _b, _c, _d;
59861
59861
  if (!(target.combinedFlags & 14 /* NonRequired */)) {
59862
59862
  return createTypeReference(target, elementTypes);
59863
59863
  }
@@ -59877,8 +59877,10 @@ ${lanes.join("\n")}
59877
59877
  const type = elementTypes[i];
59878
59878
  const flags = target.elementFlags[i];
59879
59879
  if (flags & 8 /* Variadic */) {
59880
- if (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type)) {
59881
- addElement(type, 8 /* Variadic */, (_a = target.labeledElementDeclarations) == null ? void 0 : _a[i]);
59880
+ if (type.flags & 1 /* Any */) {
59881
+ addElement(type, 4 /* Rest */, (_a = target.labeledElementDeclarations) == null ? void 0 : _a[i]);
59882
+ } else if (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type)) {
59883
+ addElement(type, 8 /* Variadic */, (_b = target.labeledElementDeclarations) == null ? void 0 : _b[i]);
59882
59884
  } else if (isTupleType(type)) {
59883
59885
  const elements = getElementTypes(type);
59884
59886
  if (elements.length + expandedTypes.length >= 1e4) {
@@ -59893,10 +59895,10 @@ ${lanes.join("\n")}
59893
59895
  return addElement(t, type.target.elementFlags[n], (_a2 = type.target.labeledElementDeclarations) == null ? void 0 : _a2[n]);
59894
59896
  });
59895
59897
  } else {
59896
- addElement(isArrayLikeType(type) && getIndexTypeOfType(type, numberType) || errorType, 4 /* Rest */, (_b = target.labeledElementDeclarations) == null ? void 0 : _b[i]);
59898
+ addElement(isArrayLikeType(type) && getIndexTypeOfType(type, numberType) || errorType, 4 /* Rest */, (_c = target.labeledElementDeclarations) == null ? void 0 : _c[i]);
59897
59899
  }
59898
59900
  } else {
59899
- addElement(type, flags, (_c = target.labeledElementDeclarations) == null ? void 0 : _c[i]);
59901
+ addElement(type, flags, (_d = target.labeledElementDeclarations) == null ? void 0 : _d[i]);
59900
59902
  }
59901
59903
  }
59902
59904
  for (let i = 0; i < lastRequiredIndex; i++) {
@@ -61260,10 +61262,6 @@ ${lanes.join("\n")}
61260
61262
  }
61261
61263
  return type;
61262
61264
  }
61263
- function maybeCloneTypeParameter(p) {
61264
- const constraint = getConstraintOfTypeParameter(p);
61265
- return constraint && (isGenericObjectType(constraint) || isGenericIndexType(constraint)) ? cloneTypeParameter(p) : p;
61266
- }
61267
61265
  function isSimpleTupleType(node) {
61268
61266
  return isTupleTypeNode(node) && length(node.elements) > 0 && !some(node.elements, (e) => isOptionalTypeNode(e) || isRestTypeNode(e) || isNamedTupleMember(e) && !!(e.questionToken || e.dotDotDotToken));
61269
61267
  }
@@ -61293,27 +61291,19 @@ ${lanes.join("\n")}
61293
61291
  const checkTypeDeferred = isDeferredType(checkType, checkTuples);
61294
61292
  let combinedMapper;
61295
61293
  if (root.inferTypeParameters) {
61296
- const freshParams = sameMap(root.inferTypeParameters, maybeCloneTypeParameter);
61297
- const freshMapper = freshParams !== root.inferTypeParameters ? createTypeMapper(root.inferTypeParameters, freshParams) : void 0;
61298
61294
  const context = createInferenceContext(
61299
- freshParams,
61295
+ root.inferTypeParameters,
61300
61296
  /*signature*/
61301
61297
  void 0,
61302
61298
  0 /* None */
61303
61299
  );
61304
- if (freshMapper) {
61305
- const freshCombinedMapper = combineTypeMappers(mapper, freshMapper);
61306
- for (let i = 0; i < freshParams.length; i++) {
61307
- if (freshParams[i] !== root.inferTypeParameters[i]) {
61308
- freshParams[i].mapper = freshCombinedMapper;
61309
- }
61310
- }
61300
+ if (mapper) {
61301
+ context.nonFixingMapper = combineTypeMappers(context.nonFixingMapper, mapper);
61311
61302
  }
61312
61303
  if (!checkTypeDeferred) {
61313
- inferTypes(context.inferences, checkType, instantiateType(extendsType, freshMapper), 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
61304
+ inferTypes(context.inferences, checkType, extendsType, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
61314
61305
  }
61315
- const innerMapper = combineTypeMappers(freshMapper, context.mapper);
61316
- combinedMapper = mapper ? combineTypeMappers(innerMapper, mapper) : innerMapper;
61306
+ combinedMapper = mapper ? combineTypeMappers(context.mapper, mapper) : context.mapper;
61317
61307
  }
61318
61308
  const inferredExtendsType = combinedMapper ? instantiateType(root.extendsType, combinedMapper) : extendsType;
61319
61309
  if (!checkTypeDeferred && !isDeferredType(inferredExtendsType, checkTuples)) {
@@ -139098,10 +139088,10 @@ ${lanes.join("\n")}
139098
139088
  });
139099
139089
 
139100
139090
  // src/services/refactors/moveToNewFile.ts
139101
- function doChange3(oldFile, program, toMove, changes, host, preferences, context) {
139091
+ function doChange3(oldFile, program, toMove, changes, host, preferences) {
139102
139092
  const checker = program.getTypeChecker();
139103
139093
  const usage = getUsageInfo(oldFile, toMove.all, checker);
139104
- const newFilename = createNewFileName(oldFile, program, context, host);
139094
+ const newFilename = createNewFileName(oldFile, program, host, toMove);
139105
139095
  changes.createNewFile(oldFile, newFilename, getNewStatementsAndRemoveFromOldFile(oldFile, usage, changes, toMove, program, host, newFilename, preferences));
139106
139096
  addNewFileToTsconfig(program, changes, oldFile.fileName, newFilename, hostGetCanonicalFileName(host));
139107
139097
  }
@@ -139206,7 +139196,7 @@ ${lanes.join("\n")}
139206
139196
  getEditsForAction: function getRefactorEditsToMoveToNewFile(context, actionName2) {
139207
139197
  Debug.assert(actionName2 === refactorName5, "Wrong refactor invoked");
139208
139198
  const statements = Debug.checkDefined(getStatementsToMove(context));
139209
- const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange3(context.file, context.program, statements, t, context.host, context.preferences, context));
139199
+ const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange3(context.file, context.program, statements, t, context.host, context.preferences));
139210
139200
  return { edits, renameFilename: void 0, renameLocation: void 0 };
139211
139201
  }
139212
139202
  });
@@ -139810,12 +139800,10 @@ ${lanes.join("\n")}
139810
139800
  changes.insertNodesAfter(sourceFile, decl, names.map(createExportAssignment));
139811
139801
  }
139812
139802
  }
139813
- function createNewFileName(oldFile, program, context, host) {
139803
+ function createNewFileName(oldFile, program, host, toMove) {
139814
139804
  const checker = program.getTypeChecker();
139815
- const toMove = getStatementsToMove(context);
139816
- let usage;
139817
139805
  if (toMove) {
139818
- usage = getUsageInfo(oldFile, toMove.all, checker);
139806
+ const usage = getUsageInfo(oldFile, toMove.all, checker);
139819
139807
  const currentDirectory = getDirectoryPath(oldFile.fileName);
139820
139808
  const extension = extensionFromPath(oldFile.fileName);
139821
139809
  const newFileName = combinePaths(
@@ -139873,6 +139861,9 @@ ${lanes.join("\n")}
139873
139861
  });
139874
139862
  return all.length === 0 ? void 0 : { all, ranges };
139875
139863
  }
139864
+ function containsJsx(statements) {
139865
+ return find(statements, (statement) => !!(statement.transformFlags & 2 /* ContainsJsx */));
139866
+ }
139876
139867
  function isAllowedStatementToMove(statement) {
139877
139868
  return !isPureImport(statement) && !isPrologueDirective(statement);
139878
139869
  }
@@ -139896,8 +139887,7 @@ ${lanes.join("\n")}
139896
139887
  const movedSymbols = /* @__PURE__ */ new Set();
139897
139888
  const oldImportsNeededByTargetFile = /* @__PURE__ */ new Map();
139898
139889
  const targetFileImportsFromOldFile = /* @__PURE__ */ new Set();
139899
- const containsJsx = find(toMove, (statement) => !!(statement.transformFlags & 2 /* ContainsJsx */));
139900
- const jsxNamespaceSymbol = getJsxNamespaceSymbol(containsJsx);
139890
+ const jsxNamespaceSymbol = getJsxNamespaceSymbol(containsJsx(toMove));
139901
139891
  if (jsxNamespaceSymbol) {
139902
139892
  oldImportsNeededByTargetFile.set(jsxNamespaceSymbol, false);
139903
139893
  }
@@ -143614,6 +143604,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
143614
143604
  addExports: () => addExports,
143615
143605
  addNewFileToTsconfig: () => addNewFileToTsconfig,
143616
143606
  addOrRemoveBracesToArrowFunction: () => ts_refactor_addOrRemoveBracesToArrowFunction_exports,
143607
+ containsJsx: () => containsJsx,
143617
143608
  convertArrowFunctionOrFunctionExpression: () => ts_refactor_convertArrowFunctionOrFunctionExpression_exports,
143618
143609
  convertParamsToDestructuredObject: () => ts_refactor_convertParamsToDestructuredObject_exports,
143619
143610
  convertStringOrTemplateLiteral: () => ts_refactor_convertStringOrTemplateLiteral_exports,
@@ -145189,9 +145180,14 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
145189
145180
  const sourceFile = getValidSourceFile(fileName);
145190
145181
  const allFiles = Debug.checkDefined(program.getSourceFiles());
145191
145182
  const extension = extensionFromPath(fileName);
145192
- const files = mapDefined(allFiles, (file) => !(program == null ? void 0 : program.isSourceFileFromExternalLibrary(sourceFile)) && !(sourceFile === getValidSourceFile(file.fileName) || extension === ".ts" /* Ts */ && extensionFromPath(file.fileName) === ".d.ts" /* Dts */ || extension === ".d.ts" /* Dts */ && startsWith(getBaseFileName(file.fileName), "lib.") && extensionFromPath(file.fileName) === ".d.ts" /* Dts */) && extension === extensionFromPath(file.fileName) ? file.fileName : void 0);
145193
- const newFileName = createNewFileName(sourceFile, program, getRefactorContext(sourceFile, positionOrRange, preferences, emptyOptions), host);
145194
- return { newFileName, files };
145183
+ const toMove = getStatementsToMove(getRefactorContext(sourceFile, positionOrRange, preferences, emptyOptions));
145184
+ const toMoveContainsJsx = containsJsx(toMove == null ? void 0 : toMove.all);
145185
+ const files = mapDefined(allFiles, (file) => {
145186
+ const fileNameExtension = extensionFromPath(file.fileName);
145187
+ const isValidSourceFile = !(program == null ? void 0 : program.isSourceFileFromExternalLibrary(sourceFile)) && !(sourceFile === getValidSourceFile(file.fileName) || extension === ".ts" /* Ts */ && fileNameExtension === ".d.ts" /* Dts */ || extension === ".d.ts" /* Dts */ && startsWith(getBaseFileName(file.fileName), "lib.") && fileNameExtension === ".d.ts" /* Dts */);
145188
+ return isValidSourceFile && (extension === fileNameExtension || (extension === ".tsx" /* Tsx */ && fileNameExtension === ".ts" /* Ts */ || extension === ".jsx" /* Jsx */ && fileNameExtension === ".js" /* Js */) && !toMoveContainsJsx) ? file.fileName : void 0;
145189
+ });
145190
+ return { newFileName: createNewFileName(sourceFile, program, host, toMove), files };
145195
145191
  }
145196
145192
  function getEditsForRefactor2(fileName, formatOptions, positionOrRange, refactorName14, actionName2, preferences = emptyOptions, interactiveRefactorArguments) {
145197
145193
  synchronizeHostData();
@@ -161488,7 +161484,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161488
161484
  }
161489
161485
  }
161490
161486
  function isFunctionLikeBodyKeyword(kind) {
161491
- return kind === 134 /* AsyncKeyword */ || kind === 135 /* AwaitKeyword */ || kind === 130 /* AsKeyword */ || kind === 152 /* SatisfiesKeyword */ || kind === 156 /* TypeKeyword */ || !isContextualKeyword(kind) && !isClassMemberCompletionKeyword(kind);
161487
+ return kind === 134 /* AsyncKeyword */ || kind === 135 /* AwaitKeyword */ || kind === 160 /* UsingKeyword */ || kind === 130 /* AsKeyword */ || kind === 152 /* SatisfiesKeyword */ || kind === 156 /* TypeKeyword */ || !isContextualKeyword(kind) && !isClassMemberCompletionKeyword(kind);
161492
161488
  }
161493
161489
  function keywordForNode(node) {
161494
161490
  return isIdentifier(node) ? identifierToKeywordKind(node) ?? 0 /* Unknown */ : node.kind;
@@ -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.20240216`;
57
+ var version = `${versionMajorMinor}.0-dev.20240218`;
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.20240216",
5
+ "version": "5.4.0-dev.20240218",
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": "c4de2afcc289d42b7bef3df30911e120e8bd6d39"
116
+ "gitHead": "86a16636cac9599c8752f8588f4b9518860b47ff"
117
117
  }