@typescript-deploys/pr-build 5.0.0-pr-52944-25 → 5.1.0-pr-53001-3

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
@@ -22,8 +22,8 @@ var __export = (target, all) => {
22
22
  };
23
23
 
24
24
  // src/compiler/corePublic.ts
25
- var versionMajorMinor = "5.0";
26
- var version = `${versionMajorMinor}.0-insiders.20230224`;
25
+ var versionMajorMinor = "5.1";
26
+ var version = `${versionMajorMinor}.0-insiders.20230228`;
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) {
@@ -60035,7 +60075,7 @@ function createTypeChecker(host) {
60035
60075
  0 /* None */
60036
60076
  );
60037
60077
  }
60038
- } else if (result2 && isNonGenericObjectType(target2) && !isArrayOrTupleType(target2) && source2.flags & 2097152 /* Intersection */ && getApparentType(source2).flags & 3670016 /* StructuredType */ && !some(source2.types, (t) => !!(getObjectFlags(t) & 262144 /* NonInferrableType */))) {
60078
+ } else if (result2 && isNonGenericObjectType(target2) && !isArrayOrTupleType(target2) && source2.flags & 2097152 /* Intersection */ && getApparentType(source2).flags & 3670016 /* StructuredType */ && !some(source2.types, (t) => t === target2 || !!(getObjectFlags(t) & 262144 /* NonInferrableType */))) {
60039
60079
  result2 &= propertiesRelatedTo(
60040
60080
  source2,
60041
60081
  target2,
@@ -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)) {
@@ -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
  }
@@ -85411,6 +85279,7 @@ function createDefaultValueCheck(flattenContext, value, defaultValue, location)
85411
85279
  );
85412
85280
  }
