typescript 5.3.0-dev.20230821 → 5.3.0-dev.20230823

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-dev.20230821`;
21
+ var version = `${versionMajorMinor}.0-dev.20230823`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -48630,11 +48630,17 @@ function createTypeChecker(host) {
48630
48630
  const constraintNode = constraint && typeToTypeNodeHelper(constraint, context);
48631
48631
  return typeParameterToDeclarationWithConstraint(type, context, constraintNode);
48632
48632
  }
48633
- function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
48634
- let parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
48635
- if (!parameterDeclaration && !isTransientSymbol(parameterSymbol)) {
48636
- 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 */);
48637
48640
  }
48641
+ }
48642
+ function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
48643
+ const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);
48638
48644
  let parameterType = getTypeOfSymbol(parameterSymbol);
48639
48645
  if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) {
48640
48646
  parameterType = getOptionalType(parameterType);
@@ -48643,7 +48649,7 @@ function createTypeChecker(host) {
48643
48649
  const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;
48644
48650
  const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;
48645
48651
  const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;
48646
- 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);
48647
48653
  const isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */;
48648
48654
  const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;
48649
48655
  const parameterNode = factory.createParameterDeclaration(
@@ -48657,6 +48663,9 @@ function createTypeChecker(host) {
48657
48663
  );
48658
48664
  context.approximateLength += symbolName(parameterSymbol).length + 3;
48659
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);
48660
48669
  function cloneBindingName(node) {
48661
48670
  return elideInitializerAndSetEmitFlags(node);
48662
48671
  function elideInitializerAndSetEmitFlags(node2) {
@@ -50637,6 +50646,21 @@ function createTypeChecker(host) {
50637
50646
  if (p.flags & 98304 /* Accessor */ && useAccessors) {
50638
50647
  const result = [];
50639
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];
50640
50664
  result.push(setTextRange(
50641
50665
  factory.createSetAccessorDeclaration(
50642
50666
  factory.createModifiersFromModifierFlags(flag),
@@ -50646,7 +50670,7 @@ function createTypeChecker(host) {
50646
50670
  void 0,
50647
50671
  /*dotDotDotToken*/
50648
50672
  void 0,
50649
- "arg",
50673
+ paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : "value",
50650
50674
  /*questionToken*/
50651
50675
  void 0,
50652
50676
  isPrivate ? void 0 : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled)
@@ -54740,7 +54764,7 @@ function createTypeChecker(host) {
54740
54764
  }
54741
54765
  const iife = getImmediatelyInvokedFunctionExpression(node.parent);
54742
54766
  if (iife) {
54743
- 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;
54744
54768
  }
54745
54769
  return false;
54746
54770
  }
@@ -72040,14 +72064,14 @@ function createTypeChecker(host) {
72040
72064
  return node.name.escapedText === "meta" ? getGlobalImportMetaType() : errorType;
72041
72065
  }
72042
72066
  function getTypeOfParameter(symbol) {
72043
- const type = getTypeOfSymbol(symbol);
72044
- if (strictNullChecks) {
72045
- const declaration = symbol.valueDeclaration;
72046
- if (declaration && hasInitializer(declaration)) {
72047
- return getOptionalType(type);
72048
- }
72049
- }
72050
- 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
+ );
72051
72075
  }
72052
72076
  function getTupleElementLabel(d, index, restParameterName = "arg") {
72053
72077
  if (!d) {
@@ -72314,23 +72338,29 @@ function createTypeChecker(host) {
72314
72338
  assignParameterType(parameter);
72315
72339
  }
72316
72340
  }
72317
- function assignParameterType(parameter, type) {
72341
+ function assignParameterType(parameter, contextualType) {
72318
72342
  const links = getSymbolLinks(parameter);
72319
72343
  if (!links.type) {
72320
72344
  const declaration = parameter.valueDeclaration;
72321
- links.type = type || (declaration ? getWidenedTypeForVariableLikeDeclaration(
72322
- declaration,
72323
- /*reportErrors*/
72324
- true
72325
- ) : 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
+ );
72326
72356
  if (declaration && declaration.name.kind !== 80 /* Identifier */) {
72327
72357
  if (links.type === unknownType) {
72328
72358
  links.type = getTypeFromBindingPattern(declaration.name);
72329
72359
  }
72330
72360
  assignBindingElementTypes(declaration.name, links.type);
72331
72361
  }
72332
- } else if (type) {
72333
- 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");
72334
72364
  }
72335
72365
  }
72336
72366
  function assignBindingElementTypes(pattern, parentType) {
package/lib/tsserver.js CHANGED
@@ -2333,7 +2333,7 @@ module.exports = __toCommonJS(server_exports);
2333
2333
 
2334
2334
  // src/compiler/corePublic.ts
2335
2335
  var versionMajorMinor = "5.3";
2336
- var version = `${versionMajorMinor}.0-dev.20230821`;
2336
+ var version = `${versionMajorMinor}.0-dev.20230823`;
2337
2337
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2338
2338
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2339
2339
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -53338,11 +53338,17 @@ function createTypeChecker(host) {
53338
53338
  const constraintNode = constraint && typeToTypeNodeHelper(constraint, context);
53339
53339
  return typeParameterToDeclarationWithConstraint(type, context, constraintNode);
53340
53340
  }
53341
- function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
53342
- let parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
53343
- if (!parameterDeclaration && !isTransientSymbol(parameterSymbol)) {
53344
- 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 */);
53345
53348
  }
53349
+ }
53350
+ function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
53351
+ const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);
53346
53352
  let parameterType = getTypeOfSymbol(parameterSymbol);
53347
53353
  if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) {
53348
53354
  parameterType = getOptionalType(parameterType);
@@ -53351,7 +53357,7 @@ function createTypeChecker(host) {
53351
53357
  const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;
53352
53358
  const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;
53353
53359
  const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;
53354
- 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);
53355
53361
  const isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */;
53356
53362
  const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;
53357
53363
  const parameterNode = factory.createParameterDeclaration(
@@ -53365,6 +53371,9 @@ function createTypeChecker(host) {
53365
53371
  );
53366
53372
  context.approximateLength += symbolName(parameterSymbol).length + 3;
53367
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);
53368
53377
  function cloneBindingName(node) {
53369
53378
  return elideInitializerAndSetEmitFlags(node);
53370
53379
  function elideInitializerAndSetEmitFlags(node2) {
@@ -55345,6 +55354,21 @@ function createTypeChecker(host) {
55345
55354
  if (p.flags & 98304 /* Accessor */ && useAccessors) {
55346
55355
  const result = [];
55347
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];
55348
55372
  result.push(setTextRange(
55349
55373
  factory.createSetAccessorDeclaration(
55350
55374
  factory.createModifiersFromModifierFlags(flag),
@@ -55354,7 +55378,7 @@ function createTypeChecker(host) {
55354
55378
  void 0,
55355
55379
  /*dotDotDotToken*/
55356
55380
  void 0,
55357
- "arg",
55381
+ paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : "value",
55358
55382
  /*questionToken*/
55359
55383
  void 0,
55360
55384
  isPrivate ? void 0 : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled)
@@ -59448,7 +59472,7 @@ function createTypeChecker(host) {
59448
59472
  }
59449
59473
  const iife = getImmediatelyInvokedFunctionExpression(node.parent);
59450
59474
  if (iife) {
59451
- 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;
59452
59476
  }
59453
59477
  return false;
59454
59478
  }
@@ -76748,14 +76772,14 @@ function createTypeChecker(host) {
76748
76772
  return node.name.escapedText === "meta" ? getGlobalImportMetaType() : errorType;
76749
76773
  }
76750
76774
  function getTypeOfParameter(symbol) {
76751
- const type = getTypeOfSymbol(symbol);
76752
- if (strictNullChecks) {
76753
- const declaration = symbol.valueDeclaration;
76754
- if (declaration && hasInitializer(declaration)) {
76755
- return getOptionalType(type);
76756
- }
76757
- }
76758
- 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
+ );
76759
76783
  }
76760
76784
  function getTupleElementLabel(d, index, restParameterName = "arg") {
76761
76785
  if (!d) {
@@ -77022,23 +77046,29 @@ function createTypeChecker(host) {
77022
77046
  assignParameterType(parameter);
77023
77047
  }
77024
77048
  }
77025
- function assignParameterType(parameter, type) {
77049
+ function assignParameterType(parameter, contextualType) {
77026
77050
  const links = getSymbolLinks(parameter);
77027
77051
  if (!links.type) {
77028
77052
  const declaration = parameter.valueDeclaration;
77029
- links.type = type || (declaration ? getWidenedTypeForVariableLikeDeclaration(
77030
- declaration,
77031
- /*reportErrors*/
77032
- true
77033
- ) : 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
+ );
77034
77064
  if (declaration && declaration.name.kind !== 80 /* Identifier */) {
77035
77065
  if (links.type === unknownType) {
77036
77066
  links.type = getTypeFromBindingPattern(declaration.name);
77037
77067
  }
77038
77068
  assignBindingElementTypes(declaration.name, links.type);
77039
77069
  }
77040
- } else if (type) {
77041
- 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");
77042
77072
  }
77043
77073
  }
77044
77074
  function assignBindingElementTypes(pattern, parentType) {
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-dev.20230821`;
38
+ version = `${versionMajorMinor}.0-dev.20230823`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -51099,11 +51099,17 @@ ${lanes.join("\n")}
51099
51099
  const constraintNode = constraint && typeToTypeNodeHelper(constraint, context);
