@typescript-deploys/pr-build 5.4.0-pr-56626-8 → 5.4.0-pr-56506-20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tsc.js CHANGED
@@ -18,7 +18,7 @@ and limitations under the License.
18
18
 
19
19
  // src/compiler/corePublic.ts
20
20
  var versionMajorMinor = "5.4";
21
- var version = `${versionMajorMinor}.0-insiders.20231130`;
21
+ var version = `${versionMajorMinor}.0-insiders.20231205`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -33128,6 +33128,8 @@ var Parser;
33128
33128
  break;
33129
33129
  case "template":
33130
33130
  return parseTemplateTag(start2, tagName, indent2, indentText);
33131
+ case "this":
33132
+ return parseThisTag(start2, tagName, indent2, indentText);
33131
33133
  default:
33132
33134
  return false;
33133
33135
  }
@@ -44707,7 +44709,7 @@ function createTypeChecker(host) {
44707
44709
  return isBlockScopedNameDeclaredBeforeUse(getAncestor(declaration, 260 /* VariableDeclaration */), usage);
44708
44710
  } else if (declaration.kind === 260 /* VariableDeclaration */) {
44709
44711
  return !isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage);
44710
- } else if (isClassDeclaration(declaration)) {
44712
+ } else if (isClassLike(declaration)) {
44711
44713
  return !findAncestor(usage, (n) => isComputedPropertyName(n) && n.parent.parent === declaration);
44712
44714
  } else if (isPropertyDeclaration(declaration)) {
44713
44715
  return !isPropertyImmediatelyReferencedWithinDeclaration(
@@ -53621,10 +53623,11 @@ function createTypeChecker(host) {
53621
53623
  const baseTypes = getBaseTypes(source);
53622
53624
  if (baseTypes.length) {
53623
53625
  if (source.symbol && members === getMembersOfSymbol(source.symbol)) {
53624
- const symbolTable = createSymbolTable(source.declaredProperties);
53625
- const sourceIndex = getIndexSymbol(source.symbol);
53626
- if (sourceIndex) {
53627
- symbolTable.set("__index" /* Index */, sourceIndex);
53626
+ const symbolTable = createSymbolTable();
53627
+ for (const symbol of members.values()) {
53628
+ if (!(symbol.flags & 262144 /* TypeParameter */)) {
53629
+ symbolTable.set(symbol.escapedName, symbol);
53630
+ }
53628
53631
  }
53629
53632
  members = symbolTable;
53630
53633
  }
@@ -55324,6 +55327,7 @@ function createTypeChecker(host) {
55324
55327
  let flags = 0 /* None */;
55325
55328
  let minArgumentCount = 0;
55326
55329
  let thisParameter;
55330
+ let thisTag = isInJSFile(declaration) ? getJSDocThisTag(declaration) : void 0;
55327
55331
  let hasThisParameter = false;
55328
55332
  const iife = getImmediatelyInvokedFunctionExpression(declaration);
55329
55333
  const isJSConstructSignature = isJSDocConstructSignature(declaration);
@@ -55333,6 +55337,10 @@ function createTypeChecker(host) {
55333
55337
  }
55334
55338
  for (let i = isJSConstructSignature ? 1 : 0; i < declaration.parameters.length; i++) {
55335
55339
  const param = declaration.parameters[i];
55340
+ if (isInJSFile(param) && isJSDocThisTag(param)) {
55341
+ thisTag = param;
55342
+ continue;
55343
+ }
55336
55344
  let paramSymbol = param.symbol;
55337
55345
  const type = isJSDocParameterTag(param) ? param.typeExpression && param.typeExpression.type : param.type;
55338
55346
  if (paramSymbol && !!(paramSymbol.flags & 4 /* Property */) && !isBindingPattern(param.name)) {
@@ -55370,11 +55378,8 @@ function createTypeChecker(host) {
55370
55378
  thisParameter = getAnnotatedAccessorThisParameter(other);
55371
55379
  }
55372
55380
  }
55373
- if (isInJSFile(declaration)) {
55374
- const thisTag = getJSDocThisTag(declaration);
55375
- if (thisTag && thisTag.typeExpression) {
55376
- thisParameter = createSymbolWithType(createSymbol(1 /* FunctionScopedVariable */, "this" /* This */), getTypeFromTypeNode(thisTag.typeExpression));
55377
- }
55381
+ if (thisTag && thisTag.typeExpression) {
55382
+ thisParameter = createSymbolWithType(createSymbol(1 /* FunctionScopedVariable */, "this" /* This */), getTypeFromTypeNode(thisTag.typeExpression));
55378
55383
  }
55379
55384
  const hostDeclaration = isJSDocSignature(declaration) ? getEffectiveJSDocHost(declaration) : declaration;
55380
55385
  const classType = hostDeclaration && isConstructorDeclaration(hostDeclaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(hostDeclaration.parent.symbol)) : void 0;
@@ -60173,8 +60178,8 @@ function createTypeChecker(host) {
60173
60178
  const sourceType = i === restIndex ? getRestTypeAtPosition(source, i) : tryGetTypeAtPosition(source, i);
60174
60179
  const targetType = i === restIndex ? getRestTypeAtPosition(target, i) : tryGetTypeAtPosition(target, i);
60175
60180
  if (sourceType && targetType) {
60176
- const sourceSig = checkMode & 3 /* Callback */ ? void 0 : getSingleCallSignature(getNonNullableType(sourceType));
60177
- const targetSig = checkMode & 3 /* Callback */ ? void 0 : getSingleCallSignature(getNonNullableType(targetType));
60181
+ const sourceSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(source, i) ? void 0 : getSingleCallSignature(getNonNullableType(sourceType));
60182
+ const targetSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(target, i) ? void 0 : getSingleCallSignature(getNonNullableType(targetType));
60178
60183
  const callbacks = sourceSig && targetSig && !getTypePredicateOfSignature(sourceSig) && !getTypePredicateOfSignature(targetSig) && getTypeFacts(sourceType, 50331648 /* IsUndefinedOrNull */) === getTypeFacts(targetType, 50331648 /* IsUndefinedOrNull */);
60179
60184
  let related = callbacks ? compareSignaturesRelated(targetSig, sourceSig, checkMode & 8 /* StrictArity */ | (strictVariance ? 2 /* StrictCallback */ : 1 /* BivariantCallback */), reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) : !(checkMode & 3 /* Callback */) && !strictVariance && compareTypes(
60180
60185
  sourceType,
@@ -70724,6 +70729,10 @@ function createTypeChecker(host) {
70724
70729
  const minTypeArgumentCount = getMinTypeArgumentCount(signature.typeParameters);
70725
70730
  return !some(typeArguments) || typeArguments.length >= minTypeArgumentCount && typeArguments.length <= numTypeParameters;
70726
70731
  }
70732
+ function isInstantiatedGenericParameter(signature, pos) {
70733
+ let type;
70734
+ return !!(signature.target && (type = tryGetTypeAtPosition(signature.target, pos)) && isGenericType(type));
70735
+ }
70727
70736
  function getSingleCallSignature(type) {
70728
70737
  return getSingleSignature(
70729
70738
  type,
@@ -73139,9 +73148,16 @@ function createTypeChecker(host) {
73139
73148
  const len = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);
73140
73149
  for (let i = 0; i < len; i++) {
73141
73150
  const parameter = signature.parameters[i];
73142
- if (!getEffectiveTypeAnnotationNode(parameter.valueDeclaration)) {
73143
- const contextualParameterType = tryGetTypeAtPosition(context, i);
73144
- assignParameterType(parameter, contextualParameterType);
73151
+ const declaration = parameter.valueDeclaration;
73152
+ if (!getEffectiveTypeAnnotationNode(declaration)) {
73153
+ let type = tryGetTypeAtPosition(context, i);
73154
+ if (type && declaration.initializer) {
73155
+ let initializerType = checkDeclarationInitializer(declaration, 0 /* Normal */);
73156
+ if (!isTypeAssignableTo(initializerType, type) && isTypeAssignableTo(type, initializerType = widenTypeInferredFromInitializer(declaration, initializerType))) {
73157
+ type = initializerType;
73158
+ }
73159
+ }
73160
+ assignParameterType(parameter, type);
73145
73161
  }
73146
73162
  }
73147
73163
  if (signatureHasRestParameter(signature)) {
package/lib/tsserver.js CHANGED
@@ -2332,7 +2332,7 @@ module.exports = __toCommonJS(server_exports);
2332
2332
 
2333
2333
  // src/compiler/corePublic.ts
2334
2334
  var versionMajorMinor = "5.4";
2335
- var version = `${versionMajorMinor}.0-insiders.20231130`;
2335
+ var version = `${versionMajorMinor}.0-insiders.20231205`;
2336
2336
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2337
2337
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2338
2338
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -37555,6 +37555,8 @@ var Parser;
37555
37555
  break;
37556
37556
  case "template":
37557
37557
  return parseTemplateTag(start3, tagName, indent3, indentText);
37558
+ case "this":
37559
+ return parseThisTag(start3, tagName, indent3, indentText);
37558
37560
  default:
37559
37561
  return false;
37560
37562
  }
@@ -49434,7 +49436,7 @@ function createTypeChecker(host) {
49434
49436
  return isBlockScopedNameDeclaredBeforeUse(getAncestor(declaration, 260 /* VariableDeclaration */), usage);
49435
49437
  } else if (declaration.kind === 260 /* VariableDeclaration */) {
49436
49438
  return !isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage);
49437
- } else if (isClassDeclaration(declaration)) {
49439
+ } else if (isClassLike(declaration)) {
49438
49440
  return !findAncestor(usage, (n) => isComputedPropertyName(n) && n.parent.parent === declaration);
49439
49441
  } else if (isPropertyDeclaration(declaration)) {
49440
49442
  return !isPropertyImmediatelyReferencedWithinDeclaration(
@@ -58348,10 +58350,11 @@ function createTypeChecker(host) {
58348
58350
  const baseTypes = getBaseTypes(source);
58349
58351
  if (baseTypes.length) {
58350
58352
  if (source.symbol && members === getMembersOfSymbol(source.symbol)) {
58351
- const symbolTable = createSymbolTable(source.declaredProperties);
58352
- const sourceIndex = getIndexSymbol(source.symbol);
58353
- if (sourceIndex) {
58354
- symbolTable.set("__index" /* Index */, sourceIndex);
58353
+ const symbolTable = createSymbolTable();
58354
+ for (const symbol of members.values()) {
58355
+ if (!(symbol.flags & 262144 /* TypeParameter */)) {
58356
+ symbolTable.set(symbol.escapedName, symbol);
58357
+ }
58355
58358
  }
58356
58359
  members = symbolTable;
58357
58360
  }
@@ -60051,6 +60054,7 @@ function createTypeChecker(host) {
60051
60054
  let flags = 0 /* None */;
60052
60055
  let minArgumentCount = 0;
60053
60056
  let thisParameter;
60057
+ let thisTag = isInJSFile(declaration) ? getJSDocThisTag(declaration) : void 0;
60054
60058
  let hasThisParameter2 = false;
60055
60059
  const iife = getImmediatelyInvokedFunctionExpression(declaration);
60056
60060
  const isJSConstructSignature = isJSDocConstructSignature(declaration);
@@ -60060,6 +60064,10 @@ function createTypeChecker(host) {
60060
60064
  }
60061
60065
  for (let i = isJSConstructSignature ? 1 : 0; i < declaration.parameters.length; i++) {
60062
60066
  const param = declaration.parameters[i];
60067
+ if (isInJSFile(param) && isJSDocThisTag(param)) {
60068
+ thisTag = param;
60069
+ continue;
60070
+ }
60063
60071
  let paramSymbol = param.symbol;
60064
60072
  const type = isJSDocParameterTag(param) ? param.typeExpression && param.typeExpression.type : param.type;
60065
60073
  if (paramSymbol && !!(paramSymbol.flags & 4 /* Property */) && !isBindingPattern(param.name)) {
@@ -60097,11 +60105,8 @@ function createTypeChecker(host) {
60097
60105
  thisParameter = getAnnotatedAccessorThisParameter(other);
60098
60106
  }
60099
60107
  }
60100
- if (isInJSFile(declaration)) {
60101
- const thisTag = getJSDocThisTag(declaration);
60102
- if (thisTag && thisTag.typeExpression) {
60103
- thisParameter = createSymbolWithType(createSymbol(1 /* FunctionScopedVariable */, "this" /* This */), getTypeFromTypeNode(thisTag.typeExpression));
60104
- }
60108
+ if (thisTag && thisTag.typeExpression) {
60109
+ thisParameter = createSymbolWithType(createSymbol(1 /* FunctionScopedVariable */, "this" /* This */), getTypeFromTypeNode(thisTag.typeExpression));
60105
60110
  }
60106
60111
  const hostDeclaration = isJSDocSignature(declaration) ? getEffectiveJSDocHost(declaration) : declaration;
60107
60112
  const classType = hostDeclaration && isConstructorDeclaration(hostDeclaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(hostDeclaration.parent.symbol)) : void 0;
@@ -64900,8 +64905,8 @@ function createTypeChecker(host) {
64900
64905
  const sourceType = i === restIndex ? getRestTypeAtPosition(source, i) : tryGetTypeAtPosition(source, i);
64901
64906
  const targetType = i === restIndex ? getRestTypeAtPosition(target, i) : tryGetTypeAtPosition(target, i);
64902
64907
  if (sourceType && targetType) {
64903
- const sourceSig = checkMode & 3 /* Callback */ ? void 0 : getSingleCallSignature(getNonNullableType(sourceType));
64904
- const targetSig = checkMode & 3 /* Callback */ ? void 0 : getSingleCallSignature(getNonNullableType(targetType));
64908
+ const sourceSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(source, i) ? void 0 : getSingleCallSignature(getNonNullableType(sourceType));
64909
+ const targetSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(target, i) ? void 0 : getSingleCallSignature(getNonNullableType(targetType));
64905
64910
  const callbacks = sourceSig && targetSig && !getTypePredicateOfSignature(sourceSig) && !getTypePredicateOfSignature(targetSig) && getTypeFacts(sourceType, 50331648 /* IsUndefinedOrNull */) === getTypeFacts(targetType, 50331648 /* IsUndefinedOrNull */);
64906
64911
  let related = callbacks ? compareSignaturesRelated(targetSig, sourceSig, checkMode & 8 /* StrictArity */ | (strictVariance ? 2 /* StrictCallback */ : 1 /* BivariantCallback */), reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) : !(checkMode & 3 /* Callback */) && !strictVariance && compareTypes(
64907
64912
  sourceType,
@@ -75451,6 +75456,10 @@ function createTypeChecker(host) {
75451
75456
  const minTypeArgumentCount = getMinTypeArgumentCount(signature.typeParameters);
75452
75457
  return !some(typeArguments) || typeArguments.length >= minTypeArgumentCount && typeArguments.length <= numTypeParameters;
75453
75458
  }
75459
+ function isInstantiatedGenericParameter(signature, pos) {
75460
+ let type;
75461
+ return !!(signature.target && (type = tryGetTypeAtPosition(signature.target, pos)) && isGenericType(type));
75462
+ }
75454
75463
  function getSingleCallSignature(type) {
75455
75464
  return getSingleSignature(
75456
75465
  type,
@@ -77866,9 +77875,16 @@ function createTypeChecker(host) {
77866
77875
  const len = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);
77867
77876
  for (let i = 0; i < len; i++) {
77868
77877
  const parameter = signature.parameters[i];
77869
- if (!getEffectiveTypeAnnotationNode(parameter.valueDeclaration)) {
77870
- const contextualParameterType = tryGetTypeAtPosition(context, i);
77871
- assignParameterType(parameter, contextualParameterType);
77878
+ const declaration = parameter.valueDeclaration;
77879
+ if (!getEffectiveTypeAnnotationNode(declaration)) {
77880
+ let type = tryGetTypeAtPosition(context, i);
77881
+ if (type && declaration.initializer) {
77882
+ let initializerType = checkDeclarationInitializer(declaration, 0 /* Normal */);
77883
+ if (!isTypeAssignableTo(initializerType, type) && isTypeAssignableTo(type, initializerType = widenTypeInferredFromInitializer(declaration, initializerType))) {
77884
+ type = initializerType;
77885
+ }
77886
+ }
77887
+ assignParameterType(parameter, type);
77872
77888
  }
77873
77889
  }
77874
77890
  if (signatureHasRestParameter(signature)) {
@@ -137814,7 +137830,7 @@ function transpileModule(input, transpileOptions) {
137814
137830
  options
137815
137831
  ),
137816
137832
  setExternalModuleIndicator: getSetExternalModuleIndicator(options),
137817
- jsDocParsingMode: 1 /* ParseNone */
137833
+ jsDocParsingMode: transpileOptions.jsDocParsingMode ?? 0 /* ParseAll */
137818
137834
  }
137819
137835
  );
137820
137836
  if (transpileOptions.moduleName) {
@@ -159544,7 +159560,7 @@ function getContextualType(previousToken, position, sourceFile, checker) {
159544
159560
  case 19 /* OpenBraceToken */:
159545
159561
  return isJsxExpression(parent2) && !isJsxElement(parent2.parent) && !isJsxFragment(parent2.parent) ? checker.getContextualTypeForJsxAttribute(parent2.parent) : void 0;
159546
159562
  default:
159547
- const argInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(previousToken, position, sourceFile);
159563
+ const argInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(previousToken, position, sourceFile, checker);
159548
159564
  return argInfo ? (
159549
159565
  // At `,`, treat this as the next argument after the comma.
159550
159566
  checker.getContextualTypeForArgumentAtIndex(argInfo.invocation, argInfo.argumentIndex + (previousToken.kind === 28 /* CommaToken */ ? 1 : 0))
@@ -161671,7 +161687,7 @@ function getStringLiteralCompletionEntries(sourceFile, node, position, typeCheck
161671
161687
  case 214 /* NewExpression */:
161672
161688
  case 291 /* JsxAttribute */:
161673
161689
  if (!isRequireCallArgument(node) && !isImportCall(parent2)) {
161674
- const argumentInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(parent2.kind === 291 /* JsxAttribute */ ? parent2.parent : node, position, sourceFile);
161690
+ const argumentInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(parent2.kind === 291 /* JsxAttribute */ ? parent2.parent : node, position, sourceFile, typeChecker);
161675
161691
  return argumentInfo && getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || fromContextualType(0 /* None */);
161676
161692
  }
161677
161693
  case 272 /* ImportDeclaration */:
@@ -164567,7 +164583,7 @@ var Core;
164567
164583
  if (isStringLiteralLike(ref) && ref.text === node.text) {
164568
164584
  if (type) {
164569
164585
  const refType = getContextualTypeFromParentOrAncestorTypeNode(ref, checker);
164570
- if (type !== checker.getStringType() && type === refType) {
164586
+ if (type !== checker.getStringType() && (type === refType || isStringLiteralPropertyReference(ref, checker))) {
164571
164587
  return nodeEntry(ref, 2 /* StringLiteral */);
164572
164588
  }
164573
164589
  } else {
@@ -164581,6 +164597,11 @@ var Core;
164581
164597
  references
164582
164598
  }];
164583
164599
  }
164600
+ function isStringLiteralPropertyReference(node, checker) {
164601
+ if (isPropertySignature(node.parent)) {
164602
+ return checker.getPropertyOfType(checker.getTypeAtLocation(node.parent.parent), node.text);
164603
+ }
164604
+ }
164584
164605
  function populateSearchSymbolSet(symbol, location, checker, isForRename, providePrefixAndSuffixText, implementations) {
164585
164606
  const result = [];
164586
164607
  forEachRelatedSymbol(
@@ -167774,19 +167795,20 @@ function containsPrecedingToken(startingToken, sourceFile, container) {
167774
167795
  }
167775
167796
  return Debug.fail("Could not find preceding token");
167776
167797
  }
167777
- function getArgumentInfoForCompletions(node, position, sourceFile) {
167778
- const info = getImmediatelyContainingArgumentInfo(node, position, sourceFile);
167798
+ function getArgumentInfoForCompletions(node, position, sourceFile, checker) {
167799
+ const info = getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker);
167779
167800
  return !info || info.isTypeParameterList || info.invocation.kind !== 0 /* Call */ ? void 0 : { invocation: info.invocation.node, argumentCount: info.argumentCount, argumentIndex: info.argumentIndex };
167780
167801
  }
167781
- function getArgumentOrParameterListInfo(node, position, sourceFile) {
167782
- const info = getArgumentOrParameterListAndIndex(node, sourceFile);
167802
+ function getArgumentOrParameterListInfo(node, position, sourceFile, checker) {
167803
+ const info = getArgumentOrParameterListAndIndex(node, sourceFile, checker);
167783
167804
  if (!info)
167784
167805
  return void 0;
167785
167806
  const { list, argumentIndex } = info;
167786
167807
  const argumentCount = getArgumentCount(
167787
167808
  list,
167788
167809
  /*ignoreTrailingComma*/
167789
- isInString(sourceFile, position, node)
167810
+ isInString(sourceFile, position, node),
167811
+ checker
167790
167812
  );
167791
167813
  if (argumentIndex !== 0) {
167792
167814
  Debug.assertLessThan(argumentIndex, argumentCount);
@@ -167794,19 +167816,19 @@ function getArgumentOrParameterListInfo(node, position, sourceFile) {
167794
167816
  const argumentsSpan = getApplicableSpanForArguments(list, sourceFile);
167795
167817
  return { list, argumentIndex, argumentCount, argumentsSpan };
167796
167818
  }
167797
- function getArgumentOrParameterListAndIndex(node, sourceFile) {
167819
+ function getArgumentOrParameterListAndIndex(node, sourceFile, checker) {
167798
167820
  if (node.kind === 30 /* LessThanToken */ || node.kind === 21 /* OpenParenToken */) {
167799
167821
  return { list: getChildListThatStartsWithOpenerToken(node.parent, node, sourceFile), argumentIndex: 0 };
167800
167822
  } else {
167801
167823
  const list = findContainingList(node);
167802
- return list && { list, argumentIndex: getArgumentIndex(list, node) };
167824
+ return list && { list, argumentIndex: getArgumentIndex(list, node, checker) };
167803
167825
  }
167804
167826
  }
167805
- function getImmediatelyContainingArgumentInfo(node, position, sourceFile) {
167827
+ function getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker) {
167806
167828
  const { parent: parent2 } = node;
167807
167829
  if (isCallOrNewExpression(parent2)) {
167808
167830
  const invocation = parent2;
167809
- const info = getArgumentOrParameterListInfo(node, position, sourceFile);
167831
+ const info = getArgumentOrParameterListInfo(node, position, sourceFile, checker);
167810
167832
  if (!info)
167811
167833
  return void 0;
167812
167834
  const { list, argumentIndex, argumentCount, argumentsSpan } = info;
@@ -167864,7 +167886,7 @@ function getImmediatelyContainingArgumentInfo(node, position, sourceFile) {
167864
167886
  }
167865
167887
  }
167866
167888
  function getImmediatelyContainingArgumentOrContextualParameterInfo(node, position, sourceFile, checker) {
167867
- return tryGetParameterInfo(node, position, sourceFile, checker) || getImmediatelyContainingArgumentInfo(node, position, sourceFile);
167889
+ return tryGetParameterInfo(node, position, sourceFile, checker) || getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker);
167868
167890
  }
167869
167891
  function getHighestBinary(b) {
167870
167892
  return isBinaryExpression(b.parent) ? getHighestBinary(b.parent) : b;
@@ -167906,7 +167928,7 @@ function getContextualSignatureLocationInfo(node, sourceFile, position, checker)
167906
167928
  case 174 /* MethodDeclaration */:
167907
167929
  case 218 /* FunctionExpression */:
167908
167930
  case 219 /* ArrowFunction */:
167909
- const info = getArgumentOrParameterListInfo(node, position, sourceFile);
167931
+ const info = getArgumentOrParameterListInfo(node, position, sourceFile, checker);
167910
167932
  if (!info)
167911
167933
  return void 0;
167912
167934
  const { argumentIndex, argumentCount, argumentsSpan } = info;
@@ -167929,21 +167951,45 @@ function chooseBetterSymbol(s) {
167929
167951
  return isFunctionTypeNode(d) ? (_a = tryCast(d.parent, canHaveSymbol)) == null ? void 0 : _a.symbol : void 0;
167930
167952
  }) || s : s;
167931
167953
  }
167932
- function getArgumentIndex(argumentsList, node) {
167954
+ function getArgumentIndex(argumentsList, node, checker) {
167955
+ const args = argumentsList.getChildren();
167933
167956
  let argumentIndex = 0;
167934
- for (const child of argumentsList.getChildren()) {
167957
+ for (let pos = 0; pos < length(args); pos++) {
167958
+ const child = args[pos];
167935
167959
  if (child === node) {
167936
167960
  break;
167937
167961
  }
167938
- if (child.kind !== 28 /* CommaToken */) {
167939
- argumentIndex++;
167962
+ if (isSpreadElement(child)) {
167963
+ argumentIndex = argumentIndex + getSpreadElementCount(child, checker) + (pos > 0 ? pos : 0);
167964
+ } else {
167965
+ if (child.kind !== 28 /* CommaToken */) {
167966
+ argumentIndex++;
167967
+ }
167940
167968
  }
167941
167969
  }
167942
167970
  return argumentIndex;
167943
167971
  }
167944
- function getArgumentCount(argumentsList, ignoreTrailingComma) {
167972
+ function getSpreadElementCount(node, checker) {
167973
+ const spreadType = checker.getTypeAtLocation(node.expression);
167974
+ if (checker.isTupleType(spreadType)) {
167975
+ const { elementFlags, fixedLength } = spreadType.target;
167976
+ if (fixedLength === 0) {
167977
+ return 0;
167978
+ }
167979
+ const firstOptionalIndex = findIndex(elementFlags, (f) => !(f & 1 /* Required */));
167980
+ return firstOptionalIndex < 0 ? fixedLength : firstOptionalIndex;
167981
+ }
167982
+ return 0;
167983
+ }
167984
+ function getArgumentCount(argumentsList, ignoreTrailingComma, checker) {
167945
167985
  const listChildren = argumentsList.getChildren();
167946
- let argumentCount = countWhere(listChildren, (arg) => arg.kind !== 28 /* CommaToken */);
167986
+ let argumentCount = 0;
167987
+ for (const child of listChildren) {
167988
+ if (isSpreadElement(child)) {
167989
+ argumentCount = argumentCount + getSpreadElementCount(child, checker);
167990
+ }
167991
+ }
167992
+ argumentCount = argumentCount + countWhere(listChildren, (arg) => arg.kind !== 28 /* CommaToken */);
167947
167993
  if (!ignoreTrailingComma && listChildren.length > 0 && last(listChildren).kind === 28 /* CommaToken */) {
167948
167994
  argumentCount++;
167949
167995
  }
@@ -11618,6 +11618,7 @@ declare namespace ts {
11618
11618
  moduleName?: string;
11619
11619
  renamedDependencies?: MapLike<string>;
11620
11620
  transformers?: CustomTransformers;
11621
+ jsDocParsingMode?: JSDocParsingMode;
11621
11622
  }
11622
11623
  interface TranspileOutput {
11623
11624
  outputText: string;
package/lib/typescript.js CHANGED
@@ -35,7 +35,7 @@ var ts = (() => {
35
35
  "src/compiler/corePublic.ts"() {
36
36
  "use strict";
37
37
  versionMajorMinor = "5.4";
38
- version = `${versionMajorMinor}.0-insiders.20231130`;
38
+ version = `${versionMajorMinor}.0-insiders.20231205`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -35623,6 +35623,8 @@ ${lanes.join("\n")}
35623
35623
  break;
35624
35624
  case "template":
35625
35625
  return parseTemplateTag(start2, tagName, indent3, indentText);
35626
+ case "this":
35627
+ return parseThisTag(start2, tagName, indent3, indentText);
35626
35628
  default:
35627
35629
  return false;
35628
35630
  }
@@ -47197,7 +47199,7 @@ ${lanes.join("\n")}
47197
47199
  return isBlockScopedNameDeclaredBeforeUse(getAncestor(declaration, 260 /* VariableDeclaration */), usage);
47198
47200
  } else if (declaration.kind === 260 /* VariableDeclaration */) {
47199
47201
  return !isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage);
47200
- } else if (isClassDeclaration(declaration)) {
47202
+ } else if (isClassLike(declaration)) {
47201
47203
  return !findAncestor(usage, (n) => isComputedPropertyName(n) && n.parent.parent === declaration);
47202
47204
  } else if (isPropertyDeclaration(declaration)) {
47203
47205
  return !isPropertyImmediatelyReferencedWithinDeclaration(
@@ -56111,10 +56113,11 @@ ${lanes.join("\n")}
56111
56113
  const baseTypes = getBaseTypes(source);
56112
56114
  if (baseTypes.length) {
56113
56115
  if (source.symbol && members === getMembersOfSymbol(source.symbol)) {
56114
- const symbolTable = createSymbolTable(source.declaredProperties);
56115
- const sourceIndex = getIndexSymbol(source.symbol);
56116
- if (sourceIndex) {
56117
- symbolTable.set("__index" /* Index */, sourceIndex);
56116
+ const symbolTable = createSymbolTable();
56117
+ for (const symbol of members.values()) {
56118
+ if (!(symbol.flags & 262144 /* TypeParameter */)) {
56119
+ symbolTable.set(symbol.escapedName, symbol);
56120
+ }
56118
56121
  }
56119
56122
  members = symbolTable;
56120
56123
  }
@@ -57814,6 +57817,7 @@ ${lanes.join("\n")}
57814
57817
  let flags = 0 /* None */;
57815
57818
  let minArgumentCount = 0;
57816
57819
  let thisParameter;
57820
+ let thisTag = isInJSFile(declaration) ? getJSDocThisTag(declaration) : void 0;
57817
57821
  let hasThisParameter2 = false;
57818
57822
  const iife = getImmediatelyInvokedFunctionExpression(declaration);
57819
57823
  const isJSConstructSignature = isJSDocConstructSignature(declaration);
@@ -57823,6 +57827,10 @@ ${lanes.join("\n")}
57823
57827
  }
57824
57828
  for (let i = isJSConstructSignature ? 1 : 0; i < declaration.parameters.length; i++) {
57825
57829
  const param = declaration.parameters[i];
57830
+ if (isInJSFile(param) && isJSDocThisTag(param)) {
57831
+ thisTag = param;
57832
+ continue;
57833
+ }
57826
57834
  let paramSymbol = param.symbol;
57827
57835
  const type = isJSDocParameterTag(param) ? param.typeExpression && param.typeExpression.type : param.type;
57828
57836
  if (paramSymbol && !!(paramSymbol.flags & 4 /* Property */) && !isBindingPattern(param.name)) {
@@ -57860,11 +57868,8 @@ ${lanes.join("\n")}
57860
57868
  thisParameter = getAnnotatedAccessorThisParameter(other);
57861
57869
  }
57862
57870
  }
57863
- if (isInJSFile(declaration)) {
57864
- const thisTag = getJSDocThisTag(declaration);
57865
- if (thisTag && thisTag.typeExpression) {
57866
- thisParameter = createSymbolWithType(createSymbol(1 /* FunctionScopedVariable */, "this" /* This */), getTypeFromTypeNode(thisTag.typeExpression));
57867
- }
57871
+ if (thisTag && thisTag.typeExpression) {
57872
+ thisParameter = createSymbolWithType(createSymbol(1 /* FunctionScopedVariable */, "this" /* This */), getTypeFromTypeNode(thisTag.typeExpression));
57868
57873
  }
57869
57874
  const hostDeclaration = isJSDocSignature(declaration) ? getEffectiveJSDocHost(declaration) : declaration;
57870
57875
  const classType = hostDeclaration && isConstructorDeclaration(hostDeclaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(hostDeclaration.parent.symbol)) : void 0;
@@ -62663,8 +62668,8 @@ ${lanes.join("\n")}
62663
62668
  const sourceType = i === restIndex ? getRestTypeAtPosition(source, i) : tryGetTypeAtPosition(source, i);
62664
62669
  const targetType = i === restIndex ? getRestTypeAtPosition(target, i) : tryGetTypeAtPosition(target, i);
62665
62670
  if (sourceType && targetType) {
62666
- const sourceSig = checkMode & 3 /* Callback */ ? void 0 : getSingleCallSignature(getNonNullableType(sourceType));
62667
- const targetSig = checkMode & 3 /* Callback */ ? void 0 : getSingleCallSignature(getNonNullableType(targetType));
62671
+ const sourceSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(source, i) ? void 0 : getSingleCallSignature(getNonNullableType(sourceType));
62672
+ const targetSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(target, i) ? void 0 : getSingleCallSignature(getNonNullableType(targetType));
62668
62673
  const callbacks = sourceSig && targetSig && !getTypePredicateOfSignature(sourceSig) && !getTypePredicateOfSignature(targetSig) && getTypeFacts(sourceType, 50331648 /* IsUndefinedOrNull */) === getTypeFacts(targetType, 50331648 /* IsUndefinedOrNull */);
62669
62674
  let related = callbacks ? compareSignaturesRelated(targetSig, sourceSig, checkMode & 8 /* StrictArity */ | (strictVariance ? 2 /* StrictCallback */ : 1 /* BivariantCallback */), reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) : !(checkMode & 3 /* Callback */) && !strictVariance && compareTypes(
62670
62675
  sourceType,
@@ -73214,6 +73219,10 @@ ${lanes.join("\n")}
73214
73219
  const minTypeArgumentCount = getMinTypeArgumentCount(signature.typeParameters);
73215
73220
  return !some(typeArguments) || typeArguments.length >= minTypeArgumentCount && typeArguments.length <= numTypeParameters;
73216
73221
  }
73222
+ function isInstantiatedGenericParameter(signature, pos) {
73223
+ let type;
73224
+ return !!(signature.target && (type = tryGetTypeAtPosition(signature.target, pos)) && isGenericType(type));
73225
+ }
73217
73226
  function getSingleCallSignature(type) {
73218
73227
  return getSingleSignature(
73219
73228
  type,
@@ -75629,9 +75638,16 @@ ${lanes.join("\n")}
75629
75638
  const len = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);
75630
75639
  for (let i = 0; i < len; i++) {
75631
75640
  const parameter = signature.parameters[i];
75632
- if (!getEffectiveTypeAnnotationNode(parameter.valueDeclaration)) {
75633
- const contextualParameterType = tryGetTypeAtPosition(context, i);
75634
- assignParameterType(parameter, contextualParameterType);
75641
+ const declaration = parameter.valueDeclaration;
75642
+ if (!getEffectiveTypeAnnotationNode(declaration)) {
75643
+ let type = tryGetTypeAtPosition(context, i);
75644
+ if (type && declaration.initializer) {
75645
+ let initializerType = checkDeclarationInitializer(declaration, 0 /* Normal */);
75646
+ if (!isTypeAssignableTo(initializerType, type) && isTypeAssignableTo(type, initializerType = widenTypeInferredFromInitializer(declaration, initializerType))) {
75647
+ type = initializerType;
75648
+ }
75649
+ }
75650
+ assignParameterType(parameter, type);
75635
75651
  }
75636
75652
  }
75637
75653
  if (signatureHasRestParameter(signature)) {
@@ -136179,7 +136195,7 @@ ${lanes.join("\n")}
136179
136195
  options
136180
136196
  ),
136181
136197
  setExternalModuleIndicator: getSetExternalModuleIndicator(options),
136182
- jsDocParsingMode: 1 /* ParseNone */
136198
+ jsDocParsingMode: transpileOptions.jsDocParsingMode ?? 0 /* ParseAll */
136183
136199
  }
136184
136200
  );
136185
136201
  if (transpileOptions.moduleName) {
@@ -158756,7 +158772,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
158756
158772
  case 19 /* OpenBraceToken */:
158757
158773
  return isJsxExpression(parent2) && !isJsxElement(parent2.parent) && !isJsxFragment(parent2.parent) ? checker.getContextualTypeForJsxAttribute(parent2.parent) : void 0;
158758
158774
  default:
158759
- const argInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(previousToken, position, sourceFile);
158775
+ const argInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(previousToken, position, sourceFile, checker);
158760
158776
  return argInfo ? (
158761
158777
  // At `,`, treat this as the next argument after the comma.
158762
158778
  checker.getContextualTypeForArgumentAtIndex(argInfo.invocation, argInfo.argumentIndex + (previousToken.kind === 28 /* CommaToken */ ? 1 : 0))
@@ -160936,7 +160952,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
160936
160952
  case 214 /* NewExpression */:
160937
160953
  case 291 /* JsxAttribute */:
160938
160954
  if (!isRequireCallArgument(node) && !isImportCall(parent2)) {
160939
- const argumentInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(parent2.kind === 291 /* JsxAttribute */ ? parent2.parent : node, position, sourceFile);
160955
+ const argumentInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(parent2.kind === 291 /* JsxAttribute */ ? parent2.parent : node, position, sourceFile, typeChecker);
160940
160956
  return argumentInfo && getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || fromContextualType(0 /* None */);
160941
160957
  }
160942
160958
  case 272 /* ImportDeclaration */:
@@ -163867,7 +163883,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
163867
163883
  if (isStringLiteralLike(ref) && ref.text === node.text) {
163868
163884
  if (type) {
163869
163885
  const refType = getContextualTypeFromParentOrAncestorTypeNode(ref, checker);
163870
- if (type !== checker.getStringType() && type === refType) {
163886
+ if (type !== checker.getStringType() && (type === refType || isStringLiteralPropertyReference(ref, checker))) {
163871
163887
  return nodeEntry(ref, 2 /* StringLiteral */);
163872
163888
  }
163873
163889
  } else {
@@ -163881,6 +163897,11 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
163881
163897
  references
163882
163898
  }];
163883
163899
  }
163900
+ function isStringLiteralPropertyReference(node, checker) {
163901
+ if (isPropertySignature(node.parent)) {
163902
+ return checker.getPropertyOfType(checker.getTypeAtLocation(node.parent.parent), node.text);
163903
+ }
163904
+ }
163884
163905
  function populateSearchSymbolSet(symbol, location, checker, isForRename, providePrefixAndSuffixText, implementations) {
163885
163906
  const result = [];
163886
163907
  forEachRelatedSymbol(
@@ -167180,19 +167201,20 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
167180
167201
  }
167181
167202
  return Debug.fail("Could not find preceding token");
167182
167203
  }
167183
- function getArgumentInfoForCompletions(node, position, sourceFile) {
167184
- const info = getImmediatelyContainingArgumentInfo(node, position, sourceFile);
167204
+ function getArgumentInfoForCompletions(node, position, sourceFile, checker) {
167205
+ const info = getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker);
167185
167206
  return !info || info.isTypeParameterList || info.invocation.kind !== 0 /* Call */ ? void 0 : { invocation: info.invocation.node, argumentCount: info.argumentCount, argumentIndex: info.argumentIndex };
167186
167207
  }
167187
- function getArgumentOrParameterListInfo(node, position, sourceFile) {
167188
- const info = getArgumentOrParameterListAndIndex(node, sourceFile);
167208
+ function getArgumentOrParameterListInfo(node, position, sourceFile, checker) {
167209
+ const info = getArgumentOrParameterListAndIndex(node, sourceFile, checker);
167189
167210
  if (!info)
167190
167211
  return void 0;
167191
167212
  const { list, argumentIndex } = info;
167192
167213
  const argumentCount = getArgumentCount(
167193
167214
  list,
167194
167215
  /*ignoreTrailingComma*/
167195
- isInString(sourceFile, position, node)
167216
+ isInString(sourceFile, position, node),
167217
+ checker
167196
167218
  );
167197
167219
  if (argumentIndex !== 0) {
167198
167220
  Debug.assertLessThan(argumentIndex, argumentCount);
@@ -167200,19 +167222,19 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
167200
167222
  const argumentsSpan = getApplicableSpanForArguments(list, sourceFile);
167201
167223
  return { list, argumentIndex, argumentCount, argumentsSpan };
167202
167224
  }
167203
- function getArgumentOrParameterListAndIndex(node, sourceFile) {
167225
+ function getArgumentOrParameterListAndIndex(node, sourceFile, checker) {
167204
167226
  if (node.kind === 30 /* LessThanToken */ || node.kind === 21 /* OpenParenToken */) {
167205
167227
  return { list: getChildListThatStartsWithOpenerToken(node.parent, node, sourceFile), argumentIndex: 0 };
167206
167228
  } else {
167207
167229
  const list = findContainingList(node);
167208
- return list && { list, argumentIndex: getArgumentIndex(list, node) };
167230
+ return list && { list, argumentIndex: getArgumentIndex(list, node, checker) };
167209
167231
  }
167210
167232
  }
167211
- function getImmediatelyContainingArgumentInfo(node, position, sourceFile) {
167233
+ function getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker) {
167212
167234
  const { parent: parent2 } = node;
167213
167235
  if (isCallOrNewExpression(parent2)) {
167214
167236
  const invocation = parent2;
167215
- const info = getArgumentOrParameterListInfo(node, position, sourceFile);
167237
+ const info = getArgumentOrParameterListInfo(node, position, sourceFile, checker);
167216
167238
  if (!info)
167217
167239
  return void 0;
167218
167240
  const { list, argumentIndex, argumentCount, argumentsSpan } = info;
@@ -167270,7 +167292,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
167270
167292
  }
167271
167293
  }
167272
167294
  function getImmediatelyContainingArgumentOrContextualParameterInfo(node, position, sourceFile, checker) {
167273
- return tryGetParameterInfo(node, position, sourceFile, checker) || getImmediatelyContainingArgumentInfo(node, position, sourceFile);
167295
+ return tryGetParameterInfo(node, position, sourceFile, checker) || getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker);
167274
167296
  }
167275
167297
  function getHighestBinary(b) {
167276
167298
  return isBinaryExpression(b.parent) ? getHighestBinary(b.parent) : b;
@@ -167312,7 +167334,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
167312
167334
  case 174 /* MethodDeclaration */:
167313
167335
  case 218 /* FunctionExpression */:
167314
167336
  case 219 /* ArrowFunction */:
167315
- const info = getArgumentOrParameterListInfo(node, position, sourceFile);
167337
+ const info = getArgumentOrParameterListInfo(node, position, sourceFile, checker);
167316
167338
  if (!info)
167317
167339
  return void 0;
167318
167340
  const { argumentIndex, argumentCount, argumentsSpan } = info;
@@ -167335,21 +167357,45 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
167335
167357
  return isFunctionTypeNode(d) ? (_a = tryCast(d.parent, canHaveSymbol)) == null ? void 0 : _a.symbol : void 0;
167336
167358
  }) || s : s;
167337
167359
  }
167338
- function getArgumentIndex(argumentsList, node) {
167360
+ function getArgumentIndex(argumentsList, node, checker) {
167361
+ const args = argumentsList.getChildren();
167339
167362
  let argumentIndex = 0;
167340
- for (const child of argumentsList.getChildren()) {
167363
+ for (let pos = 0; pos < length(args); pos++) {
167364
+ const child = args[pos];
167341
167365
  if (child === node) {
167342
167366
  break;
167343
167367
  }
167344
- if (child.kind !== 28 /* CommaToken */) {
167345
- argumentIndex++;
167368
+ if (isSpreadElement(child)) {
167369
+ argumentIndex = argumentIndex + getSpreadElementCount(child, checker) + (pos > 0 ? pos : 0);
167370
+ } else {
167371
+ if (child.kind !== 28 /* CommaToken */) {
167372
+ argumentIndex++;
167373
+ }
167346
167374
  }
167347
167375
  }
167348
167376
  return argumentIndex;
167349
167377
  }
167350
- function getArgumentCount(argumentsList, ignoreTrailingComma) {
167378
+ function getSpreadElementCount(node, checker) {
167379
+ const spreadType = checker.getTypeAtLocation(node.expression);
167380
+ if (checker.isTupleType(spreadType)) {
167381
+ const { elementFlags, fixedLength } = spreadType.target;
167382
+ if (fixedLength === 0) {
167383
+ return 0;
167384
+ }
167385
+ const firstOptionalIndex = findIndex(elementFlags, (f) => !(f & 1 /* Required */));
167386
+ return firstOptionalIndex < 0 ? fixedLength : firstOptionalIndex;
167387
+ }
167388
+ return 0;
167389
+ }
167390
+ function getArgumentCount(argumentsList, ignoreTrailingComma, checker) {
167351
167391
  const listChildren = argumentsList.getChildren();
167352
- let argumentCount = countWhere(listChildren, (arg) => arg.kind !== 28 /* CommaToken */);
167392
+ let argumentCount = 0;
167393
+ for (const child of listChildren) {
167394
+ if (isSpreadElement(child)) {
167395
+ argumentCount = argumentCount + getSpreadElementCount(child, checker);
167396
+ }
167397
+ }
167398
+ argumentCount = argumentCount + countWhere(listChildren, (arg) => arg.kind !== 28 /* CommaToken */);
167353
167399
  if (!ignoreTrailingComma && listChildren.length > 0 && last(listChildren).kind === 28 /* CommaToken */) {
167354
167400
  argumentCount++;
167355
167401
  }
@@ -54,7 +54,7 @@ var path = __toESM(require("path"));
54
54
 
55
55
  // src/compiler/corePublic.ts
56
56
  var versionMajorMinor = "5.4";
57
- var version = `${versionMajorMinor}.0-insiders.20231130`;
57
+ var version = `${versionMajorMinor}.0-insiders.20231205`;
58
58
 
59
59
  // src/compiler/core.ts
60
60
  var emptyArray = [];
@@ -24942,6 +24942,8 @@ var Parser;
24942
24942
  break;
24943
24943
  case "template":
24944
24944
  return parseTemplateTag(start2, tagName, indent3, indentText);
24945
+ case "this":
24946
+ return parseThisTag(start2, tagName, indent3, indentText);
24945
24947
  default:
24946
24948
  return false;
24947
24949
  }
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.4.0-pr-56626-8",
5
+ "version": "5.4.0-pr-56506-20",
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": "9da3df5d0f110dab28c90ea56eb9a66f430d9885"
118
+ "gitHead": "b740dad4acd9ea1c57658474e00ea2b2495b7b5a"
119
119
  }