@typescript-deploys/pr-build 5.3.0-pr-55452-4 → 5.3.0-pr-55471-8

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.20230821`;
21
+ var version = `${versionMajorMinor}.0-insiders.20230822`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -17484,9 +17484,6 @@ function getPropertyNameFromType(type) {
17484
17484
  }
17485
17485
  return Debug.fail();
17486
17486
  }
17487
- function isNamedTupleMemberName(node) {
17488
- return node.kind === 80 /* Identifier */ || node.kind === 203 /* TemplateLiteralType */ || node.kind === 15 /* NoSubstitutionTemplateLiteral */;
17489
- }
17490
17487
 
17491
17488
  // src/compiler/factory/baseNodeFactory.ts
17492
17489
  function createBaseNodeFactory() {
@@ -28660,29 +28657,21 @@ var Parser;
28660
28657
  }
28661
28658
  return type;
28662
28659
  }
28663
- function isTokenColonOrQuestionColon() {
28664
- return token() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */;
28660
+ function isNextTokenColonOrQuestionColon() {
28661
+ return nextToken() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */;
28665
28662
  }
28666
28663
  function isTupleElementName() {
28667
28664
  if (token() === 26 /* DotDotDotToken */) {
28668
- nextToken();
28669
- }
28670
- if (token() === 16 /* TemplateHead */) {
28671
- parseTemplateType();
28672
- return isTokenColonOrQuestionColon();
28665
+ return tokenIsIdentifierOrKeyword(nextToken()) && isNextTokenColonOrQuestionColon();
28673
28666
  }
28674
- if (tokenIsIdentifierOrKeyword(token()) || token() === 15 /* NoSubstitutionTemplateLiteral */) {
28675
- nextToken();
28676
- return isTokenColonOrQuestionColon();
28677
- }
28678
- return false;
28667
+ return tokenIsIdentifierOrKeyword(token()) && isNextTokenColonOrQuestionColon();
28679
28668
  }
28680
28669
  function parseTupleElementNameOrTupleElementType() {
28681
28670
  if (lookAhead(isTupleElementName)) {
28682
28671
  const pos = getNodePos();
28683
28672
  const hasJSDoc = hasPrecedingJSDocComment();
28684
28673
  const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);
28685
- const name = token() === 15 /* NoSubstitutionTemplateLiteral */ ? parseLiteralLikeNode(token()) : token() === 16 /* TemplateHead */ ? parseTemplateType() : parseIdentifierName();
28674
+ const name = parseIdentifierName();
28686
28675
  const questionToken = parseOptionalToken(58 /* QuestionToken */);
28687
28676
  parseExpected(59 /* ColonToken */);
28688
28677
  const type = parseTupleElementType();
@@ -48092,11 +48081,10 @@ function createTypeChecker(host) {
48092
48081
  for (let i = 0; i < tupleConstituentNodes.length; i++) {
48093
48082
  const flags = type2.target.elementFlags[i];
48094
48083
  const labeledElementDeclaration = labeledElementDeclarations == null ? void 0 : labeledElementDeclarations[i];
48095
- const label = labeledElementDeclaration && getTupleElementLabel(type2, labeledElementDeclaration);
48096
- if (label) {
48084
+ if (labeledElementDeclaration) {
48097
48085
  tupleConstituentNodes[i] = factory.createNamedTupleMember(
48098
48086
  flags & 12 /* Variable */ ? factory.createToken(26 /* DotDotDotToken */) : void 0,
48099
- factory.createIdentifier(unescapeLeadingUnderscores(label)),
48087
+ factory.createIdentifier(unescapeLeadingUnderscores(getTupleElementLabel(labeledElementDeclaration))),
48100
48088
  flags & 2 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,
48101
48089
  flags & 4 /* Rest */ ? factory.createArrayTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]
48102
48090
  );
@@ -48642,11 +48630,17 @@ function createTypeChecker(host) {
48642
48630
  const constraintNode = constraint && typeToTypeNodeHelper(constraint, context);
48643
48631
  return typeParameterToDeclarationWithConstraint(type, context, constraintNode);
48644
48632
  }
48645
- function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
48646
- let parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
48647
- if (!parameterDeclaration && !isTransientSymbol(parameterSymbol)) {
48648
- parameterDeclaration = getDeclarationOfKind(parameterSymbol, 348 /* JSDocParameterTag */);
48633
+ function getEffectiveParameterDeclaration(parameterSymbol) {
48634
+ const parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
48635
+ if (parameterDeclaration) {
48636
+ return parameterDeclaration;
48637
+ }
48638
+ if (!isTransientSymbol(parameterSymbol)) {
48639
+ return getDeclarationOfKind(parameterSymbol, 348 /* JSDocParameterTag */);
48649
48640
  }
48641
+ }
48642
+ function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
48643
+ const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);
48650
48644
  let parameterType = getTypeOfSymbol(parameterSymbol);
48651
48645
  if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) {
48652
48646
  parameterType = getOptionalType(parameterType);
@@ -48655,7 +48649,7 @@ function createTypeChecker(host) {
48655
48649
  const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;
48656
48650
  const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;
48657
48651
  const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;
48658
- const name = parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 166 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol);
48652
+ const name = parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context);
48659
48653
  const isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */;
48660
48654
  const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;
48661
48655
  const parameterNode = factory.createParameterDeclaration(
@@ -48669,6 +48663,9 @@ function createTypeChecker(host) {
48669
48663
  );
48670
48664
  context.approximateLength += symbolName(parameterSymbol).length + 3;
48671
48665
  return parameterNode;
48666
+ }
48667
+ function parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context) {
48668
+ return parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 166 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol);
48672
48669
  function cloneBindingName(node) {
48673
48670
  return elideInitializerAndSetEmitFlags(node);
48674
48671
  function elideInitializerAndSetEmitFlags(node2) {
@@ -50649,6 +50646,21 @@ function createTypeChecker(host) {
50649
50646
  if (p.flags & 98304 /* Accessor */ && useAccessors) {
50650
50647
  const result = [];
50651
50648
  if (p.flags & 65536 /* SetAccessor */) {
50649
+ const setter = p.declarations && forEach(p.declarations, (d) => {
50650
+ if (d.kind === 178 /* SetAccessor */) {
50651
+ return d;
50652
+ }
50653
+ if (isCallExpression(d) && isBindableObjectDefinePropertyCall(d)) {
50654
+ return forEach(d.arguments[2].properties, (propDecl) => {
50655
+ const id = getNameOfDeclaration(propDecl);
50656
+ if (!!id && isIdentifier(id) && idText(id) === "set") {
50657
+ return propDecl;
50658
+ }
50659
+ });
50660
+ }
50661
+ });
50662
+ Debug.assert(setter && isFunctionLikeDeclaration(setter));
50663
+ const paramSymbol = getSignatureFromDeclaration(setter).parameters[0];
50652
50664
  result.push(setTextRange(
50653
50665
  factory.createSetAccessorDeclaration(
50654
50666
  factory.createModifiersFromModifierFlags(flag),
@@ -50658,7 +50670,7 @@ function createTypeChecker(host) {
50658
50670
  void 0,
50659
50671
  /*dotDotDotToken*/
50660
50672
  void 0,
50661
- "arg",
50673
+ paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : "value",
50662
50674
  /*questionToken*/
50663
50675
  void 0,
50664
50676
  isPrivate ? void 0 : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled)
@@ -53296,7 +53308,7 @@ function createTypeChecker(host) {
53296
53308
  function getUniqAssociatedNamesFromTupleType(type, restName) {
53297
53309
  const associatedNamesMap = /* @__PURE__ */ new Map();
53298
53310
  return map(type.target.labeledElementDeclarations, (labeledElement, i) => {
53299
- const name = getTupleElementLabel(type, labeledElement, i, restName);
53311
+ const name = getTupleElementLabel(labeledElement, i, restName);
53300
53312
  const prevCounter = associatedNamesMap.get(name);
53301
53313
  if (prevCounter === void 0) {
53302
53314
  associatedNamesMap.set(name, 1);
@@ -54752,7 +54764,7 @@ function createTypeChecker(host) {
54752
54764
  }
54753
54765
  const iife = getImmediatelyInvokedFunctionExpression(node.parent);
54754
54766
  if (iife) {
54755
- return !node.type && !node.dotDotDotToken && node.parent.parameters.indexOf(node) >= iife.arguments.length;
54767
+ return !node.type && !node.dotDotDotToken && node.parent.parameters.indexOf(node) >= getEffectiveCallArguments(iife).length;
54756
54768
  }
54757
54769
  return false;
54758
54770
  }
@@ -57069,7 +57081,7 @@ function createTypeChecker(host) {
57069
57081
  }
57070
57082
  function getLiteralTypeFromProperties(type, include, includeOrigin) {
57071
57083
  const origin = includeOrigin && (getObjectFlags(type) & (3 /* ClassOrInterface */ | 4 /* Reference */) || type.aliasSymbol) ? createOriginIndexType(type) : void 0;
57072
- const propertyTypes = map(getPropertiesOfType(type), (prop) => getLiteralTypeFromProperty(prop, include));
57084
+ const propertyTypes = map(getPropertiesOfType(type), (prop) => prop.flags & 4194304 /* Prototype */ ? neverType : getLiteralTypeFromProperty(prop, include));
57073
57085
  const indexKeyTypes = map(getIndexInfosOfType(type), (info) => info !== enumNumberIndexInfo && isKeyTypeIncluded(info.keyType, include) ? info.keyType === stringType && include & 8 /* Number */ ? stringOrNumberType : info.keyType : neverType);
57074
57086
  return getUnionType(
57075
57087
  concatenate(propertyTypes, indexKeyTypes),
@@ -72052,27 +72064,20 @@ function createTypeChecker(host) {
72052
72064
  return node.name.escapedText === "meta" ? getGlobalImportMetaType() : errorType;
72053
72065
  }
72054
72066
  function getTypeOfParameter(symbol) {
72055
- const type = getTypeOfSymbol(symbol);
72056
- if (strictNullChecks) {
72057
- const declaration = symbol.valueDeclaration;
72058
- if (declaration && hasInitializer(declaration)) {
72059
- return getOptionalType(type);
72060
- }
72061
- }
72062
- return type;
72067
+ const declaration = symbol.valueDeclaration;
72068
+ return addOptionality(
72069
+ getTypeOfSymbol(symbol),
72070
+ /*isProperty*/
72071
+ false,
72072
+ /*isOptional*/
72073
+ !!declaration && (hasInitializer(declaration) || isOptionalDeclaration(declaration))
72074
+ );
72063
72075
  }
72064
- function getTupleElementLabel(tupleType, d, index, restParameterName = "arg") {
72076
+ function getTupleElementLabel(d, index, restParameterName = "arg") {
72065
72077
  if (!d) {
72066
72078
  return `${restParameterName}_${index}`;
72067
72079
  }
72068
- Debug.assert(!isBindingPattern(d.name));
72069
- if (d.name.kind === 203 /* TemplateLiteralType */) {
72070
- const label = instantiateType(getTypeFromTypeNode(d.name), tupleType.mapper);
72071
- return label.flags & 128 /* StringLiteral */ ? escapeLeadingUnderscores(label.value) : typeof index === "number" ? `${restParameterName}_${index}` : void 0;
72072
- }
72073
- if (d.name.kind === 15 /* NoSubstitutionTemplateLiteral */) {
72074
- return escapeLeadingUnderscores(d.name.text);
72075
- }
72080
+ Debug.assert(isIdentifier(d.name));
72076
72081
  return d.name.escapedText;
72077
72082
  }
72078
72083
  function getParameterNameAtPosition(signature, pos, overrideRestType) {
@@ -72085,7 +72090,7 @@ function createTypeChecker(host) {
72085
72090
  if (isTupleType(restType)) {
72086
72091
  const associatedNames = restType.target.labeledElementDeclarations;
72087
72092
  const index = pos - paramCount;
72088
- return getTupleElementLabel(restType, associatedNames == null ? void 0 : associatedNames[index], index, restParameter.escapedName);
72093
+ return getTupleElementLabel(associatedNames == null ? void 0 : associatedNames[index], index, restParameter.escapedName);
72089
72094
  }
72090
72095
  return restParameter.escapedName;
72091
72096
  }
@@ -72115,7 +72120,8 @@ function createTypeChecker(host) {
72115
72120
  const index = pos - paramCount;
72116
72121
  const associatedName = associatedNames == null ? void 0 : associatedNames[index];
72117
72122
  const isRestTupleElement = !!(associatedName == null ? void 0 : associatedName.dotDotDotToken);
72118
- if (associatedName && isIdentifier(associatedName.name)) {
72123
+ if (associatedName) {
72124
+ Debug.assert(isIdentifier(associatedName.name));
72119
72125
  return { parameter: associatedName.name, parameterName: associatedName.name.escapedText, isRestParameter: isRestTupleElement };
72120
72126
  }
72121
72127
  return void 0;
@@ -72332,23 +72338,29 @@ function createTypeChecker(host) {
72332
72338
  assignParameterType(parameter);
72333
72339
  }
72334
72340
  }
72335
- function assignParameterType(parameter, type) {
72341
+ function assignParameterType(parameter, contextualType) {
72336
72342
  const links = getSymbolLinks(parameter);
72337
72343
  if (!links.type) {
72338
72344
  const declaration = parameter.valueDeclaration;
72339
- links.type = type || (declaration ? getWidenedTypeForVariableLikeDeclaration(
72340
- declaration,
72341
- /*reportErrors*/
72342
- true
72343
- ) : getTypeOfSymbol(parameter));
72345
+ links.type = addOptionality(
72346
+ contextualType || (declaration ? getWidenedTypeForVariableLikeDeclaration(
72347
+ declaration,
72348
+ /*reportErrors*/
72349
+ true
72350
+ ) : getTypeOfSymbol(parameter)),
72351
+ /*isProperty*/
72352
+ false,
72353
+ /*isOptional*/
72354
+ !!declaration && !declaration.initializer && isOptionalDeclaration(declaration)
72355
+ );
72344
72356
  if (declaration && declaration.name.kind !== 80 /* Identifier */) {
72345
72357
  if (links.type === unknownType) {
72346
72358
  links.type = getTypeFromBindingPattern(declaration.name);
72347
72359
  }
72348
72360
  assignBindingElementTypes(declaration.name, links.type);
72349
72361
  }
72350
- } else if (type) {
72351
- Debug.assertEqual(links.type, type, "Parameter symbol already has a cached type which differs from newly assigned type");
72362
+ } else if (contextualType) {
72363
+ Debug.assertEqual(links.type, contextualType, "Parameter symbol already has a cached type which differs from newly assigned type");
72352
72364
  }
72353
72365
  }
72354
72366
  function assignBindingElementTypes(pattern, parentType) {
@@ -75613,9 +75625,6 @@ function createTypeChecker(host) {
75613
75625
  if (node.type.kind === 191 /* RestType */) {
75614
75626
  grammarErrorOnNode(node.type, Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type);
75615
75627
  }
75616
- if (node.name.kind === 203 /* TemplateLiteralType */) {
75617
- checkSourceElement(node.name);
75618
- }
75619
75628
  checkSourceElement(node.type);
75620
75629
  getTypeFromTypeNode(node);
75621
75630
  }
@@ -84427,7 +84436,7 @@ var visitEachChildTable = {
84427
84436
  return context.factory.updateNamedTupleMember(
84428
84437
  node,
84429
84438
  tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken,
84430
- Debug.checkDefined(nodeVisitor(node.name, visitor, isNamedTupleMemberName)),
84439
+ Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),
84431
84440
  tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,
84432
84441
  Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))
84433
84442
  );
package/lib/tsserver.js CHANGED
@@ -1587,7 +1587,6 @@ __export(server_exports, {
1587
1587
  isNamedImports: () => isNamedImports,
1588
1588
  isNamedImportsOrExports: () => isNamedImportsOrExports,
1589
1589
  isNamedTupleMember: () => isNamedTupleMember,
1590
- isNamedTupleMemberName: () => isNamedTupleMemberName,
1591
1590
  isNamespaceBody: () => isNamespaceBody,
1592
1591
  isNamespaceExport: () => isNamespaceExport,
1593
1592
  isNamespaceExportDeclaration: () => isNamespaceExportDeclaration,
@@ -2334,7 +2333,7 @@ module.exports = __toCommonJS(server_exports);
2334
2333
 
2335
2334
  // src/compiler/corePublic.ts
2336
2335
  var versionMajorMinor = "5.3";
2337
- var version = `${versionMajorMinor}.0-insiders.20230821`;
2336
+ var version = `${versionMajorMinor}.0-insiders.20230822`;
2338
2337
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2339
2338
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2340
2339
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -21686,9 +21685,6 @@ function getPropertyNameFromType(type) {
21686
21685
  }
21687
21686
  return Debug.fail();
21688
21687
  }
21689
- function isNamedTupleMemberName(node) {
21690
- return node.kind === 80 /* Identifier */ || node.kind === 203 /* TemplateLiteralType */ || node.kind === 15 /* NoSubstitutionTemplateLiteral */;
21691
- }
21692
21688
 
21693
21689
  // src/compiler/factory/baseNodeFactory.ts
21694
21690
  function createBaseNodeFactory() {
@@ -33063,29 +33059,21 @@ var Parser;
33063
33059
  }
33064
33060
  return type;
33065
33061
  }
33066
- function isTokenColonOrQuestionColon() {
33067
- return token() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */;
33062
+ function isNextTokenColonOrQuestionColon() {
33063
+ return nextToken() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */;
33068
33064
  }
33069
33065
  function isTupleElementName() {
33070
33066
  if (token() === 26 /* DotDotDotToken */) {
33071
- nextToken();
33072
- }
33073
- if (token() === 16 /* TemplateHead */) {
33074
- parseTemplateType();
33075
- return isTokenColonOrQuestionColon();
33067
+ return tokenIsIdentifierOrKeyword(nextToken()) && isNextTokenColonOrQuestionColon();
33076
33068
  }
33077
- if (tokenIsIdentifierOrKeyword(token()) || token() === 15 /* NoSubstitutionTemplateLiteral */) {
33078
- nextToken();
33079
- return isTokenColonOrQuestionColon();
33080
- }
33081
- return false;
33069
+ return tokenIsIdentifierOrKeyword(token()) && isNextTokenColonOrQuestionColon();
33082
33070
  }
33083
33071
  function parseTupleElementNameOrTupleElementType() {
33084
33072
  if (lookAhead(isTupleElementName)) {
33085
33073
  const pos = getNodePos();
33086
33074
  const hasJSDoc = hasPrecedingJSDocComment();
33087
33075
  const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);
33088
- const name = token() === 15 /* NoSubstitutionTemplateLiteral */ ? parseLiteralLikeNode(token()) : token() === 16 /* TemplateHead */ ? parseTemplateType() : parseIdentifierName();
33076
+ const name = parseIdentifierName();
33089
33077
  const questionToken = parseOptionalToken(58 /* QuestionToken */);
33090
33078
  parseExpected(59 /* ColonToken */);
33091
33079
  const type = parseTupleElementType();
@@ -52801,11 +52789,10 @@ function createTypeChecker(host) {
52801
52789
  for (let i = 0; i < tupleConstituentNodes.length; i++) {
52802
52790
  const flags = type2.target.elementFlags[i];
52803
52791
  const labeledElementDeclaration = labeledElementDeclarations == null ? void 0 : labeledElementDeclarations[i];
52804
- const label = labeledElementDeclaration && getTupleElementLabel(type2, labeledElementDeclaration);
52805
- if (label) {
52792
+ if (labeledElementDeclaration) {
52806
52793
  tupleConstituentNodes[i] = factory.createNamedTupleMember(
52807
52794
  flags & 12 /* Variable */ ? factory.createToken(26 /* DotDotDotToken */) : void 0,
52808
- factory.createIdentifier(unescapeLeadingUnderscores(label)),
52795
+ factory.createIdentifier(unescapeLeadingUnderscores(getTupleElementLabel(labeledElementDeclaration))),
52809
52796
  flags & 2 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,
52810
52797
  flags & 4 /* Rest */ ? factory.createArrayTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]
52811
52798
  );
@@ -53351,11 +53338,17 @@ function createTypeChecker(host) {
53351
53338
  const constraintNode = constraint && typeToTypeNodeHelper(constraint, context);
53352
53339
  return typeParameterToDeclarationWithConstraint(type, context, constraintNode);
53353
53340
  }
53354
- function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
53355
- let parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
53356
- if (!parameterDeclaration && !isTransientSymbol(parameterSymbol)) {
53357
- parameterDeclaration = getDeclarationOfKind(parameterSymbol, 348 /* JSDocParameterTag */);
53341
+ function getEffectiveParameterDeclaration(parameterSymbol) {
53342
+ const parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
53343
+ if (parameterDeclaration) {
53344
+ return parameterDeclaration;
53345
+ }
53346
+ if (!isTransientSymbol(parameterSymbol)) {
53347
+ return getDeclarationOfKind(parameterSymbol, 348 /* JSDocParameterTag */);
53358
53348
  }
53349
+ }
53350
+ function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
53351
+ const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);
53359
53352
  let parameterType = getTypeOfSymbol(parameterSymbol);
53360
53353
  if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) {
53361
53354
  parameterType = getOptionalType(parameterType);
@@ -53364,7 +53357,7 @@ function createTypeChecker(host) {
53364
53357
  const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;
53365
53358
  const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;
53366
53359
  const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;
53367
- const name = parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 166 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol);
53360
+ const name = parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context);
53368
53361
  const isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */;
53369
53362
  const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;
53370
53363
  const parameterNode = factory.createParameterDeclaration(
@@ -53378,6 +53371,9 @@ function createTypeChecker(host) {
53378
53371
  );
53379
53372
  context.approximateLength += symbolName(parameterSymbol).length + 3;
53380
53373
  return parameterNode;
53374
+ }
53375
+ function parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context) {
53376
+ return parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 166 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol);
53381
53377
  function cloneBindingName(node) {
53382
53378
  return elideInitializerAndSetEmitFlags(node);
53383
53379
  function elideInitializerAndSetEmitFlags(node2) {
@@ -55358,6 +55354,21 @@ function createTypeChecker(host) {
55358
55354
  if (p.flags & 98304 /* Accessor */ && useAccessors) {
55359
55355
  const result = [];
55360
55356
  if (p.flags & 65536 /* SetAccessor */) {
55357
+ const setter = p.declarations && forEach(p.declarations, (d) => {
55358
+ if (d.kind === 178 /* SetAccessor */) {
55359
+ return d;
55360
+ }
55361
+ if (isCallExpression(d) && isBindableObjectDefinePropertyCall(d)) {
55362
+ return forEach(d.arguments[2].properties, (propDecl) => {
55363
+ const id = getNameOfDeclaration(propDecl);
55364
+ if (!!id && isIdentifier(id) && idText(id) === "set") {
55365
+ return propDecl;
55366
+ }
55367
+ });
55368
+ }
55369
+ });
55370
+ Debug.assert(setter && isFunctionLikeDeclaration(setter));
55371
+ const paramSymbol = getSignatureFromDeclaration(setter).parameters[0];
55361
55372
  result.push(setTextRange(
55362
55373
  factory.createSetAccessorDeclaration(
55363
55374
  factory.createModifiersFromModifierFlags(flag),
@@ -55367,7 +55378,7 @@ function createTypeChecker(host) {
55367
55378
  void 0,
55368
55379
  /*dotDotDotToken*/
55369
55380
  void 0,
55370
- "arg",
55381
+ paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : "value",
55371
55382
  /*questionToken*/
55372
55383
  void 0,
55373
55384
  isPrivate ? void 0 : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled)
@@ -58005,7 +58016,7 @@ function createTypeChecker(host) {
58005
58016
  function getUniqAssociatedNamesFromTupleType(type, restName) {
58006
58017
  const associatedNamesMap = /* @__PURE__ */ new Map();
58007
58018
  return map(type.target.labeledElementDeclarations, (labeledElement, i) => {
58008
- const name = getTupleElementLabel(type, labeledElement, i, restName);
58019
+ const name = getTupleElementLabel(labeledElement, i, restName);
58009
58020
  const prevCounter = associatedNamesMap.get(name);
58010
58021
  if (prevCounter === void 0) {
58011
58022
  associatedNamesMap.set(name, 1);
@@ -59461,7 +59472,7 @@ function createTypeChecker(host) {
59461
59472
  }
59462
59473
  const iife = getImmediatelyInvokedFunctionExpression(node.parent);
59463
59474
  if (iife) {
59464
- return !node.type && !node.dotDotDotToken && node.parent.parameters.indexOf(node) >= iife.arguments.length;
59475
+ return !node.type && !node.dotDotDotToken && node.parent.parameters.indexOf(node) >= getEffectiveCallArguments(iife).length;
59465
59476
  }
59466
59477
  return false;
59467
59478
  }
@@ -61778,7 +61789,7 @@ function createTypeChecker(host) {
61778
61789
  }
61779
61790
  function getLiteralTypeFromProperties(type, include, includeOrigin) {
61780
61791
  const origin = includeOrigin && (getObjectFlags(type) & (3 /* ClassOrInterface */ | 4 /* Reference */) || type.aliasSymbol) ? createOriginIndexType(type) : void 0;
61781
- const propertyTypes = map(getPropertiesOfType(type), (prop) => getLiteralTypeFromProperty(prop, include));
61792
+ const propertyTypes = map(getPropertiesOfType(type), (prop) => prop.flags & 4194304 /* Prototype */ ? neverType : getLiteralTypeFromProperty(prop, include));
61782
61793
  const indexKeyTypes = map(getIndexInfosOfType(type), (info) => info !== enumNumberIndexInfo && isKeyTypeIncluded(info.keyType, include) ? info.keyType === stringType && include & 8 /* Number */ ? stringOrNumberType : info.keyType : neverType);
61783
61794
  return getUnionType(
61784
61795
  concatenate(propertyTypes, indexKeyTypes),
@@ -76761,27 +76772,20 @@ function createTypeChecker(host) {
76761
76772
  return node.name.escapedText === "meta" ? getGlobalImportMetaType() : errorType;
76762
76773
  }
76763
76774
  function getTypeOfParameter(symbol) {
76764
- const type = getTypeOfSymbol(symbol);
76765
- if (strictNullChecks) {
76766
- const declaration = symbol.valueDeclaration;
76767
- if (declaration && hasInitializer(declaration)) {
76768
- return getOptionalType(type);
76769
- }
76770
- }
76771
- return type;
76775
+ const declaration = symbol.valueDeclaration;
76776
+ return addOptionality(
76777
+ getTypeOfSymbol(symbol),
76778
+ /*isProperty*/
76779
+ false,
76780
+ /*isOptional*/
76781
+ !!declaration && (hasInitializer(declaration) || isOptionalDeclaration(declaration))
76782
+ );
76772
76783
  }
76773
- function getTupleElementLabel(tupleType, d, index, restParameterName = "arg") {
76784
+ function getTupleElementLabel(d, index, restParameterName = "arg") {
76774
76785
  if (!d) {
76775
76786
  return `${restParameterName}_${index}`;
76776
76787
  }
76777
- Debug.assert(!isBindingPattern(d.name));
76778
- if (d.name.kind === 203 /* TemplateLiteralType */) {
76779
- const label = instantiateType(getTypeFromTypeNode(d.name), tupleType.mapper);
76780
- return label.flags & 128 /* StringLiteral */ ? escapeLeadingUnderscores(label.value) : typeof index === "number" ? `${restParameterName}_${index}` : void 0;
76781
- }
76782
- if (d.name.kind === 15 /* NoSubstitutionTemplateLiteral */) {
76783
- return escapeLeadingUnderscores(d.name.text);
76784
- }
76788
+ Debug.assert(isIdentifier(d.name));
76785
76789
  return d.name.escapedText;
76786
76790
  }
76787
76791
  function getParameterNameAtPosition(signature, pos, overrideRestType) {
@@ -76794,7 +76798,7 @@ function createTypeChecker(host) {
76794
76798
  if (isTupleType(restType)) {
76795
76799
  const associatedNames = restType.target.labeledElementDeclarations;
76796
76800
  const index = pos - paramCount;
76797
- return getTupleElementLabel(restType, associatedNames == null ? void 0 : associatedNames[index], index, restParameter.escapedName);
76801
+ return getTupleElementLabel(associatedNames == null ? void 0 : associatedNames[index], index, restParameter.escapedName);
76798
76802
  }
76799
76803
  return restParameter.escapedName;
76800
76804
  }
@@ -76824,7 +76828,8 @@ function createTypeChecker(host) {
76824
76828
  const index = pos - paramCount;
76825
76829
  const associatedName = associatedNames == null ? void 0 : associatedNames[index];
76826
76830
  const isRestTupleElement = !!(associatedName == null ? void 0 : associatedName.dotDotDotToken);
76827
- if (associatedName && isIdentifier(associatedName.name)) {
76831
+ if (associatedName) {
76832
+ Debug.assert(isIdentifier(associatedName.name));
76828
76833
  return { parameter: associatedName.name, parameterName: associatedName.name.escapedText, isRestParameter: isRestTupleElement };
76829
76834
  }
76830
76835
  return void 0;
@@ -77041,23 +77046,29 @@ function createTypeChecker(host) {
77041
77046
  assignParameterType(parameter);
77042
77047
  }
77043
77048
  }
77044
- function assignParameterType(parameter, type) {
77049
+ function assignParameterType(parameter, contextualType) {
77045
77050
  const links = getSymbolLinks(parameter);
77046
77051
  if (!links.type) {
77047
77052
  const declaration = parameter.valueDeclaration;
77048
- links.type = type || (declaration ? getWidenedTypeForVariableLikeDeclaration(
77049
- declaration,
77050
- /*reportErrors*/
77051
- true
77052
- ) : getTypeOfSymbol(parameter));
77053
+ links.type = addOptionality(
77054
+ contextualType || (declaration ? getWidenedTypeForVariableLikeDeclaration(
77055
+ declaration,
77056
+ /*reportErrors*/
77057
+ true
77058
+ ) : getTypeOfSymbol(parameter)),
77059
+ /*isProperty*/
77060
+ false,
77061
+ /*isOptional*/
77062
+ !!declaration && !declaration.initializer && isOptionalDeclaration(declaration)
77063
+ );
77053
77064
  if (declaration && declaration.name.kind !== 80 /* Identifier */) {
77054
77065
  if (links.type === unknownType) {
77055
77066
  links.type = getTypeFromBindingPattern(declaration.name);
77056
77067
  }
77057
77068
  assignBindingElementTypes(declaration.name, links.type);
77058
77069
  }
77059
- } else if (type) {
77060
- Debug.assertEqual(links.type, type, "Parameter symbol already has a cached type which differs from newly assigned type");
77070
+ } else if (contextualType) {
77071
+ Debug.assertEqual(links.type, contextualType, "Parameter symbol already has a cached type which differs from newly assigned type");
77061
77072
  }
77062
77073
  }
77063
77074
  function assignBindingElementTypes(pattern, parentType) {
@@ -80322,9 +80333,6 @@ function createTypeChecker(host) {
80322
80333
  if (node.type.kind === 191 /* RestType */) {
80323
80334
  grammarErrorOnNode(node.type, Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type);
80324
80335
  }
80325
- if (node.name.kind === 203 /* TemplateLiteralType */) {
80326
- checkSourceElement(node.name);
80327
- }
80328
80336
  checkSourceElement(node.type);
80329
80337
  getTypeFromTypeNode(node);
80330
80338
  }
@@ -89136,7 +89144,7 @@ var visitEachChildTable = {
89136
89144
  return context.factory.updateNamedTupleMember(
89137
89145
  node,
89138
89146
  tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken,
89139
- Debug.checkDefined(nodeVisitor(node.name, visitor, isNamedTupleMemberName)),
89147
+ Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),
89140
89148
  tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,
89141
89149
  Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))
89142
89150
  );
@@ -173480,7 +173488,6 @@ __export(ts_exports2, {
173480
173488
  isNamedImports: () => isNamedImports,
173481
173489
  isNamedImportsOrExports: () => isNamedImportsOrExports,
173482
173490
  isNamedTupleMember: () => isNamedTupleMember,
173483
- isNamedTupleMemberName: () => isNamedTupleMemberName,
173484
173491
  isNamespaceBody: () => isNamespaceBody,
173485
173492
  isNamespaceExport: () => isNamespaceExport,
173486
173493
  isNamespaceExportDeclaration: () => isNamespaceExportDeclaration,
@@ -188036,7 +188043,6 @@ start(initializeNodeSystem(), require("os").platform());
188036
188043
  isNamedImports,
188037
188044
  isNamedImportsOrExports,
188038
188045
  isNamedTupleMember,
188039
- isNamedTupleMemberName,
188040
188046
  isNamespaceBody,
188041
188047
  isNamespaceExport,
188042
188048
  isNamespaceExportDeclaration,
@@ -5196,11 +5196,10 @@ declare namespace ts {
5196
5196
  readonly kind: SyntaxKind.TupleType;
5197
5197
  readonly elements: NodeArray<TypeNode | NamedTupleMember>;
5198
5198
  }
5199
- type NamedTupleMemberName = Identifier | NoSubstitutionTemplateLiteral | TemplateLiteralTypeNode;
5200
5199
  interface NamedTupleMember extends TypeNode, Declaration, JSDocContainer {
5201
5200
  readonly kind: SyntaxKind.NamedTupleMember;
5202
5201
  readonly dotDotDotToken?: Token<SyntaxKind.DotDotDotToken>;
5203
- readonly name: NamedTupleMemberName;
5202
+ readonly name: Identifier;
5204
5203
  readonly questionToken?: Token<SyntaxKind.QuestionToken>;
5205
5204
  readonly type: TypeNode;
5206
5205
  }
@@ -7933,8 +7932,8 @@ declare namespace ts {
7933
7932
  updateArrayTypeNode(node: ArrayTypeNode, elementType: TypeNode): ArrayTypeNode;
7934
7933
  createTupleTypeNode(elements: readonly (TypeNode | NamedTupleMember)[]): TupleTypeNode;
7935
7934
  updateTupleTypeNode(node: TupleTypeNode, elements: readonly (TypeNode | NamedTupleMember)[]): TupleTypeNode;
7936
- createNamedTupleMember(dotDotDotToken: DotDotDotToken | undefined, name: NamedTupleMemberName, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember;
7937
- updateNamedTupleMember(node: NamedTupleMember, dotDotDotToken: DotDotDotToken | undefined, name: NamedTupleMemberName, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember;
7935
+ createNamedTupleMember(dotDotDotToken: DotDotDotToken | undefined, name: Identifier, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember;
7936
+ updateNamedTupleMember(node: NamedTupleMember, dotDotDotToken: DotDotDotToken | undefined, name: Identifier, questionToken: QuestionToken | undefined, type: TypeNode): NamedTupleMember;
7938
7937
  createOptionalTypeNode(type: TypeNode): OptionalTypeNode;
7939
7938
  updateOptionalTypeNode(node: OptionalTypeNode, type: TypeNode): OptionalTypeNode;
7940
7939
  createRestTypeNode(type: TypeNode): RestTypeNode;
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.20230821`;
38
+ version = `${versionMajorMinor}.0-insiders.20230822`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -19303,9 +19303,6 @@ ${lanes.join("\n")}
19303
19303
  }
