@typescript-deploys/pr-build 5.3.0-pr-56131-2 → 5.3.0-pr-56161-5

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.3";
21
- var version = `${versionMajorMinor}.0-insiders.20231016`;
21
+ var version = `${versionMajorMinor}.0-insiders.20231020`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -6653,6 +6653,7 @@ var Diagnostics = {
6653
6653
  Excessive_complexity_comparing_types_0_and_1: diag(2859, 1 /* Error */, "Excessive_complexity_comparing_types_0_and_1_2859", "Excessive complexity comparing types '{0}' and '{1}'."),
6654
6654
  The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method: diag(2860, 1 /* Error */, "The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860", "The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method."),
6655
6655
  An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression: diag(2861, 1 /* Error */, "An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861", "An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression."),
6656
+ Type_0_is_generic_and_can_only_be_indexed_for_reading: diag(2862, 1 /* Error */, "Type_0_is_generic_and_can_only_be_indexed_for_reading_2862", "Type '{0}' is generic and can only be indexed for reading."),
6656
6657
  Import_declaration_0_is_using_private_name_1: diag(4e3, 1 /* Error */, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."),
6657
6658
  Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, 1 /* Error */, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."),
6658
6659
  Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, 1 /* Error */, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."),
@@ -23693,17 +23694,18 @@ var asyncGeneratorHelper = {
23693
23694
  scoped: false,
23694
23695
  dependencies: [awaitHelper],
23695
23696
  text: `
23696
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
23697
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
23698
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
23699
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
23700
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
23701
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
23702
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
23703
- function fulfill(value) { resume("next", value); }
23704
- function reject(value) { resume("throw", value); }
23705
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
23706
- };`
23697
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
23698
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
23699
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
23700
+ return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
23701
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
23702
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
23703
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
23704
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
23705
+ function fulfill(value) { resume("next", value); }
23706
+ function reject(value) { resume("throw", value); }
23707
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
23708
+ };`
23707
23709
  };
23708
23710
  var asyncDelegator = {
23709
23711
  name: "typescript:asyncDelegator",
@@ -57653,7 +57655,11 @@ function createTypeChecker(host) {
57653
57655
  if (indexInfo) {
57654
57656
  if (accessFlags & 2 /* NoIndexSignatures */ && indexInfo.keyType !== numberType) {
57655
57657
  if (accessExpression) {
57656
- error(accessExpression, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(originalObjectType));
57658
+ if (accessFlags & 4 /* Writing */) {
57659
+ error(accessExpression, Diagnostics.Type_0_is_generic_and_can_only_be_indexed_for_reading, typeToString(originalObjectType));
57660
+ } else {
57661
+ error(accessExpression, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(originalObjectType));
57662
+ }
57657
57663
  }
57658
57664
  return void 0;
57659
57665
  }
@@ -65930,13 +65936,15 @@ function createTypeChecker(host) {
65930
65936
  return void 0;
65931
65937
  }
65932
65938
  function getDiscriminantPropertyAccess(expr, computedType) {
65933
- const type = !(computedType.flags & 1048576 /* Union */) && declaredType.flags & 1048576 /* Union */ ? declaredType : computedType;
65934
- if (type.flags & 1048576 /* Union */) {
65939
+ if (declaredType.flags & 1048576 /* Union */ || computedType.flags & 1048576 /* Union */) {
65935
65940
  const access = getCandidateDiscriminantPropertyAccess(expr);
65936
65941
  if (access) {
65937
65942
  const name = getAccessedPropertyName(access);
65938
- if (name && isDiscriminantProperty(type, name)) {
65939
- return access;
65943
+ if (name) {
65944
+ const type = declaredType.flags & 1048576 /* Union */ && isTypeSubsetOf(computedType, declaredType) ? declaredType : computedType;
65945
+ if (isDiscriminantProperty(type, name)) {
65946
+ return access;
65947
+ }
65940
65948
  }
65941
65949
  }
65942
65950
  }
@@ -79682,7 +79690,7 @@ function createTypeChecker(host) {
79682
79690
  error(member.name, Diagnostics.Computed_property_names_are_not_allowed_in_enums);
79683
79691
  } else {
79684
79692
  const text = getTextOfPropertyName(member.name);
79685
- if (isNumericLiteralName(text) && !isInfinityOrNaNString(text)) {
79693
+ if (isNumericLiteralName(text)) {
79686
79694
  error(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name);
79687
79695
  }
79688
79696
  }
package/lib/tsserver.js CHANGED
@@ -2328,7 +2328,7 @@ module.exports = __toCommonJS(server_exports);
2328
2328
 
2329
2329
  // src/compiler/corePublic.ts
2330
2330
  var versionMajorMinor = "5.3";
2331
- var version = `${versionMajorMinor}.0-insiders.20231016`;
2331
+ var version = `${versionMajorMinor}.0-insiders.20231020`;
2332
2332
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2333
2333
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2334
2334
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -10181,6 +10181,7 @@ var Diagnostics = {
10181
10181
  Excessive_complexity_comparing_types_0_and_1: diag(2859, 1 /* Error */, "Excessive_complexity_comparing_types_0_and_1_2859", "Excessive complexity comparing types '{0}' and '{1}'."),
10182
10182
  The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method: diag(2860, 1 /* Error */, "The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860", "The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method."),
10183
10183
  An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression: diag(2861, 1 /* Error */, "An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861", "An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression."),
10184
+ Type_0_is_generic_and_can_only_be_indexed_for_reading: diag(2862, 1 /* Error */, "Type_0_is_generic_and_can_only_be_indexed_for_reading_2862", "Type '{0}' is generic and can only be indexed for reading."),
10184
10185
  Import_declaration_0_is_using_private_name_1: diag(4e3, 1 /* Error */, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."),
10185
10186
  Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, 1 /* Error */, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."),
10186
10187
  Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, 1 /* Error */, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."),
@@ -27957,17 +27958,18 @@ var asyncGeneratorHelper = {
27957
27958
  scoped: false,
27958
27959
  dependencies: [awaitHelper],
27959
27960
  text: `
27960
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
27961
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
27962
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
27963
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
27964
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
27965
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
27966
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
27967
- function fulfill(value) { resume("next", value); }
27968
- function reject(value) { resume("throw", value); }
27969
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
27970
- };`
27961
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
27962
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
27963
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
27964
+ return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
27965
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
27966
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
27967
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
27968
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
27969
+ function fulfill(value) { resume("next", value); }
27970
+ function reject(value) { resume("throw", value); }
27971
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
27972
+ };`
27971
27973
  };