85413
85281
  function createDestructuringPropertyAccess(flattenContext, value, propertyName) {
85282
+ const { factory: factory2 } = flattenContext.context;
85414
85283
  if (isComputedPropertyName(propertyName)) {
85415
85284
  const argumentExpression = ensureIdentifier(
85416
85285
  flattenContext,
@@ -85422,7 +85291,7 @@ function createDestructuringPropertyAccess(flattenContext, value, propertyName)
85422
85291
  );
85423
85292
  return flattenContext.context.factory.createElementAccessExpression(value, argumentExpression);
85424
85293
  } else if (isStringOrNumericLiteralLike(propertyName)) {
85425
- const argumentExpression = factory.cloneNode(propertyName);
85294
+ const argumentExpression = factory2.cloneNode(propertyName);
85426
85295
  return flattenContext.context.factory.createElementAccessExpression(value, argumentExpression);
85427
85296
  } else {
85428
85297
  const name = flattenContext.context.factory.createIdentifier(idText(propertyName));
@@ -85492,28 +85361,29 @@ function processTaggedTemplateExpression(context, node, visitor, currentSourceFi
85492
85361
  if (level === 0 /* LiftRestriction */ && !hasInvalidEscape(template)) {
85493
85362
  return visitEachChild(node, visitor, context);
85494
85363
  }
85364
+ const { factory: factory2 } = context;
85495
85365
  if (isNoSubstitutionTemplateLiteral(template)) {
85496
- cookedStrings.push(createTemplateCooked(template));
85497
- rawStrings.push(getRawLiteral(template, currentSourceFile));
85366
+ cookedStrings.push(createTemplateCooked(factory2, template));
85367
+ rawStrings.push(getRawLiteral(factory2, template, currentSourceFile));
85498
85368
  } else {
85499
- cookedStrings.push(createTemplateCooked(template.head));
85500
- rawStrings.push(getRawLiteral(template.head, currentSourceFile));
85369
+ cookedStrings.push(createTemplateCooked(factory2, template.head));
85370
+ rawStrings.push(getRawLiteral(factory2, template.head, currentSourceFile));
85501
85371
  for (const templateSpan of template.templateSpans) {
85502
- cookedStrings.push(createTemplateCooked(templateSpan.literal));
85503
- rawStrings.push(getRawLiteral(templateSpan.literal, currentSourceFile));
85372
+ cookedStrings.push(createTemplateCooked(factory2, templateSpan.literal));
85373
+ rawStrings.push(getRawLiteral(factory2, templateSpan.literal, currentSourceFile));
85504
85374
  templateArguments.push(Debug.checkDefined(visitNode(templateSpan.expression, visitor, isExpression)));
85505
85375
  }
85506
85376
  }
85507
85377
  const helperCall = context.getEmitHelperFactory().createTemplateObjectHelper(
85508
- factory.createArrayLiteralExpression(cookedStrings),
85509
- factory.createArrayLiteralExpression(rawStrings)
85378
+ factory2.createArrayLiteralExpression(cookedStrings),
85379
+ factory2.createArrayLiteralExpression(rawStrings)
85510
85380
  );
85511
85381
  if (isExternalModule(currentSourceFile)) {
85512
- const tempVar = factory.createUniqueName("templateObject");
85382
+ const tempVar = factory2.createUniqueName("templateObject");
85513
85383
  recordTaggedTemplateString(tempVar);
85514
- templateArguments[0] = factory.createLogicalOr(
85384
+ templateArguments[0] = factory2.createLogicalOr(
85515
85385
  tempVar,
85516
- factory.createAssignment(
85386
+ factory2.createAssignment(
85517
85387
  tempVar,
85518
85388
  helperCall
85519
85389
  )
@@ -85521,17 +85391,17 @@ function processTaggedTemplateExpression(context, node, visitor, currentSourceFi
85521
85391
  } else {
85522
85392
  templateArguments[0] = helperCall;
85523
85393
  }
85524
- return factory.createCallExpression(
85394
+ return factory2.createCallExpression(
85525
85395
  tag,
85526
85396
  /*typeArguments*/
85527
85397
  void 0,
85528
85398
  templateArguments
85529
85399
  );
85530
85400
  }
85531
- function createTemplateCooked(template) {
85532
- return template.templateFlags ? factory.createVoidZero() : factory.createStringLiteral(template.text);
85401
+ function createTemplateCooked(factory2, template) {
85402
+ return template.templateFlags ? factory2.createVoidZero() : factory2.createStringLiteral(template.text);
85533
85403
  }
85534
- function getRawLiteral(node, currentSourceFile) {
85404
+ function getRawLiteral(factory2, node, currentSourceFile) {
85535
85405
  let text = node.rawText;
85536
85406
  if (text === void 0) {
85537
85407
  Debug.assertIsDefined(
@@ -85543,7 +85413,7 @@ function getRawLiteral(node, currentSourceFile) {
85543
85413
  text = text.substring(1, text.length - (isLast ? 1 : 2));
85544
85414
  }
85545
85415
  text = text.replace(/\r\n?/g, "\n");
85546
- return setTextRange(factory.createStringLiteral(text), node);
85416
+ return setTextRange(factory2.createStringLiteral(text), node);
85547
85417
  }
85548
85418
 
85549
85419
  // src/compiler/transformers/ts.ts
@@ -88999,12 +88869,14 @@ function transformClassFields(context) {
88999
88869
  if (privateIdentifierInfo.kind === "f" /* Field */) {
89000
88870
  if (!privateIdentifierInfo.isStatic) {
89001
88871
  return createPrivateInstanceFieldInitializer(
88872
+ factory2,
89002
88873
  receiver,
89003
88874
  visitNode(property.initializer, initializerVisitor, isExpression),
89004
88875
  privateIdentifierInfo.brandCheckIdentifier
89005
88876
  );
89006
88877
  } else {
89007
88878
  return createPrivateStaticFieldInitializer(
88879
+ factory2,
89008
88880
  privateIdentifierInfo.variableName,
89009
88881
  visitNode(property.initializer, initializerVisitor, isExpression)
89010
88882
  );
@@ -89086,7 +88958,7 @@ function transformClassFields(context) {
89086
88958
  Debug.assert(weakSetName, "weakSetName should be set in private identifier environment");
89087
88959
  statements.push(
89088
88960
  factory2.createExpressionStatement(
89089
- createPrivateInstanceMethodInitializer(receiver, weakSetName)
88961
+ createPrivateInstanceMethodInitializer(factory2, receiver, weakSetName)
89090
88962
  )
89091
88963
  );
89092
88964
  }
@@ -89539,25 +89411,25 @@ function transformClassFields(context) {
89539
89411
  return void 0;
89540
89412
  }
89541
89413
  }
89542
- function createPrivateStaticFieldInitializer(variableName, initializer) {
89543
- return factory.createAssignment(
89414
+ function createPrivateStaticFieldInitializer(factory2, variableName, initializer) {
89415
+ return factory2.createAssignment(
89544
89416
  variableName,
89545
- factory.createObjectLiteralExpression([
89546
- factory.createPropertyAssignment("value", initializer || factory.createVoidZero())
89417
+ factory2.createObjectLiteralExpression([
89418
+ factory2.createPropertyAssignment("value", initializer || factory2.createVoidZero())
89547
89419
  ])
89548
89420
  );
89549
89421
  }
89550
- function createPrivateInstanceFieldInitializer(receiver, initializer, weakMapName) {
89551
- return factory.createCallExpression(
89552
- factory.createPropertyAccessExpression(weakMapName, "set"),
89422
+ function createPrivateInstanceFieldInitializer(factory2, receiver, initializer, weakMapName) {
89423
+ return factory2.createCallExpression(
89424
+ factory2.createPropertyAccessExpression(weakMapName, "set"),
89553
89425
  /*typeArguments*/
89554
89426
  void 0,
89555
- [receiver, initializer || factory.createVoidZero()]
89427
+ [receiver, initializer || factory2.createVoidZero()]
89556
89428
  );
89557
89429
  }
89558
- function createPrivateInstanceMethodInitializer(receiver, weakSetName) {
89559
- return factory.createCallExpression(
89560
- factory.createPropertyAccessExpression(weakSetName, "add"),
89430
+ function createPrivateInstanceMethodInitializer(factory2, receiver, weakSetName) {
89431
+ return factory2.createCallExpression(
89432
+ factory2.createPropertyAccessExpression(weakSetName, "add"),
89561
89433
  /*typeArguments*/
89562
89434
  void 0,
89563
89435
  [receiver]
@@ -89573,6 +89445,7 @@ function isPrivateIdentifierInExpression(node) {
89573
89445
  // src/compiler/transformers/typeSerializer.ts
89574
89446
  function createRuntimeTypeSerializer(context) {
89575
89447
  const {
89448
+ factory: factory2,
89576
89449
  hoistVariableDeclaration
89577
89450
  } = context;
89578
89451
  const resolver = context.getEmitResolver();
@@ -89612,9 +89485,9 @@ function createRuntimeTypeSerializer(context) {
89612
89485
  case 260 /* ClassDeclaration */:
89613
89486
  case 228 /* ClassExpression */:
89614
89487
  case 171 /* MethodDeclaration */:
89615
- return factory.createIdentifier("Function");
89488
+ return factory2.createIdentifier("Function");
89616
89489
  default:
89617
- return factory.createVoidZero();
89490
+ return factory2.createVoidZero();
89618
89491
  }
89619
89492
  }
89620
89493
  function serializeParameterTypesOfNode(node, container) {
@@ -89635,7 +89508,7 @@ function createRuntimeTypeSerializer(context) {
89635
89508
  }
89636
89509
  }
89637
89510
  }
89638
- return factory.createArrayLiteralExpression(expressions);
89511
+ return factory2.createArrayLiteralExpression(expressions);
89639
89512
  }
89640
89513
  function getParametersOfDecoratedDeclaration(node, container) {
89641
89514
  if (container && node.kind === 174 /* GetAccessor */) {
@@ -89650,39 +89523,39 @@ function createRuntimeTypeSerializer(context) {
89650
89523
  if (isFunctionLike(node) && node.type) {
89651
89524
  return serializeTypeNode(node.type);
89652
89525
  } else if (isAsyncFunction(node)) {
89653
- return factory.createIdentifier("Promise");
89526
+ return factory2.createIdentifier("Promise");
89654
89527
  }
89655
- return factory.createVoidZero();
89528
+ return factory2.createVoidZero();
89656
89529
  }
89657
89530
  function serializeTypeNode(node) {
89658
89531
  if (node === void 0) {
89659
- return factory.createIdentifier("Object");
89532
+ return factory2.createIdentifier("Object");
89660
89533
  }
89661
89534
  node = skipTypeParentheses(node);
89662
89535
  switch (node.kind) {
89663
89536
  case 114 /* VoidKeyword */:
89664
89537
  case 155 /* UndefinedKeyword */:
89665
89538
  case 144 /* NeverKeyword */:
89666
- return factory.createVoidZero();
89539
+ return factory2.createVoidZero();
89667
89540
  case 181 /* FunctionType */:
89668
89541
  case 182 /* ConstructorType */:
89669
- return factory.createIdentifier("Function");
89542
+ return factory2.createIdentifier("Function");
89670
89543
  case 185 /* ArrayType */:
89671
89544
  case 186 /* TupleType */:
89672
- return factory.createIdentifier("Array");
89545
+ return factory2.createIdentifier("Array");
89673
89546
  case 179 /* TypePredicate */:
89674
- return node.assertsModifier ? factory.createVoidZero() : factory.createIdentifier("Boolean");
89547
+ return node.assertsModifier ? factory2.createVoidZero() : factory2.createIdentifier("Boolean");
89675
89548
  case 134 /* BooleanKeyword */:
89676
- return factory.createIdentifier("Boolean");
89549
+ return factory2.createIdentifier("Boolean");
89677
89550
  case 200 /* TemplateLiteralType */:
89678
89551
  case 152 /* StringKeyword */:
89679
- return factory.createIdentifier("String");
89552
+ return factory2.createIdentifier("String");
89680
89553
  case 149 /* ObjectKeyword */:
89681
- return factory.createIdentifier("Object");
89554
+ return factory2.createIdentifier("Object");
89682
89555
  case 198 /* LiteralType */:
89683
89556
  return serializeLiteralOfLiteralTypeNode(node.literal);
89684
89557
  case 148 /* NumberKeyword */:
89685
- return factory.createIdentifier("Number");
89558
+ return factory2.createIdentifier("Number");
89686
89559
  case 160 /* BigIntKeyword */:
89687
89560
  return getGlobalConstructor("BigInt", 7 /* ES2020 */);
89688
89561
  case 153 /* SymbolKeyword */:
@@ -89734,13 +89607,13 @@ function createRuntimeTypeSerializer(context) {
89734
89607
  default:
89735
89608
  return Debug.failBadSyntaxKind(node);
89736
89609
  }
89737
- return factory.createIdentifier("Object");
89610
+ return factory2.createIdentifier("Object");
89738
89611
  }
89739
89612
  function serializeLiteralOfLiteralTypeNode(node) {
89740
89613
  switch (node.kind) {
89741
89614
  case 10 /* StringLiteral */:
89742
89615
  case 14 /* NoSubstitutionTemplateLiteral */:
89743
- return factory.createIdentifier("String");
89616
+ return factory2.createIdentifier("String");
89744
89617
  case 221 /* PrefixUnaryExpression */: {
89745
89618
  const operand = node.operand;
89746
89619
  switch (operand.kind) {
@@ -89752,14 +89625,14 @@ function createRuntimeTypeSerializer(context) {
89752
89625
  }
89753
89626
  }
89754
89627
  case 8 /* NumericLiteral */:
89755
- return factory.createIdentifier("Number");
89628
+ return factory2.createIdentifier("Number");
89756
89629
  case 9 /* BigIntLiteral */:
89757
89630
  return getGlobalConstructor("BigInt", 7 /* ES2020 */);
89758
89631
  case 110 /* TrueKeyword */:
89759
89632
  case 95 /* FalseKeyword */:
89760
- return factory.createIdentifier("Boolean");
89633
+ return factory2.createIdentifier("Boolean");
89761
89634
  case 104 /* NullKeyword */:
89762
- return factory.createVoidZero();
89635
+ return factory2.createVoidZero();
89763
89636
  default:
89764
89637
  return Debug.failBadSyntaxKind(node);
89765
89638
  }
@@ -89770,16 +89643,16 @@ function createRuntimeTypeSerializer(context) {
89770
89643
  typeNode = skipTypeParentheses(typeNode);
89771
89644
  if (typeNode.kind === 144 /* NeverKeyword */) {
89772
89645
  if (isIntersection)
89773
- return factory.createVoidZero();
89646
+ return factory2.createVoidZero();
89774
89647
  continue;
89775
89648
  }
89776
89649
  if (typeNode.kind === 157 /* UnknownKeyword */) {
89777
89650
  if (!isIntersection)
89778
- return factory.createIdentifier("Object");
89651
+ return factory2.createIdentifier("Object");
89779
89652
  continue;
89780
89653
  }
89781
89654
  if (typeNode.kind === 131 /* AnyKeyword */) {
89782
- return factory.createIdentifier("Object");
89655
+ return factory2.createIdentifier("Object");
89783
89656
  }
89784
89657
  if (!strictNullChecks && (isLiteralTypeNode(typeNode) && typeNode.literal.kind === 104 /* NullKeyword */ || typeNode.kind === 155 /* UndefinedKeyword */)) {
89785
89658
  continue;
@@ -89790,13 +89663,13 @@ function createRuntimeTypeSerializer(context) {
89790
89663
  }
89791
89664
  if (serializedType) {
89792
89665
  if (!equateSerializedTypeNodes(serializedType, serializedConstituent)) {
89793
- return factory.createIdentifier("Object");
89666
+ return factory2.createIdentifier("Object");
89794
89667
  }
89795
89668
  } else {
89796
89669
  serializedType = serializedConstituent;
89797
89670
  }
89798
89671
  }
89799
- return serializedType != null ? serializedType : factory.createVoidZero();
89672
+ return serializedType != null ? serializedType : factory2.createVoidZero();
89800
89673
  }
89801
89674
  function equateSerializedTypeNodes(left, right) {
89802
89675
  return (
@@ -89830,48 +89703,48 @@ function createRuntimeTypeSerializer(context) {
89830
89703
  switch (kind) {
89831
89704
  case 0 /* Unknown */:
89832
89705
  if (findAncestor(node, (n) => n.parent && isConditionalTypeNode(n.parent) && (n.parent.trueType === n || n.parent.falseType === n))) {
89833
- return factory.createIdentifier("Object");
89706
+ return factory2.createIdentifier("Object");
89834
89707
  }
89835
89708
  const serialized = serializeEntityNameAsExpressionFallback(node.typeName);
89836
- const temp = factory.createTempVariable(hoistVariableDeclaration);
89837
- return factory.createConditionalExpression(
89838
- factory.createTypeCheck(factory.createAssignment(temp, serialized), "function"),
89709
+ const temp = factory2.createTempVariable(hoistVariableDeclaration);
89710
+ return factory2.createConditionalExpression(
89711
+ factory2.createTypeCheck(factory2.createAssignment(temp, serialized), "function"),
89839
89712
  /*questionToken*/
89840
89713
  void 0,
89841
89714
  temp,
89842
89715
  /*colonToken*/
89843
89716
  void 0,
89844
- factory.createIdentifier("Object")
89717
+ factory2.createIdentifier("Object")
89845
89718
  );
89846
89719
  case 1 /* TypeWithConstructSignatureAndValue */:
89847
89720
  return serializeEntityNameAsExpression(node.typeName);
89848
89721
  case 2 /* VoidNullableOrNeverType */:
89849
- return factory.createVoidZero();
89722
+ return factory2.createVoidZero();
89850
89723
  case 4 /* BigIntLikeType */:
89851
89724
  return getGlobalConstructor("BigInt", 7 /* ES2020 */);
89852
89725
  case 6 /* BooleanType */:
89853
- return factory.createIdentifier("Boolean");
89726
+ return factory2.createIdentifier("Boolean");
89854
89727
  case 3 /* NumberLikeType */:
89855
- return factory.createIdentifier("Number");
89728
+ return factory2.createIdentifier("Number");
89856
89729
  case 5 /* StringLikeType */:
89857
- return factory.createIdentifier("String");
89730
+ return factory2.createIdentifier("String");
89858
89731
  case 7 /* ArrayLikeType */:
89859
- return factory.createIdentifier("Array");
89732
+ return factory2.createIdentifier("Array");
89860
89733
  case 8 /* ESSymbolType */:
89861
89734
  return getGlobalConstructor("Symbol", 2 /* ES2015 */);
89862
89735
  case 10 /* TypeWithCallSignature */:
89863
- return factory.createIdentifier("Function");
89736
+ return factory2.createIdentifier("Function");
89864
89737
  case 9 /* Promise */:
89865
- return factory.createIdentifier("Promise");
89738
+ return factory2.createIdentifier("Promise");
89866
89739
  case 11 /* ObjectType */:
89867
- return factory.createIdentifier("Object");
89740
+ return factory2.createIdentifier("Object");
89868
89741
  default:
89869
89742
  return Debug.assertNever(kind);
89870
89743
  }
89871
89744
  }
89872
89745
  function createCheckedValue(left, right) {
89873
- return factory.createLogicalAnd(
89874
- factory.createStrictInequality(factory.createTypeOfExpression(left), factory.createStringLiteral("undefined")),
89746
+ return factory2.createLogicalAnd(
89747
+ factory2.createStrictInequality(factory2.createTypeOfExpression(left), factory2.createStringLiteral("undefined")),
89875
89748
  right
89876
89749
  );
89877
89750
  }
@@ -89884,13 +89757,13 @@ function createRuntimeTypeSerializer(context) {
89884
89757
  return createCheckedValue(serializeEntityNameAsExpression(node.left), serializeEntityNameAsExpression(node));
89885
89758
  }
89886
89759
  const left = serializeEntityNameAsExpressionFallback(node.left);
89887
- const temp = factory.createTempVariable(hoistVariableDeclaration);
89888
- return factory.createLogicalAnd(
89889
- factory.createLogicalAnd(
89760
+ const temp = factory2.createTempVariable(hoistVariableDeclaration);
89761
+ return factory2.createLogicalAnd(
89762
+ factory2.createLogicalAnd(
89890
89763
  left.left,
89891
- factory.createStrictInequality(factory.createAssignment(temp, left.right), factory.createVoidZero())
89764
+ factory2.createStrictInequality(factory2.createAssignment(temp, left.right), factory2.createVoidZero())
89892
89765
  ),
89893
- factory.createPropertyAccessExpression(temp, node.right)
89766
+ factory2.createPropertyAccessExpression(temp, node.right)
89894
89767
  );
89895
89768
  }
89896
89769
  function serializeEntityNameAsExpression(node) {
@@ -89905,21 +89778,21 @@ function createRuntimeTypeSerializer(context) {
89905
89778
  }
89906
89779
  }
89907
89780
  function serializeQualifiedNameAsExpression(node) {
89908
- return factory.createPropertyAccessExpression(serializeEntityNameAsExpression(node.left), node.right);
89781
+ return factory2.createPropertyAccessExpression(serializeEntityNameAsExpression(node.left), node.right);
89909
89782
  }
89910
89783
  function getGlobalConstructorWithFallback(name) {
89911
- return factory.createConditionalExpression(
89912
- factory.createTypeCheck(factory.createIdentifier(name), "function"),
89784
+ return factory2.createConditionalExpression(
89785
+ factory2.createTypeCheck(factory2.createIdentifier(name), "function"),
89913
89786
  /*questionToken*/
89914
89787
  void 0,
89915
- factory.createIdentifier(name),
89788
+ factory2.createIdentifier(name),
89916
89789
  /*colonToken*/
89917
89790
  void 0,
89918
- factory.createIdentifier("Object")
89791
+ factory2.createIdentifier("Object")
89919
89792
  );
89920
89793
  }
89921
89794
  function getGlobalConstructor(name, minLanguageVersion) {
89922
- return languageVersion < minLanguageVersion ? getGlobalConstructorWithFallback(name) : factory.createIdentifier(name);
89795
+ return languageVersion < minLanguageVersion ? getGlobalConstructorWithFallback(name) : factory2.createIdentifier(name);
89923
89796
  }
89924
89797
  }
89925
89798
 
@@ -104750,7 +104623,7 @@ function transformDeclarations(context) {
104750
104623
  }
104751
104624
  const newParam = factory2.updateParameterDeclaration(
104752
104625
  p,
104753
- maskModifiers(p, modifierMask),
104626
+ maskModifiers(factory2, p, modifierMask),
104754
104627
  p.dotDotDotToken,
104755
104628
  filterBindingPatternInitializersAndRenamings(p.name),
104756
104629
  resolver.isOptionalParameter(p) ? p.questionToken || factory2.createToken(57 /* QuestionToken */) : void 0,
@@ -105864,8 +105737,8 @@ function isAlwaysType(node) {
105864
105737
  }
105865
105738
  return false;
105866
105739
  }
105867
- function maskModifiers(node, modifierMask, modifierAdditions) {
105868
- return factory.createModifiersFromModifierFlags(maskModifierFlags(node, modifierMask, modifierAdditions));
105740
+ function maskModifiers(factory2, node, modifierMask, modifierAdditions) {
105741
+ return factory2.createModifiersFromModifierFlags(maskModifierFlags(node, modifierMask, modifierAdditions));
105869
105742
  }
105870
105743
  function maskModifierFlags(node, modifierMask = 258047 /* All */ ^ 4 /* Public */, modifierAdditions = 0 /* None */) {
105871
105744
  let flags = getEffectiveModifierFlags(node) & modifierMask | modifierAdditions;
@@ -115402,10 +115275,10 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
115402
115275
  }
115403
115276
  }
115404
115277
  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");
115278
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "preserveValueImports");
115406
115279
  }
115280
+ const moduleKind = getEmitModuleKind(options);
115407
115281
  if (options.verbatimModuleSyntax) {
115408
- const moduleKind = getEmitModuleKind(options);
115409
115282
  if (moduleKind === 2 /* AMD */ || moduleKind === 3 /* UMD */ || moduleKind === 4 /* System */) {
115410
115283
  createDiagnosticForOptionName(Diagnostics.Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System, "verbatimModuleSyntax");
115411
115284
  }
@@ -115424,13 +115297,16 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
115424
115297
  }
115425
115298
  const moduleResolution = getEmitModuleResolutionKind(options);
115426
115299
  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");
115300
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonExports");
115428
115301
  }
115429
115302
  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");
115303
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonImports");
115431
115304
  }
115432
115305
  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");
115306
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "customConditions");
115307
+ }
115308
+ if (moduleResolution === 100 /* Bundler */ && !emitModuleKindIsNonNodeESM(moduleKind)) {
115309
+ createOptionValueDiagnostic("moduleResolution", Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "bundler");
115434
115310
  }
115435
115311
  if (!options.noEmit && !options.suppressOutputPathCheck) {
115436
115312
  const emitHost = getEmitHost();
@@ -115470,7 +115346,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
115470
115346
  const version2 = typeScriptVersion2 || versionMajorMinor;
115471
115347
  const ignoreDeprecations = options.ignoreDeprecations;
115472
115348
  if (ignoreDeprecations) {
115473
- if (ignoreDeprecations === "5.0" /* v5_0 */ && (version2 === "5.0" /* v5_0 */ || version2 === "5.5" /* v5_5 */)) {
115349
+ if (ignoreDeprecations === "5.0" /* v5_0 */ && version2.startsWith("5.")) {
115474
115350
  return;
115475
115351
  } else if (reportInvalidIgnoreDeprecations) {
115476
115352
  createOptionValueDiagnostic("ignoreDeprecations", Diagnostics.Invalid_value_for_ignoreDeprecations);