@typescript-deploys/pr-build 5.0.0-pr-52944-25 → 5.0.0-pr-49226-5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tsc.js CHANGED
@@ -23,7 +23,7 @@ var __export = (target, all) => {
23
23
 
24
24
  // src/compiler/corePublic.ts
25
25
  var versionMajorMinor = "5.0";
26
- var version = `${versionMajorMinor}.0-insiders.20230224`;
26
+ var version = `${versionMajorMinor}.0-insiders.20230225`;
27
27
 
28
28
  // src/compiler/core.ts
29
29
  var emptyArray = [];
@@ -6890,12 +6890,10 @@ var Diagnostics = {
6890
6890
  The_root_value_of_a_0_file_must_be_an_object: diag(5092, 1 /* Error */, "The_root_value_of_a_0_file_must_be_an_object_5092", "The root value of a '{0}' file must be an object."),
6891
6891
  Compiler_option_0_may_only_be_used_with_build: diag(5093, 1 /* Error */, "Compiler_option_0_may_only_be_used_with_build_5093", "Compiler option '--{0}' may only be used with '--build'."),
6892
6892
  Compiler_option_0_may_not_be_used_with_build: diag(5094, 1 /* Error */, "Compiler_option_0_may_not_be_used_with_build_5094", "Compiler option '--{0}' may not be used with '--build'."),
6893
- Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later: diag(5095, 1 /* Error */, "Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later_5095", "Option 'preserveValueImports' can only be used when 'module' is set to 'es2015' or later."),
6893
+ Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later: diag(5095, 1 /* Error */, "Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later_5095", "Option '{0}' can only be used when 'module' is set to 'es2015' or later."),
6894
6894
  Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set: diag(5096, 1 /* Error */, "Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096", "Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."),
6895
6895
  An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled: diag(5097, 1 /* Error */, "An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097", "An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."),
6896
6896
  Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler: diag(5098, 1 /* Error */, "Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098", "Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."),
6897
- Import_assignment_is_not_allowed_when_moduleResolution_is_set_to_bundler_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead: diag(5099, 1 /* Error */, "Import_assignment_is_not_allowed_when_moduleResolution_is_set_to_bundler_Consider_using_import_Aster_5099", `Import assignment is not allowed when 'moduleResolution' is set to 'bundler'. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.`),
6898
- Export_assignment_cannot_be_used_when_moduleResolution_is_set_to_bundler_Consider_using_export_default_or_another_module_format_instead: diag(5100, 1 /* Error */, "Export_assignment_cannot_be_used_when_moduleResolution_is_set_to_bundler_Consider_using_export_defau_5100", "Export assignment cannot be used when 'moduleResolution' is set to 'bundler'. Consider using 'export default' or another module format instead."),
6899
6897
  Flag_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error: diag(5101, 1 /* Error */, "Flag_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecat_5101", `Flag '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '"ignoreDeprecations": "{2}"' to silence this error.`),
6900
6898
  Flag_0_is_deprecated_Please_remove_it_from_your_configuration: diag(5102, 1 /* Error */, "Flag_0_is_deprecated_Please_remove_it_from_your_configuration_5102", "Flag '{0}' is deprecated. Please remove it from your configuration."),
6901
6899
  Invalid_value_for_ignoreDeprecations: diag(5103, 1 /* Error */, "Invalid_value_for_ignoreDeprecations_5103", "Invalid value for '--ignoreDeprecations'."),
@@ -26060,6 +26058,34 @@ var Parser;
26060
26058
  ))
26061
26059
  };
26062
26060
  var factory2 = createNodeFactory(1 /* NoParenthesizerRules */ | 2 /* NoNodeConverters */ | 8 /* NoOriginalNode */, baseNodeFactory);
26061
+ var {
26062
+ createNodeArray: factoryCreateNodeArray,
26063
+ createNumericLiteral: factoryCreateNumericLiteral,
26064
+ createStringLiteral: factoryCreateStringLiteral,
26065
+ createLiteralLikeNode: factoryCreateLiteralLikeNode,
26066
+ createIdentifier: factoryCreateIdentifier,
26067
+ createPrivateIdentifier: factoryCreatePrivateIdentifier,
26068
+ createToken: factoryCreateToken,
26069
+ createArrayLiteralExpression: factoryCreateArrayLiteralExpression,
26070
+ createObjectLiteralExpression: factoryCreateObjectLiteralExpression,
26071
+ createPropertyAccessExpression: factoryCreatePropertyAccessExpression,
26072
+ createPropertyAccessChain: factoryCreatePropertyAccessChain,
26073
+ createElementAccessExpression: factoryCreateElementAccessExpression,
26074
+ createElementAccessChain: factoryCreateElementAccessChain,
26075
+ createCallExpression: factoryCreateCallExpression,
26076
+ createCallChain: factoryCreateCallChain,
26077
+ createNewExpression: factoryCreateNewExpression,
26078
+ createParenthesizedExpression: factoryCreateParenthesizedExpression,
26079
+ createBlock: factoryCreateBlock,
26080
+ createVariableStatement: factoryCreateVariableStatement,
26081
+ createExpressionStatement: factoryCreateExpressionStatement,
26082
+ createIfStatement: factoryCreateIfStatement,
26083
+ createWhileStatement: factoryCreateWhileStatement,
26084
+ createForStatement: factoryCreateForStatement,
26085
+ createForOfStatement: factoryCreateForOfStatement,
26086
+ createVariableDeclaration: factoryCreateVariableDeclaration,
26087
+ createVariableDeclarationList: factoryCreateVariableDeclarationList
26088
+ } = factory2;
26063
26089
  var fileName;
26064
26090
  var sourceFlags;
26065
26091
  var sourceText;
@@ -26177,8 +26203,8 @@ var Parser;
26177
26203
  }
26178
26204
  }
26179
26205
  }
26180
- const expression = isArray(expressions) ? finishNode(factory2.createArrayLiteralExpression(expressions), pos) : Debug.checkDefined(expressions);
26181
- const statement = factory2.createExpressionStatement(expression);
26206
+ const expression = isArray(expressions) ? finishNode(factoryCreateArrayLiteralExpression(expressions), pos) : Debug.checkDefined(expressions);
26207
+ const statement = factoryCreateExpressionStatement(expression);
26182
26208
  finishNode(statement, pos);
26183
26209
  statements = createNodeArray([statement], pos);
26184
26210
  endOfFileToken = parseExpectedToken(1 /* EndOfFileToken */, Diagnostics.Unexpected_token);
@@ -26361,7 +26387,7 @@ var Parser;
26361
26387
  }
26362
26388
  }
26363
26389
  syntaxCursor = savedSyntaxCursor;
26364
- return factory2.updateSourceFile(sourceFile, setTextRange(factory2.createNodeArray(statements), sourceFile.statements));
26390
+ return factory2.updateSourceFile(sourceFile, setTextRange(factoryCreateNodeArray(statements), sourceFile.statements));
26365
26391
  function containsPossibleTopLevelAwait(node) {
26366
26392
  return !(node.flags & 32768 /* AwaitContext */) && !!(node.transformFlags & 67108864 /* ContainsPossibleTopLevelAwait */);
26367
26393
  }
@@ -26802,13 +26828,13 @@ var Parser;
26802
26828
  const pos = getNodePos();
26803
26829
  const kind = token();
26804
26830
  nextToken();
26805
- return finishNode(factory2.createToken(kind), pos);
26831
+ return finishNode(factoryCreateToken(kind), pos);
26806
26832
  }
26807
26833
  function parseTokenNodeJSDoc() {
26808
26834
  const pos = getNodePos();
26809
26835
  const kind = token();
26810
26836
  nextTokenJSDoc();
26811
- return finishNode(factory2.createToken(kind), pos);
26837
+ return finishNode(factoryCreateToken(kind), pos);
26812
26838
  }
26813
26839
  function canParseSemicolon() {
26814
26840
  if (token() === 26 /* SemicolonToken */) {
@@ -26829,7 +26855,7 @@ var Parser;
26829
26855
  return tryParseSemicolon() || parseExpected(26 /* SemicolonToken */);
26830
26856
  }
26831
26857
  function createNodeArray(elements, pos, end, hasTrailingComma) {
26832
- const array = factory2.createNodeArray(elements, hasTrailingComma);
26858
+ const array = factoryCreateNodeArray(elements, hasTrailingComma);
26833
26859
  setTextRangePosEnd(array, pos, end != null ? end : scanner.getStartPos());
26834
26860
  return array;
26835
26861
  }
@@ -26851,7 +26877,7 @@ var Parser;
26851
26877
  parseErrorAtCurrentToken(diagnosticMessage, arg0);
26852
26878
  }
26853
26879
  const pos = getNodePos();
26854
- const result = kind === 79 /* Identifier */ ? factory2.createIdentifier(
26880
+ const result = kind === 79 /* Identifier */ ? factoryCreateIdentifier(
26855
26881
  "",
26856
26882
  /*originalKeywordKind*/
26857
26883
  void 0
@@ -26861,15 +26887,15 @@ var Parser;
26861
26887
  "",
26862
26888
  /*templateFlags*/
26863
26889
  void 0
26864
- ) : kind === 8 /* NumericLiteral */ ? factory2.createNumericLiteral(
26890
+ ) : kind === 8 /* NumericLiteral */ ? factoryCreateNumericLiteral(
26865
26891
  "",
26866
26892
  /*numericLiteralFlags*/
26867
26893
  void 0
26868
- ) : kind === 10 /* StringLiteral */ ? factory2.createStringLiteral(
26894
+ ) : kind === 10 /* StringLiteral */ ? factoryCreateStringLiteral(
26869
26895
  "",
26870
26896
  /*isSingleQuote*/
26871
26897
  void 0
26872
- ) : kind === 279 /* MissingDeclaration */ ? factory2.createMissingDeclaration() : factory2.createToken(kind);
26898
+ ) : kind === 279 /* MissingDeclaration */ ? factory2.createMissingDeclaration() : factoryCreateToken(kind);
26873
26899
  return finishNode(result, pos);