19304
19304
  return Debug.fail();
19305
19305
  }
19306
- function isNamedTupleMemberName(node) {
19307
- return node.kind === 80 /* Identifier */ || node.kind === 203 /* TemplateLiteralType */ || node.kind === 15 /* NoSubstitutionTemplateLiteral */;
19308
- }
19309
19306
  var resolvingEmptyArray, externalHelpersModuleNameText, defaultMaximumTruncationLength, noTruncationMaximumTruncationLength, stringWriter, GetLiteralTextFlags, fullTripleSlashReferencePathRegEx, fullTripleSlashReferenceTypeReferenceDirectiveRegEx, fullTripleSlashLibReferenceRegEx, fullTripleSlashAMDReferencePathRegEx, fullTripleSlashAMDModuleRegEx, defaultLibReferenceRegEx, AssignmentKind, FunctionFlags, Associativity, OperatorPrecedence, templateSubstitutionRegExp, doubleQuoteEscapedCharsRegExp, singleQuoteEscapedCharsRegExp, backtickQuoteEscapedCharsRegExp, escapedCharsMap, nonAsciiCharacters, jsxDoubleQuoteEscapedCharsRegExp, jsxSingleQuoteEscapedCharsRegExp, jsxEscapedCharsMap, indentStrings, base64Digits, carriageReturnLineFeed, lineFeed, objectAllocator, objectAllocatorPatchers, localizedDiagnosticMessages, reservedCharacterPattern, wildcardCharCodes, commonPackageFolders, implicitExcludePathRegexPattern, filesMatcher, directoriesMatcher, excludeMatcher, wildcardMatchers, supportedTSExtensions, supportedTSExtensionsFlat, supportedTSExtensionsWithJson, supportedTSExtensionsForExtractExtension, supportedJSExtensions, supportedJSExtensionsFlat, allSupportedExtensions, allSupportedExtensionsWithJson, supportedDeclarationExtensions, supportedTSImplementationExtensions, extensionsNotSupportingExtensionlessResolution, ModuleSpecifierEnding, extensionsToRemove, emptyFileSystemEntries;
