@typescript-deploys/pr-build 5.0.0-pr-50431-13 → 5.0.0-pr-52836-22

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/typescript.js CHANGED
@@ -35,7 +35,7 @@ var ts = (() => {
35
35
  "src/compiler/corePublic.ts"() {
36
36
  "use strict";
37
37
  versionMajorMinor = "5.0";
38
- version = `${versionMajorMinor}.0-insiders.20230217`;
38
+ version = `${versionMajorMinor}.0-insiders.20230218`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -9616,18 +9616,18 @@ ${lanes.join("\n")}
9616
9616
  return true;
9617
9617
  }
9618
9618
  function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Standard */, textInitial, onError, start, length2) {
9619
- let text = textInitial;
9620
- let pos;
9621
- let end;
9622
- let startPos;
9623
- let tokenPos;
9624
- let token;
9625
- let tokenValue;
9626
- let tokenFlags;
9627
- let commentDirectives;
9628
- let inJSDocType = 0;
9619
+ var text = textInitial;
9620
+ var pos;
9621
+ var end;
9622
+ var startPos;
9623
+ var tokenPos;
9624
+ var token;
9625
+ var tokenValue;
9626
+ var tokenFlags;
9627
+ var commentDirectives;
9628
+ var inJSDocType = 0;
9629
9629
  setText(text, start, length2);
9630
- const scanner2 = {
9630
+ var scanner2 = {
9631
9631
  getStartPos: () => startPos,
9632
9632
  getTextPos: () => pos,
9633
9633
  getToken: () => token,
@@ -17391,39 +17391,20 @@ ${lanes.join("\n")}
17391
17391
  function isWriteAccess(node) {
17392
17392
  return accessKind(node) !== 0 /* Read */;
17393
17393
  }
17394
- function isWriteOnlyUsage(node) {
17395
- return accessKindForUsageChecks(node) === 1 /* Write */;
17396
- }
17397
- function isWriteUsage(node) {
17398
- return accessKindForUsageChecks(node) !== 0 /* Read */;
17399
- }
17400
- function accessKindForUsageChecks(node) {
17401
- const kind = accessKind(node);
17402
- const { parent: parent2 } = node;
17403
- switch (parent2 == null ? void 0 : parent2.kind) {
17404
- case 222 /* PostfixUnaryExpression */:
17405
- case 221 /* PrefixUnaryExpression */:
17406
- case 223 /* BinaryExpression */:
17407
- return kind === 2 /* ReadWrite */ ? writeOrReadWrite() : kind;
17408
- default:
17409
- return kind;
17410
- }
17411
- function writeOrReadWrite() {
17412
- return parent2.parent && walkUpParenthesizedExpressions(parent2.parent).kind === 241 /* ExpressionStatement */ ? 1 /* Write */ : 2 /* ReadWrite */;
17413
- }
17414
- }
17415
17394
  function accessKind(node) {
17416
17395
  const { parent: parent2 } = node;
17417
- switch (parent2 == null ? void 0 : parent2.kind) {
17396
+ if (!parent2)
17397
+ return 0 /* Read */;
17398
+ switch (parent2.kind) {
17418
17399
  case 214 /* ParenthesizedExpression */:
17419
17400
  return accessKind(parent2);
17420
17401
  case 222 /* PostfixUnaryExpression */:
17421
17402
  case 221 /* PrefixUnaryExpression */:
17422
17403
  const { operator } = parent2;
17423
- return operator === 45 /* PlusPlusToken */ || operator === 46 /* MinusMinusToken */ ? 2 /* ReadWrite */ : 0 /* Read */;
17404
+ return operator === 45 /* PlusPlusToken */ || operator === 46 /* MinusMinusToken */ ? writeOrReadWrite() : 0 /* Read */;
17424
17405
  case 223 /* BinaryExpression */:
17425
17406
  const { left, operatorToken } = parent2;
17426
- return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 63 /* EqualsToken */ ? 1 /* Write */ : 2 /* ReadWrite */ : 0 /* Read */;
17407
+ return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 63 /* EqualsToken */ ? 1 /* Write */ : writeOrReadWrite() : 0 /* Read */;
17427
17408
  case 208 /* PropertyAccessExpression */:
17428
17409
  return parent2.name !== node ? 0 /* Read */ : accessKind(parent2);
17429
17410
  case 299 /* PropertyAssignment */: {
@@ -17437,6 +17418,9 @@ ${lanes.join("\n")}
17437
17418
  default:
17438
17419
  return 0 /* Read */;
17439
17420
  }
17421
+ function writeOrReadWrite() {
17422
+ return parent2.parent && walkUpParenthesizedExpressions(parent2.parent).kind === 241 /* ExpressionStatement */ ? 1 /* Write */ : 2 /* ReadWrite */;
17423
+ }
17440
17424
  }
17441
17425
  function reverseAccessKind(a) {
17442
17426
  switch (a) {
@@ -28480,22 +28464,22 @@ ${lanes.join("\n")}
28480
28464
  [356 /* PartiallyEmittedExpression */]: forEachChildInPartiallyEmittedExpression
28481
28465
  };
28482
28466
  ((Parser2) => {
28483
- const scanner2 = createScanner(
28467
+ var scanner2 = createScanner(
28484
28468
  99 /* Latest */,
28485
28469
  /*skipTrivia*/
28486
28470
  true
28487
28471
  );
28488
- const disallowInAndDecoratorContext = 4096 /* DisallowInContext */ | 16384 /* DecoratorContext */;
28489
- let NodeConstructor2;
28490
- let TokenConstructor2;
28491
- let IdentifierConstructor2;
28492
- let PrivateIdentifierConstructor2;
28493
- let SourceFileConstructor2;
28472
+ var disallowInAndDecoratorContext = 4096 /* DisallowInContext */ | 16384 /* DecoratorContext */;
28473
+ var NodeConstructor2;
28474
+ var TokenConstructor2;
28475
+ var IdentifierConstructor2;
28476
+ var PrivateIdentifierConstructor2;
28477
+ var SourceFileConstructor2;
28494
28478
  function countNode(node) {
28495
28479
  nodeCount++;
28496
28480
  return node;
28497
28481
  }
28498
- const baseNodeFactory = {
28482
+ var baseNodeFactory = {
28499
28483
  createBaseSourceFileNode: (kind) => countNode(new SourceFileConstructor2(
28500
28484
  kind,
28501
28485
  /*pos*/
@@ -28532,25 +28516,25 @@ ${lanes.join("\n")}
28532
28516
  0
28533
28517
  ))
28534
28518
  };
28535
- const factory2 = createNodeFactory(1 /* NoParenthesizerRules */ | 2 /* NoNodeConverters */ | 8 /* NoOriginalNode */, baseNodeFactory);
28536
- let fileName;
28537
- let sourceFlags;
28538
- let sourceText;
28539
- let languageVersion;
28540
- let scriptKind;
28541
- let languageVariant;
28542
- let parseDiagnostics;
28543
- let jsDocDiagnostics;
28544
- let syntaxCursor;
28545
- let currentToken;
28546
- let nodeCount;
28547
- let identifiers;
28548
- let identifierCount;
28549
- let parsingContext;
28550
- let notParenthesizedArrow;
28551
- let contextFlags;
28552
- let topLevel = true;
28553
- let parseErrorBeforeNextFinishedNode = false;
28519
+ var factory2 = createNodeFactory(1 /* NoParenthesizerRules */ | 2 /* NoNodeConverters */ | 8 /* NoOriginalNode */, baseNodeFactory);
28520
+ var fileName;
28521
+ var sourceFlags;
28522
+ var sourceText;
28523
+ var languageVersion;
28524
+ var scriptKind;
28525
+ var languageVariant;
28526
+ var parseDiagnostics;
28527
+ var jsDocDiagnostics;
28528
+ var syntaxCursor;
28529
+ var currentToken;
28530
+ var nodeCount;
28531
+ var identifiers;
28532
+ var identifierCount;
28533
+ var parsingContext;
28534
+ var notParenthesizedArrow;
28535
+ var contextFlags;
28536
+ var topLevel = true;
28537
+ var parseErrorBeforeNextFinishedNode = false;
28554
28538
  function parseSourceFile(fileName2, sourceText2, languageVersion2, syntaxCursor2, setParentNodes = false, scriptKind2, setExternalModuleIndicatorOverride) {
28555
28539
  var _a2;
28556
28540
  scriptKind2 = ensureScriptKind(fileName2, scriptKind2);
@@ -32057,13 +32041,9 @@ ${lanes.join("\n")}
32057
32041
  function parseJsxClosingFragment(inExpressionContext) {
32058
32042
  const pos = getNodePos();
32059
32043
  parseExpected(30 /* LessThanSlashToken */);
32060
- if (tokenIsIdentifierOrKeyword(token())) {
32061
- parseErrorAtRange(parseJsxElementName(), Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment);
32062
- }
32063
32044
  if (parseExpected(
32064
32045
  31 /* GreaterThanToken */,
32065
- /*diagnostic*/
32066
- void 0,
32046
+ Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment,
32067
32047
  /*shouldAdvance*/
32068
32048
  false
32069
32049
  )) {
@@ -49723,7 +49703,7 @@ ${lanes.join("\n")}
49723
49703
  return result;
49724
49704
  }
49725
49705
  function createAnonymousTypeNode(type2) {
49726
- var _a3;
49706
+ var _a3, _b2;
49727
49707
  const typeId = type2.id;
49728
49708
  const symbol = type2.symbol;
49729
49709
  if (symbol) {
@@ -49749,6 +49729,20 @@ ${lanes.join("\n")}
49749
49729
  return visitAndTransformType(type2, createTypeNodeFromObjectType);
49750
49730
  }
49751
49731
  } else {
49732
+ const isInstantiationExpressionType = !!(getObjectFlags(type2) & 8388608 /* InstantiationExpressionType */);
49733
+ if (isInstantiationExpressionType) {
49734
+ const instantiationExpressionType = type2;
49735
+ if (isTypeQueryNode(instantiationExpressionType.node)) {
49736
+ const typeNode = serializeExistingTypeNode(context, instantiationExpressionType.node);
49737
+ if (typeNode) {
49738
+ return typeNode;
49739
+ }
49740
+ }
49741
+ if ((_b2 = context.visitedTypes) == null ? void 0 : _b2.has(typeId)) {
49742
+ return createElidedInformationPlaceholder(context);
49743
+ }
49744
+ return visitAndTransformType(type2, createTypeNodeFromObjectType);
49745
+ }
49752
49746
  return createTypeNodeFromObjectType(type2);
49753
49747
  }
49754
49748
  function shouldWriteTypeOfFunctionSymbol() {
@@ -50257,7 +50251,7 @@ ${lanes.join("\n")}
50257
50251
  );
50258
50252
  }
50259
50253
  function signatureToSignatureDeclarationHelper(signature, kind, context, options) {
50260
- var _a2, _b, _c, _d;
50254
+ var _a2, _b, _c, _d, _e;
50261
50255
  const suppressAny = context.flags & 256 /* SuppressAnyReturnType */;
50262
50256
  if (suppressAny)
50263
50257
  context.flags &= ~256 /* SuppressAnyReturnType */;
@@ -50274,6 +50268,39 @@ ${lanes.join("\n")}
50274
50268
  /*skipUnionExpanding*/
50275
50269
  true
50276
50270
  )[0];
50271
+ let cleanup;
50272
+ if (context.enclosingDeclaration && signature.declaration && signature.declaration !== context.enclosingDeclaration && !isInJSFile(signature.declaration) && some(expandedParams)) {
50273
+ const existingFakeScope = getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration ? context.enclosingDeclaration : void 0;
50274
+ Debug.assertOptionalNode(existingFakeScope, isBlock);
50275
+ const locals = (_a2 = existingFakeScope == null ? void 0 : existingFakeScope.locals) != null ? _a2 : createSymbolTable();
50276
+ let newLocals;
50277
+ for (const param of expandedParams) {
50278
+ if (!locals.has(param.escapedName)) {
50279
+ newLocals = append(newLocals, param.escapedName);
50280
+ locals.set(param.escapedName, param);
50281
+ }
50282
+ }
50283
+ if (newLocals) {
50284
+ let removeNewLocals2 = function() {
50285
+ forEach(newLocals, (s) => locals.delete(s));
50286
+ };
50287
+ var removeNewLocals = removeNewLocals2;
50288
+ if (existingFakeScope) {
50289
+ cleanup = removeNewLocals2;
50290
+ } else {
50291
+ const fakeScope = parseNodeFactory.createBlock(emptyArray);
50292
+ getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = true;
50293
+ fakeScope.locals = locals;
50294
+ const saveEnclosingDeclaration = context.enclosingDeclaration;
50295
+ setParent(fakeScope, saveEnclosingDeclaration);
50296
+ context.enclosingDeclaration = fakeScope;
50297
+ cleanup = () => {
50298
+ context.enclosingDeclaration = saveEnclosingDeclaration;
50299
+ removeNewLocals2();
50300
+ };
50301
+ }
50302
+ }
50303
+ }
50277
50304
  const parameters = (some(expandedParams, (p) => p !== expandedParams[expandedParams.length - 1] && !!(getCheckFlags(p) & 32768 /* RestParameter */)) ? signature.parameters : expandedParams).map((parameter) => symbolToParameterDeclaration(parameter, context, kind === 173 /* Constructor */, options == null ? void 0 : options.privateSymbolVisitor, options == null ? void 0 : options.bundledImports));
50278
50305
  const thisParameter = context.flags & 33554432 /* OmitThisParameter */ ? void 0 : tryGetThisParameterDeclaration(signature, context);
50279
50306
  if (thisParameter) {
@@ -50299,11 +50326,11 @@ ${lanes.join("\n")}
50299
50326
  const flags = modifiersToFlags(modifiers);
50300
50327
  modifiers = factory.createModifiersFromModifierFlags(flags | 256 /* Abstract */);
50301
50328
  }
50302
- const node = kind === 176 /* CallSignature */ ? factory.createCallSignature(typeParameters, parameters, returnTypeNode) : kind === 177 /* ConstructSignature */ ? factory.createConstructSignature(typeParameters, parameters, returnTypeNode) : kind === 170 /* MethodSignature */ ? factory.createMethodSignature(modifiers, (_a2 = options == null ? void 0 : options.name) != null ? _a2 : factory.createIdentifier(""), options == null ? void 0 : options.questionToken, typeParameters, parameters, returnTypeNode) : kind === 171 /* MethodDeclaration */ ? factory.createMethodDeclaration(
50329
+ const node = kind === 176 /* CallSignature */ ? factory.createCallSignature(typeParameters, parameters, returnTypeNode) : kind === 177 /* ConstructSignature */ ? factory.createConstructSignature(typeParameters, parameters, returnTypeNode) : kind === 170 /* MethodSignature */ ? factory.createMethodSignature(modifiers, (_b = options == null ? void 0 : options.name) != null ? _b : factory.createIdentifier(""), options == null ? void 0 : options.questionToken, typeParameters, parameters, returnTypeNode) : kind === 171 /* MethodDeclaration */ ? factory.createMethodDeclaration(
50303
50330
  modifiers,
50304
50331
  /*asteriskToken*/
50305
50332
  void 0,
50306
- (_b = options == null ? void 0 : options.name) != null ? _b : factory.createIdentifier(""),
50333
+ (_c = options == null ? void 0 : options.name) != null ? _c : factory.createIdentifier(""),
50307
50334
  /*questionToken*/
50308
50335
  void 0,
50309
50336
  typeParameters,
@@ -50318,14 +50345,14 @@ ${lanes.join("\n")}
50318
50345
  void 0
50319
50346
  ) : kind === 174 /* GetAccessor */ ? factory.createGetAccessorDeclaration(
50320
50347
  modifiers,
50321
- (_c = options == null ? void 0 : options.name) != null ? _c : factory.createIdentifier(""),
50348
+ (_d = options == null ? void 0 : options.name) != null ? _d : factory.createIdentifier(""),
50322
50349
  parameters,
50323
50350
  returnTypeNode,
50324
50351
  /*body*/
50325
50352
  void 0
50326
50353
  ) : kind === 175 /* SetAccessor */ ? factory.createSetAccessorDeclaration(
50327
50354
  modifiers,
50328
- (_d = options == null ? void 0 : options.name) != null ? _d : factory.createIdentifier(""),
50355
+ (_e = options == null ? void 0 : options.name) != null ? _e : factory.createIdentifier(""),
50329
50356
  parameters,
50330
50357
  /*body*/
50331
50358
  void 0
@@ -50360,6 +50387,7 @@ ${lanes.join("\n")}
50360
50387
  if (typeArguments) {
50361
50388
  node.typeArguments = factory.createNodeArray(typeArguments);
50362
50389
  }
50390
+ cleanup == null ? void 0 : cleanup();
50363
50391
  return node;
50364
50392
  }
50365
50393
  function tryGetThisParameterDeclaration(signature, context) {
@@ -50974,9 +51002,12 @@ ${lanes.join("\n")}
50974
51002
  function existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) {
50975
51003
  return !(getObjectFlags(type) & 4 /* Reference */) || !isTypeReferenceNode(existing) || length(existing.typeArguments) >= getMinTypeArgumentCount(type.target.typeParameters);
50976
51004
  }
51005
+ function getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration) {
51006
+ return getNodeLinks(enclosingDeclaration).fakeScopeForSignatureDeclaration ? enclosingDeclaration.parent : enclosingDeclaration;
51007
+ }
50977
51008
  function serializeTypeForDeclaration(context, type, symbol, enclosingDeclaration, includePrivateSymbol, bundled) {
50978
51009
  if (!isErrorType(type) && enclosingDeclaration) {
50979
- const declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, enclosingDeclaration);
51010
+ const declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration));
50980
51011
  if (declWithExistingAnnotation && !isFunctionLikeDeclaration(declWithExistingAnnotation) && !isGetAccessorDeclaration(declWithExistingAnnotation)) {
50981
51012
  const existing = getEffectiveTypeAnnotationNode(declWithExistingAnnotation);
50982
51013
  if (typeNodeIsEquivalentToType(existing, declWithExistingAnnotation, type) && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type)) {
@@ -51008,7 +51039,8 @@ ${lanes.join("\n")}
51008
51039
  function serializeReturnTypeForSignature(context, type, signature, includePrivateSymbol, bundled) {
51009
51040
  if (!isErrorType(type) && context.enclosingDeclaration) {
51010
51041
  const annotation = signature.declaration && getEffectiveReturnTypeNode(signature.declaration);
51011
- if (!!findAncestor(annotation, (n) => n === context.enclosingDeclaration) && annotation) {
51042
+ const enclosingDeclarationIgnoringFakeScope = getEnclosingDeclarationIgnoringFakeScope(context.enclosingDeclaration);
51043
+ if (!!findAncestor(annotation, (n) => n === enclosingDeclarationIgnoringFakeScope) && annotation) {
51012
51044
  const annotated = getTypeFromTypeNode(annotation);
51013
51045
  const thisInstantiated = annotated.flags & 262144 /* TypeParameter */ && annotated.isThisType ? instantiateType(annotated, signature.mapper) : annotated;
51014
51046
  if (thisInstantiated === type && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(annotation, type)) {
@@ -58770,31 +58802,21 @@ ${lanes.join("\n")}
58770
58802
  }
58771
58803
  return type;
58772
58804
  function addSpans(texts2, types2) {
58773
- const isTextsArray = isArray(texts2);
58774
58805
  for (let i = 0; i < types2.length; i++) {
58775
58806
  const t = types2[i];
58776
- const addText = isTextsArray ? texts2[i + 1] : texts2;
58777
58807
  if (t.flags & (2944 /* Literal */ | 65536 /* Null */ | 32768 /* Undefined */)) {
58778
58808
  text += getTemplateStringForType(t) || "";
58779
- text += addText;
58780
- if (!isTextsArray)
58781
- return true;
58809
+ text += texts2[i + 1];
58782
58810
  } else if (t.flags & 134217728 /* TemplateLiteral */) {
58783
58811
  text += t.texts[0];
58784
58812
  if (!addSpans(t.texts, t.types))
58785
58813
  return false;
58786
- text += addText;
58787
- if (!isTextsArray)
58788
- return true;
58789
- } else if (isGenericIndexType(t) || isPatternLiteralPlaceholderType(t)) {
58814
+ text += texts2[i + 1];
58815
+ } else if (isGenericIndexType(t) || isPatternLiteralPlaceholderType(t) || t.flags & 2097152 /* Intersection */) {
58790
58816
  newTypes.push(t);
58791
58817
  newTexts.push(text);
58792
- text = addText;
58793
- } else if (t.flags & 2097152 /* Intersection */) {
58794
- const added = addSpans(texts2[i + 1], t.types);
58795
- if (!added)
58796
- return false;
58797
- } else if (isTextsArray) {
58818
+ text = texts2[i + 1];
58819
+ } else {
58798
58820
  return false;
58799
58821
  }
58800
58822
  }
@@ -58806,6 +58828,11 @@ ${lanes.join("\n")}
58806
58828
  }
58807
58829
  function createTemplateLiteralType(texts, types) {
58808
58830
  const type = createType(134217728 /* TemplateLiteral */);
58831
+ type.objectFlags = getPropagatingFlagsOfTypes(
58832
+ types,
58833
+ /*excludeKinds*/
58834
+ 98304 /* Nullable */
58835
+ );
58809
58836
  type.texts = texts;
58810
58837
  type.types = types;
58811
58838
  return type;
@@ -59120,7 +59147,7 @@ ${lanes.join("\n")}
59120
59147
  return !!(getGenericObjectFlags(type) & 8388608 /* IsGenericIndexType */);
59121
59148
  }
59122
59149
  function getGenericObjectFlags(type) {
59123
- if (type.flags & 3145728 /* UnionOrIntersection */) {
59150
+ if (type.flags & (3145728 /* UnionOrIntersection */ | 134217728 /* TemplateLiteral */)) {
59124
59151
  if (!(type.objectFlags & 2097152 /* IsGenericTypeComputed */)) {
59125
59152
  type.objectFlags |= 2097152 /* IsGenericTypeComputed */ | reduceLeft(type.types, (flags, t) => flags | getGenericObjectFlags(t), 0);
59126
59153
  }
@@ -59132,7 +59159,7 @@ ${lanes.join("\n")}
59132
59159
  }
59133
59160
  return type.objectFlags & 12582912 /* IsGenericType */;
59134
59161
  }
59135
- return (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type) || isGenericTupleType(type) ? 4194304 /* IsGenericObjectType */ : 0) | (type.flags & (58982400 /* InstantiableNonPrimitive */ | 4194304 /* Index */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) && !isPatternLiteralType(type) ? 8388608 /* IsGenericIndexType */ : 0);
59162
+ return (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type) || isGenericTupleType(type) ? 4194304 /* IsGenericObjectType */ : 0) | (type.flags & (58982400 /* InstantiableNonPrimitive */ | 4194304 /* Index */ | 268435456 /* StringMapping */) && !isPatternLiteralType(type) ? 8388608 /* IsGenericIndexType */ : 0);
59136
59163
  }
59137
59164
  function getSimplifiedType(type, writing) {
59138
59165
  return type.flags & 8388608 /* IndexedAccess */ ? getSimplifiedIndexedAccessType(type, writing) : type.flags & 16777216 /* Conditional */ ? getSimplifiedConditionalType(type, writing) : type;
@@ -64310,7 +64337,7 @@ ${lanes.join("\n")}
64310
64337
  const restType = getRestTypeOfTupleType(type);
64311
64338
  return restType && createArrayType(restType);
64312
64339
  }
64313
- function getElementTypeOfSliceOfTupleType(type, index, endSkipCount = 0, writing = false) {
64340
+ function getElementTypeOfSliceOfTupleType(type, index, endSkipCount = 0, writing = false, noReductions = false) {
64314
64341
  const length2 = getTypeReferenceArity(type) - endSkipCount;
64315
64342
  if (index < length2) {
64316
64343
  const typeArguments = getTypeArguments(type);
@@ -64319,7 +64346,7 @@ ${lanes.join("\n")}
64319
64346
  const t = typeArguments[i];
64320
64347
  elementTypes.push(type.target.elementFlags[i] & 8 /* Variadic */ ? getIndexedAccessType(t, numberType) : t);
64321
64348
  }
64322
- return writing ? getIntersectionType(elementTypes) : getUnionType(elementTypes);
64349
+ return writing ? getIntersectionType(elementTypes) : getUnionType(elementTypes, noReductions ? 0 /* None */ : 1 /* Literal */);
64323
64350
  }
64324
64351
  return void 0;
64325
64352
  }
@@ -65786,7 +65813,7 @@ ${lanes.join("\n")}
65786
65813
  111551 /* Value */ | 1048576 /* ExportValue */,
65787
65814
  getCannotFindNameDiagnosticForName(node),
65788
65815
  node,
65789
- !isWriteOnlyUsage(node),
65816
+ !isWriteOnlyAccess(node),
65790
65817
  /*excludeGlobals*/
65791
65818
  false
65792
65819
  ) || unknownSymbol;
@@ -68906,9 +68933,18 @@ ${lanes.join("\n")}
68906
68933
  if (prop) {
68907
68934
  return isCircularMappedProperty(prop) ? void 0 : getTypeOfSymbol(prop);
68908
68935
  }
68909
- if (isTupleType(t)) {
68910
- const restType = getRestTypeOfTupleType(t);
68911
- if (restType && isNumericLiteralName(name) && +name >= 0) {
68936
+ if (isTupleType(t) && isNumericLiteralName(name) && +name >= 0) {
68937
+ const restType = getElementTypeOfSliceOfTupleType(
68938
+ t,
68939
+ t.target.fixedLength,
68940
+ /*endSkipCount*/
68941
+ 0,
68942
+ /*writing*/
68943
+ false,
68944
+ /*noReductions*/
68945
+ true
68946
+ );
68947
+ if (restType) {
68912
68948
  return restType;
68913
68949
  }
68914
68950
  }
@@ -68955,9 +68991,18 @@ ${lanes.join("\n")}
68955
68991
  return void 0;
68956
68992
  }
68957
68993
  function getContextualTypeForElementExpression(arrayContextualType, index) {
68958
- return arrayContextualType && (getTypeOfPropertyOfContextualType(arrayContextualType, "" + index) || mapType(
68994
+ return arrayContextualType && (index >= 0 && getTypeOfPropertyOfContextualType(arrayContextualType, "" + index) || mapType(
68959
68995
  arrayContextualType,
68960
- (t) => getIteratedTypeOrElementType(
68996
+ (t) => isTupleType(t) ? getElementTypeOfSliceOfTupleType(
68997
+ t,
68998
+ 0,
68999
+ /*endSkipCount*/
69000
+ 0,
69001
+ /*writing*/
69002
+ false,
69003
+ /*noReductions*/
69004
+ true
69005
+ ) : getIteratedTypeOrElementType(
68961
69006
  1 /* Element */,
68962
69007
  t,
68963
69008
  undefinedType,
@@ -69110,6 +69155,7 @@ ${lanes.join("\n")}
69110
69155
  return type;
69111
69156
  }
69112
69157
  function getContextualType2(node, contextFlags) {
69158
+ var _a2, _b;
69113
69159
  if (node.flags & 33554432 /* InWithStatement */) {
69114
69160
  return void 0;
69115
69161
  }
@@ -69154,7 +69200,9 @@ ${lanes.join("\n")}
69154
69200
  case 206 /* ArrayLiteralExpression */: {
69155
69201
  const arrayLiteral = parent2;
69156
69202
  const type = getApparentTypeOfContextualType(arrayLiteral, contextFlags);
69157
- return getContextualTypeForElementExpression(type, indexOfNode(arrayLiteral.elements, node));
69203
+ const spreadIndex = (_b = (_a2 = getNodeLinks(arrayLiteral)).firstSpreadIndex) != null ? _b : _a2.firstSpreadIndex = findIndex(arrayLiteral.elements, isSpreadElement);
69204
+ const elementIndex = indexOfNode(arrayLiteral.elements, node);
69205
+ return getContextualTypeForElementExpression(type, spreadIndex < 0 || elementIndex < spreadIndex ? elementIndex : -1);
69158
69206
  }
69159
69207
  case 224 /* ConditionalExpression */:
69160
69208
  return getContextualTypeForConditionalOperand(node, contextFlags);
@@ -70604,8 +70652,8 @@ ${lanes.join("\n")}
70604
70652
  }
70605
70653
  return nonNullType;
70606
70654
  }
70607
- function checkPropertyAccessExpression(node, checkMode, writeOnly) {
70608
- return node.flags & 32 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode, writeOnly);
70655
+ function checkPropertyAccessExpression(node, checkMode) {
70656
+ return node.flags & 32 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode);
70609
70657
  }
70610
70658
  function checkPropertyAccessChain(node, checkMode) {
70611
70659
  const leftType = checkExpression(node.expression);
@@ -70736,7 +70784,7 @@ ${lanes.join("\n")}
70736
70784
  false
70737
70785
  ) === getDeclaringConstructor(prop);
70738
70786
  }
70739
- function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode, writeOnly) {
70787
+ function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode) {
70740
70788
  const parentSymbol = getNodeLinks(left).resolvedSymbol;
70741
70789
  const assignmentKind = getAssignmentTargetKind(node);
70742
70790
  const apparentType = getApparentType(assignmentKind !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(leftType) : leftType);
@@ -70835,12 +70883,13 @@ ${lanes.join("\n")}
70835
70883
  checkPropertyNotUsedBeforeDeclaration(prop, node, right);
70836
70884
  markPropertyAsReferenced(prop, node, isSelfTypeAccess(left, parentSymbol));
70837
70885
  getNodeLinks(node).resolvedSymbol = prop;
70838
- checkPropertyAccessibility(node, left.kind === 106 /* SuperKeyword */, isWriteAccess(node), apparentType, prop);
70886
+ const writing = isWriteAccess(node);
70887
+ checkPropertyAccessibility(node, left.kind === 106 /* SuperKeyword */, writing, apparentType, prop);
70839
70888
  if (isAssignmentToReadonlyEntity(node, prop, assignmentKind)) {
70840
70889
  error(right, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, idText(right));
70841
70890
  return errorType;
70842
70891
  }
70843
- propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writeOnly || isWriteOnlyAccess(node) ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop);
70892
+ propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writing ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop);
70844
70893
  }
70845
70894
  return getFlowTypeOfAccessExpression(node, prop, propType, right, checkMode);
70846
70895
  }
@@ -71156,7 +71205,7 @@ ${lanes.join("\n")}
71156
71205
  if (!hasPrivateModifier && !hasPrivateIdentifier) {
71157
71206
  return;
71158
71207
  }
71159
- if (nodeForCheckWriteOnly && isWriteOnlyUsage(nodeForCheckWriteOnly) && !(prop.flags & 65536 /* SetAccessor */)) {
71208
+ if (nodeForCheckWriteOnly && isWriteOnlyAccess(nodeForCheckWriteOnly) && !(prop.flags & 65536 /* SetAccessor */)) {
71160
71209
  return;
71161
71210
  }
71162
71211
  if (isSelfTypeAccess2) {
@@ -75470,16 +75519,6 @@ ${lanes.join("\n")}
75470
75519
  addLazyDiagnostic(checkAssignmentOperatorWorker);
75471
75520
  }
75472
75521
  function checkAssignmentOperatorWorker() {
75473
- let assigneeType = leftType;
75474
- if (isCompoundAssignment(operatorToken.kind) && left.kind === 208 /* PropertyAccessExpression */) {
75475
- assigneeType = checkPropertyAccessExpression(
75476
- left,
75477
- /*checkMode*/
75478
- void 0,
75479
- /*writeOnly*/
75480
- true
75481
- );
75482
- }
75483
75522
  if (checkReferenceExpression(
75484
75523
  left,
75485
75524
  Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access,
@@ -75492,7 +75531,7 @@ ${lanes.join("\n")}
75492
75531
  headMessage = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target;
75493
75532
  }
75494
75533
  }
75495
- checkTypeAssignableToAndOptionallyElaborate(valueType, assigneeType, left, right, headMessage);
75534
+ checkTypeAssignableToAndOptionallyElaborate(valueType, leftType, left, right, headMessage);
75496
75535
  }
75497
75536
  }
75498
75537
  }
@@ -80262,20 +80301,19 @@ ${lanes.join("\n")}
80262
80301
  }
80263
80302
  }
80264
80303
  }
80265
- function getMemberOverrideModifierStatus(node, member) {
80304
+ function getMemberOverrideModifierStatus(node, member, memberSymbol) {
80266
80305
  if (!member.name) {
80267
80306
  return 0 /* Ok */;
80268
80307
  }
80269
- const symbol = getSymbolOfDeclaration(node);
80270
- const type = getDeclaredTypeOfSymbol(symbol);
80308
+ const classSymbol = getSymbolOfDeclaration(node);
80309
+ const type = getDeclaredTypeOfSymbol(classSymbol);
80271
80310
  const typeWithThis = getTypeWithThisArgument(type);
80272
- const staticType = getTypeOfSymbol(symbol);
80311
+ const staticType = getTypeOfSymbol(classSymbol);
80273
80312
  const baseTypeNode = getEffectiveBaseTypeNode(node);
80274
80313
  const baseTypes = baseTypeNode && getBaseTypes(type);
80275
80314
  const baseWithThis = (baseTypes == null ? void 0 : baseTypes.length) ? getTypeWithThisArgument(first(baseTypes), type.thisType) : void 0;
80276
80315
  const baseStaticType = getBaseConstructorTypeOfClass(type);
80277
80316
  const memberHasOverrideModifier = member.parent ? hasOverrideModifier(member) : hasSyntacticModifier(member, 16384 /* Override */);
80278
- const memberName = unescapeLeadingUnderscores(getTextOfPropertyName(member.name));
80279
80317
  return checkMemberForOverrideModifier(
80280
80318
  node,
80281
80319
  staticType,
@@ -80288,7 +80326,7 @@ ${lanes.join("\n")}
80288
80326
  isStatic(member),
80289
80327
  /* memberIsParameterProperty */
80290
80328
  false,
80291
- memberName
80329
+ symbolName(memberSymbol)
80292
80330
  );
80293
80331
  }
80294
80332
  function getTargetSymbol(s) {
@@ -147352,7 +147390,7 @@ ${lanes.join("\n")}
147352
147390
  return !!(origin && origin.kind === 32 /* ResolvedExport */);
147353
147391
  }
147354
147392
  function originIncludesSymbolName(origin) {
147355
- return originIsExport(origin) || originIsResolvedExport(origin);
147393
+ return originIsExport(origin) || originIsResolvedExport(origin) || originIsComputedPropertyName(origin);
147356
147394
  }
147357
147395
  function originIsPackageJsonImport(origin) {
147358
147396
  return (originIsExport(origin) || originIsResolvedExport(origin)) && !!origin.isFromPackageJson;
@@ -147372,6 +147410,9 @@ ${lanes.join("\n")}
147372
147410
  function originIsIgnore(origin) {
147373
147411
  return !!(origin && origin.kind & 256 /* Ignore */);
147374
147412
  }
147413
+ function originIsComputedPropertyName(origin) {
147414
+ return !!(origin && origin.kind & 512 /* ComputedPropertyName */);
147415
+ }
147375
147416
  function resolvingModuleSpecifiers(logPrefix, host, resolver, program, position, preferences, isForImportStatementCompletion, isValidTypeOnlyUseSite, cb) {
147376
147417
  var _a2, _b, _c;
147377
147418
  const start = timestamp();
@@ -148098,7 +148139,7 @@ ${lanes.join("\n")}
148098
148139
  if (isAbstract) {
148099
148140
  requiredModifiers |= 256 /* Abstract */;
148100
148141
  }
148101
- if (isClassElement(node) && checker.getMemberOverrideModifierStatus(classLikeDeclaration, node) === 1 /* NeedsOverride */) {
148142
+ if (isClassElement(node) && checker.getMemberOverrideModifierStatus(classLikeDeclaration, node, symbol) === 1 /* NeedsOverride */) {
148102
148143
  requiredModifiers |= 16384 /* Override */;
148103
148144
  }
148104
148145
  if (!completionNodes.length) {
@@ -148692,7 +148733,8 @@ ${lanes.join("\n")}
148692
148733
  case "symbol": {
148693
148734
  const { symbol, location, contextToken: contextToken2, origin, previousToken: previousToken2 } = symbolCompletion;
148694
148735
  const { codeActions, sourceDisplay } = getCompletionEntryCodeActionsAndSourceDisplay(name, location, contextToken2, origin, symbol, program, host, compilerOptions, sourceFile, position, previousToken2, formatContext, preferences, data, source, cancellationToken);
148695
- return createCompletionDetailsForSymbol(symbol, typeChecker, sourceFile, location, cancellationToken, codeActions, sourceDisplay);
148736
+ const symbolName2 = originIsComputedPropertyName(origin) ? origin.symbolName : symbol.name;
148737
+ return createCompletionDetailsForSymbol(symbol, symbolName2, typeChecker, sourceFile, location, cancellationToken, codeActions, sourceDisplay);
148696
148738
  }
148697
148739
  case "literal": {
148698
148740
  const { literal } = symbolCompletion;
@@ -148743,12 +148785,12 @@ ${lanes.join("\n")}
148743
148785
  function createSimpleDetails(name, kind, kind2) {
148744
148786
  return createCompletionDetails(name, "" /* none */, kind, [displayPart(name, kind2)]);
148745
148787
  }
148746
- function createCompletionDetailsForSymbol(symbol, checker, sourceFile, location, cancellationToken, codeActions, sourceDisplay) {
148788
+ function createCompletionDetailsForSymbol(symbol, name, checker, sourceFile, location, cancellationToken, codeActions, sourceDisplay) {
148747
148789
  const { displayParts, documentation, symbolKind, tags } = checker.runWithCancellationToken(
148748
148790
  cancellationToken,
148749
148791
  (checker2) => ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(checker2, symbol, sourceFile, location, location, 7 /* All */)
148750
148792
  );
148751
- return createCompletionDetails(symbol.name, ts_SymbolDisplay_exports.getSymbolModifiers(checker, symbol), symbolKind, displayParts, documentation, tags, codeActions, sourceDisplay);
148793
+ return createCompletionDetails(name, ts_SymbolDisplay_exports.getSymbolModifiers(checker, symbol), symbolKind, displayParts, documentation, tags, codeActions, sourceDisplay);
148752
148794
  }
148753
148795
  function createCompletionDetails(name, kindModifiers, kind, displayParts, documentation, tags, codeActions, source) {
148754
148796
  return { name, kindModifiers, kind, displayParts, documentation, tags, codeActions, source, sourceDisplay: source };
@@ -149846,6 +149888,16 @@ ${lanes.join("\n")}
149846
149888
  return classElementModifierFlags & 32 /* Static */ ? (type == null ? void 0 : type.symbol) && typeChecker.getPropertiesOfType(typeChecker.getTypeOfSymbolAtLocation(type.symbol, decl)) : type && typeChecker.getPropertiesOfType(type);
149847
149889
  });
149848
149890
  symbols = concatenate(symbols, filterClassMembersList(baseSymbols, decl.members, classElementModifierFlags));
149891
+ forEach(symbols, (symbol, index) => {
149892
+ const declaration = symbol == null ? void 0 : symbol.valueDeclaration;
149893
+ if (declaration && isClassElement(declaration) && declaration.name && isComputedPropertyName(declaration.name)) {
149894
+ const origin = {
149895
+ kind: 512 /* ComputedPropertyName */,
149896
+ symbolName: typeChecker.symbolToString(symbol)
149897
+ };
149898
+ symbolToOriginInfoMap[index] = origin;
149899
+ }
149900
+ });
149849
149901
  }
149850
149902
  return 1 /* Success */;
149851
149903
  }
@@ -150230,7 +150282,7 @@ ${lanes.join("\n")}
150230
150282
  }
150231
150283
  switch (kind) {
150232
150284
  case 3 /* MemberLike */:
150233
- return void 0;
150285
+ return originIsComputedPropertyName(origin) ? { name: origin.symbolName, needsConvertPropertyAccess: false } : void 0;
150234
150286
  case 0 /* ObjectPropertyDeclaration */:
150235
150287
  return { name: JSON.stringify(name), needsConvertPropertyAccess: false };
150236
150288
  case 2 /* PropertyAccess */:
@@ -150738,6 +150790,7 @@ ${lanes.join("\n")}
150738
150790
  SymbolOriginInfoKind2[SymbolOriginInfoKind2["TypeOnlyAlias"] = 64] = "TypeOnlyAlias";
150739
150791
  SymbolOriginInfoKind2[SymbolOriginInfoKind2["ObjectLiteralMethod"] = 128] = "ObjectLiteralMethod";
150740
150792
  SymbolOriginInfoKind2[SymbolOriginInfoKind2["Ignore"] = 256] = "Ignore";
150793
+ SymbolOriginInfoKind2[SymbolOriginInfoKind2["ComputedPropertyName"] = 512] = "ComputedPropertyName";
150741
150794
  SymbolOriginInfoKind2[SymbolOriginInfoKind2["SymbolMemberNoExport"] = 2 /* SymbolMember */] = "SymbolMemberNoExport";
150742
150795
  SymbolOriginInfoKind2[SymbolOriginInfoKind2["SymbolMemberExport"] = 6] = "SymbolMemberExport";
150743
150796
  return SymbolOriginInfoKind2;
@@ -150873,7 +150926,7 @@ ${lanes.join("\n")}
150873
150926
  }
150874
150927
  case 1 /* Properties */: {
150875
150928
  const match = find(completion.symbols, (s) => s.name === name);
150876
- return match && createCompletionDetailsForSymbol(match, checker, sourceFile, location, cancellationToken);
150929
+ return match && createCompletionDetailsForSymbol(match, match.name, checker, sourceFile, location, cancellationToken);
150877
150930
  }
150878
150931
  case 2 /* Types */:
150879
150932
  return find(completion.types, (t) => t.value === name) ? createCompletionDetails(name, "" /* none */, "string" /* string */, [textPart(name)]) : void 0;
@@ -169108,8 +169161,6 @@ ${options.prefix}` : "\n" : options.prefix
169108
169161
  isWithStatement: () => isWithStatement,
169109
169162
  isWriteAccess: () => isWriteAccess,
169110
169163
  isWriteOnlyAccess: () => isWriteOnlyAccess,
169111
- isWriteOnlyUsage: () => isWriteOnlyUsage,
169112
- isWriteUsage: () => isWriteUsage,
169113
169164
  isYieldExpression: () => isYieldExpression,
169114
169165
  jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport,
169115
169166
  keywordPart: () => keywordPart,