26874
26900
  }
26875
26901
  function internIdentifier(text) {
@@ -26887,7 +26913,7 @@ var Parser;
26887
26913
  const text = internIdentifier(scanner.getTokenValue());
26888
26914
  const hasExtendedUnicodeEscape = scanner.hasExtendedUnicodeEscape();
26889
26915
  nextTokenWithoutCheck();
26890
- return finishNode(factory2.createIdentifier(text, originalKeywordKind, hasExtendedUnicodeEscape), pos);
26916
+ return finishNode(factoryCreateIdentifier(text, originalKeywordKind, hasExtendedUnicodeEscape), pos);
26891
26917
  }
26892
26918
  if (token() === 80 /* PrivateIdentifier */) {
26893
26919
  parseErrorAtCurrentToken(privateIdentifierDiagnosticMessage || Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);
@@ -26958,7 +26984,7 @@ var Parser;
26958
26984
  }
26959
26985
  function parsePrivateIdentifier() {
26960
26986
  const pos = getNodePos();
26961
- const node = factory2.createPrivateIdentifier(internIdentifier(scanner.getTokenValue()));
26987
+ const node = factoryCreatePrivateIdentifier(internIdentifier(scanner.getTokenValue()));
26962
26988
  nextToken();
26963
26989
  return finishNode(node, pos);
26964
26990
  }
@@ -27673,12 +27699,12 @@ var Parser;
27673
27699
  // never get a token like this. Instead, we would get 00 and 9 as two separate tokens.
27674
27700
  // We also do not need to check for negatives because any prefix operator would be part of a
27675
27701
  // parent unary expression.
27676
- kind === 8 /* NumericLiteral */ ? factory2.createNumericLiteral(scanner.getTokenValue(), scanner.getNumericLiteralFlags()) : kind === 10 /* StringLiteral */ ? factory2.createStringLiteral(
27702
+ kind === 8 /* NumericLiteral */ ? factoryCreateNumericLiteral(scanner.getTokenValue(), scanner.getNumericLiteralFlags()) : kind === 10 /* StringLiteral */ ? factoryCreateStringLiteral(
27677
27703
  scanner.getTokenValue(),
27678
27704
  /*isSingleQuote*/
27679
27705
  void 0,
27680
27706
  scanner.hasExtendedUnicodeEscape()
27681
- ) : isLiteralKind(kind) ? factory2.createLiteralLikeNode(kind, scanner.getTokenValue()) : Debug.fail()
27707
+ ) : isLiteralKind(kind) ? factoryCreateLiteralLikeNode(kind, scanner.getTokenValue()) : Debug.fail()
27682
27708
  );
27683
27709
  if (scanner.hasExtendedUnicodeEscape()) {
27684
27710
  node.hasExtendedUnicodeEscape = true;
@@ -28269,7 +28295,7 @@ var Parser;
28269
28295
  if (token() === 126 /* AbstractKeyword */) {
28270
28296
  const pos = getNodePos();
28271
28297
  nextToken();
28272
- const modifier = finishNode(factory2.createToken(126 /* AbstractKeyword */), pos);
28298
+ const modifier = finishNode(factoryCreateToken(126 /* AbstractKeyword */), pos);
28273
28299
  modifiers = createNodeArray([modifier], pos);
28274
28300
  }
28275
28301
  return modifiers;
@@ -29326,7 +29352,7 @@ var Parser;
29326
29352
  return expression;
29327
29353
  }
29328
29354
  parseExpectedToken(24 /* DotToken */, Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access);