19310
19307
  var init_utilities = __esm({
19311
19308
  "src/compiler/utilities.ts"() {
@@ -31129,29 +31126,21 @@ ${lanes.join("\n")}
31129
31126
  }
31130
31127
  return type;
31131
31128
  }
31132
- function isTokenColonOrQuestionColon() {
31133
- return token() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */;
31129
+ function isNextTokenColonOrQuestionColon() {
31130
+ return nextToken() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */;
31134
31131
  }
31135
31132
  function isTupleElementName() {
31136
31133
  if (token() === 26 /* DotDotDotToken */) {
31137
- nextToken();
31138
- }
31139
- if (token() === 16 /* TemplateHead */) {
31140
- parseTemplateType();
31141
- return isTokenColonOrQuestionColon();
31134
+ return tokenIsIdentifierOrKeyword(nextToken()) && isNextTokenColonOrQuestionColon();
31142
31135
  }
31143
- if (tokenIsIdentifierOrKeyword(token()) || token() === 15 /* NoSubstitutionTemplateLiteral */) {
31144
- nextToken();
31145
- return isTokenColonOrQuestionColon();
31146
- }
31147
- return false;
31136
+ return tokenIsIdentifierOrKeyword(token()) && isNextTokenColonOrQuestionColon();
31148
31137
  }
31149
31138
  function parseTupleElementNameOrTupleElementType() {
31150
31139
  if (lookAhead(isTupleElementName)) {
31151
31140
  const pos = getNodePos();
31152
31141
  const hasJSDoc = hasPrecedingJSDocComment();
31153
31142
  const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);
31154
- const name = token() === 15 /* NoSubstitutionTemplateLiteral */ ? parseLiteralLikeNode(token()) : token() === 16 /* TemplateHead */ ? parseTemplateType() : parseIdentifierName();
31143
+ const name = parseIdentifierName();
31155
31144
  const questionToken = parseOptionalToken(58 /* QuestionToken */);
31156
31145
  parseExpected(59 /* ColonToken */);
31157
31146
  const type = parseTupleElementType();
@@ -50561,11 +50550,10 @@ ${lanes.join("\n")}
50561
50550
  for (let i = 0; i < tupleConstituentNodes.length; i++) {
50562
50551
  const flags = type2.target.elementFlags[i];
50563
50552
  const labeledElementDeclaration = labeledElementDeclarations == null ? void 0 : labeledElementDeclarations[i];
50564
- const label = labeledElementDeclaration && getTupleElementLabel(type2, labeledElementDeclaration);
50565
- if (label) {
50553
+ if (labeledElementDeclaration) {
50566
50554
  tupleConstituentNodes[i] = factory.createNamedTupleMember(
50567
50555
  flags & 12 /* Variable */ ? factory.createToken(26 /* DotDotDotToken */) : void 0,
50568
- factory.createIdentifier(unescapeLeadingUnderscores(label)),
50556
+ factory.createIdentifier(unescapeLeadingUnderscores(getTupleElementLabel(labeledElementDeclaration))),
50569
50557
  flags & 2 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,
50570
50558
  flags & 4 /* Rest */ ? factory.createArrayTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]
50571
50559
  );
@@ -51111,11 +51099,17 @@ ${lanes.join("\n")}
51111
51099
  const constraintNode = constraint && typeToTypeNodeHelper(constraint, context);
51112
51100
  return typeParameterToDeclarationWithConstraint(type, context, constraintNode);
51113
51101
  }
51114
- function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
51115
- let parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
51116
- if (!parameterDeclaration && !isTransientSymbol(parameterSymbol)) {
51117
- parameterDeclaration = getDeclarationOfKind(parameterSymbol, 348 /* JSDocParameterTag */);
51102
+ function getEffectiveParameterDeclaration(parameterSymbol) {
51103
+ const parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
51104
+ if (parameterDeclaration) {
51105
+ return parameterDeclaration;
51106
+ }
51107
+ if (!isTransientSymbol(parameterSymbol)) {
51108
+ return getDeclarationOfKind(parameterSymbol, 348 /* JSDocParameterTag */);
51118
51109
  }
51110
+ }
51111
+ function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
51112
+ const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);
51119
51113
  let parameterType = getTypeOfSymbol(parameterSymbol);
51120
51114
  if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) {
51121
51115
  parameterType = getOptionalType(parameterType);
@@ -51124,7 +51118,7 @@ ${lanes.join("\n")}
51124
51118
  const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;
51125
51119
  const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;
51126
51120
  const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;
51127
- const name = parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 166 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol);
51121
+ const name = parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context);
51128
51122
  const isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */;
51129
51123
  const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;
51130
51124
  const parameterNode = factory.createParameterDeclaration(
@@ -51138,6 +51132,9 @@ ${lanes.join("\n")}
51138
51132
  );
51139
51133
  context.approximateLength += symbolName(parameterSymbol).length + 3;
51140
51134
  return parameterNode;
51135
+ }
51136
+ function parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context) {
51137
+ return parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 166 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol);
51141
51138
  function cloneBindingName(node) {
51142
51139
  return elideInitializerAndSetEmitFlags(node);
51143
51140
  function elideInitializerAndSetEmitFlags(node2) {
@@ -53118,6 +53115,21 @@ ${lanes.join("\n")}
53118
53115
  if (p.flags & 98304 /* Accessor */ && useAccessors) {
53119
53116
  const result = [];
53120
53117
  if (p.flags & 65536 /* SetAccessor */) {
53118
+ const setter = p.declarations && forEach(p.declarations, (d) => {
53119
+ if (d.kind === 178 /* SetAccessor */) {
53120
+ return d;
53121
+ }
53122
+ if (isCallExpression(d) && isBindableObjectDefinePropertyCall(d)) {
53123
+ return forEach(d.arguments[2].properties, (propDecl) => {
53124
+ const id = getNameOfDeclaration(propDecl);
53125
+ if (!!id && isIdentifier(id) && idText(id) === "set") {
53126
+ return propDecl;
53127
+ }
53128
+ });
53129
+ }
53130
+ });
53131
+ Debug.assert(setter && isFunctionLikeDeclaration(setter));
53132
+ const paramSymbol = getSignatureFromDeclaration(setter).parameters[0];
53121
53133
  result.push(setTextRange(
53122
53134
  factory.createSetAccessorDeclaration(
53123
53135
  factory.createModifiersFromModifierFlags(flag),
@@ -53127,7 +53139,7 @@ ${lanes.join("\n")}
53127
53139
  void 0,
53128
53140
  /*dotDotDotToken*/
53129
53141
  void 0,
53130
- "arg",
53142
+ paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : "value",
53131
53143
  /*questionToken*/
53132
53144
  void 0,
53133
53145
  isPrivate ? void 0 : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled)
@@ -55765,7 +55777,7 @@ ${lanes.join("\n")}
55765
55777
  function getUniqAssociatedNamesFromTupleType(type, restName) {
55766
55778
  const associatedNamesMap = /* @__PURE__ */ new Map();
55767
55779
  return map(type.target.labeledElementDeclarations, (labeledElement, i) => {
55768
- const name = getTupleElementLabel(type, labeledElement, i, restName);
55780
+ const name = getTupleElementLabel(labeledElement, i, restName);
55769
55781
  const prevCounter = associatedNamesMap.get(name);
55770
55782
  if (prevCounter === void 0) {
55771
55783
  associatedNamesMap.set(name, 1);
@@ -57221,7 +57233,7 @@ ${lanes.join("\n")}
57221
57233
  }
57222
57234
  const iife = getImmediatelyInvokedFunctionExpression(node.parent);
57223
57235
  if (iife) {
57224
- return !node.type && !node.dotDotDotToken && node.parent.parameters.indexOf(node) >= iife.arguments.length;
57236
+ return !node.type && !node.dotDotDotToken && node.parent.parameters.indexOf(node) >= getEffectiveCallArguments(iife).length;
57225
57237
  }
57226
57238
  return false;
57227
57239
  }
@@ -59538,7 +59550,7 @@ ${lanes.join("\n")}
59538
59550
  }
59539
59551
  function getLiteralTypeFromProperties(type, include, includeOrigin) {
59540
59552
  const origin = includeOrigin && (getObjectFlags(type) & (3 /* ClassOrInterface */ | 4 /* Reference */) || type.aliasSymbol) ? createOriginIndexType(type) : void 0;
59541
- const propertyTypes = map(getPropertiesOfType(type), (prop) => getLiteralTypeFromProperty(prop, include));
59553
+ const propertyTypes = map(getPropertiesOfType(type), (prop) => prop.flags & 4194304 /* Prototype */ ? neverType : getLiteralTypeFromProperty(prop, include));
59542
59554
  const indexKeyTypes = map(getIndexInfosOfType(type), (info) => info !== enumNumberIndexInfo && isKeyTypeIncluded(info.keyType, include) ? info.keyType === stringType && include & 8 /* Number */ ? stringOrNumberType : info.keyType : neverType);
59543
59555
  return getUnionType(
59544
59556
  concatenate(propertyTypes, indexKeyTypes),
@@ -74521,27 +74533,20 @@ ${lanes.join("\n")}
74521
74533
  return node.name.escapedText === "meta" ? getGlobalImportMetaType() : errorType;
74522
74534
  }
74523
74535
  function getTypeOfParameter(symbol) {
74524
- const type = getTypeOfSymbol(symbol);
74525
- if (strictNullChecks) {
74526
- const declaration = symbol.valueDeclaration;
74527
- if (declaration && hasInitializer(declaration)) {
74528
- return getOptionalType(type);
74529
- }
74530
- }
74531
- return type;
74536
+ const declaration = symbol.valueDeclaration;
74537
+ return addOptionality(
74538
+ getTypeOfSymbol(symbol),
74539
+ /*isProperty*/
74540
+ false,
74541
+ /*isOptional*/
74542
+ !!declaration && (hasInitializer(declaration) || isOptionalDeclaration(declaration))
74543
+ );
74532
74544
  }
74533
- function getTupleElementLabel(tupleType, d, index, restParameterName = "arg") {
74545
+ function getTupleElementLabel(d, index, restParameterName = "arg") {
74534
74546
  if (!d) {
74535
74547
  return `${restParameterName}_${index}`;
74536
74548
  }
74537
- Debug.assert(!isBindingPattern(d.name));
74538
- if (d.name.kind === 203 /* TemplateLiteralType */) {
74539
- const label = instantiateType(getTypeFromTypeNode(d.name), tupleType.mapper);
74540
- return label.flags & 128 /* StringLiteral */ ? escapeLeadingUnderscores(label.value) : typeof index === "number" ? `${restParameterName}_${index}` : void 0;
74541
- }
74542
- if (d.name.kind === 15 /* NoSubstitutionTemplateLiteral */) {
74543
- return escapeLeadingUnderscores(d.name.text);
74544
- }
74549
+ Debug.assert(isIdentifier(d.name));
74545
74550
  return d.name.escapedText;
74546
74551
  }
74547
74552
  function getParameterNameAtPosition(signature, pos, overrideRestType) {
@@ -74554,7 +74559,7 @@ ${lanes.join("\n")}
74554
74559
  if (isTupleType(restType)) {
74555
74560
  const associatedNames = restType.target.labeledElementDeclarations;
74556
74561
  const index = pos - paramCount;
74557
- return getTupleElementLabel(restType, associatedNames == null ? void 0 : associatedNames[index], index, restParameter.escapedName);
74562
+ return getTupleElementLabel(associatedNames == null ? void 0 : associatedNames[index], index, restParameter.escapedName);
74558
74563
  }
74559
74564
  return restParameter.escapedName;
74560
74565
  }
@@ -74584,7 +74589,8 @@ ${lanes.join("\n")}
74584
74589
  const index = pos - paramCount;
74585
74590
  const associatedName = associatedNames == null ? void 0 : associatedNames[index];
74586
74591
  const isRestTupleElement = !!(associatedName == null ? void 0 : associatedName.dotDotDotToken);
74587
- if (associatedName && isIdentifier(associatedName.name)) {
74592
+ if (associatedName) {
74593
+ Debug.assert(isIdentifier(associatedName.name));
74588
74594
  return { parameter: associatedName.name, parameterName: associatedName.name.escapedText, isRestParameter: isRestTupleElement };
74589
74595
  }
74590
74596
  return void 0;
@@ -74801,23 +74807,29 @@ ${lanes.join("\n")}
74801
74807
  assignParameterType(parameter);
74802
74808
  }
74803
74809
  }
74804
- function assignParameterType(parameter, type) {
74810
+ function assignParameterType(parameter, contextualType) {
74805
74811
  const links = getSymbolLinks(parameter);
74806
74812
  if (!links.type) {
74807
74813
  const declaration = parameter.valueDeclaration;
74808
- links.type = type || (declaration ? getWidenedTypeForVariableLikeDeclaration(
74809
- declaration,
74810
- /*reportErrors*/
74811
- true
74812
- ) : getTypeOfSymbol(parameter));
74814
+ links.type = addOptionality(
74815
+ contextualType || (declaration ? getWidenedTypeForVariableLikeDeclaration(
74816
+ declaration,
74817
+ /*reportErrors*/
74818
+ true
74819
+ ) : getTypeOfSymbol(parameter)),
74820
+ /*isProperty*/
74821
+ false,
74822
+ /*isOptional*/
74823
+ !!declaration && !declaration.initializer && isOptionalDeclaration(declaration)
74824
+ );
74813
74825
  if (declaration && declaration.name.kind !== 80 /* Identifier */) {
74814
74826
  if (links.type === unknownType) {
74815
74827
  links.type = getTypeFromBindingPattern(declaration.name);
74816
74828
  }
74817
74829
  assignBindingElementTypes(declaration.name, links.type);
74818
74830
  }
74819
- } else if (type) {
74820
- Debug.assertEqual(links.type, type, "Parameter symbol already has a cached type which differs from newly assigned type");
74831
+ } else if (contextualType) {
74832
+ Debug.assertEqual(links.type, contextualType, "Parameter symbol already has a cached type which differs from newly assigned type");
74821
74833
  }
74822
74834
  }
74823
74835
  function assignBindingElementTypes(pattern, parentType) {
@@ -78082,9 +78094,6 @@ ${lanes.join("\n")}
78082
78094
  if (node.type.kind === 191 /* RestType */) {
78083
78095
  grammarErrorOnNode(node.type, Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type);
78084
78096
  }
78085
- if (node.name.kind === 203 /* TemplateLiteralType */) {
78086
- checkSourceElement(node.name);
78087
- }
78088
78097
  checkSourceElement(node.type);
78089
78098
  getTypeFromTypeNode(node);
78090
78099
  }
@@ -87039,7 +87048,7 @@ ${lanes.join("\n")}
87039
87048
  return context.factory.updateNamedTupleMember(
87040
87049
  node,
87041
87050
  tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken,
87042
- Debug.checkDefined(nodeVisitor(node.name, visitor, isNamedTupleMemberName)),
87051
+ Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),
87043
87052
  tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,
87044
87053
  Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))
87045
87054
  );
@@ -184649,7 +184658,6 @@ ${e.message}`;
184649
184658
  isNamedImports: () => isNamedImports,
184650
184659
  isNamedImportsOrExports: () => isNamedImportsOrExports,
184651
184660
  isNamedTupleMember: () => isNamedTupleMember,
184652
- isNamedTupleMemberName: () => isNamedTupleMemberName,
184653
184661
  isNamespaceBody: () => isNamespaceBody,
184654
184662
  isNamespaceExport: () => isNamespaceExport,
184655
184663
  isNamespaceExportDeclaration: () => isNamespaceExportDeclaration,
@@ -187059,7 +187067,6 @@ ${e.message}`;
187059
187067
  isNamedImports: () => isNamedImports,
187060
187068
  isNamedImportsOrExports: () => isNamedImportsOrExports,
187061
187069
  isNamedTupleMember: () => isNamedTupleMember,
187062
- isNamedTupleMemberName: () => isNamedTupleMemberName,
187063
187070
  isNamespaceBody: () => isNamespaceBody,
187064
187071
  isNamespaceExport: () => isNamespaceExport,
187065
187072
  isNamespaceExportDeclaration: () => isNamespaceExportDeclaration,
@@ -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.20230821`;
57
+ var version = `${versionMajorMinor}.0-insiders.20230822`;
58
58
 
59
59
  // src/compiler/core.ts
60
60
  var emptyArray = [];
@@ -11742,9 +11742,6 @@ function getEscapedTextOfJsxNamespacedName(node) {
11742
11742
  function getTextOfJsxNamespacedName(node) {
11743
11743
  return `${idText(node.namespace)}:${idText(node.name)}`;
11744
11744
  }
11745
- function isNamedTupleMemberName(node) {
11746
- return node.kind === 80 /* Identifier */ || node.kind === 203 /* TemplateLiteralType */ || node.kind === 15 /* NoSubstitutionTemplateLiteral */;
11747
- }
11748
11745
 
11749
11746
  // src/compiler/factory/baseNodeFactory.ts
11750
11747
  function createBaseNodeFactory() {
@@ -20517,29 +20514,21 @@ var Parser;
20517
20514
  }
20518
20515
  return type;
20519
20516
  }
20520
- function isTokenColonOrQuestionColon() {
20521
- return token() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */;
20517
+ function isNextTokenColonOrQuestionColon() {
20518
+ return nextToken() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */;
20522
20519
  }
20523
20520
  function isTupleElementName() {
20524
20521
  if (token() === 26 /* DotDotDotToken */) {
20525
- nextToken();
20526
- }
20527
- if (token() === 16 /* TemplateHead */) {
20528
- parseTemplateType();
20529
- return isTokenColonOrQuestionColon();
20530
- }
20531
- if (tokenIsIdentifierOrKeyword(token()) || token() === 15 /* NoSubstitutionTemplateLiteral */) {
20532
- nextToken();
20533
- return isTokenColonOrQuestionColon();
20522
+ return tokenIsIdentifierOrKeyword(nextToken()) && isNextTokenColonOrQuestionColon();
20534
20523
  }
20535
- return false;
20524
+ return tokenIsIdentifierOrKeyword(token()) && isNextTokenColonOrQuestionColon();
20536
20525
  }
20537
20526
  function parseTupleElementNameOrTupleElementType() {
20538
20527
  if (lookAhead(isTupleElementName)) {
20539
20528
  const pos = getNodePos();
20540
20529
  const hasJSDoc = hasPrecedingJSDocComment();
20541
20530
  const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);
20542
- const name = token() === 15 /* NoSubstitutionTemplateLiteral */ ? parseLiteralLikeNode(token()) : token() === 16 /* TemplateHead */ ? parseTemplateType() : parseIdentifierName();
20531
+ const name = parseIdentifierName();
20543
20532
  const questionToken = parseOptionalToken(58 /* QuestionToken */);
20544
20533
  parseExpected(59 /* ColonToken */);
20545
20534
  const type = parseTupleElementType();
@@ -29692,7 +29681,7 @@ var visitEachChildTable = {
29692
29681
  return context.factory.updateNamedTupleMember(
29693
29682
  node,
29694
29683
  tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken,
29695
- Debug.checkDefined(nodeVisitor(node.name, visitor, isNamedTupleMemberName)),
29684
+ Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),
29696
29685
  tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,
29697
29686
  Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))
29698
29687
  );
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-55452-4",
5
+ "version": "5.3.0-pr-55471-8",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [
@@ -116,5 +116,5 @@
116
116
  "node": "20.1.0",
117
117
  "npm": "8.19.4"
118
118
  },
119
- "gitHead": "58d231b23ea90cb6256dc152cc6c4efcb41fc2af"
119
+ "gitHead": "04f2ae5aa5ea29320b7888eb3af57e7162105c05"
120
120
  }