51100
51100
  return typeParameterToDeclarationWithConstraint(type, context, constraintNode);
51101
51101
  }
51102
- function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
51103
- let parameterDeclaration = getDeclarationOfKind(parameterSymbol, 169 /* Parameter */);
51104
- if (!parameterDeclaration && !isTransientSymbol(parameterSymbol)) {
51105
- 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 */);
51106
51109
  }
51110
+ }
51111
+ function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags, privateSymbolVisitor, bundledImports) {
51112
+ const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);
51107
51113
  let parameterType = getTypeOfSymbol(parameterSymbol);
51108
51114
  if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) {
51109
51115
  parameterType = getOptionalType(parameterType);
@@ -51112,7 +51118,7 @@ ${lanes.join("\n")}
51112
51118
  const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;
51113
51119
  const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;
51114
51120
  const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;
51115
- 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);
51116
51122
  const isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */;
51117
51123
  const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;
51118
51124
  const parameterNode = factory.createParameterDeclaration(
@@ -51126,6 +51132,9 @@ ${lanes.join("\n")}
51126
51132
  );
51127
51133
  context.approximateLength += symbolName(parameterSymbol).length + 3;
51128
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);
51129
51138
  function cloneBindingName(node) {
51130
51139
  return elideInitializerAndSetEmitFlags(node);
51131
51140
  function elideInitializerAndSetEmitFlags(node2) {
@@ -53106,6 +53115,21 @@ ${lanes.join("\n")}
53106
53115
  if (p.flags & 98304 /* Accessor */ && useAccessors) {
53107
53116
  const result = [];
53108
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];
53109
53133
  result.push(setTextRange(
53110
53134
  factory.createSetAccessorDeclaration(
53111
53135
  factory.createModifiersFromModifierFlags(flag),
@@ -53115,7 +53139,7 @@ ${lanes.join("\n")}
53115
53139
  void 0,
53116
53140
  /*dotDotDotToken*/
53117
53141
  void 0,
53118
- "arg",
53142
+ paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : "value",
53119
53143
  /*questionToken*/
53120
53144
  void 0,
53121
53145
  isPrivate ? void 0 : serializeTypeForDeclaration(context, getTypeOfSymbol(p), p, enclosingDeclaration, includePrivateSymbol, bundled)
@@ -57209,7 +57233,7 @@ ${lanes.join("\n")}
57209
57233
  }
57210
57234
  const iife = getImmediatelyInvokedFunctionExpression(node.parent);
57211
57235
  if (iife) {
57212
- 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;
57213
57237
  }
57214
57238
  return false;
57215
57239
  }
@@ -74509,14 +74533,14 @@ ${lanes.join("\n")}
74509
74533
  return node.name.escapedText === "meta" ? getGlobalImportMetaType() : errorType;
74510
74534
  }
74511
74535
  function getTypeOfParameter(symbol) {
74512
- const type = getTypeOfSymbol(symbol);
74513
- if (strictNullChecks) {
74514
- const declaration = symbol.valueDeclaration;
74515
- if (declaration && hasInitializer(declaration)) {
74516
- return getOptionalType(type);
74517
- }
74518
- }
74519
- 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
+ );
74520
74544
  }
74521
74545
  function getTupleElementLabel(d, index, restParameterName = "arg") {
74522
74546
  if (!d) {
@@ -74783,23 +74807,29 @@ ${lanes.join("\n")}
74783
74807
  assignParameterType(parameter);
74784
74808
  }
74785
74809
  }
74786
- function assignParameterType(parameter, type) {
74810
+ function assignParameterType(parameter, contextualType) {
74787
74811
  const links = getSymbolLinks(parameter);
74788
74812
  if (!links.type) {
74789
74813
  const declaration = parameter.valueDeclaration;
74790
- links.type = type || (declaration ? getWidenedTypeForVariableLikeDeclaration(
74791
- declaration,
74792
- /*reportErrors*/
74793
- true
74794
- ) : 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
+ );
74795
74825
  if (declaration && declaration.name.kind !== 80 /* Identifier */) {
74796
74826
  if (links.type === unknownType) {
74797
74827
  links.type = getTypeFromBindingPattern(declaration.name);
74798
74828
  }
74799
74829
  assignBindingElementTypes(declaration.name, links.type);
74800
74830
  }
74801
- } else if (type) {
74802
- 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");
74803
74833
  }
74804
74834
  }
74805
74835
  function assignBindingElementTypes(pattern, parentType) {
@@ -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-dev.20230821`;
57
+ var version = `${versionMajorMinor}.0-dev.20230823`;
58
58
 
59
59
  // src/compiler/core.ts
60
60
  var emptyArray = [];
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "typescript",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "5.3.0-dev.20230821",
5
+ "version": "5.3.0-dev.20230823",
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": "3af710e414834301cf199855a3fbe095c4f31d4b"
118
+ "gitHead": "d0684f789b6e8368789c0f9e09f5b5217f59de2b"
119
119
  }