27972
27974
  var asyncDelegator = {
27973
27975
  name: "typescript:asyncDelegator",
@@ -62365,7 +62367,11 @@ function createTypeChecker(host) {
62365
62367
  if (indexInfo) {
62366
62368
  if (accessFlags & 2 /* NoIndexSignatures */ && indexInfo.keyType !== numberType) {
62367
62369
  if (accessExpression) {
62368
- error2(accessExpression, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(originalObjectType));
62370
+ if (accessFlags & 4 /* Writing */) {
62371
+ error2(accessExpression, Diagnostics.Type_0_is_generic_and_can_only_be_indexed_for_reading, typeToString(originalObjectType));
62372
+ } else {
62373
+ error2(accessExpression, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(originalObjectType));
62374
+ }
62369
62375
  }
62370
62376
  return void 0;
62371
62377
  }
@@ -70642,13 +70648,15 @@ function createTypeChecker(host) {
70642
70648
  return void 0;
70643
70649
  }
70644
70650
  function getDiscriminantPropertyAccess(expr, computedType) {
70645
- const type = !(computedType.flags & 1048576 /* Union */) && declaredType.flags & 1048576 /* Union */ ? declaredType : computedType;
70646
- if (type.flags & 1048576 /* Union */) {
70651
+ if (declaredType.flags & 1048576 /* Union */ || computedType.flags & 1048576 /* Union */) {
70647
70652
  const access = getCandidateDiscriminantPropertyAccess(expr);
70648
70653
  if (access) {
70649
70654
  const name = getAccessedPropertyName(access);
70650
- if (name && isDiscriminantProperty(type, name)) {
70651
- return access;
70655
+ if (name) {
70656
+ const type = declaredType.flags & 1048576 /* Union */ && isTypeSubsetOf(computedType, declaredType) ? declaredType : computedType;
70657
+ if (isDiscriminantProperty(type, name)) {
70658
+ return access;
70659
+ }
70652
70660
  }
70653
70661
  }
70654
70662
  }
@@ -84394,7 +84402,7 @@ function createTypeChecker(host) {
84394
84402
  error2(member.name, Diagnostics.Computed_property_names_are_not_allowed_in_enums);
84395
84403
  } else {
84396
84404
  const text = getTextOfPropertyName(member.name);
84397
- if (isNumericLiteralName(text) && !isInfinityOrNaNString(text)) {
84405
+ if (isNumericLiteralName(text)) {
84398
84406
  error2(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name);
84399
84407
  }
84400
84408
  }
@@ -138605,46 +138613,26 @@ function getRangeToExtract(context, considerEmptySpans = true) {
138605
138613
  const current = getTokenAtPosition(file, startPosition);
138606
138614
  const range = createTextRangeFromSpan(getRefactorContextSpan(context));
138607
138615
  const cursorRequest = range.pos === range.end && considerEmptySpans;
138608
- const firstType = findAncestor(current, (node) => node.parent && isTypeNode(node) && !rangeContainsSkipTrivia(range, node.parent, file) && (cursorRequest || nodeOverlapsWithStartEnd(current, file, range.pos, range.end)));
138609
- if (!firstType || !isTypeNode(firstType))
138616
+ const selection = findAncestor(current, (node) => node.parent && isTypeNode(node) && !rangeContainsSkipTrivia(range, node.parent, file) && (cursorRequest || nodeOverlapsWithStartEnd(current, file, range.pos, range.end)));
138617
+ if (!selection || !isTypeNode(selection))
138610
138618
  return { error: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_type_node) };
138611
138619
  const checker = context.program.getTypeChecker();
138612
- const enclosingNode = getEnclosingNode(firstType, isJS);
138620
+ const enclosingNode = getEnclosingNode(selection, isJS);
138613
138621
  if (enclosingNode === void 0)
138614
138622
  return { error: getLocaleSpecificMessage(Diagnostics.No_type_could_be_extracted_from_this_type_node) };
138615
- const typeList = [];
138616
- if ((isUnionTypeNode(firstType.parent) || isIntersectionTypeNode(firstType.parent)) && range.end > firstType.end) {
138617
- addRange(
138618
- typeList,
138619
- firstType.parent.types.filter((type) => {
138620
- return type.getStart() >= range.pos && type.getEnd() <= range.end;
138621
- })
138622
- );
138623
- }
138624
- const selection = typeList.length > 1 ? typeList : firstType;
138625
138623
  const typeParameters = collectTypeParameters(checker, selection, enclosingNode, file);
138626
138624
  if (!typeParameters)
138627
138625
  return { error: getLocaleSpecificMessage(Diagnostics.No_type_could_be_extracted_from_this_type_node) };
138628
138626
  const typeElements = flattenTypeLiteralNodeReference(checker, selection);
138629
138627
  return { isJS, selection, enclosingNode, typeParameters, typeElements };
138630
138628
  }
138631
- function flattenTypeLiteralNodeReference(checker, selection) {
138632
- if (!selection)
138629
+ function flattenTypeLiteralNodeReference(checker, node) {
138630
+ if (!node)
138633
138631
  return void 0;
138634
- if (isArray(selection)) {
138635
- const result = [];
138636
- for (const type of selection) {
138637
- const flattenedTypeMembers = flattenTypeLiteralNodeReference(checker, type);
138638
- if (!flattenedTypeMembers)
138639
- return void 0;
138640
- addRange(result, flattenedTypeMembers);
138641
- }
138642
- return result;
138643
- }
138644
- if (isIntersectionTypeNode(selection)) {
138632
+ if (isIntersectionTypeNode(node)) {
138645
138633
  const result = [];
138646
138634
  const seen = /* @__PURE__ */ new Map();
138647
- for (const type of selection.types) {
138635
+ for (const type of node.types) {
138648
138636
  const flattenedTypeMembers = flattenTypeLiteralNodeReference(checker, type);
138649
138637
  if (!flattenedTypeMembers || !flattenedTypeMembers.every((type2) => type2.name && addToSeen(seen, getNameFromPropertyName(type2.name)))) {
138650
138638
  return void 0;
@@ -138652,30 +138640,18 @@ function flattenTypeLiteralNodeReference(checker, selection) {
138652
138640
  addRange(result, flattenedTypeMembers);
138653
138641
  }
138654
138642
  return result;
138655
- } else if (isParenthesizedTypeNode(selection)) {
138656
- return flattenTypeLiteralNodeReference(checker, selection.type);
138657
- } else if (isTypeLiteralNode(selection)) {
138658
- return selection.members;
138643
+ } else if (isParenthesizedTypeNode(node)) {
138644
+ return flattenTypeLiteralNodeReference(checker, node.type);
138645
+ } else if (isTypeLiteralNode(node)) {
138646
+ return node.members;
138659
138647
  }
138660
138648
  return void 0;
138661
138649
  }
138662
138650
  function rangeContainsSkipTrivia(r1, node, file) {
138663
- const r1Range = arrayToNode(r1);
138664
- const nodeRange = arrayToNode(node);
138665
- return rangeContainsStartEnd(r1Range, skipTrivia(file.text, nodeRange.pos), nodeRange.end);
138666
- function arrayToNode(rangeOrArray) {
138667
- return isArray(rangeOrArray) ? { pos: rangeOrArray[0].pos, end: rangeOrArray[rangeOrArray.length - 1].end } : rangeOrArray;
138668
- }
138651
+ return rangeContainsStartEnd(r1, skipTrivia(file.text, node.pos), node.end);
138669
138652
  }
138670
138653
  function collectTypeParameters(checker, selection, enclosingNode, file) {
138671
138654
  const result = [];
138672
- if (isArray(selection)) {
138673
- selection.forEach((t) => {
138674
- if (!visitor(t))
138675
- return void 0;
138676
- });
138677
- return result;
138678
- }
138679
138655
  return visitor(selection) ? void 0 : result;
138680
138656
  function visitor(node) {
138681
138657
  if (isTypeReferenceNode(node)) {
@@ -138736,62 +138712,32 @@ function collectTypeParameters(checker, selection, enclosingNode, file) {
138736
138712
  }
138737
138713
  function doTypeAliasChange(changes, file, name, info) {
138738
138714
  const { enclosingNode, selection, typeParameters } = info;
138739
- if (isArray(selection)) {
138740
- const newTypeValue = isUnionTypeNode(selection[0].parent) ? factory.createUnionTypeNode(selection) : factory.createIntersectionTypeNode(selection);
138741
- const newTypeDeclaration = factory.createTypeAliasDeclaration(
138742
- /*modifiers*/
138743
- void 0,
138744
- name,
138745
- typeParameters.map((id) => factory.updateTypeParameterDeclaration(
138746
- id,
138747
- id.modifiers,
138748
- id.name,
138749
- id.constraint,
138750
- /*defaultType*/
138751
- void 0
138752
- )),
138753
- newTypeValue
138754
- );
138755
- changes.insertNodeBefore(
138756
- file,
138757
- enclosingNode,
138758
- ignoreSourceNewlines(newTypeDeclaration),
138759
- /*blankLineBetween*/
138760
- true
138761
- );
138762
- changes.replaceNodeRange(file, selection[0], selection[selection.length - 1], factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
138763
- id.name,
138764
- /*typeArguments*/
138765
- void 0
138766
- ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
138767
- } else {
138768
- const newTypeNode = factory.createTypeAliasDeclaration(
138769
- /*modifiers*/
138770
- void 0,
138771
- name,
138772
- typeParameters.map((id) => factory.updateTypeParameterDeclaration(
138773
- id,
138774
- id.modifiers,
138775
- id.name,
138776
- id.constraint,
138777
- /*defaultType*/
138778
- void 0
138779
- )),
138780
- selection
138781
- );
138782
- changes.insertNodeBefore(
138783
- file,
138784
- enclosingNode,
138785
- ignoreSourceNewlines(newTypeNode),
138786
- /*blankLineBetween*/
138787
- true
138788
- );
138789
- changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
138715
+ const newTypeNode = factory.createTypeAliasDeclaration(
138716
+ /*modifiers*/
138717
+ void 0,
138718
+ name,
138719
+ typeParameters.map((id) => factory.updateTypeParameterDeclaration(
138720
+ id,
138721
+ id.modifiers,
138790
138722
  id.name,
138791
- /*typeArguments*/
138723
+ id.constraint,
138724
+ /*defaultType*/
138792
138725
  void 0
138793
- ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
138794
- }
138726
+ )),
138727
+ selection
138728
+ );
138729
+ changes.insertNodeBefore(
138730
+ file,
138731
+ enclosingNode,
138732
+ ignoreSourceNewlines(newTypeNode),
138733
+ /*blankLineBetween*/
138734
+ true
138735
+ );
138736
+ changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
138737
+ id.name,
138738
+ /*typeArguments*/
138739
+ void 0
138740
+ ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
138795
138741
  }
138796
138742
  function doInterfaceChange(changes, file, name, info) {
138797
138743
  var _a;
@@ -138813,36 +138759,19 @@ function doInterfaceChange(changes, file, name, info) {
138813
138759
  /*blankLineBetween*/
138814
138760
  true
138815
138761
  );
138816
- if (isArray(selection)) {
138817
- changes.replaceNodeRange(file, selection[0], selection[selection.length - 1], factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
138818
- id.name,
138819
- /*typeArguments*/
138820
- void 0
138821
- ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
138822
- } else {
138823
- changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
138824
- id.name,
138825
- /*typeArguments*/
138826
- void 0
138827
- ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
138828
- }
138762
+ changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
138763
+ id.name,
138764
+ /*typeArguments*/
138765
+ void 0
138766
+ ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
138829
138767
  }
138830
138768
  function doTypedefChange(changes, context, file, name, info) {
138831
138769
  var _a;
138832
138770
  const { enclosingNode, selection, typeParameters } = info;
138833
- let newTypeValue;
138834
- if (isArray(selection)) {
138835
- selection.forEach((typeNode) => {
138836
- setEmitFlags(typeNode, 3072 /* NoComments */ | 4096 /* NoNestedComments */);
138837
- });
138838
- newTypeValue = isUnionTypeNode(selection[0].parent) ? factory.createUnionTypeNode(selection) : factory.createIntersectionTypeNode(selection);
138839
- } else {
138840
- setEmitFlags(selection, 3072 /* NoComments */ | 4096 /* NoNestedComments */);
138841
- newTypeValue = selection;
138842
- }
138771
+ setEmitFlags(selection, 3072 /* NoComments */ | 4096 /* NoNestedComments */);
138843
138772
  const node = factory.createJSDocTypedefTag(
138844
138773
  factory.createIdentifier("typedef"),
138845
- factory.createJSDocTypeExpression(newTypeValue),
138774
+ factory.createJSDocTypeExpression(selection),
138846
138775
  factory.createIdentifier(name)
138847
138776
  );
138848
138777
  const templates = [];
@@ -138880,19 +138809,11 @@ function doTypedefChange(changes, context, file, name, info) {
138880
138809
  true
138881
138810
  );
138882
138811
  }
138883
- if (isArray(selection)) {
138884
- changes.replaceNodeRange(file, selection[0], selection[selection.length - 1], factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
138885
- id.name,
138886
- /*typeArguments*/
138887
- void 0
138888
- ))));
138889
- } else {
138890
- changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
138891
- id.name,
138892
- /*typeArguments*/
138893
- void 0
138894
- ))));
138895
- }
138812
+ changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
138813
+ id.name,
138814
+ /*typeArguments*/
138815
+ void 0
138816
+ ))));
138896
138817
  }
138897
138818
  function getEnclosingNode(node, isJS) {
138898
138819
  return findAncestor(node, isStatement) || (isJS ? findAncestor(node, isJSDoc) : void 0);
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.3";
38
- version = `${versionMajorMinor}.0-insiders.20231016`;
38
+ version = `${versionMajorMinor}.0-insiders.20231020`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -7963,6 +7963,7 @@ ${lanes.join("\n")}
7963
7963
  Excessive_complexity_comparing_types_0_and_1: diag(2859, 1 /* Error */, "Excessive_complexity_comparing_types_0_and_1_2859", "Excessive complexity comparing types '{0}' and '{1}'."),
7964
7964
  The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method: diag(2860, 1 /* Error */, "The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860", "The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method."),
7965
7965
  An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression: diag(2861, 1 /* Error */, "An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861", "An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression."),
7966
+ Type_0_is_generic_and_can_only_be_indexed_for_reading: diag(2862, 1 /* Error */, "Type_0_is_generic_and_can_only_be_indexed_for_reading_2862", "Type '{0}' is generic and can only be indexed for reading."),
7966
7967
  Import_declaration_0_is_using_private_name_1: diag(4e3, 1 /* Error */, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."),
7967
7968
  Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, 1 /* Error */, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."),
7968
7969
  Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, 1 /* Error */, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."),
@@ -25834,17 +25835,18 @@ ${lanes.join("\n")}
25834
25835
  scoped: false,
25835
25836
  dependencies: [awaitHelper],
25836
25837
  text: `
25837
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
25838
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
25839
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
25840
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
25841
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
25842
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
25843
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
25844
- function fulfill(value) { resume("next", value); }
25845
- function reject(value) { resume("throw", value); }
25846
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
25847
- };`
25838
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
25839
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
25840
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
25841
+ return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
25842
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
25843
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
25844
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
25845
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
25846
+ function fulfill(value) { resume("next", value); }
25847
+ function reject(value) { resume("throw", value); }
25848
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
25849
+ };`
25848
25850
  };
25849
25851
  asyncDelegator = {
25850
25852
  name: "typescript:asyncDelegator",
@@ -60132,7 +60134,11 @@ ${lanes.join("\n")}
60132
60134
  if (indexInfo) {
60133
60135
  if (accessFlags & 2 /* NoIndexSignatures */ && indexInfo.keyType !== numberType) {
60134
60136
  if (accessExpression) {
60135
- error2(accessExpression, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(originalObjectType));
60137
+ if (accessFlags & 4 /* Writing */) {
60138
+ error2(accessExpression, Diagnostics.Type_0_is_generic_and_can_only_be_indexed_for_reading, typeToString(originalObjectType));
60139
+ } else {
60140
+ error2(accessExpression, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(originalObjectType));
60141
+ }
60136
60142
  }
60137
60143
  return void 0;
60138
60144
  }
@@ -68409,13 +68415,15 @@ ${lanes.join("\n")}
68409
68415
  return void 0;
68410
68416
  }
68411
68417
  function getDiscriminantPropertyAccess(expr, computedType) {
68412
- const type = !(computedType.flags & 1048576 /* Union */) && declaredType.flags & 1048576 /* Union */ ? declaredType : computedType;
68413
- if (type.flags & 1048576 /* Union */) {
68418
+ if (declaredType.flags & 1048576 /* Union */ || computedType.flags & 1048576 /* Union */) {
68414
68419
  const access = getCandidateDiscriminantPropertyAccess(expr);
68415
68420
  if (access) {
68416
68421
  const name = getAccessedPropertyName(access);
68417
- if (name && isDiscriminantProperty(type, name)) {
68418
- return access;
68422
+ if (name) {
68423
+ const type = declaredType.flags & 1048576 /* Union */ && isTypeSubsetOf(computedType, declaredType) ? declaredType : computedType;
68424
+ if (isDiscriminantProperty(type, name)) {
68425
+ return access;
68426
+ }
68419
68427
  }
68420
68428
  }
68421
68429
  }
@@ -82161,7 +82169,7 @@ ${lanes.join("\n")}
82161
82169
  error2(member.name, Diagnostics.Computed_property_names_are_not_allowed_in_enums);
82162
82170
  } else {
82163
82171
  const text = getTextOfPropertyName(member.name);
82164
- if (isNumericLiteralName(text) && !isInfinityOrNaNString(text)) {
82172
+ if (isNumericLiteralName(text)) {
82165
82173
  error2(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name);
82166
82174
  }
82167
82175
  }
@@ -136916,46 +136924,26 @@ ${lanes.join("\n")}
136916
136924
  const current = getTokenAtPosition(file, startPosition);
136917
136925
  const range = createTextRangeFromSpan(getRefactorContextSpan(context));
136918
136926
  const cursorRequest = range.pos === range.end && considerEmptySpans;
136919
- const firstType = findAncestor(current, (node) => node.parent && isTypeNode(node) && !rangeContainsSkipTrivia(range, node.parent, file) && (cursorRequest || nodeOverlapsWithStartEnd(current, file, range.pos, range.end)));
136920
- if (!firstType || !isTypeNode(firstType))
136927
+ const selection = findAncestor(current, (node) => node.parent && isTypeNode(node) && !rangeContainsSkipTrivia(range, node.parent, file) && (cursorRequest || nodeOverlapsWithStartEnd(current, file, range.pos, range.end)));
136928
+ if (!selection || !isTypeNode(selection))
136921
136929
  return { error: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_type_node) };
136922
136930
  const checker = context.program.getTypeChecker();
136923
- const enclosingNode = getEnclosingNode(firstType, isJS);
136931
+ const enclosingNode = getEnclosingNode(selection, isJS);
136924
136932
  if (enclosingNode === void 0)
136925
136933
  return { error: getLocaleSpecificMessage(Diagnostics.No_type_could_be_extracted_from_this_type_node) };
136926
- const typeList = [];
136927
- if ((isUnionTypeNode(firstType.parent) || isIntersectionTypeNode(firstType.parent)) && range.end > firstType.end) {
136928
- addRange(
136929
- typeList,
136930
- firstType.parent.types.filter((type) => {
136931
- return type.getStart() >= range.pos && type.getEnd() <= range.end;
136932
- })
136933
- );
136934
- }
136935
- const selection = typeList.length > 1 ? typeList : firstType;
136936
136934
  const typeParameters = collectTypeParameters(checker, selection, enclosingNode, file);
136937
136935
  if (!typeParameters)
136938
136936
  return { error: getLocaleSpecificMessage(Diagnostics.No_type_could_be_extracted_from_this_type_node) };
136939
136937
  const typeElements = flattenTypeLiteralNodeReference(checker, selection);
136940
136938
  return { isJS, selection, enclosingNode, typeParameters, typeElements };
136941
136939
  }
136942
- function flattenTypeLiteralNodeReference(checker, selection) {
136943
- if (!selection)
136940
+ function flattenTypeLiteralNodeReference(checker, node) {
136941
+ if (!node)
136944
136942
  return void 0;
136945
- if (isArray(selection)) {
136946
- const result = [];
136947
- for (const type of selection) {
136948
- const flattenedTypeMembers = flattenTypeLiteralNodeReference(checker, type);
136949
- if (!flattenedTypeMembers)
136950
- return void 0;
136951
- addRange(result, flattenedTypeMembers);
136952
- }
136953
- return result;
136954
- }
136955
- if (isIntersectionTypeNode(selection)) {
136943
+ if (isIntersectionTypeNode(node)) {
136956
136944
  const result = [];
136957
136945
  const seen = /* @__PURE__ */ new Map();
136958
- for (const type of selection.types) {
136946
+ for (const type of node.types) {
136959
136947
  const flattenedTypeMembers = flattenTypeLiteralNodeReference(checker, type);
136960
136948
  if (!flattenedTypeMembers || !flattenedTypeMembers.every((type2) => type2.name && addToSeen(seen, getNameFromPropertyName(type2.name)))) {
136961
136949
  return void 0;
@@ -136963,30 +136951,18 @@ ${lanes.join("\n")}
136963
136951
  addRange(result, flattenedTypeMembers);
136964
136952
  }
136965
136953
  return result;
136966
- } else if (isParenthesizedTypeNode(selection)) {
136967
- return flattenTypeLiteralNodeReference(checker, selection.type);
136968
- } else if (isTypeLiteralNode(selection)) {
136969
- return selection.members;
136954
+ } else if (isParenthesizedTypeNode(node)) {
136955
+ return flattenTypeLiteralNodeReference(checker, node.type);
136956
+ } else if (isTypeLiteralNode(node)) {
136957
+ return node.members;
136970
136958
  }
136971
136959
  return void 0;
136972
136960
  }
136973
136961
  function rangeContainsSkipTrivia(r1, node, file) {
136974
- const r1Range = arrayToNode(r1);
136975
- const nodeRange = arrayToNode(node);
136976
- return rangeContainsStartEnd(r1Range, skipTrivia(file.text, nodeRange.pos), nodeRange.end);
136977
- function arrayToNode(rangeOrArray) {
136978
- return isArray(rangeOrArray) ? { pos: rangeOrArray[0].pos, end: rangeOrArray[rangeOrArray.length - 1].end } : rangeOrArray;
136979
- }
136962
+ return rangeContainsStartEnd(r1, skipTrivia(file.text, node.pos), node.end);
136980
136963
  }
136981
136964
  function collectTypeParameters(checker, selection, enclosingNode, file) {
136982
136965
  const result = [];
136983
- if (isArray(selection)) {
136984
- selection.forEach((t) => {
136985
- if (!visitor(t))
136986
- return void 0;
136987
- });
136988
- return result;
136989
- }
136990
136966
  return visitor(selection) ? void 0 : result;
136991
136967
  function visitor(node) {
136992
136968
  if (isTypeReferenceNode(node)) {
@@ -137047,62 +137023,32 @@ ${lanes.join("\n")}
137047
137023
  }
137048
137024
  function doTypeAliasChange(changes, file, name, info) {
137049
137025
  const { enclosingNode, selection, typeParameters } = info;
137050
- if (isArray(selection)) {
137051
- const newTypeValue = isUnionTypeNode(selection[0].parent) ? factory.createUnionTypeNode(selection) : factory.createIntersectionTypeNode(selection);
137052
- const newTypeDeclaration = factory.createTypeAliasDeclaration(
137053
- /*modifiers*/
137054
- void 0,
137055
- name,
137056
- typeParameters.map((id) => factory.updateTypeParameterDeclaration(
137057
- id,
137058
- id.modifiers,
137059
- id.name,
137060
- id.constraint,
137061
- /*defaultType*/
137062
- void 0
137063
- )),
137064
- newTypeValue
137065
- );
137066
- changes.insertNodeBefore(
137067
- file,
137068
- enclosingNode,
137069
- ignoreSourceNewlines(newTypeDeclaration),
137070
- /*blankLineBetween*/
137071
- true
137072
- );
137073
- changes.replaceNodeRange(file, selection[0], selection[selection.length - 1], factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
137074
- id.name,
137075
- /*typeArguments*/
137076
- void 0
137077
- ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
137078
- } else {
137079
- const newTypeNode = factory.createTypeAliasDeclaration(
137080
- /*modifiers*/
137081
- void 0,
137082
- name,
137083
- typeParameters.map((id) => factory.updateTypeParameterDeclaration(
137084
- id,
137085
- id.modifiers,
137086
- id.name,
137087
- id.constraint,
137088
- /*defaultType*/
137089
- void 0
137090
- )),
137091
- selection
137092
- );
137093
- changes.insertNodeBefore(
137094
- file,
137095
- enclosingNode,
137096
- ignoreSourceNewlines(newTypeNode),
137097
- /*blankLineBetween*/
137098
- true
137099
- );
137100
- changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
137026
+ const newTypeNode = factory.createTypeAliasDeclaration(
137027
+ /*modifiers*/
137028
+ void 0,
137029
+ name,
137030
+ typeParameters.map((id) => factory.updateTypeParameterDeclaration(
137031
+ id,
137032
+ id.modifiers,
137101
137033
  id.name,
137102
- /*typeArguments*/
137034
+ id.constraint,
137035
+ /*defaultType*/
137103
137036
  void 0
137104
- ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
137105
- }
137037
+ )),
137038
+ selection
137039
+ );
137040
+ changes.insertNodeBefore(
137041
+ file,
137042
+ enclosingNode,
137043
+ ignoreSourceNewlines(newTypeNode),
137044
+ /*blankLineBetween*/
137045
+ true
137046
+ );
137047
+ changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
137048
+ id.name,
137049
+ /*typeArguments*/
137050
+ void 0
137051
+ ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
137106
137052
  }
137107
137053
  function doInterfaceChange(changes, file, name, info) {
137108
137054
  var _a;
@@ -137124,36 +137070,19 @@ ${lanes.join("\n")}
137124
137070
  /*blankLineBetween*/
137125
137071
  true
137126
137072
  );
137127
- if (isArray(selection)) {
137128
- changes.replaceNodeRange(file, selection[0], selection[selection.length - 1], factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
137129
- id.name,
137130
- /*typeArguments*/
137131
- void 0
137132
- ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
137133
- } else {
137134
- changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
137135
- id.name,
137136
- /*typeArguments*/
137137
- void 0
137138
- ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
137139
- }
137073
+ changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
137074
+ id.name,
137075
+ /*typeArguments*/
137076
+ void 0
137077
+ ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });
137140
137078
  }
137141
137079
  function doTypedefChange(changes, context, file, name, info) {
137142
137080
  var _a;
137143
137081
  const { enclosingNode, selection, typeParameters } = info;
137144
- let newTypeValue;
137145
- if (isArray(selection)) {
137146
- selection.forEach((typeNode) => {
137147
- setEmitFlags(typeNode, 3072 /* NoComments */ | 4096 /* NoNestedComments */);
137148
- });
137149
- newTypeValue = isUnionTypeNode(selection[0].parent) ? factory.createUnionTypeNode(selection) : factory.createIntersectionTypeNode(selection);
137150
- } else {
137151
- setEmitFlags(selection, 3072 /* NoComments */ | 4096 /* NoNestedComments */);
137152
- newTypeValue = selection;
137153
- }
137082
+ setEmitFlags(selection, 3072 /* NoComments */ | 4096 /* NoNestedComments */);
137154
137083
  const node = factory.createJSDocTypedefTag(
137155
137084
  factory.createIdentifier("typedef"),
137156
- factory.createJSDocTypeExpression(newTypeValue),
137085
+ factory.createJSDocTypeExpression(selection),
137157
137086
  factory.createIdentifier(name)
137158
137087
  );
137159
137088
  const templates = [];
@@ -137191,19 +137120,11 @@ ${lanes.join("\n")}
137191
137120
  true
137192
137121
  );
137193
137122
  }
137194
- if (isArray(selection)) {
137195
- changes.replaceNodeRange(file, selection[0], selection[selection.length - 1], factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
137196
- id.name,
137197
- /*typeArguments*/
137198
- void 0
137199
- ))));
137200
- } else {
137201
- changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
137202
- id.name,
137203
- /*typeArguments*/
137204
- void 0
137205
- ))));
137206
- }
137123
+ changes.replaceNode(file, selection, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(
137124
+ id.name,
137125
+ /*typeArguments*/
137126
+ void 0
137127
+ ))));
137207
137128
  }
137208
137129
  function getEnclosingNode(node, isJS) {
137209
137130
  return findAncestor(node, isStatement) || (isJS ? findAncestor(node, isJSDoc) : void 0);
@@ -54,7 +54,7 @@ var path = __toESM(require("path"));
54
54
 
55
55
  // src/compiler/corePublic.ts
56
56
  var versionMajorMinor = "5.3";
57
- var version = `${versionMajorMinor}.0-insiders.20231016`;
57
+ var version = `${versionMajorMinor}.0-insiders.20231020`;
58
58
 
59
59
  // src/compiler/core.ts
60
60
  var emptyArray = [];
@@ -6030,6 +6030,7 @@ var Diagnostics = {
6030
6030
  Excessive_complexity_comparing_types_0_and_1: diag(2859, 1 /* Error */, "Excessive_complexity_comparing_types_0_and_1_2859", "Excessive complexity comparing types '{0}' and '{1}'."),
6031
6031
  The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method: diag(2860, 1 /* Error */, "The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860", "The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method."),
6032
6032
  An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression: diag(2861, 1 /* Error */, "An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861", "An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression."),
6033
+ Type_0_is_generic_and_can_only_be_indexed_for_reading: diag(2862, 1 /* Error */, "Type_0_is_generic_and_can_only_be_indexed_for_reading_2862", "Type '{0}' is generic and can only be indexed for reading."),
6033
6034
  Import_declaration_0_is_using_private_name_1: diag(4e3, 1 /* Error */, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."),
6034
6035
  Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, 1 /* Error */, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."),
6035
6036
  Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, 1 /* Error */, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."),
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@typescript-deploys/pr-build",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "5.3.0-pr-56131-2",
5
+ "version": "5.3.0-pr-56161-5",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [
@@ -115,5 +115,5 @@
115
115
  "node": "20.1.0",
116
116
  "npm": "8.19.4"
117
117
  },
118
- "gitHead": "e200ac3a5a2ed19564bf2d945bff492fa5a9576f"
118
+ "gitHead": "dcaa0b853cdd7d1d26b312a499a64451a9fe41e5"
119
119
  }