@typescript-deploys/pr-build 5.0.0-pr-52921-12 → 5.0.0-pr-52944-9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tsc.js CHANGED
@@ -23,7 +23,7 @@ var __export = (target, all) => {
23
23
 
24
24
  // src/compiler/corePublic.ts
25
25
  var versionMajorMinor = "5.0";
26
- var version = `${versionMajorMinor}.0-insiders.20230222`;
26
+ var version = `${versionMajorMinor}.0-insiders.20230223`;
27
27
 
28
28
  // src/compiler/core.ts
29
29
  var emptyArray = [];
@@ -7992,7 +7992,6 @@ var unicodeESNextIdentifierStart = [65, 90, 97, 122, 170, 170, 181, 181, 186, 18
7992
7992
  var unicodeESNextIdentifierPart = [48, 57, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 183, 183, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 895, 895, 902, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1519, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2045, 2045, 2048, 2093, 2112, 2139, 2144, 2154, 2208, 2228, 2230, 2237, 2259, 2273, 2275, 2403, 2406, 2415, 2417, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2556, 2556, 2558, 2558, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2809, 2815, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3072, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3162, 3168, 3171, 3174, 3183, 3200, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3328, 3331, 3333, 3340, 3342, 3344, 3346, 3396, 3398, 3400, 3402, 3406, 3412, 3415, 3423, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4969, 4977, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6430, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6832, 6845, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7376, 7378, 7380, 7418, 7424, 7673, 7675, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42737, 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43047, 43072, 43123, 43136, 43205, 43216, 43225, 43232, 43255, 43259, 43259, 43261, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43488, 43518, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43879, 43888, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65071, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66045, 66045, 66176, 66204, 66208, 66256, 66272, 66272, 66304, 66335, 66349, 66378, 66384, 66426, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68099, 68101, 68102, 68108, 68115, 68117, 68119, 68121, 68149, 68152, 68154, 68159, 68159, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68326, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68903, 68912, 68921, 69376, 69404, 69415, 69415, 69424, 69456, 69600, 69622, 69632, 69702, 69734, 69743, 69759, 69818, 69840, 69864, 69872, 69881, 69888, 69940, 69942, 69951, 69956, 69958, 69968, 70003, 70006, 70006, 70016, 70084, 70089, 70092, 70096, 70106, 70108, 70108, 70144, 70161, 70163, 70199, 70206, 70206, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70378, 70384, 70393, 70400, 70403, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70459, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70730, 70736, 70745, 70750, 70751, 70784, 70853, 70855, 70855, 70864, 70873, 71040, 71093, 71096, 71104, 71128, 71133, 71168, 71232, 71236, 71236, 71248, 71257, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71481, 71680, 71738, 71840, 71913, 71935, 71935, 72096, 72103, 72106, 72151, 72154, 72161, 72163, 72164, 72192, 72254, 72263, 72263, 72272, 72345, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72758, 72760, 72768, 72784, 72793, 72818, 72847, 72850, 72871, 72873, 72886, 72960, 72966, 72968, 72969, 72971, 73014, 73018, 73018, 73020, 73021, 73023, 73031, 73040, 73049, 73056, 73061, 73063, 73064, 73066, 73102, 73104, 73105, 73107, 73112, 73120, 73129, 73440, 73462, 73728, 74649, 74752, 74862, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92768, 92777, 92880, 92909, 92912, 92916, 92928, 92982, 92992, 92995, 93008, 93017, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101106, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113821, 113822, 119141, 119145, 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, 122880, 122886, 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, 123584, 123641, 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 917760, 917999];
7993
7993
  var commentDirectiveRegExSingleLine = /^\/\/\/?\s*@(ts-expect-error|ts-ignore)/;
7994
7994
  var commentDirectiveRegExMultiLine = /^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/;
7995
- var semanticJSDocTagRegEx = /@(?:see|link)/i;
7996
7995
  function lookupInUnicodeMap(code, map2) {
7997
7996
  if (code < map2[0]) {
7998
7997
  return false;
@@ -8478,7 +8477,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
8478
8477
  var tokenFlags;
8479
8478
  var commentDirectives;
8480
8479
  var inJSDocType = 0;
8481
- var skipJSDoc = false;
8482
8480
  setText(text, start, length2);
8483
8481
  var scanner = {
8484
8482
  getStartPos: () => startPos,
@@ -8523,8 +8521,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
8523
8521
  setInJSDocType,
8524
8522
  tryScan,
8525
8523
  lookAhead,
8526
- scanRange,
8527
- setSkipJSDoc
8524
+ scanRange
8528
8525
  };
8529
8526
  if (Debug.isDebugging) {
8530
8527
  Object.defineProperty(scanner, "__debugShowCurrentPositionInText", {
@@ -9228,7 +9225,9 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
9228
9225
  }
9229
9226
  if (text.charCodeAt(pos + 1) === 42 /* asterisk */) {
9230
9227
  pos += 2;
9231
- const isJSDoc2 = text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) !== 47 /* slash */;
9228
+ if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) !== 47 /* slash */) {
9229
+ tokenFlags |= 2 /* PrecedingJSDocComment */;
9230
+ }
9232
9231
  let commentClosed = false;
9233
9232
  let lastLineStart = tokenPos;
9234
9233
  while (pos < end) {
@@ -9244,9 +9243,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
9244
9243
  tokenFlags |= 1 /* PrecedingLineBreak */;
9245
9244
  }
9246
9245
  }
9247
- if (isJSDoc2 && (!skipJSDoc || semanticJSDocTagRegEx.test(text.slice(tokenPos, pos)))) {
9248
- tokenFlags |= 2 /* PrecedingJSDocComment */;
9249
- }
9250
9246
  commentDirectives = appendIfCommentDirective(commentDirectives, text.slice(lastLineStart, pos), commentDirectiveRegExMultiLine, lastLineStart);
9251
9247
  if (!commentClosed) {
9252
9248
  error(Diagnostics.Asterisk_Slash_expected);
@@ -9914,9 +9910,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
9914
9910
  function setLanguageVariant(variant) {
9915
9911
  languageVariant = variant;
9916
9912
  }
9917
- function setSkipJSDoc(skip) {
9918
- skipJSDoc = skip;
9919
- }
9920
9913
  function setTextPos(textPos) {
9921
9914
  Debug.assert(textPos >= 0);
9922
9915
  pos = textPos;
@@ -19843,24 +19836,7 @@ function createNodeFactory(flags, baseFactory2) {
19843
19836
  return node;
19844
19837
  }
19845
19838
  function propagateAssignmentPatternFlags(node) {
19846
- if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */)
19847
- return 65536 /* ContainsObjectRestOrSpread */;
19848
- if (node.transformFlags & 128 /* ContainsES2018 */) {
19849
- for (const element of getElementsOfBindingOrAssignmentPattern(node)) {
19850
- const target = getTargetOfBindingOrAssignmentElement(element);
19851
- if (target && isAssignmentPattern(target)) {
19852
- if (target.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {
19853
- return 65536 /* ContainsObjectRestOrSpread */;
19854
- }
19855
- if (target.transformFlags & 128 /* ContainsES2018 */) {
19856
- const flags2 = propagateAssignmentPatternFlags(target);
19857
- if (flags2)
19858
- return flags2;
19859
- }
19860
- }
19861
- }
19862
- }
19863
- return 0 /* None */;
19839
+ return containsObjectRestOrSpread(node) ? 65536 /* ContainsObjectRestOrSpread */ : 0 /* None */;
19864
19840
  }
19865
19841
  function updateBinaryExpression(node, left, operator, right) {
19866
19842
  return node.left !== left || node.operatorToken !== operator || node.right !== right ? update(createBinaryExpression(left, operator, right), node) : node;
@@ -25357,6 +25333,25 @@ function flattenCommaList(node) {
25357
25333
  flattenCommaListWorker(node, expressions);
25358
25334
  return expressions;
25359
25335
  }
25336
+ function containsObjectRestOrSpread(node) {
25337
+ if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */)
25338
+ return true;
25339
+ if (node.transformFlags & 128 /* ContainsES2018 */) {
25340
+ for (const element of getElementsOfBindingOrAssignmentPattern(node)) {
25341
+ const target = getTargetOfBindingOrAssignmentElement(element);
25342
+ if (target && isAssignmentPattern(target)) {
25343
+ if (target.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {
25344
+ return true;
25345
+ }
25346
+ if (target.transformFlags & 128 /* ContainsES2018 */) {
25347
+ if (containsObjectRestOrSpread(target))
25348
+ return true;
25349
+ }
25350
+ }
25351
+ }
25352
+ }
25353
+ return false;
25354
+ }
25360
25355
 
25361
25356
  // src/compiler/factory/utilitiesPublic.ts
25362
25357
  function setTextRange(range, location) {
@@ -25966,8 +25961,7 @@ function createSourceFile(fileName, sourceText, languageVersionOrOptions, setPar
25966
25961
  const {
25967
25962
  languageVersion,
25968
25963
  setExternalModuleIndicator: overrideSetExternalModuleIndicator,
25969
- impliedNodeFormat: format,
25970
- skipJSDoc
25964
+ impliedNodeFormat: format
25971
25965
  } = typeof languageVersionOrOptions === "object" ? languageVersionOrOptions : { languageVersion: languageVersionOrOptions };
25972
25966
  if (languageVersion === 100 /* JSON */) {
25973
25967
  result = Parser.parseSourceFile(
@@ -25978,8 +25972,7 @@ function createSourceFile(fileName, sourceText, languageVersionOrOptions, setPar
25978
25972
  void 0,
25979
25973
  setParentNodes,
25980
25974
  6 /* JSON */,
25981
- noop,
25982
- skipJSDoc
25975
+ noop
25983
25976
  );
25984
25977
  } else {
25985
25978
  const setIndicator = format === void 0 ? overrideSetExternalModuleIndicator : (file) => {
@@ -25994,8 +25987,7 @@ function createSourceFile(fileName, sourceText, languageVersionOrOptions, setPar
25994
25987
  void 0,
25995
25988
  setParentNodes,
25996
25989
  scriptKind,
25997
- setIndicator,
25998
- skipJSDoc
25990
+ setIndicator
25999
25991
  );
26000
25992
  }
26001
25993
  perfLogger.logStopParseSourceFile();
@@ -26086,7 +26078,7 @@ var Parser;
26086
26078
  var contextFlags;
26087
26079
  var topLevel = true;
26088
26080
  var parseErrorBeforeNextFinishedNode = false;
26089
- function parseSourceFile(fileName2, sourceText2, languageVersion2, syntaxCursor2, setParentNodes = false, scriptKind2, setExternalModuleIndicatorOverride, skipJSDoc = false) {
26081
+ function parseSourceFile(fileName2, sourceText2, languageVersion2, syntaxCursor2, setParentNodes = false, scriptKind2, setExternalModuleIndicatorOverride) {
26090
26082
  var _a2;
26091
26083
  scriptKind2 = ensureScriptKind(fileName2, scriptKind2);
26092
26084
  if (scriptKind2 === 6 /* JSON */) {
@@ -26110,7 +26102,7 @@ var Parser;
26110
26102
  result2.pragmas = emptyMap;
26111
26103
  return result2;
26112
26104
  }
26113
- initializeState(fileName2, sourceText2, languageVersion2, syntaxCursor2, scriptKind2, skipJSDoc);
26105
+ initializeState(fileName2, sourceText2, languageVersion2, syntaxCursor2, scriptKind2);
26114
26106
  const result = parseSourceFileWorker(languageVersion2, setParentNodes, scriptKind2, setExternalModuleIndicatorOverride || setExternalModuleIndicator);
26115
26107
  clearState();
26116
26108
  return result;
@@ -26123,9 +26115,7 @@ var Parser;
26123
26115
  languageVersion2,
26124
26116
  /*syntaxCursor*/
26125
26117
  void 0,
26126
- 1 /* JS */,
26127
- /*skipJSDoc*/
26128
- false
26118
+ 1 /* JS */
26129
26119
  );
26130
26120
  nextToken();
26131
26121
  const entityName = parseEntityName(
@@ -26138,15 +26128,7 @@ var Parser;
26138
26128
  }
26139
26129
  Parser2.parseIsolatedEntityName = parseIsolatedEntityName2;
26140
26130
  function parseJsonText2(fileName2, sourceText2, languageVersion2 = 2 /* ES2015 */, syntaxCursor2, setParentNodes = false) {
26141
- initializeState(
26142
- fileName2,
26143
- sourceText2,
26144
- languageVersion2,
26145
- syntaxCursor2,
26146
- 6 /* JSON */,
26147
- /*skipJSDoc*/
26148
- false
26149
- );
26131
+ initializeState(fileName2, sourceText2, languageVersion2, syntaxCursor2, 6 /* JSON */);
26150
26132
  sourceFlags = contextFlags;
26151
26133
  nextToken();
26152
26134
  const pos = getNodePos();
@@ -26227,7 +26209,7 @@ var Parser;
26227
26209
  return result;
26228
26210
  }
26229
26211
  Parser2.parseJsonText = parseJsonText2;
26230
- function initializeState(_fileName, _sourceText, _languageVersion, _syntaxCursor, _scriptKind, _skipJSDoc) {
26212
+ function initializeState(_fileName, _sourceText, _languageVersion, _syntaxCursor, _scriptKind) {
26231
26213
  NodeConstructor2 = objectAllocator.getNodeConstructor();
26232
26214
  TokenConstructor2 = objectAllocator.getTokenConstructor();
26233
26215
  IdentifierConstructor2 = objectAllocator.getIdentifierConstructor();
@@ -26263,13 +26245,11 @@ var Parser;
26263
26245
  scanner.setOnError(scanError);
26264
26246
  scanner.setScriptTarget(languageVersion);
26265
26247
  scanner.setLanguageVariant(languageVariant);
26266
- scanner.setSkipJSDoc(_skipJSDoc && !(contextFlags & 262144 /* JavaScriptFile */));
26267
26248
  }
26268
26249
  function clearState() {
26269
26250
  scanner.clearCommentDirectives();
26270
26251
  scanner.setText("");
26271
26252
  scanner.setOnError(void 0);
26272
- scanner.setSkipJSDoc(false);
26273
26253
  sourceText = void 0;
26274
26254
  languageVersion = void 0;
26275
26255
  syntaxCursor = void 0;
@@ -26292,8 +26272,7 @@ var Parser;
26292
26272
  nextToken();
26293
26273
  const statements = parseList(0 /* SourceElements */, parseStatement);
26294
26274
  Debug.assert(token() === 1 /* EndOfFileToken */);
26295
- const endHasJSDoc = hasPrecedingJSDocComment();
26296
- const endOfFileToken = withJSDoc(parseTokenNode(), endHasJSDoc);
26275
+ const endOfFileToken = addJSDocComment(parseTokenNode());
26297
26276
  const sourceFile = createSourceFile2(fileName, languageVersion2, scriptKind2, isDeclarationFile, statements, endOfFileToken, sourceFlags, setExternalModuleIndicator2);
26298
26277
  processCommentPragmas(sourceFile, sourceText);
26299
26278
  processPragmasIntoFields(sourceFile, reportPragmaDiagnostic);
@@ -28896,7 +28875,7 @@ var Parser;
28896
28875
  equalsGreaterThanToken,
28897
28876
  body
28898
28877
  );
28899
- return finishNode(node, pos);
28878
+ return addJSDocComment(finishNode(node, pos));
28900
28879
  }
28901
28880
  function tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) {
28902
28881
  const triState = isParenthesizedArrowFunctionExpression();
@@ -31578,9 +31557,7 @@ var Parser;
31578
31557
  99 /* Latest */,
31579
31558
  /*_syntaxCursor:*/
31580
31559
  void 0,
31581
- 1 /* JS */,
31582
- /*skipJSDoc*/
31583
- false
31560
+ 1 /* JS */
31584
31561
  );
31585
31562
  scanner.setText(content, start, length2);
31586
31563
  currentToken = scanner.scan();
@@ -31644,9 +31621,7 @@ var Parser;
31644
31621
  99 /* Latest */,
31645
31622
  /*_syntaxCursor:*/
31646
31623
  void 0,
31647
- 1 /* JS */,
31648
- /*skipJSDoc*/
31649
- false
31624
+ 1 /* JS */
31650
31625
  );
31651
31626
  const jsDoc = doInsideOfContext(8388608 /* JSDoc */, () => parseJSDocCommentWorker(start, length2));
31652
31627
  const sourceFile = { languageVariant: 0 /* Standard */, text: content };
@@ -33491,12 +33466,6 @@ var commonOptionsWithBuild = [
33491
33466
  isCommandLineOnly: true,
33492
33467
  description: Diagnostics.Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit,
33493
33468
  defaultValueDescription: Diagnostics.Platform_specific
33494
- },
33495
- {
33496
- name: "skipJSDocParsing",
33497
- type: "boolean",
33498
- defaultValueDescription: false,
33499
- hiddenInAllViews: true
33500
33469
  }
33501
33470
  ];
33502
33471
  var targetOptionDeclaration = {
@@ -54452,27 +54421,15 @@ function createTypeChecker(host) {
54452
54421
  isInJSFile(signature.declaration)
54453
54422
  );
54454
54423
  }
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
- );
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);
54474
54430
  }
54475
- return signature;
54431
+ baseConstraints = instantiateTypes(baseConstraints, typeEraser);
54432
+ return createTypeMapper(typeParameters, baseConstraints);
54476
54433
  }
54477
54434
  function getOrCreateTypeFromSignature(signature) {
54478
54435
  var _a2;
@@ -56997,9 +56954,9 @@ function createTypeChecker(host) {
56997
56954
  }
56998
56955
  }
56999
56956
  if (!checkTypeDeferred) {
57000
- inferTypes(context.inferences, checkType, instantiateType(extendsType, freshMapper), 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
56957
+ inferTypes(context, checkType, instantiateType(extendsType, freshMapper), 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
57001
56958
  }
57002
- const innerMapper = combineTypeMappers(freshMapper, context.mapper);
56959
+ const innerMapper = combineTypeMappers(freshMapper, getMapperFromContext(context));
57003
56960
  combinedMapper = mapper ? combineTypeMappers(innerMapper, mapper) : innerMapper;
57004
56961
  }
57005
56962
  const inferredExtendsType = combinedMapper ? instantiateType(root.extendsType, combinedMapper) : extendsType;
@@ -57686,8 +57643,11 @@ function createTypeChecker(host) {
57686
57643
  void 0
57687
57644
  );
57688
57645
  }
57689
- function createBackreferenceMapper(context, index) {
57690
- const forwardInferences = context.inferences.slice(index);
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);
57691
57651
  return createTypeMapper(map(forwardInferences, (i) => i.typeParameter), map(forwardInferences, () => unknownType));
57692
57652
  }
57693
57653
  function combineTypeMappers(mapper1, mapper2) {
@@ -60501,9 +60461,10 @@ function createTypeChecker(host) {
60501
60461
  0 /* None */,
60502
60462
  isRelatedToWorker
60503
60463
  );
60504
- inferTypes(ctx.inferences, target2.extendsType, sourceExtends, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
60505
- sourceExtends = instantiateType(sourceExtends, ctx.mapper);
60506
- mapper = ctx.mapper;
60464
+ inferTypes(ctx, target2.extendsType, sourceExtends, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
60465
+ const newMapper = getMapperFromContext(ctx);
60466
+ sourceExtends = instantiateType(sourceExtends, newMapper);
60467
+ mapper = newMapper;
60507
60468
  }
60508
60469
  if (isTypeIdenticalTo(sourceExtends, target2.extendsType) && (isRelatedTo(source2.checkType, target2.checkType, 3 /* Both */) || isRelatedTo(target2.checkType, source2.checkType, 3 /* Both */))) {
60509
60470
  if (result2 = isRelatedTo(instantiateType(getTrueTypeFromConditionalType(source2), mapper), getTrueTypeFromConditionalType(target2), 3 /* Both */, reportErrors2)) {
@@ -62341,7 +62302,12 @@ function createTypeChecker(host) {
62341
62302
  return createInferenceContextWorker(typeParameters.map(createInferenceInfo), signature, flags, compareTypes || compareTypesAssignable);
62342
62303
  }
62343
62304
  function cloneInferenceContext(context, extraFlags = 0) {
62344
- return context && createInferenceContextWorker(map(context.inferences, cloneInferenceInfo), context.signature, context.flags | extraFlags, context.compareTypes);
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;
62345
62311
  }
62346
62312
  function createInferenceContextWorker(inferences, signature, flags, compareTypes) {
62347
62313
  const context = {
@@ -62358,20 +62324,29 @@ function createTypeChecker(host) {
62358
62324
  return context;
62359
62325
  }
62360
62326
  function makeFixingMapperForContext(context) {
62361
- return makeDeferredTypeMapper(map(context.inferences, (i) => i.typeParameter), map(context.inferences, (inference, i) => () => {
62327
+ return makeDeferredTypeMapper(map(context.inferences, (i) => i.typeParameter), map(context.inferences, (inference) => () => {
62362
62328
  if (!inference.isFixed) {
62363
62329
  inferFromIntraExpressionSites(context);
62364
62330
  clearCachedInferences(context.inferences);
62365
62331
  inference.isFixed = true;
62366
62332
  }
62367
- return getInferredType(context, i);
62333
+ return getInferredType(context, inference);
62368
62334
  }));
62369
62335
  }
62370
62336
  function makeNonFixingMapperForContext(context) {
62371
- return makeDeferredTypeMapper(map(context.inferences, (i) => i.typeParameter), map(context.inferences, (_, i) => () => {
62372
- return getInferredType(context, i);
62337
+ return makeDeferredTypeMapper(map(context.inferences, (i) => i.typeParameter), map(context.inferences, (inference) => () => {
62338
+ return getInferredType(context, inference);
62373
62339
  }));
62374
62340
  }
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
+ }
62375
62350
  function clearCachedInferences(inferences) {
62376
62351
  for (const inference of inferences) {
62377
62352
  if (!inference.isFixed) {
@@ -62388,7 +62363,7 @@ function createTypeChecker(host) {
62388
62363
  for (const { node, type } of context.intraExpressionInferenceSites) {
62389
62364
  const contextualType = node.kind === 171 /* MethodDeclaration */ ? getContextualTypeForObjectLiteralMethod(node, 2 /* NoConstraints */) : getContextualType(node, 2 /* NoConstraints */);
62390
62365
  if (contextualType) {
62391
- inferTypes(context.inferences, type, contextualType);
62366
+ inferTypes(context, type, contextualType);
62392
62367
  }
62393
62368
  }
62394
62369
  context.intraExpressionInferenceSites = void 0;
@@ -62423,7 +62398,8 @@ function createTypeChecker(host) {
62423
62398
  return inferences.length ? createInferenceContextWorker(map(inferences, cloneInferenceInfo), context.signature, context.flags, context.compareTypes) : void 0;
62424
62399
  }
62425
62400
  function getMapperFromContext(context) {
62426
- return context && context.mapper;
62401
+ const innerContext = context && last(flattenInferenceContextAlternatives(context));
62402
+ return innerContext && innerContext.mapper && (innerContext.freeTypeVariables ? combineTypeMappers(innerContext.mapper, makeFreeTypeVariableMapperForContext(innerContext)) : innerContext.mapper);
62427
62403
  }
62428
62404
  function couldContainTypeVariables(type) {
62429
62405
  const objectFlags = getObjectFlags(type);
@@ -62523,8 +62499,15 @@ function createTypeChecker(host) {
62523
62499
  const typeParameter = getIndexedAccessType(constraint.type, getTypeParameterFromMappedType(target));
62524
62500
  const templateType = getTemplateTypeFromMappedType(target);
62525
62501
  const inference = createInferenceInfo(typeParameter);
62526
- inferTypes([inference], sourceType, templateType);
62527
- return getTypeFromInference(inference) || unknownType;
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;
62528
62511
  }
62529
62512
  function* getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) {
62530
62513
  const properties = getPropertiesOfType(target);
@@ -62701,7 +62684,15 @@ function createTypeChecker(host) {
62701
62684
  pos = p;
62702
62685
  }
62703
62686
  }
62704
- function inferTypes(inferences, originalSource, originalTarget, priority = 0 /* None */, contravariant = false) {
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) {
62705
62696
  let bivariant = false;
62706
62697
  let propagationType;
62707
62698
  let inferencePriority = 2048 /* MaxValue */;
@@ -62710,7 +62701,21 @@ function createTypeChecker(host) {
62710
62701
  let sourceStack;
62711
62702
  let targetStack;
62712
62703
  let expandingFlags = 0 /* None */;
62704
+ let useOnlyCachedAlternativeRoutes = false;
62713
62705
  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);
62714
62719
  function inferFromTypes(source, target) {
62715
62720
  if (!couldContainTypeVariables(target)) {
62716
62721
  return;
@@ -62771,6 +62776,9 @@ function createTypeChecker(host) {
62771
62776
  if (getObjectFlags(source) & 262144 /* NonInferrableType */ || source === nonInferrableAnyType) {
62772
62777
  return;
62773
62778
  }
62779
+ if (useOnlyCachedAlternativeRoutes && source === target) {
62780
+ return;
62781
+ }
62774
62782
  if (!inference.isFixed) {
62775
62783
  if (inference.priority === void 0 || priority < inference.priority) {
62776
62784
  inference.candidates = void 0;
@@ -62783,16 +62791,16 @@ function createTypeChecker(host) {
62783
62791
  if (contravariant && !bivariant) {
62784
62792
  if (!contains(inference.contraCandidates, candidate)) {
62785
62793
  inference.contraCandidates = append(inference.contraCandidates, candidate);
62786
- clearCachedInferences(inferences);
62794
+ clearCachedInferences(context.inferences);
62787
62795
  }
62788
62796
  } else if (!contains(inference.candidates, candidate)) {
62789
62797
  inference.candidates = append(inference.candidates, candidate);
62790
- clearCachedInferences(inferences);
62798
+ clearCachedInferences(context.inferences);
62791
62799
  }
62792
62800
  }
62793
62801
  if (!(priority & 128 /* ReturnType */) && target.flags & 262144 /* TypeParameter */ && inference.topLevel && !isTypeParameterAtTopLevel(originalTarget, target)) {
62794
62802
  inference.topLevel = false;
62795
- clearCachedInferences(inferences);
62803
+ clearCachedInferences(context.inferences);
62796
62804
  }
62797
62805
  }
62798
62806
  inferencePriority = Math.min(inferencePriority, priority);
@@ -62960,7 +62968,12 @@ function createTypeChecker(host) {
62960
62968
  }
62961
62969
  function getInferenceInfoForType(type) {
62962
62970
  if (type.flags & 8650752 /* TypeVariable */) {
62963
- for (const inference of inferences) {
62971
+ for (const inference of context.inferences) {
62972
+ if (type === inference.typeParameter) {
62973
+ return inference;
62974
+ }
62975
+ }
62976
+ for (const inference of context.freeTypeVariables || []) {
62964
62977
  if (type === inference.typeParameter) {
62965
62978
  return inference;
62966
62979
  }
@@ -63241,17 +63254,88 @@ function createTypeChecker(host) {
63241
63254
  }
63242
63255
  }
63243
63256
  }
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
+ }
63244
63297
  function inferFromSignatures(source, target, kind) {
63298
+ var _a2, _b;
63245
63299
  const sourceSignatures = getSignaturesOfType(source, kind);
63246
63300
  const targetSignatures = getSignaturesOfType(target, kind);
63247
63301
  const sourceLen = sourceSignatures.length;
63248
63302
  const targetLen = targetSignatures.length;
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]));
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
+ }
63252
63320
  }
63253
63321
  }
63254
63322
  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
+ }
63255
63339
  const saveBivariant = bivariant;
63256
63340
  const kind = target.declaration ? target.declaration.kind : 0 /* Unknown */;
63257
63341
  bivariant = bivariant || kind === 171 /* MethodDeclaration */ || kind === 170 /* MethodSignature */ || kind === 173 /* Constructor */;
@@ -63326,8 +63410,7 @@ function createTypeChecker(host) {
63326
63410
  const unwidenedType = inference.priority & 416 /* PriorityImpliesCombination */ ? getUnionType(baseCandidates, 2 /* Subtype */) : getCommonSupertype(baseCandidates);
63327
63411
  return getWidenedType(unwidenedType);
63328
63412
  }
63329
- function getInferredType(context, index) {
63330
- const inference = context.inferences[index];
63413
+ function getInferredType(context, inference) {
63331
63414
  if (!inference.inferredType) {
63332
63415
  let inferredType;
63333
63416
  const signature = context.signature;
@@ -63343,7 +63426,7 @@ function createTypeChecker(host) {
63343
63426
  } else {
63344
63427
  const defaultType = getDefaultFromTypeParameter(inference.typeParameter);
63345
63428
  if (defaultType) {
63346
- inferredType = instantiateType(defaultType, mergeTypeMappers(createBackreferenceMapper(context, index), context.nonFixingMapper));
63429
+ inferredType = instantiateType(defaultType, mergeTypeMappers(createBackreferenceMapper(context, inference), context.nonFixingMapper));
63347
63430
  }
63348
63431
  }
63349
63432
  } else {
@@ -63363,12 +63446,24 @@ function createTypeChecker(host) {
63363
63446
  function getDefaultTypeArgumentType(isInJavaScriptFile) {
63364
63447
  return isInJavaScriptFile ? anyType : unknownType;
63365
63448
  }
63366
- function getInferredTypes(context) {
63367
- const result = [];
63368
- for (let i = 0; i < context.inferences.length; i++) {
63369
- result.push(getInferredType(context, i));
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
+ }
63370
63465
  }
63371
- return result;
63466
+ return finalAlternative;
63372
63467
  }
63373
63468
  function getCannotFindNameDiagnosticForName(node) {
63374
63469
  switch (node.escapedText) {
@@ -66746,8 +66841,11 @@ function createTypeChecker(host) {
66746
66841
  function instantiateContextualType(contextualType, node, contextFlags) {
66747
66842
  if (contextualType && maybeTypeOfKind(contextualType, 465829888 /* Instantiable */)) {
66748
66843
  const inferenceContext = getInferenceContext(node);
66749
- if (inferenceContext && contextFlags & 1 /* Signature */ && some(inferenceContext.inferences, hasInferenceCandidatesOrDefault)) {
66750
- return instantiateInstantiableTypes(contextualType, inferenceContext.nonFixingMapper);
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
+ ));
66751
66849
  }
66752
66850
  if (inferenceContext == null ? void 0 : inferenceContext.returnMapper) {
66753
66851
  const type = instantiateInstantiableTypes(contextualType, inferenceContext.returnMapper);
@@ -69106,23 +69204,23 @@ function createTypeChecker(host) {
69106
69204
  function instantiateSignatureInContextOf(signature, contextualSignature, inferenceContext, compareTypes) {
69107
69205
  const context = createInferenceContext(signature.typeParameters, signature, 0 /* None */, compareTypes);
69108
69206
  const restType = getEffectiveRestType(contextualSignature);
69109
- const mapper = inferenceContext && (restType && restType.flags & 262144 /* TypeParameter */ ? inferenceContext.nonFixingMapper : inferenceContext.mapper);
69207
+ const mapper = inferenceContext && (restType && restType.flags & 262144 /* TypeParameter */ ? inferenceContext.nonFixingMapper : getMapperFromContext(inferenceContext));
69110
69208
  const sourceSignature = mapper ? instantiateSignature(contextualSignature, mapper) : contextualSignature;
69111
69209
  applyToParameterTypes(sourceSignature, signature, (source, target) => {
69112
- inferTypes(context.inferences, source, target);
69210
+ inferTypes(context, source, target);
69113
69211
  });
69114
69212
  if (!inferenceContext) {
69115
69213
  applyToReturnTypes(contextualSignature, signature, (source, target) => {
69116
- inferTypes(context.inferences, source, target, 128 /* ReturnType */);
69214
+ inferTypes(context, source, target, 128 /* ReturnType */);
69117
69215
  });
69118
69216
  }
69119
- return getSignatureInstantiation(signature, getInferredTypes(context), isInJSFile(contextualSignature.declaration));
69217
+ return getSignatureInstantiation(signature, getInferredTypes(context, returnFalse), isInJSFile(contextualSignature.declaration));
69120
69218
  }
69121
- function inferJsxTypeArguments(node, signature, checkMode, context) {
69219
+ function inferJsxTypeArguments(node, signature, checkMode, context, accept) {
69122
69220
  const paramType = getEffectiveFirstArgumentForJsxSignature(signature, node);
69123
69221
  const checkAttrType = checkExpressionWithContextualType(node.attributes, paramType, context, checkMode);
69124
- inferTypes(context.inferences, checkAttrType, paramType);
69125
- return getInferredTypes(context);
69222
+ inferTypes(context, checkAttrType, paramType);
69223
+ return getInferredTypes(context, accept);
69126
69224
  }
69127
69225
  function getThisArgumentType(thisArgumentNode) {
69128
69226
  if (!thisArgumentNode) {
@@ -69131,9 +69229,9 @@ function createTypeChecker(host) {
69131
69229
  const thisArgumentType = checkExpression(thisArgumentNode);
69132
69230
  return isOptionalChainRoot(thisArgumentNode.parent) ? getNonNullableType(thisArgumentType) : isOptionalChain(thisArgumentNode.parent) ? removeOptionalTypeMarker(thisArgumentType) : thisArgumentType;
69133
69231
  }
69134
- function inferTypeArguments(node, signature, args, checkMode, context) {
69232
+ function inferTypeArguments(node, signature, args, checkMode, context, accept) {
69135
69233
  if (isJsxOpeningLikeElement(node)) {
69136
- return inferJsxTypeArguments(node, signature, checkMode, context);
69234
+ return inferJsxTypeArguments(node, signature, checkMode, context, accept);
69137
69235
  }
69138
69236
  if (node.kind !== 167 /* Decorator */) {
69139
69237
  const skipBindingPatterns = every(signature.typeParameters, (p) => !!getDefaultFromTypeParameter(p));
@@ -69148,11 +69246,11 @@ function createTypeChecker(host) {
69148
69246
  const instantiatedType = instantiateType(contextualType, outerMapper);
69149
69247
  const contextualSignature = getSingleCallSignature(instantiatedType);
69150
69248
  const inferenceSourceType = contextualSignature && contextualSignature.typeParameters ? getOrCreateTypeFromSignature(getSignatureInstantiationWithoutFillingInTypeArguments(contextualSignature, contextualSignature.typeParameters)) : instantiatedType;
69151
- inferTypes(context.inferences, inferenceSourceType, inferenceTargetType, 128 /* ReturnType */);
69249
+ inferTypes(context, inferenceSourceType, inferenceTargetType, 128 /* ReturnType */);
69152
69250
  }
69153
69251
  const returnContext = createInferenceContext(signature.typeParameters, signature, context.flags);
69154
69252
  const returnSourceType = instantiateType(contextualType, outerContext && outerContext.returnMapper);
69155
- inferTypes(returnContext.inferences, returnSourceType, inferenceTargetType);
69253
+ inferTypes(returnContext, returnSourceType, inferenceTargetType);
69156
69254
  context.returnMapper = some(returnContext.inferences, hasInferenceCandidates) ? getMapperFromContext(cloneInferredPartOfContext(returnContext)) : void 0;
69157
69255
  }
69158
69256
  }
@@ -69168,7 +69266,7 @@ function createTypeChecker(host) {
69168
69266
  const thisType = getThisTypeOfSignature(signature);
69169
69267
  if (thisType && couldContainTypeVariables(thisType)) {
69170
69268
  const thisArgumentNode = getThisArgumentOfCall(node);
69171
- inferTypes(context.inferences, getThisArgumentType(thisArgumentNode), thisType);
69269
+ inferTypes(context, getThisArgumentType(thisArgumentNode), thisType);
69172
69270
  }
69173
69271
  for (let i = 0; i < argCount; i++) {
69174
69272
  const arg = args[i];
@@ -69176,15 +69274,15 @@ function createTypeChecker(host) {
69176
69274
  const paramType = getTypeAtPosition(signature, i);
69177
69275
  if (couldContainTypeVariables(paramType)) {
69178
69276
  const argType = checkExpressionWithContextualType(arg, paramType, context, checkMode);
69179
- inferTypes(context.inferences, argType, paramType);
69277
+ inferTypes(context, argType, paramType);
69180
69278
  }
69181
69279
  }
69182
69280
  }
69183
69281
  if (restType && couldContainTypeVariables(restType)) {
69184
69282
  const spreadType = getSpreadArgumentType(args, argCount, args.length, restType, context, checkMode);
69185
- inferTypes(context.inferences, spreadType, restType);
69283
+ inferTypes(context, spreadType, restType);
69186
69284
  }
69187
- return getInferredTypes(context);
69285
+ return getInferredTypes(context, accept);
69188
69286
  }
69189
69287
  function getMutableArrayOrTupleType(type) {
69190
69288
  return type.flags & 1048576 /* Union */ ? mapType(type, getMutableArrayOrTupleType) : type.flags & 1 /* Any */ || isMutableArrayOrTuple(getBaseConstraintOfType(type) || type) ? type : isTupleType(type) ? createTupleType(
@@ -69951,6 +70049,26 @@ function createTypeChecker(host) {
69951
70049
  }
69952
70050
  let checkCandidate;
69953
70051
  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
+ };
69954
70072
  if (candidate.typeParameters) {
69955
70073
  let typeArgumentTypes;
69956
70074
  if (some(typeArguments)) {
@@ -69971,7 +70089,7 @@ function createTypeChecker(host) {
69971
70089
  /*flags*/
69972
70090
  isInJSFile(node) ? 2 /* AnyDefault */ : 0 /* None */
69973
70091
  );
69974
- typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode | 8 /* SkipGenericFunctions */, inferenceContext);
70092
+ typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode | 8 /* SkipGenericFunctions */, inferenceContext, acceptor);
69975
70093
  argCheckMode |= inferenceContext.flags & 4 /* SkippedGenericFunction */ ? 8 /* SkipGenericFunctions */ : 0 /* Normal */;
69976
70094
  }
69977
70095
  checkCandidate = getSignatureInstantiation(candidate, typeArgumentTypes, isInJSFile(candidate.declaration), inferenceContext && inferenceContext.inferredTypeParameters);
@@ -69999,7 +70117,7 @@ function createTypeChecker(host) {
69999
70117
  if (argCheckMode) {
70000
70118
  argCheckMode = checkMode & 32 /* IsForStringLiteralArgumentCompletions */;
70001
70119
  if (inferenceContext) {
70002
- const typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode, inferenceContext);
70120
+ const typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode, inferenceContext, acceptor);
70003
70121
  checkCandidate = getSignatureInstantiation(candidate, typeArgumentTypes, isInJSFile(candidate.declaration), inferenceContext.inferredTypeParameters);
70004
70122
  if (getNonArrayRestType(candidate) && !hasCorrectArity(node, args, checkCandidate, signatureHelpTrailingComma2)) {
70005
70123
  candidateForArgumentArityError = checkCandidate;
@@ -70109,7 +70227,7 @@ function createTypeChecker(host) {
70109
70227
  /*flags*/
70110
70228
  isInJSFile(node) ? 2 /* AnyDefault */ : 0 /* None */
70111
70229
  );
70112
- const typeArgumentTypes = inferTypeArguments(node, candidate, args, checkMode | 4 /* SkipContextSensitive */ | 8 /* SkipGenericFunctions */, inferenceContext);
70230
+ const typeArgumentTypes = inferTypeArguments(node, candidate, args, checkMode | 4 /* SkipContextSensitive */ | 8 /* SkipGenericFunctions */, inferenceContext, returnFalse);
70113
70231
  return createSignatureInstantiation(candidate, typeArgumentTypes);
70114
70232
  }
70115
70233
  function getLongestCandidateIndex(candidates, argsCount) {
@@ -71377,7 +71495,7 @@ function createTypeChecker(host) {
71377
71495
  if (declaration.type) {
71378
71496
  const typeNode = getEffectiveTypeAnnotationNode(declaration);
71379
71497
  if (typeNode) {
71380
- inferTypes(inferenceContext.inferences, getTypeFromTypeNode(typeNode), getTypeAtPosition(context, i));
71498
+ inferTypes(inferenceContext, getTypeFromTypeNode(typeNode), getTypeAtPosition(context, i));
71381
71499
  }
71382
71500
  }
71383
71501
  }
@@ -72089,7 +72207,7 @@ function createTypeChecker(host) {
72089
72207
  instantiatedContextualSignature = instantiateSignature(contextualSignature, inferenceContext.nonFixingMapper);
72090
72208
  }
72091
72209
  }
72092
- instantiatedContextualSignature || (instantiatedContextualSignature = inferenceContext ? instantiateSignature(contextualSignature, inferenceContext.mapper) : contextualSignature);
72210
+ instantiatedContextualSignature || (instantiatedContextualSignature = inferenceContext ? instantiateSignature(contextualSignature, getMapperFromContext(inferenceContext)) : contextualSignature);
72093
72211
  assignContextualParameterTypes(signature, instantiatedContextualSignature);
72094
72212
  } else {
72095
72213
  assignNonContextualParameterTypes(signature);
@@ -73470,7 +73588,7 @@ function createTypeChecker(host) {
73470
73588
  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);
73471
73589
  }
73472
73590
  function isConstTypeParameterContext(node) {
73473
- const contextualType = getContextualType(node, 0 /* None */);
73591
+ const contextualType = getContextualType(node, 1 /* Signature */);
73474
73592
  return !!contextualType && someType(contextualType, isConstTypeVariable);
73475
73593
  }
73476
73594
  function checkExpressionForMutableLocation(node, checkMode, forceTuple) {
@@ -73535,10 +73653,11 @@ function createTypeChecker(host) {
73535
73653
  if (returnSignature && !returnSignature.typeParameters && !every(context.inferences, hasInferenceCandidates)) {
73536
73654
  const uniqueTypeParameters = getUniqueTypeParameters(context, signature.typeParameters);
73537
73655
  const instantiatedSignature = getSignatureInstantiationWithoutFillingInTypeArguments(signature, uniqueTypeParameters);
73538
- const inferences = map(context.inferences, (info) => createInferenceInfo(info.typeParameter));
73656
+ const subcontext = cloneInferenceContext(context);
73657
+ subcontext.inferences = map(context.inferences, (info) => createInferenceInfo(info.typeParameter));
73539
73658
  applyToParameterTypes(instantiatedSignature, contextualSignature, (source, target) => {
73540
73659
  inferTypes(
73541
- inferences,
73660
+ subcontext,
73542
73661
  source,
73543
73662
  target,
73544
73663
  /*priority*/
@@ -73547,12 +73666,12 @@ function createTypeChecker(host) {
73547
73666
  true
73548
73667
  );
73549
73668
  });
73550
- if (some(inferences, hasInferenceCandidates)) {
73669
+ if (some(subcontext.inferences, hasInferenceCandidates)) {
73551
73670
  applyToReturnTypes(instantiatedSignature, contextualSignature, (source, target) => {
73552
- inferTypes(inferences, source, target);
73671
+ inferTypes(subcontext, source, target);
73553
73672
  });
73554
- if (!hasOverlappingInferences(context.inferences, inferences)) {
73555
- mergeInferences(context.inferences, inferences);
73673
+ if (!hasOverlappingInferences(context.inferences, subcontext.inferences)) {
73674
+ mergeInferenceContexts(context, subcontext);
73556
73675
  context.inferredTypeParameters = concatenate(context.inferredTypeParameters, uniqueTypeParameters);
73557
73676
  return getOrCreateTypeFromSignature(instantiatedSignature);
73558
73677
  }
@@ -73585,13 +73704,22 @@ function createTypeChecker(host) {
73585
73704
  }
73586
73705
  return false;
73587
73706
  }
73588
- function mergeInferences(target, source) {
73707
+ function mergeInferences(target, source, clone2 = false) {
73589
73708
  for (let i = 0; i < target.length; i++) {
73590
73709
  if (!hasInferenceCandidates(target[i]) && hasInferenceCandidates(source[i])) {
73591
- target[i] = 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];
73592
73715
  }
73593
73716
  }
73594
73717
  }
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
+ }
73595
73723
  function getUniqueTypeParameters(context, typeParameters) {
73596
73724
  const result = [];
73597
73725
  let oldTypeParameters;
@@ -93088,7 +93216,7 @@ function transformES2018(context) {
93088
93216
  );
93089
93217
  }
93090
93218
  function visitBinaryExpression(node, expressionResultIsUnused2) {
93091
- if (isDestructuringAssignment(node) && node.left.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {
93219
+ if (isDestructuringAssignment(node) && containsObjectRestOrSpread(node.left)) {
93092
93220
  return flattenDestructuringAssignment(
93093
93221
  node,
93094
93222
  visitor,
@@ -93220,7 +93348,7 @@ function transformES2018(context) {
93220
93348
  }
93221
93349
  function visitForOfStatement(node, outermostLabeledStatement) {
93222
93350
  const ancestorFacts = enterSubtree(0 /* IterationStatementExcludes */, 2 /* IterationStatementIncludes */);
93223
- if (node.initializer.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {
93351
+ if (node.initializer.transformFlags & 65536 /* ContainsObjectRestOrSpread */ || isAssignmentPattern(node.initializer) && containsObjectRestOrSpread(node.initializer)) {
93224
93352
  node = transformForOfStatementWithObjectRest(node);
93225
93353
  }
93226
93354
  const result = node.awaitModifier ? transformForAwaitOfStatement(node, outermostLabeledStatement, ancestorFacts) : factory2.restoreEnclosingLabel(visitEachChild(node, visitor, context), outermostLabeledStatement);
@@ -114560,7 +114688,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
114560
114688
  const result = getImpliedNodeFormatForFileWorker(getNormalizedAbsolutePath(fileName, currentDirectory), moduleResolutionCache2 == null ? void 0 : moduleResolutionCache2.getPackageJsonInfoCache(), host2, options2);
114561
114689
  const languageVersion = getEmitScriptTarget(options2);
114562
114690
  const setExternalModuleIndicator2 = getSetExternalModuleIndicator(options2);
114563
- return typeof result === "object" ? { ...result, languageVersion, setExternalModuleIndicator: setExternalModuleIndicator2, skipJSDoc: options2.skipJSDocParsing } : { languageVersion, impliedNodeFormat: result, setExternalModuleIndicator: setExternalModuleIndicator2, skipJSDoc: options2.skipJSDocParsing };
114691
+ return typeof result === "object" ? { ...result, languageVersion, setExternalModuleIndicator: setExternalModuleIndicator2 } : { languageVersion, impliedNodeFormat: result, setExternalModuleIndicator: setExternalModuleIndicator2 };
114564
114692
  }
114565
114693
  function findSourceFileWorker(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId) {
114566
114694
  var _a3, _b2;
@@ -121962,8 +122090,7 @@ function shouldBePretty(sys2, options) {
121962
122090
  return options.pretty;
121963
122091
  }
121964
122092
  function getOptionsForHelp(commandLine) {
121965
- const filtered = filter(optionDeclarations.slice(), (v) => !v.hiddenInAllViews && (!!commandLine.options.all || !!v.showInSimplifiedHelpView));
121966
- return !!commandLine.options.all ? sort(filtered, (a, b) => compareStringsCaseInsensitive(a.name, b.name)) : filtered;
122093
+ return !!commandLine.options.all ? sort(optionDeclarations, (a, b) => compareStringsCaseInsensitive(a.name, b.name)) : filter(optionDeclarations.slice(), (v) => !!v.showInSimplifiedHelpView);
121967
122094
  }
121968
122095
  function printVersion(sys2) {
121969
122096
  sys2.write(getDiagnosticText(Diagnostics.Version_0, version) + sys2.newLine);
@@ -123070,6 +123197,5 @@ if (sys.tryEnableSourceMapsForHost && /^development$/i.test(sys.getEnvironmentVa
123070
123197
  if (sys.setBlocking) {
123071
123198
  sys.setBlocking();
123072
123199
  }
123073
- sys.args.push("--skipJSDocParsing");
123074
123200
  executeCommandLine(sys, noop, sys.args);
123075
123201
  //# sourceMappingURL=tsc.js.map