29329
- return finishNode(factory2.createPropertyAccessExpression(expression, parseRightSideOfDot(
29355
+ return finishNode(factoryCreatePropertyAccessExpression(expression, parseRightSideOfDot(
29330
29356
  /*allowIdentifierNames*/
29331
29357
  true,
29332
29358
  /*allowPrivateIdentifiers*/
@@ -29347,7 +29373,7 @@ var Parser;
29347
29373
  factory2.createJsxElement(
29348
29374
  lastChild.openingElement,
29349
29375
  lastChild.children,
29350
- finishNode(factory2.createJsxClosingElement(finishNode(factory2.createIdentifier(""), end, end)), end, end)
29376
+ finishNode(factory2.createJsxClosingElement(finishNode(factoryCreateIdentifier(""), end, end)), end, end)
29351
29377
  ),
29352
29378
  lastChild.openingElement.pos,
29353
29379
  end
@@ -29490,7 +29516,7 @@ var Parser;
29490
29516
  scanJsxIdentifier();
29491
29517
  let expression = token() === 108 /* ThisKeyword */ ? parseTokenNode() : parseIdentifierName();
29492
29518
  while (parseOptional(24 /* DotToken */)) {
29493
- expression = finishNode(factory2.createPropertyAccessExpression(expression, parseRightSideOfDot(
29519
+ expression = finishNode(factoryCreatePropertyAccessExpression(expression, parseRightSideOfDot(
29494
29520
  /*allowIdentifierNames*/
29495
29521
  true,
29496
29522
  /*allowPrivateIdentifiers*/
@@ -29641,7 +29667,7 @@ var Parser;
29641
29667
  true
29642
29668
  );
29643
29669
  const isOptionalChain2 = questionDotToken || tryReparseOptionalChain(expression);
29644
- const propertyAccess = isOptionalChain2 ? factory2.createPropertyAccessChain(expression, questionDotToken, name) : factory2.createPropertyAccessExpression(expression, name);
29670
+ const propertyAccess = isOptionalChain2 ? factoryCreatePropertyAccessChain(expression, questionDotToken, name) : factoryCreatePropertyAccessExpression(expression, name);
29645
29671
  if (isOptionalChain2 && isPrivateIdentifier(propertyAccess.name)) {
29646
29672
  parseErrorAtRange(propertyAccess.name, Diagnostics.An_optional_chain_cannot_contain_private_identifiers);
29647
29673
  }
@@ -29669,7 +29695,7 @@ var Parser;
29669
29695
  argumentExpression = argument;
29670
29696
  }
29671
29697
  parseExpected(23 /* CloseBracketToken */);
29672
- const indexedAccess = questionDotToken || tryReparseOptionalChain(expression) ? factory2.createElementAccessChain(expression, questionDotToken, argumentExpression) : factory2.createElementAccessExpression(expression, argumentExpression);
29698
+ const indexedAccess = questionDotToken || tryReparseOptionalChain(expression) ? factoryCreateElementAccessChain(expression, questionDotToken, argumentExpression) : factoryCreateElementAccessExpression(expression, argumentExpression);
29673
29699
  return finishNode(indexedAccess, pos);
29674
29700
  }
29675
29701
  function parseMemberExpressionRest(pos, expression, allowOptionalChain) {
@@ -29756,7 +29782,7 @@ var Parser;
29756
29782
  expression = expression.expression;
29757
29783
  }
29758
29784
  const argumentList = parseArgumentList();
29759
- const callExpr = questionDotToken || tryReparseOptionalChain(expression) ? factory2.createCallChain(expression, questionDotToken, typeArguments, argumentList) : factory2.createCallExpression(expression, typeArguments, argumentList);
29785
+ const callExpr = questionDotToken || tryReparseOptionalChain(expression) ? factoryCreateCallChain(expression, questionDotToken, typeArguments, argumentList) : factoryCreateCallExpression(expression, typeArguments, argumentList);
29760
29786
  expression = finishNode(callExpr, pos);
29761
29787
  continue;
29762
29788
  }
@@ -29767,7 +29793,7 @@ var Parser;
29767
29793
  false,
29768
29794
  Diagnostics.Identifier_expected
29769
29795
  );
29770
- expression = finishNode(factory2.createPropertyAccessChain(expression, questionDotToken, name), pos);
29796
+ expression = finishNode(factoryCreatePropertyAccessChain(expression, questionDotToken, name), pos);
29771
29797
  }
29772
29798
  break;
29773
29799
  }
@@ -29862,7 +29888,7 @@ var Parser;
29862
29888
  parseExpected(20 /* OpenParenToken */);
29863
29889
  const expression = allowInAnd(parseExpression);
29864
29890
  parseExpected(21 /* CloseParenToken */);
29865
- return withJSDoc(finishNode(factory2.createParenthesizedExpression(expression), pos), hasJSDoc);
29891
+ return withJSDoc(finishNode(factoryCreateParenthesizedExpression(expression), pos), hasJSDoc);
29866
29892
  }
29867
29893
  function parseSpreadElement() {
29868
29894
  const pos = getNodePos();
@@ -29889,7 +29915,7 @@ var Parser;
29889
29915
  const multiLine = scanner.hasPrecedingLineBreak();
29890
29916
  const elements = parseDelimitedList(15 /* ArrayLiteralMembers */, parseArgumentOrArrayLiteralElement);
29891
29917
  parseExpectedMatchingBrackets(22 /* OpenBracketToken */, 23 /* CloseBracketToken */, openBracketParsed, openBracketPosition);
29892
- return finishNode(factory2.createArrayLiteralExpression(elements, multiLine), pos);
29918
+ return finishNode(factoryCreateArrayLiteralExpression(elements, multiLine), pos);
29893
29919
  }
29894
29920
  function parseObjectLiteralElement() {
29895
29921
  const pos = getNodePos();
@@ -29954,7 +29980,7 @@ var Parser;
29954
29980
  true
29955
29981
  );
29956
29982
  parseExpectedMatchingBrackets(18 /* OpenBraceToken */, 19 /* CloseBraceToken */, openBraceParsed, openBracePosition);
29957
- return finishNode(factory2.createObjectLiteralExpression(properties, multiLine), pos);
29983
+ return finishNode(factoryCreateObjectLiteralExpression(properties, multiLine), pos);
29958
29984
  }
29959
29985
  function parseFunctionExpression() {
29960
29986
  const savedDecoratorContext = inDecoratorContext();
@@ -30011,7 +30037,7 @@ var Parser;
30011
30037
  parseErrorAtCurrentToken(Diagnostics.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0, getTextOfNodeFromSourceText(sourceText, expression));
30012
30038
  }
30013
30039
  const argumentList = token() === 20 /* OpenParenToken */ ? parseArgumentList() : void 0;
30014
- return finishNode(factory2.createNewExpression(expression, typeArguments, argumentList), pos);
30040
+ return finishNode(factoryCreateNewExpression(expression, typeArguments, argumentList), pos);
30015
30041
  }
30016
30042
  function parseBlock(ignoreMissingOpenBrace, diagnosticMessage) {
30017
30043
  const pos = getNodePos();
@@ -30022,7 +30048,7 @@ var Parser;
30022
30048
  const multiLine = scanner.hasPrecedingLineBreak();
30023
30049
  const statements = parseList(1 /* BlockStatements */, parseStatement);
30024
30050
  parseExpectedMatchingBrackets(18 /* OpenBraceToken */, 19 /* CloseBraceToken */, openBraceParsed, openBracePosition);
30025
- const result = withJSDoc(finishNode(factory2.createBlock(statements, multiLine), pos), hasJSDoc);
30051
+ const result = withJSDoc(finishNode(factoryCreateBlock(statements, multiLine), pos), hasJSDoc);
30026
30052
  if (token() === 63 /* EqualsToken */) {
30027
30053
  parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses);
30028
30054
  nextToken();
@@ -30030,7 +30056,7 @@ var Parser;
30030
30056
  return result;
30031
30057
  } else {
30032
30058
  const statements = createMissingList();
30033
- return withJSDoc(finishNode(factory2.createBlock(
30059
+ return withJSDoc(finishNode(factoryCreateBlock(
30034
30060
  statements,
30035
30061
  /*multiLine*/
30036
30062
  void 0
@@ -30079,7 +30105,7 @@ var Parser;
30079
30105
  parseExpectedMatchingBrackets(20 /* OpenParenToken */, 21 /* CloseParenToken */, openParenParsed, openParenPosition);
30080
30106
  const thenStatement = parseStatement();
30081
30107
  const elseStatement = parseOptional(91 /* ElseKeyword */) ? parseStatement() : void 0;
30082
- return withJSDoc(finishNode(factory2.createIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc);
30108
+ return withJSDoc(finishNode(factoryCreateIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc);
30083
30109
  }
30084
30110
  function parseDoStatement() {
30085
30111
  const pos = getNodePos();
@@ -30103,7 +30129,7 @@ var Parser;
30103
30129
  const expression = allowInAnd(parseExpression);
30104
30130
  parseExpectedMatchingBrackets(20 /* OpenParenToken */, 21 /* CloseParenToken */, openParenParsed, openParenPosition);
30105
30131
  const statement = parseStatement();
30106
- return withJSDoc(finishNode(factory2.createWhileStatement(expression, statement), pos), hasJSDoc);
30132
+ return withJSDoc(finishNode(factoryCreateWhileStatement(expression, statement), pos), hasJSDoc);
30107
30133
  }
30108
30134
  function parseForOrForInOrForOfStatement() {
30109
30135
  const pos = getNodePos();
@@ -30129,7 +30155,7 @@ var Parser;
30129
30155
  true
30130
30156
  ));
30131
30157
  parseExpected(21 /* CloseParenToken */);
30132
- node = factory2.createForOfStatement(awaitToken, initializer, expression, parseStatement());
30158
+ node = factoryCreateForOfStatement(awaitToken, initializer, expression, parseStatement());
30133
30159
  } else if (parseOptional(101 /* InKeyword */)) {
30134
30160
  const expression = allowInAnd(parseExpression);
30135
30161
  parseExpected(21 /* CloseParenToken */);
@@ -30140,7 +30166,7 @@ var Parser;
30140
30166
  parseExpected(26 /* SemicolonToken */);
30141
30167
  const incrementor = token() !== 21 /* CloseParenToken */ ? allowInAnd(parseExpression) : void 0;
30142
30168
  parseExpected(21 /* CloseParenToken */);
30143
- node = factory2.createForStatement(initializer, condition, incrementor, parseStatement());
30169
+ node = factoryCreateForStatement(initializer, condition, incrementor, parseStatement());
30144
30170
  }
30145
30171
  return withJSDoc(finishNode(node, pos), hasJSDoc);
30146
30172
  }
@@ -30215,7 +30241,7 @@ var Parser;
30215
30241
  let expression = scanner.hasPrecedingLineBreak() ? void 0 : allowInAnd(parseExpression);
30216
30242
  if (expression === void 0) {
30217
30243
  identifierCount++;
30218
- expression = finishNode(factory2.createIdentifier(""), getNodePos());
30244
+ expression = finishNode(factoryCreateIdentifier(""), getNodePos());
30219
30245
  }
30220
30246
  if (!tryParseSemicolon()) {
30221
30247
  parseErrorForMissingSemicolonAfter(expression);
@@ -30276,7 +30302,7 @@ var Parser;
30276
30302
  if (!tryParseSemicolon()) {
30277
30303
  parseErrorForMissingSemicolonAfter(expression);
30278
30304
  }
30279
- node = factory2.createExpressionStatement(expression);
30305
+ node = factoryCreateExpressionStatement(expression);
30280
30306
  if (hasParen) {
30281
30307
  hasJSDoc = false;
30282
30308
  }
@@ -30674,7 +30700,7 @@ var Parser;
30674
30700
  }
30675
30701
  const type = parseTypeAnnotation();
30676
30702
  const initializer = isInOrOfKeyword(token()) ? void 0 : parseInitializer();
30677
- const node = factory2.createVariableDeclaration(name, exclamationToken, type, initializer);
30703
+ const node = factoryCreateVariableDeclaration(name, exclamationToken, type, initializer);
30678
30704
  return withJSDoc(finishNode(node, pos), hasJSDoc);
30679
30705
  }
30680
30706
  function parseVariableDeclarationList(inForStatementInitializer) {
@@ -30705,7 +30731,7 @@ var Parser;
30705
30731
  );
30706
30732
  setDisallowInContext(savedDisallowIn);
30707
30733
  }
30708
- return finishNode(factory2.createVariableDeclarationList(declarations, flags), pos);
30734
+ return finishNode(factoryCreateVariableDeclarationList(declarations, flags), pos);
30709
30735
  }
30710
30736
  function canFollowContextualOfKeyword() {
30711
30737
  return nextTokenIsIdentifier() && nextToken() === 21 /* CloseParenToken */;
@@ -30716,7 +30742,7 @@ var Parser;
30716
30742
  false
30717
30743
  );
30718
30744
  parseSemicolon();
30719
- const node = factory2.createVariableStatement(modifiers, declarationList);
30745
+ const node = factoryCreateVariableStatement(modifiers, declarationList);
30720
30746
  return withJSDoc(finishNode(node, pos), hasJSDoc);
30721
30747
  }
30722
30748
  function parseFunctionDeclaration(pos, hasJSDoc, modifiers) {
@@ -30945,7 +30971,7 @@ var Parser;
30945
30971
  return void 0;
30946
30972
  }
30947
30973
  }
30948
- return finishNode(factory2.createToken(kind), pos);
30974
+ return finishNode(factoryCreateToken(kind), pos);
30949
30975
  }
30950
30976
  function parseModifiers(allowDecorators, permitConstAsModifier, stopOnStartOfClassStaticBlock) {
30951
30977
  const pos = getNodePos();
@@ -30982,7 +31008,7 @@ var Parser;
30982
31008
  if (token() === 132 /* AsyncKeyword */) {
30983
31009
  const pos = getNodePos();
30984
31010
  nextToken();
30985
- const modifier = finishNode(factory2.createToken(132 /* AsyncKeyword */), pos);
31011
+ const modifier = finishNode(factoryCreateToken(132 /* AsyncKeyword */), pos);
30986
31012
  modifiers = createNodeArray([modifier], pos);
30987
31013
  }
30988
31014
  return modifiers;
@@ -31569,7 +31595,7 @@ var Parser;
31569
31595
  /*isDeclarationFile*/
31570
31596
  false,
31571
31597
  [],
31572
- factory2.createToken(1 /* EndOfFileToken */),
31598
+ factoryCreateToken(1 /* EndOfFileToken */),
31573
31599
  0 /* None */,
31574
31600
  noop
31575
31601
  );
@@ -32230,7 +32256,7 @@ var Parser;
32230
32256
  let node = parseJSDocIdentifierName();
32231
32257
  while (parseOptional(24 /* DotToken */)) {
32232
32258
  const name = parseJSDocIdentifierName();
32233
- node = finishNode(factory2.createPropertyAccessExpression(node, name), pos);
32259
+ node = finishNode(factoryCreatePropertyAccessExpression(node, name), pos);
32234
32260
  }
32235
32261
  return node;
32236
32262
  }
@@ -32521,7 +32547,7 @@ var Parser;
32521
32547
  const end2 = scanner.getTextPos();
32522
32548
  const originalKeywordKind = token();
32523
32549
  const text = internIdentifier(scanner.getTokenValue());
32524
- const result = finishNode(factory2.createIdentifier(text, originalKeywordKind), pos, end2);
32550
+ const result = finishNode(factoryCreateIdentifier(text, originalKeywordKind), pos, end2);
32525
32551
  nextTokenJSDoc();
32526
32552
  return result;
32527
32553
  }
