@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 +283 -157
- package/lib/tsserver.js +298 -160
- package/lib/tsserverlibrary.js +298 -161
- package/lib/typescript.js +297 -161
- package/lib/typingsInstaller.js +34 -62
- package/package.json +1 -1
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
54456
|
-
const
|
|
54457
|
-
|
|
54458
|
-
|
|
54459
|
-
|
|
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
|
-
|
|
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
|
|
56957
|
+
inferTypes(context, checkType, instantiateType(extendsType, freshMapper), 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);
|
|
57001
56958
|
}
|
|
57002
|
-
const innerMapper = combineTypeMappers(freshMapper, context
|
|
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,
|
|
57690
|
-
const
|
|
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
|
|
60505
|
-
|
|
60506
|
-
|
|
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
|
-
|
|
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
|
|
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,
|
|
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, (
|
|
62372
|
-
return getInferredType(context,
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
62527
|
-
|
|
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
|
|
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
|
-
|
|
63250
|
-
|
|
63251
|
-
|
|
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,
|
|
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,
|
|
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
|
|
63368
|
-
|
|
63369
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
69210
|
+
inferTypes(context, source, target);
|
|
69113
69211
|
});
|
|
69114
69212
|
if (!inferenceContext) {
|
|
69115
69213
|
applyToReturnTypes(contextualSignature, signature, (source, target) => {
|
|
69116
|
-
inferTypes(context
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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
|
-
|
|
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(
|
|
73671
|
+
inferTypes(subcontext, source, target);
|
|
73553
73672
|
});
|
|
73554
|
-
if (!hasOverlappingInferences(context.inferences, inferences)) {
|
|
73555
|
-
|
|
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] =
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|