@@ -36751,10 +36777,13 @@ function getNodeResolutionFeatures(options) {
36751
36777
  return features;
36752
36778
  }
36753
36779
  function getConditions(options, esmMode) {
36754
- const conditions = esmMode || getEmitModuleResolutionKind(options) === 100 /* Bundler */ ? ["node", "import"] : ["node", "require"];
36780
+ const conditions = esmMode || getEmitModuleResolutionKind(options) === 100 /* Bundler */ ? ["import"] : ["require"];
36755
36781
  if (!options.noDtsResolution) {
36756
36782
  conditions.push("types");
36757
36783
  }
36784
+ if (getEmitModuleResolutionKind(options) !== 100 /* Bundler */) {
36785
+ conditions.push("node");
36786
+ }
36758
36787
  return concatenate(conditions, options.customConditions);
36759
36788
  }
36760
36789
  function getAutomaticTypeDirectiveNames(options, host) {
@@ -37443,7 +37472,7 @@ function nodeModuleNameResolverWorker(features, moduleName, containingDirectory,
37443
37472
  isConfigLookup,
37444
37473
  candidateIsFromPackageJsonField: false
37445
37474
  };
37446
- if (traceEnabled && getEmitModuleResolutionKind(compilerOptions) >= 3 /* Node16 */ && getEmitModuleResolutionKind(compilerOptions) <= 99 /* NodeNext */) {
37475
+ if (traceEnabled && moduleResolutionSupportsPackageJsonExportsAndImports(getEmitModuleResolutionKind(compilerOptions))) {
37447
37476
  trace(host, Diagnostics.Resolving_in_0_mode_with_conditions_1, features & 32 /* EsmMode */ ? "ESM" : "CJS", conditions.map((c) => `'${c}'`).join(", "));
37448
37477
  }
37449
37478
  let result;
@@ -45802,7 +45831,9 @@ function createTypeChecker(host) {
45802
45831
  function getSuggestedImportSource(tsExtension) {
45803
45832
  const importSourceWithoutExtension = removeExtension(moduleReference, tsExtension);
45804
45833
  if (emitModuleKindIsNonNodeESM(moduleKind) || mode === 99 /* ESNext */) {
45805
- return importSourceWithoutExtension + (tsExtension === ".mts" /* Mts */ ? ".mjs" : tsExtension === ".cts" /* Cts */ ? ".cjs" : ".js");
45834
+ const preferTs = isDeclarationFileName(moduleReference) && shouldAllowImportingTsExtension(compilerOptions);
45835
+ const ext = tsExtension === ".mts" /* Mts */ || tsExtension === ".d.mts" /* Dmts */ ? preferTs ? ".mts" : ".mjs" : tsExtension === ".cts" /* Cts */ || tsExtension === ".d.mts" /* Dmts */ ? preferTs ? ".cts" : ".cjs" : preferTs ? ".ts" : ".js";
45836
+ return importSourceWithoutExtension + ext;
45806
45837
  }
45807
45838
  return importSourceWithoutExtension;
45808
45839
  }
@@ -54421,15 +54452,27 @@ function createTypeChecker(host) {
54421
54452
  isInJSFile(signature.declaration)
54422
54453
  );
54423
54454
  }
54424
- function getTypeParameterConstraintMapper(typeParameters) {
54425
- const typeEraser = createTypeEraser(typeParameters);
54426
- const baseConstraintMapper = createTypeMapper(typeParameters, map(typeParameters, (tp) => getConstraintOfTypeParameter(tp) || unknownType));
54427
- let baseConstraints = map(typeParameters, (tp) => instantiateType(tp, baseConstraintMapper) || unknownType);
54428
- for (let i = 0; i < typeParameters.length - 1; i++) {
54429
- baseConstraints = instantiateTypes(baseConstraints, baseConstraintMapper);
54455
+ function getBaseSignature(signature) {
54456
+ const typeParameters = signature.typeParameters;
54457
+ if (typeParameters) {
54458
+ if (signature.baseSignatureCache) {
54459
+ return signature.baseSignatureCache;
54460
+ }
54461
+ const typeEraser = createTypeEraser(typeParameters);
54462
+ const baseConstraintMapper = createTypeMapper(typeParameters, map(typeParameters, (tp) => getConstraintOfTypeParameter(tp) || unknownType));
54463
+ let baseConstraints = map(typeParameters, (tp) => instantiateType(tp, baseConstraintMapper) || unknownType);
54464
+ for (let i = 0; i < typeParameters.length - 1; i++) {
54465
+ baseConstraints = instantiateTypes(baseConstraints, baseConstraintMapper);
54466
+ }
54467
+ baseConstraints = instantiateTypes(baseConstraints, typeEraser);
54468
+ return signature.baseSignatureCache = instantiateSignature(
54469
+ signature,
54470
+ createTypeMapper(typeParameters, baseConstraints),
54471
+ /*eraseTypeParameters*/
54472
+ true
54473
+ );
54430
54474
  }
54431
- baseConstraints = instantiateTypes(baseConstraints, typeEraser);
54432
- return createTypeMapper(typeParameters, baseConstraints);
54475
+ return signature;
54433
54476
  }
54434
54477
  function getOrCreateTypeFromSignature(signature) {
54435
54478
  var _a2;
@@ -56954,9 +56997,9 @@ function createTypeChecker(host) {
56954
56997
  }
56955
56998
  }
56956
56999
  if (!checkTypeDeferred) {
56957
- inferTypes(context, checkType, instantiateType(extendsType, freshMapper), 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
57000
+ inferTypes(context.inferences, checkType, instantiateType(extendsType, freshMapper), 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
56958
57001
  }
56959
- const innerMapper = combineTypeMappers(freshMapper, getMapperFromContext(context));
57002
+ const innerMapper = combineTypeMappers(freshMapper, context.mapper);
56960
57003
  combinedMapper = mapper ? combineTypeMappers(innerMapper, mapper) : innerMapper;
56961
57004
  }
56962
57005
  const inferredExtendsType = combinedMapper ? instantiateType(root.extendsType, combinedMapper) : extendsType;
@@ -57643,11 +57686,8 @@ function createTypeChecker(host) {
57643
57686
  void 0
57644
57687
  );
57645
57688
  }
57646
- function createBackreferenceMapper(context, inference) {
57647
- const inferences = context.inferences.indexOf(inference) >= 0 ? context.inferences : context.freeTypeVariables;
57648
- Debug.assert(inferences, "Inference for backreference mapper must exist within provided context");
57649
- const index = inferences.indexOf(inference);
57650
- const forwardInferences = inferences.slice(index);
57689
+ function createBackreferenceMapper(context, index) {
57690
+ const forwardInferences = context.inferences.slice(index);
57651
57691
  return createTypeMapper(map(forwardInferences, (i) => i.typeParameter), map(forwardInferences, () => unknownType));
57652
57692
  }
57653
57693
  function combineTypeMappers(mapper1, mapper2) {
@@ -60461,10 +60501,9 @@ function createTypeChecker(host) {
60461
60501
  0 /* None */,
60462
60502
  isRelatedToWorker
60463
60503
  );
60464
- inferTypes(ctx, target2.extendsType, sourceExtends, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
60465
- const newMapper = getMapperFromContext(ctx);
60466
- sourceExtends = instantiateType(sourceExtends, newMapper);
60467
- mapper = newMapper;
60504
+ inferTypes(ctx.inferences, target2.extendsType, sourceExtends, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
60505
+ sourceExtends = instantiateType(sourceExtends, ctx.mapper);
60506
+ mapper = ctx.mapper;
60468
60507
  }
60469
60508
  if (isTypeIdenticalTo(sourceExtends, target2.extendsType) && (isRelatedTo(source2.checkType, target2.checkType, 3 /* Both */) || isRelatedTo(target2.checkType, source2.checkType, 3 /* Both */))) {
60470
60509
  if (result2 = isRelatedTo(instantiateType(getTrueTypeFromConditionalType(source2), mapper), getTrueTypeFromConditionalType(target2), 3 /* Both */, reportErrors2)) {
@@ -61618,7 +61657,7 @@ function createTypeChecker(host) {
61618
61657
  return type.symbol;
61619
61658
  }
61620
61659
  if (isTupleType(type)) {
61621
- return type.target;
61660
+ return type;
61622
61661
  }
61623
61662
  }
61624
61663
  if (type.flags & 262144 /* TypeParameter */) {
@@ -62302,12 +62341,7 @@ function createTypeChecker(host) {
62302
62341
  return createInferenceContextWorker(typeParameters.map(createInferenceInfo), signature, flags, compareTypes || compareTypesAssignable);
62303
62342
  }
62304
62343
  function cloneInferenceContext(context, extraFlags = 0) {
62305
- const newContext = context && createInferenceContextWorker(map(context.inferences, cloneInferenceInfo), context.signature, context.flags | extraFlags, context.compareTypes);
62306
- if (context && context.freeTypeVariables) {
62307
- newContext.freeTypeVariables = map(context.freeTypeVariables, cloneInferenceInfo);
62308
- newContext.freeTypeVariableSourceSignatures = new Map(mapIterator(context.freeTypeVariableSourceSignatures.entries(), ([k, v]) => [k, new Map(v.entries())]));
62309
- }
62310
- return newContext;
62344
+ return context && createInferenceContextWorker(map(context.inferences, cloneInferenceInfo), context.signature, context.flags | extraFlags, context.compareTypes);
62311
62345
  }
62312
62346
  function createInferenceContextWorker(inferences, signature, flags, compareTypes) {
62313
62347
  const context = {
@@ -62324,29 +62358,20 @@ function createTypeChecker(host) {
62324
62358
  return context;
62325
62359
  }
62326
62360
  function makeFixingMapperForContext(context) {
62327
- return makeDeferredTypeMapper(map(context.inferences, (i) => i.typeParameter), map(context.inferences, (inference) => () => {
62361
+ return makeDeferredTypeMapper(map(context.inferences, (i) => i.typeParameter), map(context.inferences, (inference, i) => () => {
62328
62362
  if (!inference.isFixed) {
62329
62363
  inferFromIntraExpressionSites(context);
62330
62364
  clearCachedInferences(context.inferences);
62331
62365
  inference.isFixed = true;
62332
62366
  }
62333
- return getInferredType(context, inference);
62367
+ return getInferredType(context, i);
62334
62368
  }));
62335
62369
  }
62336
62370
  function makeNonFixingMapperForContext(context) {
62337
- return makeDeferredTypeMapper(map(context.inferences, (i) => i.typeParameter), map(context.inferences, (inference) => () => {
62338
- return getInferredType(context, inference);
62371
+ return makeDeferredTypeMapper(map(context.inferences, (i) => i.typeParameter), map(context.inferences, (_, i) => () => {
62372
+ return getInferredType(context, i);
62339
62373
  }));
62340
62374
  }
62341
- function makeFreeTypeVariableMapperForContext(context) {
62342
- if (!context.freeTypeVariables)
62343
- return void 0;
62344
- const baseMapper = getTypeParameterConstraintMapper(map(context.freeTypeVariables, (i) => i.typeParameter));
62345
- return context.freeTypeVariables.reduceRight(
62346
- (previous, i) => combineTypeMappers(makeDeferredTypeMapper([i.typeParameter], [() => hasInferenceCandidatesOrDefault(i) ? getInferredType(context, i) : instantiateType(i.typeParameter, baseMapper)]), previous),
62347
- baseMapper
62348
- );
62349
- }
62350
62375
  function clearCachedInferences(inferences) {
62351
62376
  for (const inference of inferences) {
62352
62377
  if (!inference.isFixed) {
@@ -62363,7 +62388,7 @@ function createTypeChecker(host) {
62363
62388
  for (const { node, type } of context.intraExpressionInferenceSites) {
62364
62389
  const contextualType = node.kind === 171 /* MethodDeclaration */ ? getContextualTypeForObjectLiteralMethod(node, 2 /* NoConstraints */) : getContextualType(node, 2 /* NoConstraints */);
62365
62390
  if (contextualType) {
62366
- inferTypes(context, type, contextualType);
62391
+ inferTypes(context.inferences, type, contextualType);
62367
62392
  }
62368
62393
  }
62369
62394
  context.intraExpressionInferenceSites = void 0;
@@ -62398,8 +62423,7 @@ function createTypeChecker(host) {
62398
62423
  return inferences.length ? createInferenceContextWorker(map(inferences, cloneInferenceInfo), context.signature, context.flags, context.compareTypes) : void 0;
62399
62424
  }
62400
62425
  function getMapperFromContext(context) {
62401
- const innerContext = context && last(flattenInferenceContextAlternatives(context));
62402
- return innerContext && innerContext.mapper && (innerContext.freeTypeVariables ? combineTypeMappers(innerContext.mapper, makeFreeTypeVariableMapperForContext(innerContext)) : innerContext.mapper);
62426
+ return context && context.mapper;
62403
62427
  }
62404
62428
  function couldContainTypeVariables(type) {
62405
62429
  const objectFlags = getObjectFlags(type);
@@ -62499,15 +62523,8 @@ function createTypeChecker(host) {
62499
62523
  const typeParameter = getIndexedAccessType(constraint.type, getTypeParameterFromMappedType(target));
62500
62524
  const templateType = getTemplateTypeFromMappedType(target);
62501
62525
  const inference = createInferenceInfo(typeParameter);
62502
- const context = createInferenceContextWorker(
62503
- [inference],
62504
- /*signature*/
62505
- void 0,
62506
- 0 /* None */,
62507
- compareTypesAssignable
62508
- );
62509
- inferTypes(context, sourceType, templateType);
62510
- return getInferredTypes(context, returnFalse)[0] || unknownType;
62526
+ inferTypes([inference], sourceType, templateType);
62527
+ return getTypeFromInference(inference) || unknownType;
62511
62528
  }
62512
62529
  function* getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) {
62513
62530
  const properties = getPropertiesOfType(target);
@@ -62684,15 +62701,7 @@ function createTypeChecker(host) {
62684
62701
  pos = p;
62685
62702
  }
62686
62703
  }
62687
- function flattenInferenceContextAlternatives(context) {
62688
- return context.alternatives ? (context.alternatives.forEach((a) => mergeInferenceContexts(
62689
- a,
62690
- context,
62691
- /*clone*/
62692
- true
62693
- )), context.alternatives) : [context];
62694
- }
62695
- function inferTypes(context, originalSource, originalTarget, priority = 0 /* None */, contravariant = false) {
62704
+ function inferTypes(inferences, originalSource, originalTarget, priority = 0 /* None */, contravariant = false) {
62696
62705
  let bivariant = false;
62697
62706
  let propagationType;
62698
62707
  let inferencePriority = 2048 /* MaxValue */;
@@ -62701,21 +62710,7 @@ function createTypeChecker(host) {
62701
62710
  let sourceStack;
62702
62711
  let targetStack;
62703
62712
  let expandingFlags = 0 /* None */;
62704
- let useOnlyCachedAlternativeRoutes = false;
62705
62713
  inferFromTypes(originalSource, originalTarget);
62706
- useOnlyCachedAlternativeRoutes = true;
62707
- const group2 = forkInferenceContext();
62708
- spawnAlternativeInferenceContext(
62709
- group2,
62710
- () => {
62711
- if (length(context.freeTypeVariables)) {
62712
- inferFromTypes(originalSource, instantiateType(originalTarget, context.nonFixingMapper));
62713
- }
62714
- },
62715
- /*fork*/
62716
- false
62717
- );
62718
- joinInferenceContext(group2);
62719
62714
  function inferFromTypes(source, target) {
62720
62715
  if (!couldContainTypeVariables(target)) {
62721
62716
  return;
@@ -62776,9 +62771,6 @@ function createTypeChecker(host) {
62776
62771
  if (getObjectFlags(source) & 262144 /* NonInferrableType */ || source === nonInferrableAnyType) {
62777
62772
  return;
62778
62773
  }
62779
- if (useOnlyCachedAlternativeRoutes && source === target) {
62780
- return;
62781
- }
62782
62774
  if (!inference.isFixed) {
62783
62775
  if (inference.priority === void 0 || priority < inference.priority) {
62784
62776
  inference.candidates = void 0;
@@ -62791,16 +62783,16 @@ function createTypeChecker(host) {
62791
62783
  if (contravariant && !bivariant) {
62792
62784
  if (!contains(inference.contraCandidates, candidate)) {
62793
62785
  inference.contraCandidates = append(inference.contraCandidates, candidate);
62794
- clearCachedInferences(context.inferences);
62786
+ clearCachedInferences(inferences);
62795
62787
  }
62796
62788
  } else if (!contains(inference.candidates, candidate)) {
62797
62789
  inference.candidates = append(inference.candidates, candidate);
62798
- clearCachedInferences(context.inferences);
62790
+ clearCachedInferences(inferences);
62799
62791
  }
62800
62792
  }
62801
62793
  if (!(priority & 128 /* ReturnType */) && target.flags & 262144 /* TypeParameter */ && inference.topLevel && !isTypeParameterAtTopLevel(originalTarget, target)) {
62802
62794
  inference.topLevel = false;
62803
- clearCachedInferences(context.inferences);
62795
+ clearCachedInferences(inferences);
62804
62796
  }
62805
62797
  }
62806
62798
  inferencePriority = Math.min(inferencePriority, priority);
@@ -62968,12 +62960,7 @@ function createTypeChecker(host) {
62968
62960
  }
62969
62961
  function getInferenceInfoForType(type) {
62970
62962
  if (type.flags & 8650752 /* TypeVariable */) {
62971
- for (const inference of context.inferences) {
62972
- if (type === inference.typeParameter) {
62973
- return inference;
62974
- }
62975
- }
62976
- for (const inference of context.freeTypeVariables || []) {
62963
+ for (const inference of inferences) {
62977
62964
  if (type === inference.typeParameter) {
62978
62965
  return inference;
62979
62966
  }
@@ -63254,88 +63241,17 @@ function createTypeChecker(host) {
63254
63241
  }
63255
63242
  }
63256
63243
  }
63257
- function forkInferenceContext() {
63258
- return [];
63259
- }
63260
- function spawnAlternativeInferenceContext(group3, action, fork = true) {
63261
- const oldContext = context;
63262
- flattenInferenceContextAlternatives(context).forEach((alternative) => {
63263
- const newContext = fork ? cloneInferenceContext(alternative) : alternative;
63264
- context = newContext;
63265
- action();
63266
- context = oldContext;
63267
- group3.push(...flattenInferenceContextAlternatives(newContext));
63268
- });
63269
- }
63270
- function joinInferenceContext(group3) {
63271
- group3 = group3.length < 10 ? deduplicate(group3, compareInferenceContext) : group3;
63272
- if (group3.length === 1) {
63273
- mergeInferenceContexts(context, group3[0]);
63274
- context.freeTypeVariables = group3[0].freeTypeVariables;
63275
- context.freeTypeVariableSourceSignatures = group3[0].freeTypeVariableSourceSignatures;
63276
- context.inferredTypeParameters = group3[0].inferredTypeParameters;
63277
- context.flags = group3[0].flags;
63278
- context.alternatives = void 0;
63279
- return;
63280
- }
63281
- context.alternatives = group3;
63282
- }
63283
- function compareInferenceContext(a, b) {
63284
- return a.compareTypes === b.compareTypes && a.flags === b.flags && a.inferredTypeParameters === b.inferredTypeParameters && a.intraExpressionInferenceSites === b.intraExpressionInferenceSites && a.signature === b.signature && compareInferencesIdentical(a, a.inferences, b, b.inferences) && compareInferencesIdentical(a, a.freeTypeVariables, b, b.freeTypeVariables);
63285
- }
63286
- function compareInferencesIdentical(ctxA, a, ctxB, b) {
63287
- if (length(a) !== length(b))
63288
- return false;
63289
- if (length(a) === 0)
63290
- return true;
63291
- for (let i = 0; i < length(a); i++) {
63292
- if (a[i].typeParameter !== b[i].typeParameter || a[i].impliedArity !== b[i].impliedArity || a[i].isFixed !== b[i].isFixed || a[i].priority !== b[i].priority || a[i].topLevel !== b[i].topLevel || forEach(a, (_, i2) => getInferredType(ctxA, a[i2]) !== getInferredType(ctxB, b[i2])))
63293
- return false;
63294
- }
63295
- return true;
63296
- }
63297
63244
  function inferFromSignatures(source, target, kind) {
63298
- var _a2, _b;
63299
63245
  const sourceSignatures = getSignaturesOfType(source, kind);
63300
63246
  const targetSignatures = getSignaturesOfType(target, kind);
63301
63247
  const sourceLen = sourceSignatures.length;
63302
63248
  const targetLen = targetSignatures.length;
63303
- if (targetLen === 1 && sourceLen > 1) {
63304
- const group3 = forkInferenceContext();
63305
- for (let i = 0; i < sourceLen; i++) {
63306
- if (useOnlyCachedAlternativeRoutes && !((_b = (_a2 = context.freeTypeVariableSourceSignatures) == null ? void 0 : _a2.get(last(sourceStack))) == null ? void 0 : _b.get(sourceSignatures[i]))) {
63307
- continue;
63308
- }
63309
- spawnAlternativeInferenceContext(
63310
- group3,
63311
- () => inferFromSignature(sourceSignatures[i], targetSignatures[0])
63312
- );
63313
- }
63314
- joinInferenceContext(group3);
63315
- } else {
63316
- const len = sourceLen < targetLen ? sourceLen : targetLen;
63317
- for (let i = 0; i < len; i++) {
63318
- inferFromSignature(sourceSignatures[sourceLen - len + i], targetSignatures[targetLen - len + i]);
63319
- }
63249
+ const len = sourceLen < targetLen ? sourceLen : targetLen;
63250
+ for (let i = 0; i < len; i++) {
63251
+ inferFromSignature(getBaseSignature(sourceSignatures[sourceLen - len + i]), getErasedSignature(targetSignatures[targetLen - len + i]));
63320
63252
  }
63321
63253
  }
63322
63254
  function inferFromSignature(source, target) {
63323
- target = getErasedSignature(target);
63324
- if (source.typeParameters) {
63325
- let cache = (context.freeTypeVariableSourceSignatures || (context.freeTypeVariableSourceSignatures = /* @__PURE__ */ new Map())).get(last(sourceStack));
63326
- if (!cache) {
63327
- context.freeTypeVariableSourceSignatures.set(last(sourceStack), cache = /* @__PURE__ */ new Map());
63328
- }
63329
- const cached = cache.get(source);
63330
- if (cached) {
63331
- source = cached;
63332
- } else {
63333
- const originalSignature = source;
63334
- source = instantiateSignature(source, makeUnaryTypeMapper(unknownType, unknownType));
63335
- cache.set(originalSignature, source);
63336
- (context.freeTypeVariables || (context.freeTypeVariables = [])).push(...map(source.typeParameters, createInferenceInfo));
63337
- }
63338
- }
63339
63255
  const saveBivariant = bivariant;
63340
63256
  const kind = target.declaration ? target.declaration.kind : 0 /* Unknown */;
63341
63257
  bivariant = bivariant || kind === 171 /* MethodDeclaration */ || kind === 170 /* MethodSignature */ || kind === 173 /* Constructor */;
@@ -63410,7 +63326,8 @@ function createTypeChecker(host) {
63410
63326
  const unwidenedType = inference.priority & 416 /* PriorityImpliesCombination */ ? getUnionType(baseCandidates, 2 /* Subtype */) : getCommonSupertype(baseCandidates);
63411
63327
  return getWidenedType(unwidenedType);
63412
63328
  }
63413
- function getInferredType(context, inference) {
63329
+ function getInferredType(context, index) {
63330
+ const inference = context.inferences[index];
63414
63331
  if (!inference.inferredType) {
63415
63332
  let inferredType;
63416
63333
  const signature = context.signature;
@@ -63426,7 +63343,7 @@ function createTypeChecker(host) {
63426
63343
  } else {
63427
63344
  const defaultType = getDefaultFromTypeParameter(inference.typeParameter);
63428
63345
  if (defaultType) {
63429
- inferredType = instantiateType(defaultType, mergeTypeMappers(createBackreferenceMapper(context, inference), context.nonFixingMapper));
63346
+ inferredType = instantiateType(defaultType, mergeTypeMappers(createBackreferenceMapper(context, index), context.nonFixingMapper));
63430
63347
  }
63431
63348
  }
63432
63349
  } else {
@@ -63446,24 +63363,12 @@ function createTypeChecker(host) {
63446
63363
  function getDefaultTypeArgumentType(isInJavaScriptFile) {
63447
63364
  return isInJavaScriptFile ? anyType : unknownType;
63448
63365
  }
63449
- function getInferredTypes(context, accept) {
63450
- const alternatives = flattenInferenceContextAlternatives(context);
63451
- let finalAlternative;
63452
- for (let a = alternatives.length - 1; a >= 0; a--) {
63453
- const context2 = alternatives[a];
63454
- const freeTypeVariableMapper = makeFreeTypeVariableMapperForContext(context2);
63455
- const result = [];
63456
- for (const inference of context2.inferences) {
63457
- result.push(instantiateType(getInferredType(context2, inference), freeTypeVariableMapper));
63458
- }
63459
- if (alternatives.length === 1 || accept(result)) {
63460
- return result;
63461
- }
63462
- if (!finalAlternative) {
63463
- finalAlternative = result;
63464
- }
63366
+ function getInferredTypes(context) {
63367
+ const result = [];
63368
+ for (let i = 0; i < context.inferences.length; i++) {
63369
+ result.push(getInferredType(context, i));
63465
63370
  }
63466
- return finalAlternative;
63371
+ return result;
63467
63372
  }
63468
63373
  function getCannotFindNameDiagnosticForName(node) {
63469
63374
  switch (node.escapedText) {
@@ -66841,11 +66746,8 @@ function createTypeChecker(host) {
66841
66746
  function instantiateContextualType(contextualType, node, contextFlags) {
66842
66747
  if (contextualType && maybeTypeOfKind(contextualType, 465829888 /* Instantiable */)) {
66843
66748
  const inferenceContext = getInferenceContext(node);
66844
- if (inferenceContext && contextFlags & 1 /* Signature */ && some(flatMap(flattenInferenceContextAlternatives(inferenceContext), (c) => c.inferences), hasInferenceCandidatesOrDefault)) {
66845
- return getUnionType(map(
66846
- flattenInferenceContextAlternatives(inferenceContext),
66847
- (c) => instantiateInstantiableTypes(contextualType, c.nonFixingMapper)
66848
- ));
66749
+ if (inferenceContext && contextFlags & 1 /* Signature */ && some(inferenceContext.inferences, hasInferenceCandidatesOrDefault)) {
66750
+ return instantiateInstantiableTypes(contextualType, inferenceContext.nonFixingMapper);
66849
66751
  }
66850
66752
  if (inferenceContext == null ? void 0 : inferenceContext.returnMapper) {
66851
66753
  const type = instantiateInstantiableTypes(contextualType, inferenceContext.returnMapper);
@@ -69204,23 +69106,23 @@ function createTypeChecker(host) {
69204
69106
  function instantiateSignatureInContextOf(signature, contextualSignature, inferenceContext, compareTypes) {
69205
69107
  const context = createInferenceContext(signature.typeParameters, signature, 0 /* None */, compareTypes);
69206
69108
  const restType = getEffectiveRestType(contextualSignature);
69207
- const mapper = inferenceContext && (restType && restType.flags & 262144 /* TypeParameter */ ? inferenceContext.nonFixingMapper : getMapperFromContext(inferenceContext));
69109
+ const mapper = inferenceContext && (restType && restType.flags & 262144 /* TypeParameter */ ? inferenceContext.nonFixingMapper : inferenceContext.mapper);
69208
69110
  const sourceSignature = mapper ? instantiateSignature(contextualSignature, mapper) : contextualSignature;
69209
69111
  applyToParameterTypes(sourceSignature, signature, (source, target) => {
69210
- inferTypes(context, source, target);
69112
+ inferTypes(context.inferences, source, target);
69211
69113
  });
69212
69114
  if (!inferenceContext) {
69213
69115
  applyToReturnTypes(contextualSignature, signature, (source, target) => {
69214
- inferTypes(context, source, target, 128 /* ReturnType */);
69116
+ inferTypes(context.inferences, source, target, 128 /* ReturnType */);
69215
69117
  });
69216
69118
  }
69217
- return getSignatureInstantiation(signature, getInferredTypes(context, returnFalse), isInJSFile(contextualSignature.declaration));
69119
+ return getSignatureInstantiation(signature, getInferredTypes(context), isInJSFile(contextualSignature.declaration));
69218
69120
  }
69219
- function inferJsxTypeArguments(node, signature, checkMode, context, accept) {
69121
+ function inferJsxTypeArguments(node, signature, checkMode, context) {
69220
69122
  const paramType = getEffectiveFirstArgumentForJsxSignature(signature, node);
69221
69123
  const checkAttrType = checkExpressionWithContextualType(node.attributes, paramType, context, checkMode);
69222
- inferTypes(context, checkAttrType, paramType);
69223
- return getInferredTypes(context, accept);
69124
+ inferTypes(context.inferences, checkAttrType, paramType);
69125
+ return getInferredTypes(context);
69224
69126
  }
69225
69127
  function getThisArgumentType(thisArgumentNode) {
69226
69128
  if (!thisArgumentNode) {
@@ -69229,9 +69131,9 @@ function createTypeChecker(host) {
69229
69131
  const thisArgumentType = checkExpression(thisArgumentNode);
69230
69132
  return isOptionalChainRoot(thisArgumentNode.parent) ? getNonNullableType(thisArgumentType) : isOptionalChain(thisArgumentNode.parent) ? removeOptionalTypeMarker(thisArgumentType) : thisArgumentType;
69231
69133
  }
69232
- function inferTypeArguments(node, signature, args, checkMode, context, accept) {
69134
+ function inferTypeArguments(node, signature, args, checkMode, context) {
69233
69135
  if (isJsxOpeningLikeElement(node)) {
69234
- return inferJsxTypeArguments(node, signature, checkMode, context, accept);
69136
+ return inferJsxTypeArguments(node, signature, checkMode, context);
69235
69137
  }
69236
69138
  if (node.kind !== 167 /* Decorator */) {
69237
69139
  const skipBindingPatterns = every(signature.typeParameters, (p) => !!getDefaultFromTypeParameter(p));
@@ -69246,11 +69148,11 @@ function createTypeChecker(host) {
69246
69148
  const instantiatedType = instantiateType(contextualType, outerMapper);
69247
69149
  const contextualSignature = getSingleCallSignature(instantiatedType);
69248
69150
  const inferenceSourceType = contextualSignature && contextualSignature.typeParameters ? getOrCreateTypeFromSignature(getSignatureInstantiationWithoutFillingInTypeArguments(contextualSignature, contextualSignature.typeParameters)) : instantiatedType;
69249
- inferTypes(context, inferenceSourceType, inferenceTargetType, 128 /* ReturnType */);
69151
+ inferTypes(context.inferences, inferenceSourceType, inferenceTargetType, 128 /* ReturnType */);
69250
69152
  }
69251
69153
  const returnContext = createInferenceContext(signature.typeParameters, signature, context.flags);
69252
69154
  const returnSourceType = instantiateType(contextualType, outerContext && outerContext.returnMapper);
69253
- inferTypes(returnContext, returnSourceType, inferenceTargetType);
69155
+ inferTypes(returnContext.inferences, returnSourceType, inferenceTargetType);
69254
69156
  context.returnMapper = some(returnContext.inferences, hasInferenceCandidates) ? getMapperFromContext(cloneInferredPartOfContext(returnContext)) : void 0;
69255
69157
  }
69256
69158
  }
@@ -69266,7 +69168,7 @@ function createTypeChecker(host) {
69266
69168
  const thisType = getThisTypeOfSignature(signature);
69267
69169
  if (thisType && couldContainTypeVariables(thisType)) {
69268
69170
  const thisArgumentNode = getThisArgumentOfCall(node);
69269
- inferTypes(context, getThisArgumentType(thisArgumentNode), thisType);
69171
+ inferTypes(context.inferences, getThisArgumentType(thisArgumentNode), thisType);
69270
69172
  }
69271
69173
  for (let i = 0; i < argCount; i++) {
69272
69174
  const arg = args[i];
@@ -69274,15 +69176,15 @@ function createTypeChecker(host) {
69274
69176
  const paramType = getTypeAtPosition(signature, i);
69275
69177
  if (couldContainTypeVariables(paramType)) {
69276
69178
  const argType = checkExpressionWithContextualType(arg, paramType, context, checkMode);
69277
- inferTypes(context, argType, paramType);
69179
+ inferTypes(context.inferences, argType, paramType);
69278
69180
  }
69279
69181
  }
69280
69182
  }
69281
69183
  if (restType && couldContainTypeVariables(restType)) {
69282
69184
  const spreadType = getSpreadArgumentType(args, argCount, args.length, restType, context, checkMode);
69283
- inferTypes(context, spreadType, restType);
69185
+ inferTypes(context.inferences, spreadType, restType);
69284
69186
  }
69285
- return getInferredTypes(context, accept);
69187
+ return getInferredTypes(context);
69286
69188
  }
69287
69189
  function getMutableArrayOrTupleType(type) {
69288
69190
  return type.flags & 1048576 /* Union */ ? mapType(type, getMutableArrayOrTupleType) : type.flags & 1 /* Any */ || isMutableArrayOrTuple(getBaseConstraintOfType(type) || type) ? type : isTupleType(type) ? createTupleType(
@@ -70049,26 +69951,6 @@ function createTypeChecker(host) {
70049
69951
  }
70050
69952
  let checkCandidate;
70051
69953
  let inferenceContext;
70052
- const acceptor = (types) => {
70053
- const checkCandidate2 = getSignatureInstantiation(candidate, types, isInJSFile(candidate.declaration), inferenceContext && inferenceContext.inferredTypeParameters);
70054
- if (getNonArrayRestType(candidate) && !hasCorrectArity(node, args, checkCandidate2, signatureHelpTrailingComma2)) {
70055
- return false;
70056
- }
70057
- if (getSignatureApplicabilityError(
70058
- node,
70059
- args,
70060
- checkCandidate2,
70061
- relation,
70062
- argCheckMode,
70063
- /*reportErrors*/
70064
- false,
70065
- /*containingMessageChain*/
70066
- void 0
70067
- )) {
70068
- return false;
70069
- }
70070
- return true;
70071
- };
70072
69954
  if (candidate.typeParameters) {
70073
69955
  let typeArgumentTypes;
70074
69956
  if (some(typeArguments)) {
@@ -70089,7 +69971,7 @@ function createTypeChecker(host) {
70089
69971
  /*flags*/
70090
69972
  isInJSFile(node) ? 2 /* AnyDefault */ : 0 /* None */
70091
69973
  );
70092
- typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode | 8 /* SkipGenericFunctions */, inferenceContext, acceptor);
69974
+ typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode | 8 /* SkipGenericFunctions */, inferenceContext);
70093
69975
  argCheckMode |= inferenceContext.flags & 4 /* SkippedGenericFunction */ ? 8 /* SkipGenericFunctions */ : 0 /* Normal */;
70094
69976
  }
70095
69977
  checkCandidate = getSignatureInstantiation(candidate, typeArgumentTypes, isInJSFile(candidate.declaration), inferenceContext && inferenceContext.inferredTypeParameters);
@@ -70117,7 +69999,7 @@ function createTypeChecker(host) {
70117
69999
  if (argCheckMode) {
70118
70000
  argCheckMode = checkMode & 32 /* IsForStringLiteralArgumentCompletions */;
70119
70001
  if (inferenceContext) {
70120
- const typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode, inferenceContext, acceptor);
70002
+ const typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode, inferenceContext);
70121
70003
  checkCandidate = getSignatureInstantiation(candidate, typeArgumentTypes, isInJSFile(candidate.declaration), inferenceContext.inferredTypeParameters);
70122
70004
  if (getNonArrayRestType(candidate) && !hasCorrectArity(node, args, checkCandidate, signatureHelpTrailingComma2)) {
70123
70005
  candidateForArgumentArityError = checkCandidate;
@@ -70227,7 +70109,7 @@ function createTypeChecker(host) {
70227
70109
  /*flags*/
70228
70110
  isInJSFile(node) ? 2 /* AnyDefault */ : 0 /* None */
70229
70111
  );
70230
- const typeArgumentTypes = inferTypeArguments(node, candidate, args, checkMode | 4 /* SkipContextSensitive */ | 8 /* SkipGenericFunctions */, inferenceContext, returnFalse);
70112
+ const typeArgumentTypes = inferTypeArguments(node, candidate, args, checkMode | 4 /* SkipContextSensitive */ | 8 /* SkipGenericFunctions */, inferenceContext);
70231
70113
  return createSignatureInstantiation(candidate, typeArgumentTypes);
70232
70114
  }
70233
70115
  function getLongestCandidateIndex(candidates, argsCount) {
@@ -71495,7 +71377,7 @@ function createTypeChecker(host) {
71495
71377
  if (declaration.type) {
71496
71378
  const typeNode = getEffectiveTypeAnnotationNode(declaration);
71497
71379
  if (typeNode) {
71498
- inferTypes(inferenceContext, getTypeFromTypeNode(typeNode), getTypeAtPosition(context, i));
71380
+ inferTypes(inferenceContext.inferences, getTypeFromTypeNode(typeNode), getTypeAtPosition(context, i));
71499
71381
  }
71500
71382
  }
71501
71383
  }
@@ -72207,7 +72089,7 @@ function createTypeChecker(host) {
72207
72089
  instantiatedContextualSignature = instantiateSignature(contextualSignature, inferenceContext.nonFixingMapper);
72208
72090
  }
72209
72091
  }
72210
- instantiatedContextualSignature || (instantiatedContextualSignature = inferenceContext ? instantiateSignature(contextualSignature, getMapperFromContext(inferenceContext)) : contextualSignature);
72092
+ instantiatedContextualSignature || (instantiatedContextualSignature = inferenceContext ? instantiateSignature(contextualSignature, inferenceContext.mapper) : contextualSignature);
72211
72093
  assignContextualParameterTypes(signature, instantiatedContextualSignature);
72212
72094
  } else {
72213
72095
  assignNonContextualParameterTypes(signature);
@@ -73588,7 +73470,7 @@ function createTypeChecker(host) {
73588
73470
  return isAssertionExpression(parent) && isConstTypeReference(parent.type) || isJSDocTypeAssertion(parent) && isConstTypeReference(getJSDocTypeAssertionType(parent)) || isValidConstAssertionArgument(node) && isConstTypeParameterContext(node) || (isParenthesizedExpression(parent) || isArrayLiteralExpression(parent) || isSpreadElement(parent)) && isConstContext(parent) || (isPropertyAssignment(parent) || isShorthandPropertyAssignment(parent) || isTemplateSpan(parent)) && isConstContext(parent.parent);
73589
73471
  }
73590
73472
  function isConstTypeParameterContext(node) {
73591
- const contextualType = getContextualType(node, 1 /* Signature */);
73473
+ const contextualType = getContextualType(node, 0 /* None */);
73592
73474
  return !!contextualType && someType(contextualType, isConstTypeVariable);
73593
73475
  }
73594
73476
  function checkExpressionForMutableLocation(node, checkMode, forceTuple) {
@@ -73653,11 +73535,10 @@ function createTypeChecker(host) {
73653
73535
  if (returnSignature && !returnSignature.typeParameters && !every(context.inferences, hasInferenceCandidates)) {
73654
73536
  const uniqueTypeParameters = getUniqueTypeParameters(context, signature.typeParameters);
73655
73537
  const instantiatedSignature = getSignatureInstantiationWithoutFillingInTypeArguments(signature, uniqueTypeParameters);
73656
- const subcontext = cloneInferenceContext(context);
73657
- subcontext.inferences = map(context.inferences, (info) => createInferenceInfo(info.typeParameter));
73538
+ const inferences = map(context.inferences, (info) => createInferenceInfo(info.typeParameter));
73658
73539
  applyToParameterTypes(instantiatedSignature, contextualSignature, (source, target) => {
73659
73540
  inferTypes(
73660
- subcontext,
73541
+ inferences,
73661
73542
  source,
73662
73543
  target,
73663
73544
  /*priority*/
@@ -73666,12 +73547,12 @@ function createTypeChecker(host) {
73666
73547
  true
73667
73548
  );
73668
73549
  });
73669
- if (some(subcontext.inferences, hasInferenceCandidates)) {
73550
+ if (some(inferences, hasInferenceCandidates)) {
73670
73551
  applyToReturnTypes(instantiatedSignature, contextualSignature, (source, target) => {
73671
- inferTypes(subcontext, source, target);
73552
+ inferTypes(inferences, source, target);
73672
73553
  });
73673
- if (!hasOverlappingInferences(context.inferences, subcontext.inferences)) {
73674
- mergeInferenceContexts(context, subcontext);
73554
+ if (!hasOverlappingInferences(context.inferences, inferences)) {
73555
+ mergeInferences(context.inferences, inferences);
73675
73556
  context.inferredTypeParameters = concatenate(context.inferredTypeParameters, uniqueTypeParameters);
73676
73557
  return getOrCreateTypeFromSignature(instantiatedSignature);
73677
73558
  }
@@ -73704,22 +73585,13 @@ function createTypeChecker(host) {
73704
73585
  }
73705
73586
  return false;
73706
73587
  }
73707
- function mergeInferences(target, source, clone2 = false) {
73588
+ function mergeInferences(target, source) {
73708
73589
  for (let i = 0; i < target.length; i++) {
73709
73590
  if (!hasInferenceCandidates(target[i]) && hasInferenceCandidates(source[i])) {
73710
- target[i] = clone2 ? {
73711
- ...source[i],
73712
- candidates: source[i].candidates && [...source[i].candidates],
73713
- contraCandidates: source[i].contraCandidates && [...source[i].contraCandidates]
73714
- } : source[i];
73591
+ target[i] = source[i];
73715
73592
  }
73716
73593
  }
73717
73594
  }
73718
- function mergeInferenceContexts(target, source, cloneInferences = false) {
73719
- mergeInferences(target.inferences, source.inferences, cloneInferences);
73720
- target.mapper = makeFixingMapperForContext(target);
73721
- target.nonFixingMapper = makeNonFixingMapperForContext(target);
73722
- }
73723
73595
  function getUniqueTypeParameters(context, typeParameters) {
73724
73596
  const result = [];
73725
73597
  let oldTypeParameters;
@@ -78954,8 +78826,6 @@ function createTypeChecker(host) {
78954
78826
  } else {
78955
78827
  if (moduleKind >= 5 /* ES2015 */ && getSourceFileOfNode(node).impliedNodeFormat === void 0 && !node.isTypeOnly && !(node.flags & 16777216 /* Ambient */)) {
78956
78828
  grammarErrorOnNode(node, Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead);
78957
- } else if (!(node.flags & 16777216 /* Ambient */) && getEmitModuleResolutionKind(compilerOptions) === 100 /* Bundler */) {
78958
- grammarErrorOnNode(node, Diagnostics.Import_assignment_is_not_allowed_when_moduleResolution_is_set_to_bundler_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead);
78959
78829
  }
78960
78830
  }
78961
78831
  }
@@ -79162,8 +79032,6 @@ function createTypeChecker(host) {
79162
79032
  grammarErrorOnNode(node, Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead);
79163
79033
  } else if (moduleKind === 4 /* System */ && !(node.flags & 16777216 /* Ambient */)) {
79164
79034
  grammarErrorOnNode(node, Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system);
79165
- } else if (getEmitModuleResolutionKind(compilerOptions) === 100 /* Bundler */ && !(node.flags & 16777216 /* Ambient */)) {
79166
- grammarErrorOnNode(node, Diagnostics.Export_assignment_cannot_be_used_when_moduleResolution_is_set_to_bundler_Consider_using_export_default_or_another_module_format_instead);
79167
79035
  }
79168
79036
  }
79169
79037
  }
@@ -115402,10 +115270,10 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
115402
115270
  }
115403
115271
  }
115404
115272
  if (options.preserveValueImports && getEmitModuleKind(options) < 5 /* ES2015 */) {
115405
- createDiagnosticForOptionName(Diagnostics.Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later, "preserveValueImports");
115273
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "preserveValueImports");
115406
115274
  }
115275
+ const moduleKind = getEmitModuleKind(options);
115407
115276
  if (options.verbatimModuleSyntax) {
115408
- const moduleKind = getEmitModuleKind(options);
115409
115277
  if (moduleKind === 2 /* AMD */ || moduleKind === 3 /* UMD */ || moduleKind === 4 /* System */) {
115410
115278
  createDiagnosticForOptionName(Diagnostics.Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System, "verbatimModuleSyntax");
115411
115279
  }
@@ -115424,13 +115292,16 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
115424
115292
  }
115425
115293
  const moduleResolution = getEmitModuleResolutionKind(options);
115426
115294
  if (options.resolvePackageJsonExports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
115427
- createOptionValueDiagnostic("resolvePackageJsonExports", Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonExports");
115295
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonExports");
115428
115296
  }
115429
115297
  if (options.resolvePackageJsonImports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
115430
- createOptionValueDiagnostic("resolvePackageJsonImports", Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonImports");
115298
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonImports");
115431
115299
  }
115432
115300
  if (options.customConditions && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
115433
- createOptionValueDiagnostic("customConditions", Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "customConditions");
115301
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "customConditions");
115302
+ }
115303
+ if (moduleResolution === 100 /* Bundler */ && !emitModuleKindIsNonNodeESM(moduleKind)) {
115304
+ createOptionValueDiagnostic("moduleResolution", Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "bundler");
115434
115305
  }
115435
115306
  if (!options.noEmit && !options.suppressOutputPathCheck) {
115436
115307
  const emitHost = getEmitHost();