typescript 5.5.0-dev.20240418 → 5.5.0-dev.20240420
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/lib.dom.asynciterable.d.ts +5 -0
- package/lib/lib.dom.d.ts +211 -33
- package/lib/lib.dom.iterable.d.ts +8 -0
- package/lib/lib.es2021.weakref.d.ts +1 -1
- package/lib/lib.esnext.d.ts +1 -0
- package/lib/lib.esnext.string.d.ts +29 -0
- package/lib/lib.webworker.asynciterable.d.ts +5 -0
- package/lib/lib.webworker.d.ts +20 -6
- package/lib/lib.webworker.iterable.d.ts +5 -0
- package/lib/tsc.js +2037 -158
- package/lib/typescript.d.ts +2 -1
- package/lib/typescript.js +2187 -205
- package/package.json +3 -4
package/lib/typescript.js
CHANGED
|
@@ -146,6 +146,7 @@ __export(typescript_exports, {
|
|
|
146
146
|
ProcessLevel: () => ProcessLevel,
|
|
147
147
|
ProgramUpdateLevel: () => ProgramUpdateLevel,
|
|
148
148
|
QuotePreference: () => QuotePreference,
|
|
149
|
+
RegularExpressionFlags: () => RegularExpressionFlags,
|
|
149
150
|
RelationComparisonResult: () => RelationComparisonResult,
|
|
150
151
|
Rename: () => ts_Rename_exports,
|
|
151
152
|
ScriptElementKind: () => ScriptElementKind,
|
|
@@ -274,6 +275,7 @@ __export(typescript_exports, {
|
|
|
274
275
|
changeFullExtension: () => changeFullExtension,
|
|
275
276
|
changesAffectModuleResolution: () => changesAffectModuleResolution,
|
|
276
277
|
changesAffectingProgramStructure: () => changesAffectingProgramStructure,
|
|
278
|
+
characterToRegularExpressionFlag: () => characterToRegularExpressionFlag,
|
|
277
279
|
childIsDecorated: () => childIsDecorated,
|
|
278
280
|
classElementOrClassElementParameterIsDecorated: () => classElementOrClassElementParameterIsDecorated,
|
|
279
281
|
classHasClassThisAssignment: () => classHasClassThisAssignment,
|
|
@@ -419,6 +421,7 @@ __export(typescript_exports, {
|
|
|
419
421
|
createForOfBindingStatement: () => createForOfBindingStatement,
|
|
420
422
|
createFutureSourceFile: () => createFutureSourceFile,
|
|
421
423
|
createGetCanonicalFileName: () => createGetCanonicalFileName,
|
|
424
|
+
createGetIsolatedDeclarationErrors: () => createGetIsolatedDeclarationErrors,
|
|
422
425
|
createGetSourceFile: () => createGetSourceFile,
|
|
423
426
|
createGetSymbolAccessibilityDiagnosticForNode: () => createGetSymbolAccessibilityDiagnosticForNode,
|
|
424
427
|
createGetSymbolAccessibilityDiagnosticForNodeName: () => createGetSymbolAccessibilityDiagnosticForNodeName,
|
|
@@ -473,6 +476,7 @@ __export(typescript_exports, {
|
|
|
473
476
|
createSuperAccessVariableStatement: () => createSuperAccessVariableStatement,
|
|
474
477
|
createSymbolTable: () => createSymbolTable,
|
|
475
478
|
createSymlinkCache: () => createSymlinkCache,
|
|
479
|
+
createSyntacticTypeNodeBuilder: () => createSyntacticTypeNodeBuilder,
|
|
476
480
|
createSystemWatchFunctions: () => createSystemWatchFunctions,
|
|
477
481
|
createTextChange: () => createTextChange,
|
|
478
482
|
createTextChangeFromStartLength: () => createTextChangeFromStartLength,
|
|
@@ -912,6 +916,7 @@ __export(typescript_exports, {
|
|
|
912
916
|
getNameOfDeclaration: () => getNameOfDeclaration,
|
|
913
917
|
getNameOfExpando: () => getNameOfExpando,
|
|
914
918
|
getNameOfJSDocTypedef: () => getNameOfJSDocTypedef,
|
|
919
|
+
getNameOfScriptTarget: () => getNameOfScriptTarget,
|
|
915
920
|
getNameOrArgument: () => getNameOrArgument,
|
|
916
921
|
getNameTable: () => getNameTable,
|
|
917
922
|
getNamesForExportedSymbol: () => getNamesForExportedSymbol,
|
|
@@ -1126,6 +1131,7 @@ __export(typescript_exports, {
|
|
|
1126
1131
|
hasEffectiveReadonlyModifier: () => hasEffectiveReadonlyModifier,
|
|
1127
1132
|
hasExtension: () => hasExtension,
|
|
1128
1133
|
hasIndexSignature: () => hasIndexSignature,
|
|
1134
|
+
hasInferredType: () => hasInferredType,
|
|
1129
1135
|
hasInitializer: () => hasInitializer,
|
|
1130
1136
|
hasInvalidEscape: () => hasInvalidEscape,
|
|
1131
1137
|
hasJSDocNodes: () => hasJSDocNodes,
|
|
@@ -1670,12 +1676,12 @@ __export(typescript_exports, {
|
|
|
1670
1676
|
isPackageJsonInfo: () => isPackageJsonInfo,
|
|
1671
1677
|
isPackedArrayLiteral: () => isPackedArrayLiteral,
|
|
1672
1678
|
isParameter: () => isParameter,
|
|
1673
|
-
isParameterDeclaration: () => isParameterDeclaration,
|
|
1674
1679
|
isParameterPropertyDeclaration: () => isParameterPropertyDeclaration,
|
|
1675
1680
|
isParameterPropertyModifier: () => isParameterPropertyModifier,
|
|
1676
1681
|
isParenthesizedExpression: () => isParenthesizedExpression,
|
|
1677
1682
|
isParenthesizedTypeNode: () => isParenthesizedTypeNode,
|
|
1678
1683
|
isParseTreeNode: () => isParseTreeNode,
|
|
1684
|
+
isPartOfParameterDeclaration: () => isPartOfParameterDeclaration,
|
|
1679
1685
|
isPartOfTypeNode: () => isPartOfTypeNode,
|
|
1680
1686
|
isPartOfTypeQuery: () => isPartOfTypeQuery,
|
|
1681
1687
|
isPartiallyEmittedExpression: () => isPartiallyEmittedExpression,
|
|
@@ -1686,6 +1692,7 @@ __export(typescript_exports, {
|
|
|
1686
1692
|
isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition,
|
|
1687
1693
|
isPostfixUnaryExpression: () => isPostfixUnaryExpression,
|
|
1688
1694
|
isPrefixUnaryExpression: () => isPrefixUnaryExpression,
|
|
1695
|
+
isPrimitiveLiteralValue: () => isPrimitiveLiteralValue,
|
|
1689
1696
|
isPrivateIdentifier: () => isPrivateIdentifier,
|
|
1690
1697
|
isPrivateIdentifierClassElementDeclaration: () => isPrivateIdentifierClassElementDeclaration,
|
|
1691
1698
|
isPrivateIdentifierPropertyAccessExpression: () => isPrivateIdentifierPropertyAccessExpression,
|
|
@@ -1852,6 +1859,7 @@ __export(typescript_exports, {
|
|
|
1852
1859
|
isValueSignatureDeclaration: () => isValueSignatureDeclaration,
|
|
1853
1860
|
isVarAwaitUsing: () => isVarAwaitUsing,
|
|
1854
1861
|
isVarConst: () => isVarConst,
|
|
1862
|
+
isVarConstLike: () => isVarConstLike,
|
|
1855
1863
|
isVarUsing: () => isVarUsing,
|
|
1856
1864
|
isVariableDeclaration: () => isVariableDeclaration,
|
|
1857
1865
|
isVariableDeclarationInVariableStatement: () => isVariableDeclarationInVariableStatement,
|
|
@@ -2056,6 +2064,7 @@ __export(typescript_exports, {
|
|
|
2056
2064
|
reducePathComponents: () => reducePathComponents,
|
|
2057
2065
|
refactor: () => ts_refactor_exports,
|
|
2058
2066
|
regExpEscape: () => regExpEscape,
|
|
2067
|
+
regularExpressionFlagToCharacter: () => regularExpressionFlagToCharacter,
|
|
2059
2068
|
relativeComplement: () => relativeComplement,
|
|
2060
2069
|
removeAllComments: () => removeAllComments,
|
|
2061
2070
|
removeEmitHelper: () => removeEmitHelper,
|
|
@@ -2311,6 +2320,7 @@ __export(typescript_exports, {
|
|
|
2311
2320
|
unsetNodeChildren: () => unsetNodeChildren,
|
|
2312
2321
|
unusedLabelIsError: () => unusedLabelIsError,
|
|
2313
2322
|
unwrapInnermostStatementOfLabel: () => unwrapInnermostStatementOfLabel,
|
|
2323
|
+
unwrapParenthesizedExpression: () => unwrapParenthesizedExpression,
|
|
2314
2324
|
updateErrorForNoInputFiles: () => updateErrorForNoInputFiles,
|
|
2315
2325
|
updateLanguageServiceSourceFile: () => updateLanguageServiceSourceFile,
|
|
2316
2326
|
updateMissingFilePathsWatch: () => updateMissingFilePathsWatch,
|
|
@@ -2350,7 +2360,7 @@ module.exports = __toCommonJS(typescript_exports);
|
|
|
2350
2360
|
|
|
2351
2361
|
// src/compiler/corePublic.ts
|
|
2352
2362
|
var versionMajorMinor = "5.5";
|
|
2353
|
-
var version = `${versionMajorMinor}.0-dev.
|
|
2363
|
+
var version = `${versionMajorMinor}.0-dev.20240420`;
|
|
2354
2364
|
var Comparison = /* @__PURE__ */ ((Comparison3) => {
|
|
2355
2365
|
Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
|
|
2356
2366
|
Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
|
|
@@ -6254,6 +6264,20 @@ var GeneratedIdentifierFlags = /* @__PURE__ */ ((GeneratedIdentifierFlags2) => {
|
|
|
6254
6264
|
GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["AllowNameSubstitution"] = 64] = "AllowNameSubstitution";
|
|
6255
6265
|
return GeneratedIdentifierFlags2;
|
|
6256
6266
|
})(GeneratedIdentifierFlags || {});
|
|
6267
|
+
var RegularExpressionFlags = /* @__PURE__ */ ((RegularExpressionFlags2) => {
|
|
6268
|
+
RegularExpressionFlags2[RegularExpressionFlags2["None"] = 0] = "None";
|
|
6269
|
+
RegularExpressionFlags2[RegularExpressionFlags2["HasIndices"] = 1] = "HasIndices";
|
|
6270
|
+
RegularExpressionFlags2[RegularExpressionFlags2["Global"] = 2] = "Global";
|
|
6271
|
+
RegularExpressionFlags2[RegularExpressionFlags2["IgnoreCase"] = 4] = "IgnoreCase";
|
|
6272
|
+
RegularExpressionFlags2[RegularExpressionFlags2["Multiline"] = 8] = "Multiline";
|
|
6273
|
+
RegularExpressionFlags2[RegularExpressionFlags2["DotAll"] = 16] = "DotAll";
|
|
6274
|
+
RegularExpressionFlags2[RegularExpressionFlags2["Unicode"] = 32] = "Unicode";
|
|
6275
|
+
RegularExpressionFlags2[RegularExpressionFlags2["UnicodeSets"] = 64] = "UnicodeSets";
|
|
6276
|
+
RegularExpressionFlags2[RegularExpressionFlags2["Sticky"] = 128] = "Sticky";
|
|
6277
|
+
RegularExpressionFlags2[RegularExpressionFlags2["UnicodeMode"] = 96] = "UnicodeMode";
|
|
6278
|
+
RegularExpressionFlags2[RegularExpressionFlags2["Modifiers"] = 28] = "Modifiers";
|
|
6279
|
+
return RegularExpressionFlags2;
|
|
6280
|
+
})(RegularExpressionFlags || {});
|
|
6257
6281
|
var TokenFlags = /* @__PURE__ */ ((TokenFlags2) => {
|
|
6258
6282
|
TokenFlags2[TokenFlags2["None"] = 0] = "None";
|
|
6259
6283
|
TokenFlags2[TokenFlags2["PrecedingLineBreak"] = 1] = "PrecedingLineBreak";
|
|
@@ -6389,6 +6413,7 @@ var NodeBuilderFlags = /* @__PURE__ */ ((NodeBuilderFlags2) => {
|
|
|
6389
6413
|
NodeBuilderFlags2[NodeBuilderFlags2["AllowUniqueESSymbolType"] = 1048576] = "AllowUniqueESSymbolType";
|
|
6390
6414
|
NodeBuilderFlags2[NodeBuilderFlags2["AllowEmptyIndexInfoType"] = 2097152] = "AllowEmptyIndexInfoType";
|
|
6391
6415
|
NodeBuilderFlags2[NodeBuilderFlags2["WriteComputedProps"] = 1073741824] = "WriteComputedProps";
|
|
6416
|
+
NodeBuilderFlags2[NodeBuilderFlags2["NoSyntacticPrinter"] = -2147483648] = "NoSyntacticPrinter";
|
|
6392
6417
|
NodeBuilderFlags2[NodeBuilderFlags2["AllowNodeModulesRelativePaths"] = 67108864] = "AllowNodeModulesRelativePaths";
|
|
6393
6418
|
NodeBuilderFlags2[NodeBuilderFlags2["DoNotIncludeSymbolChain"] = 134217728] = "DoNotIncludeSymbolChain";
|
|
6394
6419
|
NodeBuilderFlags2[NodeBuilderFlags2["IgnoreErrors"] = 70221824] = "IgnoreErrors";
|
|
@@ -9753,6 +9778,43 @@ var Diagnostics = {
|
|
|
9753
9778
|
Identifier_string_literal_or_number_literal_expected: diag(1496, 1 /* Error */, "Identifier_string_literal_or_number_literal_expected_1496", "Identifier, string literal, or number literal expected."),
|
|
9754
9779
|
Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator: diag(1497, 1 /* Error */, "Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator_1497", "Expression must be enclosed in parentheses to be used as a decorator."),
|
|
9755
9780
|
Invalid_syntax_in_decorator: diag(1498, 1 /* Error */, "Invalid_syntax_in_decorator_1498", "Invalid syntax in decorator."),
|
|
9781
|
+
Unknown_regular_expression_flag: diag(1499, 1 /* Error */, "Unknown_regular_expression_flag_1499", "Unknown regular expression flag."),
|
|
9782
|
+
Duplicate_regular_expression_flag: diag(1500, 1 /* Error */, "Duplicate_regular_expression_flag_1500", "Duplicate regular expression flag."),
|
|
9783
|
+
This_regular_expression_flag_is_only_available_when_targeting_0_or_later: diag(1501, 1 /* Error */, "This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1501", "This regular expression flag is only available when targeting '{0}' or later."),
|
|
9784
|
+
The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously: diag(1502, 1 /* Error */, "The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1502", "The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously."),
|
|
9785
|
+
Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later: diag(1503, 1 /* Error */, "Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1503", "Named capturing groups are only available when targeting 'ES2018' or later."),
|
|
9786
|
+
Subpattern_flags_must_be_present_when_there_is_a_minus_sign: diag(1504, 1 /* Error */, "Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1504", "Subpattern flags must be present when there is a minus sign."),
|
|
9787
|
+
Incomplete_quantifier_Digit_expected: diag(1505, 1 /* Error */, "Incomplete_quantifier_Digit_expected_1505", "Incomplete quantifier. Digit expected."),
|
|
9788
|
+
Numbers_out_of_order_in_quantifier: diag(1506, 1 /* Error */, "Numbers_out_of_order_in_quantifier_1506", "Numbers out of order in quantifier."),
|
|
9789
|
+
There_is_nothing_available_for_repetition: diag(1507, 1 /* Error */, "There_is_nothing_available_for_repetition_1507", "There is nothing available for repetition."),
|
|
9790
|
+
Unexpected_0_Did_you_mean_to_escape_it_with_backslash: diag(1508, 1 /* Error */, "Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1508", "Unexpected '{0}'. Did you mean to escape it with backslash?"),
|
|
9791
|
+
This_regular_expression_flag_cannot_be_toggled_within_a_subpattern: diag(1509, 1 /* Error */, "This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1509", "This regular expression flag cannot be toggled within a subpattern."),
|
|
9792
|
+
k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets: diag(1510, 1 /* Error */, "k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1510", "'\\k' must be followed by a capturing group name enclosed in angle brackets."),
|
|
9793
|
+
q_is_only_available_inside_character_class: diag(1511, 1 /* Error */, "q_is_only_available_inside_character_class_1511", "'\\q' is only available inside character class."),
|
|
9794
|
+
c_must_be_followed_by_an_ASCII_letter: diag(1512, 1 /* Error */, "c_must_be_followed_by_an_ASCII_letter_1512", "'\\c' must be followed by an ASCII letter."),
|
|
9795
|
+
Undetermined_character_escape: diag(1513, 1 /* Error */, "Undetermined_character_escape_1513", "Undetermined character escape."),
|
|
9796
|
+
Expected_a_capturing_group_name: diag(1514, 1 /* Error */, "Expected_a_capturing_group_name_1514", "Expected a capturing group name."),
|
|
9797
|
+
Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other: diag(1515, 1 /* Error */, "Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1515", "Named capturing groups with the same name must be mutually exclusive to each other."),
|
|
9798
|
+
A_character_class_range_must_not_be_bounded_by_another_character_class: diag(1516, 1 /* Error */, "A_character_class_range_must_not_be_bounded_by_another_character_class_1516", "A character class range must not be bounded by another character class."),
|
|
9799
|
+
Range_out_of_order_in_character_class: diag(1517, 1 /* Error */, "Range_out_of_order_in_character_class_1517", "Range out of order in character class."),
|
|
9800
|
+
Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class: diag(1518, 1 /* Error */, "Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1518", "Anything that would possibly match more than a single character is invalid inside a negated character class."),
|
|
9801
|
+
Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead: diag(1519, 1 /* Error */, "Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1519", "Operators must not be mixed within a character class. Wrap it in a nested class instead."),
|
|
9802
|
+
Expected_a_class_set_oprand: diag(1520, 1 /* Error */, "Expected_a_class_set_oprand_1520", "Expected a class set oprand."),
|
|
9803
|
+
q_must_be_followed_by_string_alternatives_enclosed_in_braces: diag(1521, 1 /* Error */, "q_must_be_followed_by_string_alternatives_enclosed_in_braces_1521", "'\\q' must be followed by string alternatives enclosed in braces."),
|
|
9804
|
+
A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash: diag(1522, 1 /* Error */, "A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1522", "A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?"),
|
|
9805
|
+
Expected_a_Unicode_property_name: diag(1523, 1 /* Error */, "Expected_a_Unicode_property_name_1523", "Expected a Unicode property name."),
|
|
9806
|
+
Unknown_Unicode_property_name: diag(1524, 1 /* Error */, "Unknown_Unicode_property_name_1524", "Unknown Unicode property name."),
|
|
9807
|
+
Expected_a_Unicode_property_value: diag(1525, 1 /* Error */, "Expected_a_Unicode_property_value_1525", "Expected a Unicode property value."),
|
|
9808
|
+
Unknown_Unicode_property_value: diag(1526, 1 /* Error */, "Unknown_Unicode_property_value_1526", "Unknown Unicode property value."),
|
|
9809
|
+
Expected_a_Unicode_property_name_or_value: diag(1527, 1 /* Error */, "Expected_a_Unicode_property_name_or_value_1527", "Expected a Unicode property name or value."),
|
|
9810
|
+
Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set: diag(1528, 1 /* Error */, "Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1528", "Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set."),
|
|
9811
|
+
Unknown_Unicode_property_name_or_value: diag(1529, 1 /* Error */, "Unknown_Unicode_property_name_or_value_1529", "Unknown Unicode property name or value."),
|
|
9812
|
+
Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set: diag(1530, 1 /* Error */, "Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1530", "Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),
|
|
9813
|
+
_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces: diag(1531, 1 /* Error */, "_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1531", "'\\{0}' must be followed by a Unicode property value expression enclosed in braces."),
|
|
9814
|
+
There_is_no_capturing_group_named_0_in_this_regular_expression: diag(1532, 1 /* Error */, "There_is_no_capturing_group_named_0_in_this_regular_expression_1532", "There is no capturing group named '{0}' in this regular expression."),
|
|
9815
|
+
A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_regular_expression: diag(1533, 1 /* Error */, "A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_1533", "A decimal escape must refer to an existent capturing group. There are only {0} capturing groups in this regular expression."),
|
|
9816
|
+
Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression: diag(1534, 1 /* Error */, "Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression_1534", "Decimal escapes are invalid when there are no capturing groups in a regular expression."),
|
|
9817
|
+
This_character_cannot_be_escaped_in_a_regular_expression: diag(1535, 1 /* Error */, "This_character_cannot_be_escaped_in_a_regular_expression_1535", "This character cannot be escaped in a regular expression."),
|
|
9756
9818
|
The_types_of_0_are_incompatible_between_these_types: diag(2200, 1 /* Error */, "The_types_of_0_are_incompatible_between_these_types_2200", "The types of '{0}' are incompatible between these types."),
|
|
9757
9819
|
The_types_returned_by_0_are_incompatible_between_these_types: diag(2201, 1 /* Error */, "The_types_returned_by_0_are_incompatible_between_these_types_2201", "The types returned by '{0}' are incompatible between these types."),
|
|
9758
9820
|
Call_signature_return_types_0_and_1_are_incompatible: diag(
|
|
@@ -10998,6 +11060,7 @@ var Diagnostics = {
|
|
|
10998
11060
|
Specify_how_the_TypeScript_watch_mode_works: diag(6715, 3 /* Message */, "Specify_how_the_TypeScript_watch_mode_works_6715", "Specify how the TypeScript watch mode works."),
|
|
10999
11061
|
Require_undeclared_properties_from_index_signatures_to_use_element_accesses: diag(6717, 3 /* Message */, "Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717", "Require undeclared properties from index signatures to use element accesses."),
|
|
11000
11062
|
Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types: diag(6718, 3 /* Message */, "Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718", "Specify emit/checking behavior for imports that are only used for types."),
|
|
11063
|
+
Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files: diag(6719, 3 /* Message */, "Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files_6719", "Require sufficient annotation on exports so other tools can trivially generate declaration files."),
|
|
11001
11064
|
Default_catch_clause_variables_as_unknown_instead_of_any: diag(6803, 3 /* Message */, "Default_catch_clause_variables_as_unknown_instead_of_any_6803", "Default catch clause variables as 'unknown' instead of 'any'."),
|
|
11002
11065
|
Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting: diag(6804, 3 /* Message */, "Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804", "Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting."),
|
|
11003
11066
|
one_of_Colon: diag(6900, 3 /* Message */, "one_of_Colon_6900", "one of:"),
|
|
@@ -11139,6 +11202,36 @@ var Diagnostics = {
|
|
|
11139
11202
|
A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag: diag(8039, 1 /* Error */, "A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039", "A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag"),
|
|
11140
11203
|
Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit: diag(9005, 1 /* Error */, "Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005", "Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."),
|
|
11141
11204
|
Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit: diag(9006, 1 /* Error */, "Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006", "Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."),
|
|
11205
|
+
Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations: diag(9007, 1 /* Error */, "Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9007", "Function must have an explicit return type annotation with --isolatedDeclarations."),
|
|
11206
|
+
Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations: diag(9008, 1 /* Error */, "Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008", "Method must have an explicit return type annotation with --isolatedDeclarations."),
|
|
11207
|
+
At_least_one_accessor_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations: diag(9009, 1 /* Error */, "At_least_one_accessor_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9009", "At least one accessor must have an explicit return type annotation with --isolatedDeclarations."),
|
|
11208
|
+
Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9010, 1 /* Error */, "Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9010", "Variable must have an explicit type annotation with --isolatedDeclarations."),
|
|
11209
|
+
Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9011, 1 /* Error */, "Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9011", "Parameter must have an explicit type annotation with --isolatedDeclarations."),
|
|
11210
|
+
Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9012, 1 /* Error */, "Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9012", "Property must have an explicit type annotation with --isolatedDeclarations."),
|
|
11211
|
+
Expression_type_can_t_be_inferred_with_isolatedDeclarations: diag(9013, 1 /* Error */, "Expression_type_can_t_be_inferred_with_isolatedDeclarations_9013", "Expression type can't be inferred with --isolatedDeclarations."),
|
|
11212
|
+
Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations: diag(9014, 1 /* Error */, "Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedD_9014", "Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations."),
|
|
11213
|
+
Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations: diag(9015, 1 /* Error */, "Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations_9015", "Objects that contain spread assignments can't be inferred with --isolatedDeclarations."),
|
|
11214
|
+
Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations: diag(9016, 1 /* Error */, "Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations_9016", "Objects that contain shorthand properties can't be inferred with --isolatedDeclarations."),
|
|
11215
|
+
Only_const_arrays_can_be_inferred_with_isolatedDeclarations: diag(9017, 1 /* Error */, "Only_const_arrays_can_be_inferred_with_isolatedDeclarations_9017", "Only const arrays can be inferred with --isolatedDeclarations."),
|
|
11216
|
+
Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations: diag(9018, 1 /* Error */, "Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations_9018", "Arrays with spread elements can't inferred with --isolatedDeclarations."),
|
|
11217
|
+
Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations: diag(9019, 1 /* Error */, "Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations_9019", "Binding elements can't be exported directly with --isolatedDeclarations."),
|
|
11218
|
+
Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations: diag(9020, 1 /* Error */, "Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDecl_9020", "Enum member initializers must be computable without references to external symbols with --isolatedDeclarations."),
|
|
11219
|
+
Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations: diag(9021, 1 /* Error */, "Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations_9021", "Extends clause can't contain an expression with --isolatedDeclarations."),
|
|
11220
|
+
Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations: diag(9022, 1 /* Error */, "Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations_9022", "Inference from class expressions is not supported with --isolatedDeclarations."),
|
|
11221
|
+
Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function: diag(9023, 1 /* Error */, "Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations__9023", "Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function."),
|
|
11222
|
+
Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_it_s_type_This_is_not_supported_with_isolatedDeclarations: diag(9025, 1 /* Error */, "Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_it_s_type_This_is_not_su_9025", "Declaration emit for this parameter requires implicitly adding undefined to it's type. This is not supported with --isolatedDeclarations."),
|
|
11223
|
+
Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations: diag(9026, 1 /* Error */, "Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_support_9026", "Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations."),
|
|
11224
|
+
Add_a_type_annotation_to_the_variable_0: diag(9027, 1 /* Error */, "Add_a_type_annotation_to_the_variable_0_9027", "Add a type annotation to the variable {0}."),
|
|
11225
|
+
Add_a_type_annotation_to_the_parameter_0: diag(9028, 1 /* Error */, "Add_a_type_annotation_to_the_parameter_0_9028", "Add a type annotation to the parameter {0}."),
|
|
11226
|
+
Add_a_type_annotation_to_the_property_0: diag(9029, 1 /* Error */, "Add_a_type_annotation_to_the_property_0_9029", "Add a type annotation to the property {0}."),
|
|
11227
|
+
Add_a_return_type_to_the_function_expression: diag(9030, 1 /* Error */, "Add_a_return_type_to_the_function_expression_9030", "Add a return type to the function expression."),
|
|
11228
|
+
Add_a_return_type_to_the_function_declaration: diag(9031, 1 /* Error */, "Add_a_return_type_to_the_function_declaration_9031", "Add a return type to the function declaration."),
|
|
11229
|
+
Add_a_return_type_to_the_get_accessor_declaration: diag(9032, 1 /* Error */, "Add_a_return_type_to_the_get_accessor_declaration_9032", "Add a return type to the get accessor declaration."),
|
|
11230
|
+
Add_a_type_to_parameter_of_the_set_accessor_declaration: diag(9033, 1 /* Error */, "Add_a_type_to_parameter_of_the_set_accessor_declaration_9033", "Add a type to parameter of the set accessor declaration."),
|
|
11231
|
+
Add_a_return_type_to_the_method: diag(9034, 1 /* Error */, "Add_a_return_type_to_the_method_9034", "Add a return type to the method"),
|
|
11232
|
+
Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit: diag(9035, 1 /* Error */, "Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit_9035", "Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit."),
|
|
11233
|
+
Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it: diag(9036, 1 /* Error */, "Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it_9036", "Move the expression in default export to a variable and add a type annotation to it."),
|
|
11234
|
+
Default_exports_can_t_be_inferred_with_isolatedDeclarations: diag(9037, 1 /* Error */, "Default_exports_can_t_be_inferred_with_isolatedDeclarations_9037", "Default exports can't be inferred with --isolatedDeclarations."),
|
|
11142
11235
|
JSX_attributes_must_only_be_assigned_a_non_empty_expression: diag(17e3, 1 /* Error */, "JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000", "JSX attributes must only be assigned a non-empty 'expression'."),
|
|
11143
11236
|
JSX_elements_cannot_have_multiple_attributes_with_the_same_name: diag(17001, 1 /* Error */, "JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001", "JSX elements cannot have multiple attributes with the same name."),
|
|
11144
11237
|
Expected_corresponding_JSX_closing_tag_for_0: diag(17002, 1 /* Error */, "Expected_corresponding_JSX_closing_tag_for_0_17002", "Expected corresponding JSX closing tag for '{0}'."),
|
|
@@ -11611,6 +11704,26 @@ var textToToken = new Map(Object.entries({
|
|
|
11611
11704
|
"#": 63 /* HashToken */,
|
|
11612
11705
|
"`": 62 /* BacktickToken */
|
|
11613
11706
|
}));
|
|
11707
|
+
var charToRegExpFlag = new Map(Object.entries({
|
|
11708
|
+
d: 1 /* HasIndices */,
|
|
11709
|
+
g: 2 /* Global */,
|
|
11710
|
+
i: 4 /* IgnoreCase */,
|
|
11711
|
+
m: 8 /* Multiline */,
|
|
11712
|
+
s: 16 /* DotAll */,
|
|
11713
|
+
u: 32 /* Unicode */,
|
|
11714
|
+
v: 64 /* UnicodeSets */,
|
|
11715
|
+
y: 128 /* Sticky */
|
|
11716
|
+
}));
|
|
11717
|
+
var regExpFlagToFirstAvailableLanguageVersion = /* @__PURE__ */ new Map([
|
|
11718
|
+
[1 /* HasIndices */, 9 /* ES2022 */],
|
|
11719
|
+
[2 /* Global */, 0 /* ES3 */],
|
|
11720
|
+
[4 /* IgnoreCase */, 0 /* ES3 */],
|
|
11721
|
+
[8 /* Multiline */, 0 /* ES3 */],
|
|
11722
|
+
[16 /* DotAll */, 5 /* ES2018 */],
|
|
11723
|
+
[32 /* Unicode */, 2 /* ES2015 */],
|
|
11724
|
+
[64 /* UnicodeSets */, 99 /* ESNext */],
|
|
11725
|
+
[128 /* Sticky */, 2 /* ES2015 */]
|
|
11726
|
+
]);
|
|
11614
11727
|
var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 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, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 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, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500];
|
|
11615
11728
|
var unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 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, 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, 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, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 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, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 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, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 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, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 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, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 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, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 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, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 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, 65062, 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];
|
|
11616
11729
|
var unicodeESNextIdentifierStart = [65, 90, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2144, 2154, 2208, 2228, 2230, 2237, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2556, 2556, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2809, 2809, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3133, 3160, 3162, 3168, 3169, 3200, 3200, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 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, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6264, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401, 7404, 7406, 7411, 7413, 7414, 7418, 7418, 7424, 7615, 7680, 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, 8305, 8305, 8319, 8319, 8336, 8348, 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, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43879, 43888, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 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, 66176, 66204, 66208, 66256, 66304, 66335, 66349, 66378, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 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, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69376, 69404, 69415, 69415, 69424, 69445, 69600, 69622, 69635, 69687, 69763, 69807, 69840, 69864, 69891, 69926, 69956, 69956, 69968, 70002, 70006, 70006, 70019, 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727, 70730, 70751, 70751, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086, 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424, 71450, 71680, 71723, 71840, 71903, 71935, 71935, 72096, 72103, 72106, 72144, 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272, 72272, 72284, 72329, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72750, 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030, 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458, 73728, 74649, 74752, 74862, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 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, 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, 123136, 123180, 123191, 123197, 123214, 123214, 123584, 123627, 124928, 125124, 125184, 125251, 125259, 125259, 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];
|
|
@@ -11659,6 +11772,13 @@ function tokenToString(t) {
|
|
|
11659
11772
|
function stringToToken(s) {
|
|
11660
11773
|
return textToToken.get(s);
|
|
11661
11774
|
}
|
|
11775
|
+
var regExpFlagChars = makeReverseMap(charToRegExpFlag);
|
|
11776
|
+
function regularExpressionFlagToCharacter(f) {
|
|
11777
|
+
return regExpFlagChars[f];
|
|
11778
|
+
}
|
|
11779
|
+
function characterToRegularExpressionFlag(c) {
|
|
11780
|
+
return charToRegExpFlag.get(c);
|
|
11781
|
+
}
|
|
11662
11782
|
function computeLineStarts(text) {
|
|
11663
11783
|
const result = [];
|
|
11664
11784
|
let pos = 0;
|
|
@@ -11755,8 +11875,11 @@ function isDigit(ch) {
|
|
|
11755
11875
|
function isHexDigit(ch) {
|
|
11756
11876
|
return isDigit(ch) || ch >= 65 /* A */ && ch <= 70 /* F */ || ch >= 97 /* a */ && ch <= 102 /* f */;
|
|
11757
11877
|
}
|
|
11758
|
-
function
|
|
11759
|
-
return
|
|
11878
|
+
function isASCIILetter(ch) {
|
|
11879
|
+
return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */;
|
|
11880
|
+
}
|
|
11881
|
+
function isWordCharacter(ch) {
|
|
11882
|
+
return isASCIILetter(ch) || isDigit(ch) || ch === 95 /* _ */;
|
|
11760
11883
|
}
|
|
11761
11884
|
function isOctalDigit(ch) {
|
|
11762
11885
|
return ch >= 48 /* _0 */ && ch <= 55 /* _7 */;
|
|
@@ -12095,10 +12218,10 @@ function getShebang(text) {
|
|
|
12095
12218
|
}
|
|
12096
12219
|
}
|
|
12097
12220
|
function isIdentifierStart(ch, languageVersion) {
|
|
12098
|
-
return ch
|
|
12221
|
+
return isASCIILetter(ch) || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion);
|
|
12099
12222
|
}
|
|
12100
12223
|
function isIdentifierPart(ch, languageVersion, identifierVariant) {
|
|
12101
|
-
return ch
|
|
12224
|
+
return isWordCharacter(ch) || ch === 36 /* $ */ || // "-" and ":" are valid in JSX Identifiers
|
|
12102
12225
|
(identifierVariant === 1 /* JSX */ ? ch === 45 /* minus */ || ch === 58 /* colon */ : false) || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion);
|
|
12103
12226
|
}
|
|
12104
12227
|
function isIdentifierText(name, languageVersion, identifierVariant) {
|
|
@@ -12419,7 +12542,9 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
12419
12542
|
result += text.substring(start2, pos);
|
|
12420
12543
|
result += scanEscapeSequence(
|
|
12421
12544
|
/*shouldEmitInvalidEscapeError*/
|
|
12422
|
-
true
|
|
12545
|
+
true,
|
|
12546
|
+
/*isRegularExpression*/
|
|
12547
|
+
false
|
|
12423
12548
|
);
|
|
12424
12549
|
start2 = pos;
|
|
12425
12550
|
continue;
|
|
@@ -12463,7 +12588,11 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
12463
12588
|
}
|
|
12464
12589
|
if (currChar === 92 /* backslash */) {
|
|
12465
12590
|
contents += text.substring(start2, pos);
|
|
12466
|
-
contents += scanEscapeSequence(
|
|
12591
|
+
contents += scanEscapeSequence(
|
|
12592
|
+
shouldEmitInvalidEscapeError,
|
|
12593
|
+
/*isRegularExpression*/
|
|
12594
|
+
false
|
|
12595
|
+
);
|
|
12467
12596
|
start2 = pos;
|
|
12468
12597
|
continue;
|
|
12469
12598
|
}
|
|
@@ -12483,7 +12612,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
12483
12612
|
tokenValue = contents;
|
|
12484
12613
|
return resultingToken;
|
|
12485
12614
|
}
|
|
12486
|
-
function scanEscapeSequence(shouldEmitInvalidEscapeError) {
|
|
12615
|
+
function scanEscapeSequence(shouldEmitInvalidEscapeError, isRegularExpression) {
|
|
12487
12616
|
const start2 = pos;
|
|
12488
12617
|
pos++;
|
|
12489
12618
|
if (pos >= end) {
|
|
@@ -12511,7 +12640,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
12511
12640
|
pos++;
|
|
12512
12641
|
}
|
|
12513
12642
|
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
12514
|
-
if (shouldEmitInvalidEscapeError) {
|
|
12643
|
+
if (isRegularExpression || shouldEmitInvalidEscapeError) {
|
|
12515
12644
|
const code = parseInt(text.substring(start2 + 1, pos), 8);
|
|
12516
12645
|
error2(Diagnostics.Octal_escape_sequences_are_not_allowed_Use_the_syntax_0, start2, pos - start2, "\\x" + code.toString(16).padStart(2, "0"));
|
|
12517
12646
|
return String.fromCharCode(code);
|
|
@@ -12520,7 +12649,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
12520
12649
|
case 56 /* _8 */:
|
|
12521
12650
|
case 57 /* _9 */:
|
|
12522
12651
|
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
12523
|
-
if (shouldEmitInvalidEscapeError) {
|
|
12652
|
+
if (isRegularExpression || shouldEmitInvalidEscapeError) {
|
|
12524
12653
|
error2(Diagnostics.Escape_sequence_0_is_not_allowed, start2, pos - start2, text.substring(start2, pos));
|
|
12525
12654
|
return String.fromCharCode(ch);
|
|
12526
12655
|
}
|
|
@@ -12542,62 +12671,42 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
12542
12671
|
case 34 /* doubleQuote */:
|
|
12543
12672
|
return '"';
|
|
12544
12673
|
case 117 /* u */:
|
|
12545
|
-
if (pos < end && text.charCodeAt(pos) === 123 /* openBrace */) {
|
|
12546
|
-
pos
|
|
12547
|
-
|
|
12548
|
-
1,
|
|
12549
|
-
/*canHaveSeparators*/
|
|
12550
|
-
false
|
|
12551
|
-
);
|
|
12552
|
-
const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;
|
|
12553
|
-
if (escapedValue < 0) {
|
|
12554
|
-
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
12555
|
-
if (shouldEmitInvalidEscapeError) {
|
|
12556
|
-
error2(Diagnostics.Hexadecimal_digit_expected);
|
|
12557
|
-
}
|
|
12558
|
-
return text.substring(start2, pos);
|
|
12559
|
-
}
|
|
12560
|
-
if (!isCodePoint(escapedValue)) {
|
|
12561
|
-
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
12562
|
-
if (shouldEmitInvalidEscapeError) {
|
|
12563
|
-
error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive);
|
|
12564
|
-
}
|
|
12565
|
-
return text.substring(start2, pos);
|
|
12566
|
-
}
|
|
12567
|
-
if (pos >= end) {
|
|
12568
|
-
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
12569
|
-
if (shouldEmitInvalidEscapeError) {
|
|
12570
|
-
error2(Diagnostics.Unexpected_end_of_text);
|
|
12571
|
-
}
|
|
12572
|
-
return text.substring(start2, pos);
|
|
12573
|
-
}
|
|
12574
|
-
if (text.charCodeAt(pos) !== 125 /* closeBrace */) {
|
|
12575
|
-
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
12576
|
-
if (shouldEmitInvalidEscapeError) {
|
|
12577
|
-
error2(Diagnostics.Unterminated_Unicode_escape_sequence);
|
|
12578
|
-
}
|
|
12579
|
-
return text.substring(start2, pos);
|
|
12580
|
-
}
|
|
12581
|
-
pos++;
|
|
12582
|
-
tokenFlags |= 8 /* ExtendedUnicodeEscape */;
|
|
12583
|
-
return utf16EncodeAsString(escapedValue);
|
|
12674
|
+
if ((!isRegularExpression || shouldEmitInvalidEscapeError) && pos < end && text.charCodeAt(pos) === 123 /* openBrace */) {
|
|
12675
|
+
pos -= 2;
|
|
12676
|
+
return scanExtendedUnicodeEscape(isRegularExpression || shouldEmitInvalidEscapeError);
|
|
12584
12677
|
}
|
|
12585
12678
|
for (; pos < start2 + 6; pos++) {
|
|
12586
12679
|
if (!(pos < end && isHexDigit(text.charCodeAt(pos)))) {
|
|
12587
12680
|
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
12588
|
-
if (shouldEmitInvalidEscapeError) {
|
|
12681
|
+
if (isRegularExpression || shouldEmitInvalidEscapeError) {
|
|
12589
12682
|
error2(Diagnostics.Hexadecimal_digit_expected);
|
|
12590
12683
|
}
|
|
12591
12684
|
return text.substring(start2, pos);
|
|
12592
12685
|
}
|
|
12593
12686
|
}
|
|
12594
12687
|
tokenFlags |= 1024 /* UnicodeEscape */;
|
|
12595
|
-
|
|
12688
|
+
const escapedValue = parseInt(text.substring(start2 + 2, pos), 16);
|
|
12689
|
+
const escapedValueString = String.fromCharCode(escapedValue);
|
|
12690
|
+
if (isRegularExpression && shouldEmitInvalidEscapeError && escapedValue >= 55296 && escapedValue <= 56319 && pos + 6 < end && text.substring(pos, pos + 2) === "\\u" && text.charCodeAt(pos + 2) !== 123 /* openBrace */) {
|
|
12691
|
+
const nextStart = pos;
|
|
12692
|
+
let nextPos = pos + 2;
|
|
12693
|
+
for (; nextPos < nextStart + 6; nextPos++) {
|
|
12694
|
+
if (!isHexDigit(text.charCodeAt(pos))) {
|
|
12695
|
+
return escapedValueString;
|
|
12696
|
+
}
|
|
12697
|
+
}
|
|
12698
|
+
const nextEscapedValue = parseInt(text.substring(nextStart + 2, nextPos), 16);
|
|
12699
|
+
if (nextEscapedValue >= 56320 && nextEscapedValue <= 57343) {
|
|
12700
|
+
pos = nextPos;
|
|
12701
|
+
return escapedValueString + String.fromCharCode(nextEscapedValue);
|
|
12702
|
+
}
|
|
12703
|
+
}
|
|
12704
|
+
return escapedValueString;
|
|
12596
12705
|
case 120 /* x */:
|
|
12597
12706
|
for (; pos < start2 + 4; pos++) {
|
|
12598
12707
|
if (!(pos < end && isHexDigit(text.charCodeAt(pos)))) {
|
|
12599
12708
|
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
12600
|
-
if (shouldEmitInvalidEscapeError) {
|
|
12709
|
+
if (isRegularExpression || shouldEmitInvalidEscapeError) {
|
|
12601
12710
|
error2(Diagnostics.Hexadecimal_digit_expected);
|
|
12602
12711
|
}
|
|
12603
12712
|
return text.substring(start2, pos);
|
|
@@ -12614,10 +12723,16 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
12614
12723
|
case 8233 /* paragraphSeparator */:
|
|
12615
12724
|
return "";
|
|
12616
12725
|
default:
|
|
12726
|
+
if (isRegularExpression && (shouldEmitInvalidEscapeError || isIdentifierPart(ch, languageVersion))) {
|
|
12727
|
+
error2(Diagnostics.This_character_cannot_be_escaped_in_a_regular_expression, pos - 2, 2);
|
|
12728
|
+
}
|
|
12617
12729
|
return String.fromCharCode(ch);
|
|
12618
12730
|
}
|
|
12619
12731
|
}
|
|
12620
|
-
function scanExtendedUnicodeEscape() {
|
|
12732
|
+
function scanExtendedUnicodeEscape(shouldEmitInvalidEscapeError) {
|
|
12733
|
+
const start2 = pos;
|
|
12734
|
+
pos += 3;
|
|
12735
|
+
const escapedStart = pos;
|
|
12621
12736
|
const escapedValueString = scanMinimumNumberOfHexDigits(
|
|
12622
12737
|
1,
|
|
12623
12738
|
/*canHaveSeparators*/
|
|
@@ -12626,24 +12741,34 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
12626
12741
|
const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;
|
|
12627
12742
|
let isInvalidExtendedEscape = false;
|
|
12628
12743
|
if (escapedValue < 0) {
|
|
12629
|
-
|
|
12744
|
+
if (shouldEmitInvalidEscapeError) {
|
|
12745
|
+
error2(Diagnostics.Hexadecimal_digit_expected);
|
|
12746
|
+
}
|
|
12630
12747
|
isInvalidExtendedEscape = true;
|
|
12631
12748
|
} else if (escapedValue > 1114111) {
|
|
12632
|
-
|
|
12749
|
+
if (shouldEmitInvalidEscapeError) {
|
|
12750
|
+
error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive, escapedStart, pos - escapedStart);
|
|
12751
|
+
}
|
|
12633
12752
|
isInvalidExtendedEscape = true;
|
|
12634
12753
|
}
|
|
12635
12754
|
if (pos >= end) {
|
|
12636
|
-
|
|
12755
|
+
if (shouldEmitInvalidEscapeError) {
|
|
12756
|
+
error2(Diagnostics.Unexpected_end_of_text);
|
|
12757
|
+
}
|
|
12637
12758
|
isInvalidExtendedEscape = true;
|
|
12638
12759
|
} else if (text.charCodeAt(pos) === 125 /* closeBrace */) {
|
|
12639
12760
|
pos++;
|
|
12640
12761
|
} else {
|
|
12641
|
-
|
|
12762
|
+
if (shouldEmitInvalidEscapeError) {
|
|
12763
|
+
error2(Diagnostics.Unterminated_Unicode_escape_sequence);
|
|
12764
|
+
}
|
|
12642
12765
|
isInvalidExtendedEscape = true;
|
|
12643
12766
|
}
|
|
12644
12767
|
if (isInvalidExtendedEscape) {
|
|
12645
|
-
|
|
12768
|
+
tokenFlags |= 2048 /* ContainsInvalidEscape */;
|
|
12769
|
+
return text.substring(start2, pos);
|
|
12646
12770
|
}
|
|
12771
|
+
tokenFlags |= 8 /* ExtendedUnicodeEscape */;
|
|
12647
12772
|
return utf16EncodeAsString(escapedValue);
|
|
12648
12773
|
}
|
|
12649
12774
|
function peekUnicodeEscape() {
|
|
@@ -12685,9 +12810,10 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
12685
12810
|
} else if (ch === 92 /* backslash */) {
|
|
12686
12811
|
ch = peekExtendedUnicodeEscape();
|
|
12687
12812
|
if (ch >= 0 && isIdentifierPart(ch, languageVersion)) {
|
|
12688
|
-
|
|
12689
|
-
|
|
12690
|
-
|
|
12813
|
+
result += scanExtendedUnicodeEscape(
|
|
12814
|
+
/*shouldEmitInvalidEscapeError*/
|
|
12815
|
+
true
|
|
12816
|
+
);
|
|
12691
12817
|
start2 = pos;
|
|
12692
12818
|
continue;
|
|
12693
12819
|
}
|
|
@@ -13152,9 +13278,10 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
13152
13278
|
case 92 /* backslash */:
|
|
13153
13279
|
const extendedCookedChar = peekExtendedUnicodeEscape();
|
|
13154
13280
|
if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {
|
|
13155
|
-
|
|
13156
|
-
|
|
13157
|
-
|
|
13281
|
+
tokenValue = scanExtendedUnicodeEscape(
|
|
13282
|
+
/*shouldEmitInvalidEscapeError*/
|
|
13283
|
+
true
|
|
13284
|
+
) + scanIdentifierParts();
|
|
13158
13285
|
return token = getIdentifierToken();
|
|
13159
13286
|
}
|
|
13160
13287
|
const cookedChar = peekUnicodeEscape();
|
|
@@ -13169,7 +13296,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
13169
13296
|
return token = 0 /* Unknown */;
|
|
13170
13297
|
case 35 /* hash */:
|
|
13171
13298
|
if (pos !== 0 && text[pos + 1] === "!") {
|
|
13172
|
-
error2(Diagnostics.can_only_be_used_at_the_start_of_a_file);
|
|
13299
|
+
error2(Diagnostics.can_only_be_used_at_the_start_of_a_file, pos, 2);
|
|
13173
13300
|
pos++;
|
|
13174
13301
|
return token = 0 /* Unknown */;
|
|
13175
13302
|
}
|
|
@@ -13178,9 +13305,10 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
13178
13305
|
pos++;
|
|
13179
13306
|
const extendedCookedChar2 = peekExtendedUnicodeEscape();
|
|
13180
13307
|
if (extendedCookedChar2 >= 0 && isIdentifierStart(extendedCookedChar2, languageVersion)) {
|
|
13181
|
-
|
|
13182
|
-
|
|
13183
|
-
|
|
13308
|
+
tokenValue = "#" + scanExtendedUnicodeEscape(
|
|
13309
|
+
/*shouldEmitInvalidEscapeError*/
|
|
13310
|
+
true
|
|
13311
|
+
) + scanIdentifierParts();
|
|
13184
13312
|
return token = 81 /* PrivateIdentifier */;
|
|
13185
13313
|
}
|
|
13186
13314
|
const cookedChar2 = peekUnicodeEscape();
|
|
@@ -13321,14 +13449,841 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
13321
13449
|
}
|
|
13322
13450
|
p++;
|
|
13323
13451
|
}
|
|
13324
|
-
|
|
13452
|
+
const isUnterminated = !!(tokenFlags & 4 /* Unterminated */);
|
|
13453
|
+
const endOfBody = p - (isUnterminated ? 0 : 1);
|
|
13454
|
+
let regExpFlags = 0 /* None */;
|
|
13455
|
+
while (p < end) {
|
|
13456
|
+
const ch = text.charCodeAt(p);
|
|
13457
|
+
if (!isIdentifierPart(ch, languageVersion)) {
|
|
13458
|
+
break;
|
|
13459
|
+
}
|
|
13460
|
+
const flag = characterToRegularExpressionFlag(String.fromCharCode(ch));
|
|
13461
|
+
if (flag === void 0) {
|
|
13462
|
+
error2(Diagnostics.Unknown_regular_expression_flag, p, 1);
|
|
13463
|
+
} else if (regExpFlags & flag) {
|
|
13464
|
+
error2(Diagnostics.Duplicate_regular_expression_flag, p, 1);
|
|
13465
|
+
} else if (((regExpFlags | flag) & 96 /* UnicodeMode */) === 96 /* UnicodeMode */) {
|
|
13466
|
+
error2(Diagnostics.The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously, p, 1);
|
|
13467
|
+
} else {
|
|
13468
|
+
regExpFlags |= flag;
|
|
13469
|
+
const availableFrom = regExpFlagToFirstAvailableLanguageVersion.get(flag);
|
|
13470
|
+
if (languageVersion < availableFrom) {
|
|
13471
|
+
error2(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, p, 1, getNameOfScriptTarget(availableFrom));
|
|
13472
|
+
}
|
|
13473
|
+
}
|
|
13325
13474
|
p++;
|
|
13326
13475
|
}
|
|
13327
|
-
pos =
|
|
13476
|
+
pos = tokenStart + 1;
|
|
13477
|
+
const saveTokenPos = tokenStart;
|
|
13478
|
+
const saveTokenFlags = tokenFlags;
|
|
13479
|
+
scanRegularExpressionWorker(text, endOfBody, regExpFlags, isUnterminated);
|
|
13480
|
+
if (!isUnterminated) {
|
|
13481
|
+
pos = p;
|
|
13482
|
+
}
|
|
13483
|
+
tokenStart = saveTokenPos;
|
|
13484
|
+
tokenFlags = saveTokenFlags;
|
|
13328
13485
|
tokenValue = text.substring(tokenStart, pos);
|
|
13329
13486
|
token = 14 /* RegularExpressionLiteral */;
|
|
13330
13487
|
}
|
|
13331
13488
|
return token;
|
|
13489
|
+
function scanRegularExpressionWorker(text2, end2, regExpFlags, isUnterminated) {
|
|
13490
|
+
const unicodeMode = !!(regExpFlags & 96 /* UnicodeMode */);
|
|
13491
|
+
const unicodeSetsMode = !!(regExpFlags & 64 /* UnicodeSets */);
|
|
13492
|
+
let mayContainStrings = false;
|
|
13493
|
+
let numberOfCapturingGroups = 0;
|
|
13494
|
+
const groupSpecifiers = /* @__PURE__ */ new Set();
|
|
13495
|
+
const groupNameReferences = [];
|
|
13496
|
+
const decimalEscapes = [];
|
|
13497
|
+
const namedCapturingGroups = [];
|
|
13498
|
+
function scanDisjunction(isInGroup) {
|
|
13499
|
+
while (true) {
|
|
13500
|
+
namedCapturingGroups.push(/* @__PURE__ */ new Set());
|
|
13501
|
+
scanAlternative(isInGroup);
|
|
13502
|
+
namedCapturingGroups.pop();
|
|
13503
|
+
if (text2.charCodeAt(pos) !== 124 /* bar */) {
|
|
13504
|
+
return;
|
|
13505
|
+
}
|
|
13506
|
+
pos++;
|
|
13507
|
+
}
|
|
13508
|
+
}
|
|
13509
|
+
function scanAlternative(isInGroup) {
|
|
13510
|
+
let isPreviousTermQuantifiable = false;
|
|
13511
|
+
while (pos < end2) {
|
|
13512
|
+
const start2 = pos;
|
|
13513
|
+
const ch = text2.charCodeAt(pos);
|
|
13514
|
+
switch (ch) {
|
|
13515
|
+
case 94 /* caret */:
|
|
13516
|
+
case 36 /* $ */:
|
|
13517
|
+
pos++;
|
|
13518
|
+
isPreviousTermQuantifiable = false;
|
|
13519
|
+
break;
|
|
13520
|
+
case 92 /* backslash */:
|
|
13521
|
+
pos++;
|
|
13522
|
+
switch (text2.charCodeAt(pos)) {
|
|
13523
|
+
case 98 /* b */:
|
|
13524
|
+
case 66 /* B */:
|
|
13525
|
+
pos++;
|
|
13526
|
+
isPreviousTermQuantifiable = false;
|
|
13527
|
+
break;
|
|
13528
|
+
default:
|
|
13529
|
+
scanAtomEscape();
|
|
13530
|
+
isPreviousTermQuantifiable = true;
|
|
13531
|
+
break;
|
|
13532
|
+
}
|
|
13533
|
+
break;
|
|
13534
|
+
case 40 /* openParen */:
|
|
13535
|
+
pos++;
|
|
13536
|
+
if (text2.charCodeAt(pos) === 63 /* question */) {
|
|
13537
|
+
pos++;
|
|
13538
|
+
switch (text2.charCodeAt(pos)) {
|
|
13539
|
+
case 61 /* equals */:
|
|
13540
|
+
case 33 /* exclamation */:
|
|
13541
|
+
pos++;
|
|
13542
|
+
isPreviousTermQuantifiable = false;
|
|
13543
|
+
break;
|
|
13544
|
+
case 60 /* lessThan */:
|
|
13545
|
+
const groupNameStart = pos;
|
|
13546
|
+
pos++;
|
|
13547
|
+
switch (text2.charCodeAt(pos)) {
|
|
13548
|
+
case 61 /* equals */:
|
|
13549
|
+
case 33 /* exclamation */:
|
|
13550
|
+
pos++;
|
|
13551
|
+
isPreviousTermQuantifiable = false;
|
|
13552
|
+
break;
|
|
13553
|
+
default:
|
|
13554
|
+
scanGroupName(
|
|
13555
|
+
/*isReference*/
|
|
13556
|
+
false
|
|
13557
|
+
);
|
|
13558
|
+
scanExpectedChar(62 /* greaterThan */);
|
|
13559
|
+
if (languageVersion < 5 /* ES2018 */) {
|
|
13560
|
+
error2(Diagnostics.Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later, groupNameStart, pos - groupNameStart);
|
|
13561
|
+
}
|
|
13562
|
+
numberOfCapturingGroups++;
|
|
13563
|
+
isPreviousTermQuantifiable = true;
|
|
13564
|
+
break;
|
|
13565
|
+
}
|
|
13566
|
+
break;
|
|
13567
|
+
default:
|
|
13568
|
+
const start3 = pos;
|
|
13569
|
+
const setFlags = scanPatternModifiers(0 /* None */);
|
|
13570
|
+
if (text2.charCodeAt(pos) === 45 /* minus */) {
|
|
13571
|
+
pos++;
|
|
13572
|
+
scanPatternModifiers(setFlags);
|
|
13573
|
+
if (pos === start3 + 1) {
|
|
13574
|
+
error2(Diagnostics.Subpattern_flags_must_be_present_when_there_is_a_minus_sign, start3, pos - start3);
|
|
13575
|
+
}
|
|
13576
|
+
}
|
|
13577
|
+
scanExpectedChar(58 /* colon */);
|
|
13578
|
+
isPreviousTermQuantifiable = true;
|
|
13579
|
+
break;
|
|
13580
|
+
}
|
|
13581
|
+
} else {
|
|
13582
|
+
numberOfCapturingGroups++;
|
|
13583
|
+
isPreviousTermQuantifiable = true;
|
|
13584
|
+
}
|
|
13585
|
+
scanDisjunction(
|
|
13586
|
+
/*isInGroup*/
|
|
13587
|
+
true
|
|
13588
|
+
);
|
|
13589
|
+
scanExpectedChar(41 /* closeParen */);
|
|
13590
|
+
break;
|
|
13591
|
+
case 123 /* openBrace */:
|
|
13592
|
+
pos++;
|
|
13593
|
+
const digitsStart = pos;
|
|
13594
|
+
scanDigits();
|
|
13595
|
+
const min2 = tokenValue;
|
|
13596
|
+
if (text2.charCodeAt(pos) === 44 /* comma */) {
|
|
13597
|
+
pos++;
|
|
13598
|
+
scanDigits();
|
|
13599
|
+
const max = tokenValue;
|
|
13600
|
+
if (!min2) {
|
|
13601
|
+
if (max || text2.charCodeAt(pos) === 125 /* closeBrace */) {
|
|
13602
|
+
error2(Diagnostics.Incomplete_quantifier_Digit_expected, digitsStart, 0);
|
|
13603
|
+
} else {
|
|
13604
|
+
if (unicodeMode) {
|
|
13605
|
+
error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, start2, 1, String.fromCharCode(ch));
|
|
13606
|
+
}
|
|
13607
|
+
isPreviousTermQuantifiable = true;
|
|
13608
|
+
break;
|
|
13609
|
+
}
|
|
13610
|
+
}
|
|
13611
|
+
if (max && Number.parseInt(min2) > Number.parseInt(max)) {
|
|
13612
|
+
error2(Diagnostics.Numbers_out_of_order_in_quantifier, digitsStart, pos - digitsStart);
|
|
13613
|
+
}
|
|
13614
|
+
} else if (!min2) {
|
|
13615
|
+
if (unicodeMode) {
|
|
13616
|
+
error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, start2, 1, String.fromCharCode(ch));
|
|
13617
|
+
}
|
|
13618
|
+
isPreviousTermQuantifiable = true;
|
|
13619
|
+
break;
|
|
13620
|
+
}
|
|
13621
|
+
scanExpectedChar(125 /* closeBrace */);
|
|
13622
|
+
pos--;
|
|
13623
|
+
case 42 /* asterisk */:
|
|
13624
|
+
case 43 /* plus */:
|
|
13625
|
+
case 63 /* question */:
|
|
13626
|
+
pos++;
|
|
13627
|
+
if (text2.charCodeAt(pos) === 63 /* question */) {
|
|
13628
|
+
pos++;
|
|
13629
|
+
}
|
|
13630
|
+
if (!isPreviousTermQuantifiable) {
|
|
13631
|
+
error2(Diagnostics.There_is_nothing_available_for_repetition, start2, pos - start2);
|
|
13632
|
+
}
|
|
13633
|
+
isPreviousTermQuantifiable = false;
|
|
13634
|
+
break;
|
|
13635
|
+
case 46 /* dot */:
|
|
13636
|
+
pos++;
|
|
13637
|
+
isPreviousTermQuantifiable = true;
|
|
13638
|
+
break;
|
|
13639
|
+
case 91 /* openBracket */:
|
|
13640
|
+
pos++;
|
|
13641
|
+
if (unicodeSetsMode) {
|
|
13642
|
+
scanClassSetExpression();
|
|
13643
|
+
} else {
|
|
13644
|
+
scanClassRanges();
|
|
13645
|
+
}
|
|
13646
|
+
scanExpectedChar(93 /* closeBracket */);
|
|
13647
|
+
isPreviousTermQuantifiable = true;
|
|
13648
|
+
break;
|
|
13649
|
+
case 41 /* closeParen */:
|
|
13650
|
+
if (isInGroup) {
|
|
13651
|
+
return;
|
|
13652
|
+
}
|
|
13653
|
+
case 93 /* closeBracket */:
|
|
13654
|
+
case 125 /* closeBrace */:
|
|
13655
|
+
if (isUnterminated && !isInGroup) {
|
|
13656
|
+
return;
|
|
13657
|
+
}
|
|
13658
|
+
if (unicodeMode || ch === 41 /* closeParen */) {
|
|
13659
|
+
error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
|
|
13660
|
+
}
|
|
13661
|
+
pos++;
|
|
13662
|
+
isPreviousTermQuantifiable = true;
|
|
13663
|
+
break;
|
|
13664
|
+
case 47 /* slash */:
|
|
13665
|
+
case 124 /* bar */:
|
|
13666
|
+
return;
|
|
13667
|
+
default:
|
|
13668
|
+
scanSourceCharacter();
|
|
13669
|
+
isPreviousTermQuantifiable = true;
|
|
13670
|
+
break;
|
|
13671
|
+
}
|
|
13672
|
+
}
|
|
13673
|
+
}
|
|
13674
|
+
function scanPatternModifiers(currFlags) {
|
|
13675
|
+
while (pos < end2) {
|
|
13676
|
+
const ch = text2.charCodeAt(pos);
|
|
13677
|
+
if (!isIdentifierPart(ch, languageVersion)) {
|
|
13678
|
+
break;
|
|
13679
|
+
}
|
|
13680
|
+
const flag = characterToRegularExpressionFlag(String.fromCharCode(ch));
|
|
13681
|
+
if (flag === void 0) {
|
|
13682
|
+
error2(Diagnostics.Unknown_regular_expression_flag, pos, 1);
|
|
13683
|
+
} else if (currFlags & flag) {
|
|
13684
|
+
error2(Diagnostics.Duplicate_regular_expression_flag, pos, 1);
|
|
13685
|
+
} else if (!(flag & 28 /* Modifiers */)) {
|
|
13686
|
+
error2(Diagnostics.This_regular_expression_flag_cannot_be_toggled_within_a_subpattern, pos, 1);
|
|
13687
|
+
} else {
|
|
13688
|
+
currFlags |= flag;
|
|
13689
|
+
const availableFrom = regExpFlagToFirstAvailableLanguageVersion.get(flag);
|
|
13690
|
+
if (languageVersion < availableFrom) {
|
|
13691
|
+
error2(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, pos, 1, getNameOfScriptTarget(availableFrom));
|
|
13692
|
+
}
|
|
13693
|
+
}
|
|
13694
|
+
pos++;
|
|
13695
|
+
}
|
|
13696
|
+
return currFlags;
|
|
13697
|
+
}
|
|
13698
|
+
function scanAtomEscape() {
|
|
13699
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
|
|
13700
|
+
switch (text2.charCodeAt(pos)) {
|
|
13701
|
+
case 107 /* k */:
|
|
13702
|
+
pos++;
|
|
13703
|
+
if (text2.charCodeAt(pos) === 60 /* lessThan */) {
|
|
13704
|
+
pos++;
|
|
13705
|
+
scanGroupName(
|
|
13706
|
+
/*isReference*/
|
|
13707
|
+
true
|
|
13708
|
+
);
|
|
13709
|
+
scanExpectedChar(62 /* greaterThan */);
|
|
13710
|
+
} else if (unicodeMode) {
|
|
13711
|
+
error2(Diagnostics.k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets, pos - 2, 2);
|
|
13712
|
+
}
|
|
13713
|
+
break;
|
|
13714
|
+
case 113 /* q */:
|
|
13715
|
+
if (unicodeSetsMode) {
|
|
13716
|
+
pos++;
|
|
13717
|
+
error2(Diagnostics.q_is_only_available_inside_character_class, pos - 2, 2);
|
|
13718
|
+
break;
|
|
13719
|
+
}
|
|
13720
|
+
default:
|
|
13721
|
+
Debug.assert(scanCharacterClassEscape() || scanDecimalEscape() || scanCharacterEscape());
|
|
13722
|
+
break;
|
|
13723
|
+
}
|
|
13724
|
+
}
|
|
13725
|
+
function scanDecimalEscape() {
|
|
13726
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
|
|
13727
|
+
const ch = text2.charCodeAt(pos);
|
|
13728
|
+
if (ch >= 49 /* _1 */ && ch <= 57 /* _9 */) {
|
|
13729
|
+
const start2 = pos;
|
|
13730
|
+
scanDigits();
|
|
13731
|
+
decimalEscapes.push({ pos: start2, end: pos, value: +tokenValue });
|
|
13732
|
+
return true;
|
|
13733
|
+
}
|
|
13734
|
+
return false;
|
|
13735
|
+
}
|
|
13736
|
+
function scanCharacterEscape() {
|
|
13737
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
|
|
13738
|
+
let ch = text2.charCodeAt(pos);
|
|
13739
|
+
switch (ch) {
|
|
13740
|
+
case 99 /* c */:
|
|
13741
|
+
pos++;
|
|
13742
|
+
ch = text2.charCodeAt(pos);
|
|
13743
|
+
if (isASCIILetter(ch)) {
|
|
13744
|
+
pos++;
|
|
13745
|
+
return String.fromCharCode(ch & 31);
|
|
13746
|
+
}
|
|
13747
|
+
if (unicodeMode) {
|
|
13748
|
+
error2(Diagnostics.c_must_be_followed_by_an_ASCII_letter, pos - 2, 2);
|
|
13749
|
+
}
|
|
13750
|
+
return String.fromCharCode(ch);
|
|
13751
|
+
case 94 /* caret */:
|
|
13752
|
+
case 36 /* $ */:
|
|
13753
|
+
case 47 /* slash */:
|
|
13754
|
+
case 92 /* backslash */:
|
|
13755
|
+
case 46 /* dot */:
|
|
13756
|
+
case 42 /* asterisk */:
|
|
13757
|
+
case 43 /* plus */:
|
|
13758
|
+
case 63 /* question */:
|
|
13759
|
+
case 40 /* openParen */:
|
|
13760
|
+
case 41 /* closeParen */:
|
|
13761
|
+
case 91 /* openBracket */:
|
|
13762
|
+
case 93 /* closeBracket */:
|
|
13763
|
+
case 123 /* openBrace */:
|
|
13764
|
+
case 125 /* closeBrace */:
|
|
13765
|
+
case 124 /* bar */:
|
|
13766
|
+
pos++;
|
|
13767
|
+
return String.fromCharCode(ch);
|
|
13768
|
+
default:
|
|
13769
|
+
if (pos >= end2) {
|
|
13770
|
+
error2(Diagnostics.Undetermined_character_escape, pos - 1, 1, ch);
|
|
13771
|
+
return "\\";
|
|
13772
|
+
}
|
|
13773
|
+
pos--;
|
|
13774
|
+
return scanEscapeSequence(
|
|
13775
|
+
/*shouldEmitInvalidEscapeError*/
|
|
13776
|
+
unicodeMode,
|
|
13777
|
+
/*isRegularExpression*/
|
|
13778
|
+
true
|
|
13779
|
+
);
|
|
13780
|
+
}
|
|
13781
|
+
}
|
|
13782
|
+
function scanGroupName(isReference) {
|
|
13783
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 60 /* lessThan */);
|
|
13784
|
+
tokenStart = pos;
|
|
13785
|
+
scanIdentifier(codePointAt(text2, pos), languageVersion);
|
|
13786
|
+
if (pos === tokenStart) {
|
|
13787
|
+
error2(Diagnostics.Expected_a_capturing_group_name);
|
|
13788
|
+
} else if (isReference) {
|
|
13789
|
+
groupNameReferences.push({ pos: tokenStart, end: pos, name: tokenValue });
|
|
13790
|
+
} else if (namedCapturingGroups.some((group2) => group2.has(tokenValue))) {
|
|
13791
|
+
error2(Diagnostics.Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other, tokenStart, pos - tokenStart);
|
|
13792
|
+
} else {
|
|
13793
|
+
last(namedCapturingGroups).add(tokenValue);
|
|
13794
|
+
groupSpecifiers.add(tokenValue);
|
|
13795
|
+
}
|
|
13796
|
+
}
|
|
13797
|
+
function isClassContentExit(ch) {
|
|
13798
|
+
return ch === 93 /* closeBracket */ || pos >= end2;
|
|
13799
|
+
}
|
|
13800
|
+
function scanClassRanges() {
|
|
13801
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 91 /* openBracket */);
|
|
13802
|
+
if (text2.charCodeAt(pos) === 94 /* caret */) {
|
|
13803
|
+
pos++;
|
|
13804
|
+
}
|
|
13805
|
+
while (pos < end2) {
|
|
13806
|
+
const ch = text2.charCodeAt(pos);
|
|
13807
|
+
if (isClassContentExit(ch)) {
|
|
13808
|
+
return;
|
|
13809
|
+
}
|
|
13810
|
+
const minStart = pos;
|
|
13811
|
+
const minCharacter = scanClassAtom();
|
|
13812
|
+
if (text2.charCodeAt(pos) === 45 /* minus */) {
|
|
13813
|
+
pos++;
|
|
13814
|
+
const ch2 = text2.charCodeAt(pos);
|
|
13815
|
+
if (isClassContentExit(ch2)) {
|
|
13816
|
+
return;
|
|
13817
|
+
}
|
|
13818
|
+
if (!minCharacter) {
|
|
13819
|
+
error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, minStart, pos - 1 - minStart);
|
|
13820
|
+
}
|
|
13821
|
+
const maxStart = pos;
|
|
13822
|
+
const maxCharacter = scanClassAtom();
|
|
13823
|
+
if (!maxCharacter) {
|
|
13824
|
+
error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, maxStart, pos - maxStart);
|
|
13825
|
+
continue;
|
|
13826
|
+
}
|
|
13827
|
+
if (!minCharacter) {
|
|
13828
|
+
continue;
|
|
13829
|
+
}
|
|
13830
|
+
const minCharacterValue = codePointAt(minCharacter, 0);
|
|
13831
|
+
const maxCharacterValue = codePointAt(maxCharacter, 0);
|
|
13832
|
+
if (minCharacter.length === charSize(minCharacterValue) && maxCharacter.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {
|
|
13833
|
+
error2(Diagnostics.Range_out_of_order_in_character_class, minStart, pos - minStart);
|
|
13834
|
+
}
|
|
13835
|
+
}
|
|
13836
|
+
}
|
|
13837
|
+
}
|
|
13838
|
+
function scanClassSetExpression() {
|
|
13839
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 91 /* openBracket */);
|
|
13840
|
+
let isCharacterComplement = false;
|
|
13841
|
+
if (text2.charCodeAt(pos) === 94 /* caret */) {
|
|
13842
|
+
pos++;
|
|
13843
|
+
isCharacterComplement = true;
|
|
13844
|
+
}
|
|
13845
|
+
let expressionMayContainStrings = false;
|
|
13846
|
+
let ch = text2.charCodeAt(pos);
|
|
13847
|
+
if (isClassContentExit(ch)) {
|
|
13848
|
+
return;
|
|
13849
|
+
}
|
|
13850
|
+
let start2 = pos;
|
|
13851
|
+
let oprand;
|
|
13852
|
+
switch (text2.slice(pos, pos + 2)) {
|
|
13853
|
+
case "--":
|
|
13854
|
+
case "&&":
|
|
13855
|
+
error2(Diagnostics.Expected_a_class_set_oprand);
|
|
13856
|
+
mayContainStrings = false;
|
|
13857
|
+
break;
|
|
13858
|
+
default:
|
|
13859
|
+
oprand = scanClassSetOprand();
|
|
13860
|
+
break;
|
|
13861
|
+
}
|
|
13862
|
+
switch (text2.charCodeAt(pos)) {
|
|
13863
|
+
case 45 /* minus */:
|
|
13864
|
+
if (text2.charCodeAt(pos + 1) === 45 /* minus */) {
|
|
13865
|
+
if (isCharacterComplement && mayContainStrings) {
|
|
13866
|
+
error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);
|
|
13867
|
+
}
|
|
13868
|
+
expressionMayContainStrings = mayContainStrings;
|
|
13869
|
+
scanClassSetSubExpression(3 /* ClassSubtraction */);
|
|
13870
|
+
mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
|
|
13871
|
+
return;
|
|
13872
|
+
}
|
|
13873
|
+
break;
|
|
13874
|
+
case 38 /* ampersand */:
|
|
13875
|
+
if (text2.charCodeAt(pos + 1) === 38 /* ampersand */) {
|
|
13876
|
+
scanClassSetSubExpression(2 /* ClassIntersection */);
|
|
13877
|
+
if (isCharacterComplement && mayContainStrings) {
|
|
13878
|
+
error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);
|
|
13879
|
+
}
|
|
13880
|
+
expressionMayContainStrings = mayContainStrings;
|
|
13881
|
+
mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
|
|
13882
|
+
return;
|
|
13883
|
+
} else {
|
|
13884
|
+
error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
|
|
13885
|
+
}
|
|
13886
|
+
break;
|
|
13887
|
+
default:
|
|
13888
|
+
if (isCharacterComplement && mayContainStrings) {
|
|
13889
|
+
error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);
|
|
13890
|
+
}
|
|
13891
|
+
expressionMayContainStrings = mayContainStrings;
|
|
13892
|
+
break;
|
|
13893
|
+
}
|
|
13894
|
+
while (pos < end2) {
|
|
13895
|
+
ch = text2.charCodeAt(pos);
|
|
13896
|
+
switch (ch) {
|
|
13897
|
+
case 45 /* minus */:
|
|
13898
|
+
pos++;
|
|
13899
|
+
ch = text2.charCodeAt(pos);
|
|
13900
|
+
if (isClassContentExit(ch)) {
|
|
13901
|
+
mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
|
|
13902
|
+
return;
|
|
13903
|
+
}
|
|
13904
|
+
if (ch === 45 /* minus */) {
|
|
13905
|
+
pos++;
|
|
13906
|
+
error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
|
|
13907
|
+
start2 = pos - 2;
|
|
13908
|
+
oprand = text2.slice(start2, pos);
|
|
13909
|
+
continue;
|
|
13910
|
+
} else {
|
|
13911
|
+
if (!oprand) {
|
|
13912
|
+
error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, start2, pos - 1 - start2);
|
|
13913
|
+
}
|
|
13914
|
+
const secondStart = pos;
|
|
13915
|
+
const secondOprand = scanClassSetOprand();
|
|
13916
|
+
if (isCharacterComplement && mayContainStrings) {
|
|
13917
|
+
error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, secondStart, pos - secondStart);
|
|
13918
|
+
}
|
|
13919
|
+
expressionMayContainStrings || (expressionMayContainStrings = mayContainStrings);
|
|
13920
|
+
if (!secondOprand) {
|
|
13921
|
+
error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, secondStart, pos - secondStart);
|
|
13922
|
+
break;
|
|
13923
|
+
}
|
|
13924
|
+
if (!oprand) {
|
|
13925
|
+
break;
|
|
13926
|
+
}
|
|
13927
|
+
const minCharacterValue = codePointAt(oprand, 0);
|
|
13928
|
+
const maxCharacterValue = codePointAt(secondOprand, 0);
|
|
13929
|
+
if (oprand.length === charSize(minCharacterValue) && secondOprand.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {
|
|
13930
|
+
error2(Diagnostics.Range_out_of_order_in_character_class, start2, pos - start2);
|
|
13931
|
+
}
|
|
13932
|
+
}
|
|
13933
|
+
break;
|
|
13934
|
+
case 38 /* ampersand */:
|
|
13935
|
+
start2 = pos;
|
|
13936
|
+
pos++;
|
|
13937
|
+
if (text2.charCodeAt(pos) === 38 /* ampersand */) {
|
|
13938
|
+
pos++;
|
|
13939
|
+
error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
|
|
13940
|
+
if (text2.charCodeAt(pos) === 38 /* ampersand */) {
|
|
13941
|
+
error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
|
|
13942
|
+
pos++;
|
|
13943
|
+
}
|
|
13944
|
+
} else {
|
|
13945
|
+
error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));
|
|
13946
|
+
}
|
|
13947
|
+
oprand = text2.slice(start2, pos);
|
|
13948
|
+
continue;
|
|
13949
|
+
}
|
|
13950
|
+
if (isClassContentExit(text2.charCodeAt(pos))) {
|
|
13951
|
+
break;
|
|
13952
|
+
}
|
|
13953
|
+
start2 = pos;
|
|
13954
|
+
switch (text2.slice(pos, pos + 2)) {
|
|
13955
|
+
case "--":
|
|
13956
|
+
case "&&":
|
|
13957
|
+
error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos, 2);
|
|
13958
|
+
pos += 2;
|
|
13959
|
+
oprand = text2.slice(start2, pos);
|
|
13960
|
+
break;
|
|
13961
|
+
default:
|
|
13962
|
+
oprand = scanClassSetOprand();
|
|
13963
|
+
break;
|
|
13964
|
+
}
|
|
13965
|
+
}
|
|
13966
|
+
mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
|
|
13967
|
+
}
|
|
13968
|
+
function scanClassSetSubExpression(expressionType) {
|
|
13969
|
+
let expressionMayContainStrings = mayContainStrings;
|
|
13970
|
+
while (pos < end2) {
|
|
13971
|
+
let ch = text2.charCodeAt(pos);
|
|
13972
|
+
if (isClassContentExit(ch)) {
|
|
13973
|
+
break;
|
|
13974
|
+
}
|
|
13975
|
+
switch (ch) {
|
|
13976
|
+
case 45 /* minus */:
|
|
13977
|
+
pos++;
|
|
13978
|
+
if (text2.charCodeAt(pos) === 45 /* minus */) {
|
|
13979
|
+
pos++;
|
|
13980
|
+
if (expressionType !== 3 /* ClassSubtraction */) {
|
|
13981
|
+
error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
|
|
13982
|
+
}
|
|
13983
|
+
} else {
|
|
13984
|
+
error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 1, 1);
|
|
13985
|
+
}
|
|
13986
|
+
break;
|
|
13987
|
+
case 38 /* ampersand */:
|
|
13988
|
+
pos++;
|
|
13989
|
+
if (text2.charCodeAt(pos) === 38 /* ampersand */) {
|
|
13990
|
+
pos++;
|
|
13991
|
+
if (expressionType !== 2 /* ClassIntersection */) {
|
|
13992
|
+
error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
|
|
13993
|
+
}
|
|
13994
|
+
if (text2.charCodeAt(pos) === 38 /* ampersand */) {
|
|
13995
|
+
error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
|
|
13996
|
+
pos++;
|
|
13997
|
+
}
|
|
13998
|
+
} else {
|
|
13999
|
+
error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));
|
|
14000
|
+
}
|
|
14001
|
+
break;
|
|
14002
|
+
default:
|
|
14003
|
+
switch (expressionType) {
|
|
14004
|
+
case 3 /* ClassSubtraction */:
|
|
14005
|
+
error2(Diagnostics._0_expected, pos, 0, "--");
|
|
14006
|
+
break;
|
|
14007
|
+
case 2 /* ClassIntersection */:
|
|
14008
|
+
error2(Diagnostics._0_expected, pos, 0, "&&");
|
|
14009
|
+
break;
|
|
14010
|
+
default:
|
|
14011
|
+
break;
|
|
14012
|
+
}
|
|
14013
|
+
break;
|
|
14014
|
+
}
|
|
14015
|
+
ch = text2.charCodeAt(pos);
|
|
14016
|
+
if (isClassContentExit(ch)) {
|
|
14017
|
+
error2(Diagnostics.Expected_a_class_set_oprand);
|
|
14018
|
+
break;
|
|
14019
|
+
}
|
|
14020
|
+
scanClassSetOprand();
|
|
14021
|
+
expressionMayContainStrings && (expressionMayContainStrings = mayContainStrings);
|
|
14022
|
+
}
|
|
14023
|
+
mayContainStrings = expressionMayContainStrings;
|
|
14024
|
+
}
|
|
14025
|
+
function scanClassSetOprand() {
|
|
14026
|
+
mayContainStrings = false;
|
|
14027
|
+
switch (text2.charCodeAt(pos)) {
|
|
14028
|
+
case 91 /* openBracket */:
|
|
14029
|
+
pos++;
|
|
14030
|
+
scanClassSetExpression();
|
|
14031
|
+
scanExpectedChar(93 /* closeBracket */);
|
|
14032
|
+
return "";
|
|
14033
|
+
case 92 /* backslash */:
|
|
14034
|
+
pos++;
|
|
14035
|
+
if (scanCharacterClassEscape()) {
|
|
14036
|
+
return "";
|
|
14037
|
+
} else if (text2.charCodeAt(pos) === 113 /* q */) {
|
|
14038
|
+
pos++;
|
|
14039
|
+
if (text2.charCodeAt(pos) === 123 /* openBrace */) {
|
|
14040
|
+
pos++;
|
|
14041
|
+
scanClassStringDisjunctionContents();
|
|
14042
|
+
scanExpectedChar(125 /* closeBrace */);
|
|
14043
|
+
return "";
|
|
14044
|
+
} else {
|
|
14045
|
+
error2(Diagnostics.q_must_be_followed_by_string_alternatives_enclosed_in_braces, pos - 2, 2);
|
|
14046
|
+
return "q";
|
|
14047
|
+
}
|
|
14048
|
+
}
|
|
14049
|
+
pos--;
|
|
14050
|
+
default:
|
|
14051
|
+
return scanClassSetCharacter();
|
|
14052
|
+
}
|
|
14053
|
+
}
|
|
14054
|
+
function scanClassStringDisjunctionContents() {
|
|
14055
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 123 /* openBrace */);
|
|
14056
|
+
let characterCount = 0;
|
|
14057
|
+
while (pos < end2) {
|
|
14058
|
+
const ch = text2.charCodeAt(pos);
|
|
14059
|
+
switch (ch) {
|
|
14060
|
+
case 125 /* closeBrace */:
|
|
14061
|
+
if (characterCount !== 1) {
|
|
14062
|
+
mayContainStrings = true;
|
|
14063
|
+
}
|
|
14064
|
+
return;
|
|
14065
|
+
case 124 /* bar */:
|
|
14066
|
+
if (characterCount !== 1) {
|
|
14067
|
+
mayContainStrings = true;
|
|
14068
|
+
}
|
|
14069
|
+
pos++;
|
|
14070
|
+
start = pos;
|
|
14071
|
+
characterCount = 0;
|
|
14072
|
+
break;
|
|
14073
|
+
default:
|
|
14074
|
+
scanClassSetCharacter();
|
|
14075
|
+
characterCount++;
|
|
14076
|
+
break;
|
|
14077
|
+
}
|
|
14078
|
+
}
|
|
14079
|
+
}
|
|
14080
|
+
function scanClassSetCharacter() {
|
|
14081
|
+
const ch = text2.charCodeAt(pos);
|
|
14082
|
+
if (ch === 92 /* backslash */) {
|
|
14083
|
+
pos++;
|
|
14084
|
+
const ch2 = text2.charCodeAt(pos);
|
|
14085
|
+
switch (ch2) {
|
|
14086
|
+
case 98 /* b */:
|
|
14087
|
+
pos++;
|
|
14088
|
+
return "\b";
|
|
14089
|
+
case 38 /* ampersand */:
|
|
14090
|
+
case 45 /* minus */:
|
|
14091
|
+
case 33 /* exclamation */:
|
|
14092
|
+
case 35 /* hash */:
|
|
14093
|
+
case 37 /* percent */:
|
|
14094
|
+
case 44 /* comma */:
|
|
14095
|
+
case 58 /* colon */:
|
|
14096
|
+
case 59 /* semicolon */:
|
|
14097
|
+
case 60 /* lessThan */:
|
|
14098
|
+
case 61 /* equals */:
|
|
14099
|
+
case 62 /* greaterThan */:
|
|
14100
|
+
case 64 /* at */:
|
|
14101
|
+
case 96 /* backtick */:
|
|
14102
|
+
case 126 /* tilde */:
|
|
14103
|
+
pos++;
|
|
14104
|
+
return String.fromCharCode(ch2);
|
|
14105
|
+
default:
|
|
14106
|
+
return scanCharacterEscape();
|
|
14107
|
+
}
|
|
14108
|
+
} else if (ch === text2.charCodeAt(pos + 1)) {
|
|
14109
|
+
switch (ch) {
|
|
14110
|
+
case 38 /* ampersand */:
|
|
14111
|
+
case 33 /* exclamation */:
|
|
14112
|
+
case 35 /* hash */:
|
|
14113
|
+
case 37 /* percent */:
|
|
14114
|
+
case 42 /* asterisk */:
|
|
14115
|
+
case 43 /* plus */:
|
|
14116
|
+
case 44 /* comma */:
|
|
14117
|
+
case 46 /* dot */:
|
|
14118
|
+
case 58 /* colon */:
|
|
14119
|
+
case 59 /* semicolon */:
|
|
14120
|
+
case 60 /* lessThan */:
|
|
14121
|
+
case 61 /* equals */:
|
|
14122
|
+
case 62 /* greaterThan */:
|
|
14123
|
+
case 63 /* question */:
|
|
14124
|
+
case 64 /* at */:
|
|
14125
|
+
case 96 /* backtick */:
|
|
14126
|
+
case 126 /* tilde */:
|
|
14127
|
+
error2(Diagnostics.A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash, pos, 2);
|
|
14128
|
+
pos += 2;
|
|
14129
|
+
return text2.substring(pos - 2, pos);
|
|
14130
|
+
}
|
|
14131
|
+
}
|
|
14132
|
+
switch (ch) {
|
|
14133
|
+
case 47 /* slash */:
|
|
14134
|
+
case 40 /* openParen */:
|
|
14135
|
+
case 41 /* closeParen */:
|
|
14136
|
+
case 91 /* openBracket */:
|
|
14137
|
+
case 93 /* closeBracket */:
|
|
14138
|
+
case 123 /* openBrace */:
|
|
14139
|
+
case 125 /* closeBrace */:
|
|
14140
|
+
case 45 /* minus */:
|
|
14141
|
+
case 124 /* bar */:
|
|
14142
|
+
error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
|
|
14143
|
+
pos++;
|
|
14144
|
+
return String.fromCharCode(ch);
|
|
14145
|
+
}
|
|
14146
|
+
return scanSourceCharacter();
|
|
14147
|
+
}
|
|
14148
|
+
function scanClassAtom() {
|
|
14149
|
+
if (text2.charCodeAt(pos) === 92 /* backslash */) {
|
|
14150
|
+
pos++;
|
|
14151
|
+
const ch = text2.charCodeAt(pos);
|
|
14152
|
+
switch (ch) {
|
|
14153
|
+
case 98 /* b */:
|
|
14154
|
+
pos++;
|
|
14155
|
+
return "\b";
|
|
14156
|
+
case 45 /* minus */:
|
|
14157
|
+
pos++;
|
|
14158
|
+
return String.fromCharCode(ch);
|
|
14159
|
+
default:
|
|
14160
|
+
if (scanCharacterClassEscape()) {
|
|
14161
|
+
return "";
|
|
14162
|
+
}
|
|
14163
|
+
return scanCharacterEscape();
|
|
14164
|
+
}
|
|
14165
|
+
} else {
|
|
14166
|
+
return scanSourceCharacter();
|
|
14167
|
+
}
|
|
14168
|
+
}
|
|
14169
|
+
function scanCharacterClassEscape() {
|
|
14170
|
+
Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
|
|
14171
|
+
let isCharacterComplement = false;
|
|
14172
|
+
const start2 = pos - 1;
|
|
14173
|
+
const ch = text2.charCodeAt(pos);
|
|
14174
|
+
switch (ch) {
|
|
14175
|
+
case 100 /* d */:
|
|
14176
|
+
case 68 /* D */:
|
|
14177
|
+
case 115 /* s */:
|
|
14178
|
+
case 83 /* S */:
|
|
14179
|
+
case 119 /* w */:
|
|
14180
|
+
case 87 /* W */:
|
|
14181
|
+
pos++;
|
|
14182
|
+
return true;
|
|
14183
|
+
case 80 /* P */:
|
|
14184
|
+
isCharacterComplement = true;
|
|
14185
|
+
case 112 /* p */:
|
|
14186
|
+
pos++;
|
|
14187
|
+
if (text2.charCodeAt(pos) === 123 /* openBrace */) {
|
|
14188
|
+
pos++;
|
|
14189
|
+
const propertyNameOrValueStart = pos;
|
|
14190
|
+
const propertyNameOrValue = scanWordCharacters();
|
|
14191
|
+
if (text2.charCodeAt(pos) === 61 /* equals */) {
|
|
14192
|
+
const propertyName = nonBinaryUnicodeProperties.get(propertyNameOrValue);
|
|
14193
|
+
if (pos === propertyNameOrValueStart) {
|
|
14194
|
+
error2(Diagnostics.Expected_a_Unicode_property_name);
|
|
14195
|
+
} else if (propertyName === void 0) {
|
|
14196
|
+
error2(Diagnostics.Unknown_Unicode_property_name, propertyNameOrValueStart, pos - propertyNameOrValueStart);
|
|
14197
|
+
const suggestion = getSpellingSuggestion(propertyNameOrValue, nonBinaryUnicodeProperties.keys(), identity);
|
|
14198
|
+
if (suggestion) {
|
|
14199
|
+
error2(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);
|
|
14200
|
+
}
|
|
14201
|
+
}
|
|
14202
|
+
pos++;
|
|
14203
|
+
const propertyValueStart = pos;
|
|
14204
|
+
const propertyValue = scanWordCharacters();
|
|
14205
|
+
if (pos === propertyValueStart) {
|
|
14206
|
+
error2(Diagnostics.Expected_a_Unicode_property_value);
|
|
14207
|
+
} else if (propertyName !== void 0 && !valuesOfNonBinaryUnicodeProperties[propertyName].has(propertyValue)) {
|
|
14208
|
+
error2(Diagnostics.Unknown_Unicode_property_value, propertyValueStart, pos - propertyValueStart);
|
|
14209
|
+
const suggestion = getSpellingSuggestion(propertyValue, valuesOfNonBinaryUnicodeProperties[propertyName], identity);
|
|
14210
|
+
if (suggestion) {
|
|
14211
|
+
error2(Diagnostics.Did_you_mean_0, propertyValueStart, pos - propertyValueStart, suggestion);
|
|
14212
|
+
}
|
|
14213
|
+
}
|
|
14214
|
+
} else {
|
|
14215
|
+
if (pos === propertyNameOrValueStart) {
|
|
14216
|
+
error2(Diagnostics.Expected_a_Unicode_property_name_or_value);
|
|
14217
|
+
} else if (binaryUnicodePropertiesOfStrings.has(propertyNameOrValue)) {
|
|
14218
|
+
if (!unicodeSetsMode) {
|
|
14219
|
+
error2(Diagnostics.Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set, propertyNameOrValueStart, pos - propertyNameOrValueStart);
|
|
14220
|
+
} else if (isCharacterComplement) {
|
|
14221
|
+
error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, propertyNameOrValueStart, pos - propertyNameOrValueStart);
|
|
14222
|
+
} else {
|
|
14223
|
+
mayContainStrings = true;
|
|
14224
|
+
}
|
|
14225
|
+
} else if (!valuesOfNonBinaryUnicodeProperties.General_Category.has(propertyNameOrValue) && !binaryUnicodeProperties.has(propertyNameOrValue)) {
|
|
14226
|
+
error2(Diagnostics.Unknown_Unicode_property_name_or_value, propertyNameOrValueStart, pos - propertyNameOrValueStart);
|
|
14227
|
+
const suggestion = getSpellingSuggestion(propertyNameOrValue, [...valuesOfNonBinaryUnicodeProperties.General_Category, ...binaryUnicodeProperties, ...binaryUnicodePropertiesOfStrings], identity);
|
|
14228
|
+
if (suggestion) {
|
|
14229
|
+
error2(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);
|
|
14230
|
+
}
|
|
14231
|
+
}
|
|
14232
|
+
}
|
|
14233
|
+
scanExpectedChar(125 /* closeBrace */);
|
|
14234
|
+
if (!unicodeMode) {
|
|
14235
|
+
error2(Diagnostics.Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set, start2, pos - start2);
|
|
14236
|
+
}
|
|
14237
|
+
} else if (unicodeMode) {
|
|
14238
|
+
error2(Diagnostics._0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces, pos - 2, 2, String.fromCharCode(ch));
|
|
14239
|
+
}
|
|
14240
|
+
return true;
|
|
14241
|
+
}
|
|
14242
|
+
return false;
|
|
14243
|
+
}
|
|
14244
|
+
function scanWordCharacters() {
|
|
14245
|
+
let value = "";
|
|
14246
|
+
while (pos < end2) {
|
|
14247
|
+
const ch = text2.charCodeAt(pos);
|
|
14248
|
+
if (!isWordCharacter(ch)) {
|
|
14249
|
+
break;
|
|
14250
|
+
}
|
|
14251
|
+
value += String.fromCharCode(ch);
|
|
14252
|
+
pos++;
|
|
14253
|
+
}
|
|
14254
|
+
return value;
|
|
14255
|
+
}
|
|
14256
|
+
function scanSourceCharacter() {
|
|
14257
|
+
const size = unicodeMode ? charSize(codePointAt(text2, pos)) : 1;
|
|
14258
|
+
pos += size;
|
|
14259
|
+
return text2.substring(pos - size, pos);
|
|
14260
|
+
}
|
|
14261
|
+
function scanExpectedChar(ch) {
|
|
14262
|
+
if (text2.charCodeAt(pos) === ch) {
|
|
14263
|
+
pos++;
|
|
14264
|
+
} else {
|
|
14265
|
+
error2(Diagnostics._0_expected, pos, 0, String.fromCharCode(ch));
|
|
14266
|
+
}
|
|
14267
|
+
}
|
|
14268
|
+
scanDisjunction(
|
|
14269
|
+
/*isInGroup*/
|
|
14270
|
+
false
|
|
14271
|
+
);
|
|
14272
|
+
forEach(groupNameReferences, (reference) => {
|
|
14273
|
+
if (!groupSpecifiers.has(reference.name)) {
|
|
14274
|
+
error2(Diagnostics.There_is_no_capturing_group_named_0_in_this_regular_expression, reference.pos, reference.end - reference.pos, reference.name);
|
|
14275
|
+
}
|
|
14276
|
+
});
|
|
14277
|
+
forEach(decimalEscapes, (escape) => {
|
|
14278
|
+
if (escape.value > numberOfCapturingGroups) {
|
|
14279
|
+
if (numberOfCapturingGroups) {
|
|
14280
|
+
error2(Diagnostics.A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_regular_expression, escape.pos, escape.end - escape.pos, numberOfCapturingGroups);
|
|
14281
|
+
} else {
|
|
14282
|
+
error2(Diagnostics.Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression, escape.pos, escape.end - escape.pos);
|
|
14283
|
+
}
|
|
14284
|
+
}
|
|
14285
|
+
});
|
|
14286
|
+
}
|
|
13332
14287
|
}
|
|
13333
14288
|
function appendIfCommentDirective(commentDirectives2, text2, commentDirectiveRegEx, lineStart) {
|
|
13334
14289
|
const type = getDirectiveFromComment(text2.trimStart(), commentDirectiveRegEx);
|
|
@@ -13555,9 +14510,10 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
|
|
|
13555
14510
|
pos--;
|
|
13556
14511
|
const extendedCookedChar = peekExtendedUnicodeEscape();
|
|
13557
14512
|
if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {
|
|
13558
|
-
|
|
13559
|
-
|
|
13560
|
-
|
|
14513
|
+
tokenValue = scanExtendedUnicodeEscape(
|
|
14514
|
+
/*shouldEmitInvalidEscapeError*/
|
|
14515
|
+
true
|
|
14516
|
+
) + scanIdentifierParts();
|
|
13561
14517
|
return token = getIdentifierToken();
|
|
13562
14518
|
}
|
|
13563
14519
|
const cookedChar = peekUnicodeEscape();
|
|
@@ -13697,6 +14653,22 @@ var utf16EncodeAsStringWorker = String.fromCodePoint ? (codePoint) => String.fro
|
|
|
13697
14653
|
function utf16EncodeAsString(codePoint) {
|
|
13698
14654
|
return utf16EncodeAsStringWorker(codePoint);
|
|
13699
14655
|
}
|
|
14656
|
+
var nonBinaryUnicodeProperties = new Map(Object.entries({
|
|
14657
|
+
General_Category: "General_Category",
|
|
14658
|
+
gc: "General_Category",
|
|
14659
|
+
Script: "Script",
|
|
14660
|
+
sc: "Script",
|
|
14661
|
+
Script_Extensions: "Script_Extensions",
|
|
14662
|
+
scx: "Script_Extensions"
|
|
14663
|
+
}));
|
|
14664
|
+
var binaryUnicodeProperties = /* @__PURE__ */ new Set(["ASCII", "ASCII_Hex_Digit", "AHex", "Alphabetic", "Alpha", "Any", "Assigned", "Bidi_Control", "Bidi_C", "Bidi_Mirrored", "Bidi_M", "Case_Ignorable", "CI", "Cased", "Changes_When_Casefolded", "CWCF", "Changes_When_Casemapped", "CWCM", "Changes_When_Lowercased", "CWL", "Changes_When_NFKC_Casefolded", "CWKCF", "Changes_When_Titlecased", "CWT", "Changes_When_Uppercased", "CWU", "Dash", "Default_Ignorable_Code_Point", "DI", "Deprecated", "Dep", "Diacritic", "Dia", "Emoji", "Emoji_Component", "EComp", "Emoji_Modifier", "EMod", "Emoji_Modifier_Base", "EBase", "Emoji_Presentation", "EPres", "Extended_Pictographic", "ExtPict", "Extender", "Ext", "Grapheme_Base", "Gr_Base", "Grapheme_Extend", "Gr_Ext", "Hex_Digit", "Hex", "IDS_Binary_Operator", "IDSB", "IDS_Trinary_Operator", "IDST", "ID_Continue", "IDC", "ID_Start", "IDS", "Ideographic", "Ideo", "Join_Control", "Join_C", "Logical_Order_Exception", "LOE", "Lowercase", "Lower", "Math", "Noncharacter_Code_Point", "NChar", "Pattern_Syntax", "Pat_Syn", "Pattern_White_Space", "Pat_WS", "Quotation_Mark", "QMark", "Radical", "Regional_Indicator", "RI", "Sentence_Terminal", "STerm", "Soft_Dotted", "SD", "Terminal_Punctuation", "Term", "Unified_Ideograph", "UIdeo", "Uppercase", "Upper", "Variation_Selector", "VS", "White_Space", "space", "XID_Continue", "XIDC", "XID_Start", "XIDS"]);
|
|
14665
|
+
var binaryUnicodePropertiesOfStrings = /* @__PURE__ */ new Set(["Basic_Emoji", "Emoji_Keycap_Sequence", "RGI_Emoji_Modifier_Sequence", "RGI_Emoji_Flag_Sequence", "RGI_Emoji_Tag_Sequence", "RGI_Emoji_ZWJ_Sequence", "RGI_Emoji"]);
|
|
14666
|
+
var valuesOfNonBinaryUnicodeProperties = {
|
|
14667
|
+
General_Category: /* @__PURE__ */ new Set(["C", "Other", "Cc", "Control", "cntrl", "Cf", "Format", "Cn", "Unassigned", "Co", "Private_Use", "Cs", "Surrogate", "L", "Letter", "LC", "Cased_Letter", "Ll", "Lowercase_Letter", "Lm", "Modifier_Letter", "Lo", "Other_Letter", "Lt", "Titlecase_Letter", "Lu", "Uppercase_Letter", "M", "Mark", "Combining_Mark", "Mc", "Spacing_Mark", "Me", "Enclosing_Mark", "Mn", "Nonspacing_Mark", "N", "Number", "Nd", "Decimal_Number", "digit", "Nl", "Letter_Number", "No", "Other_Number", "P", "Punctuation", "punct", "Pc", "Connector_Punctuation", "Pd", "Dash_Punctuation", "Pe", "Close_Punctuation", "Pf", "Final_Punctuation", "Pi", "Initial_Punctuation", "Po", "Other_Punctuation", "Ps", "Open_Punctuation", "S", "Symbol", "Sc", "Currency_Symbol", "Sk", "Modifier_Symbol", "Sm", "Math_Symbol", "So", "Other_Symbol", "Z", "Separator", "Zl", "Line_Separator", "Zp", "Paragraph_Separator", "Zs", "Space_Separator"]),
|
|
14668
|
+
Script: /* @__PURE__ */ new Set(["Adlm", "Adlam", "Aghb", "Caucasian_Albanian", "Ahom", "Ahom", "Arab", "Arabic", "Armi", "Imperial_Aramaic", "Armn", "Armenian", "Avst", "Avestan", "Bali", "Balinese", "Bamu", "Bamum", "Bass", "Bassa_Vah", "Batk", "Batak", "Beng", "Bengali", "Bhks", "Bhaiksuki", "Bopo", "Bopomofo", "Brah", "Brahmi", "Brai", "Braille", "Bugi", "Buginese", "Buhd", "Buhid", "Cakm", "Chakma", "Cans", "Canadian_Aboriginal", "Cari", "Carian", "Cham", "Cham", "Cher", "Cherokee", "Chrs", "Chorasmian", "Copt", "Coptic", "Qaac", "Cpmn", "Cypro_Minoan", "Cprt", "Cypriot", "Cyrl", "Cyrillic", "Deva", "Devanagari", "Diak", "Dives_Akuru", "Dogr", "Dogra", "Dsrt", "Deseret", "Dupl", "Duployan", "Egyp", "Egyptian_Hieroglyphs", "Elba", "Elbasan", "Elym", "Elymaic", "Ethi", "Ethiopic", "Geor", "Georgian", "Glag", "Glagolitic", "Gong", "Gunjala_Gondi", "Gonm", "Masaram_Gondi", "Goth", "Gothic", "Gran", "Grantha", "Grek", "Greek", "Gujr", "Gujarati", "Guru", "Gurmukhi", "Hang", "Hangul", "Hani", "Han", "Hano", "Hanunoo", "Hatr", "Hatran", "Hebr", "Hebrew", "Hira", "Hiragana", "Hluw", "Anatolian_Hieroglyphs", "Hmng", "Pahawh_Hmong", "Hmnp", "Nyiakeng_Puachue_Hmong", "Hrkt", "Katakana_Or_Hiragana", "Hung", "Old_Hungarian", "Ital", "Old_Italic", "Java", "Javanese", "Kali", "Kayah_Li", "Kana", "Katakana", "Kawi", "Kawi", "Khar", "Kharoshthi", "Khmr", "Khmer", "Khoj", "Khojki", "Kits", "Khitan_Small_Script", "Knda", "Kannada", "Kthi", "Kaithi", "Lana", "Tai_Tham", "Laoo", "Lao", "Latn", "Latin", "Lepc", "Lepcha", "Limb", "Limbu", "Lina", "Linear_A", "Linb", "Linear_B", "Lisu", "Lisu", "Lyci", "Lycian", "Lydi", "Lydian", "Mahj", "Mahajani", "Maka", "Makasar", "Mand", "Mandaic", "Mani", "Manichaean", "Marc", "Marchen", "Medf", "Medefaidrin", "Mend", "Mende_Kikakui", "Merc", "Meroitic_Cursive", "Mero", "Meroitic_Hieroglyphs", "Mlym", "Malayalam", "Modi", "Modi", "Mong", "Mongolian", "Mroo", "Mro", "Mtei", "Meetei_Mayek", "Mult", "Multani", "Mymr", "Myanmar", "Nagm", "Nag_Mundari", "Nand", "Nandinagari", "Narb", "Old_North_Arabian", "Nbat", "Nabataean", "Newa", "Newa", "Nkoo", "Nko", "Nshu", "Nushu", "Ogam", "Ogham", "Olck", "Ol_Chiki", "Orkh", "Old_Turkic", "Orya", "Oriya", "Osge", "Osage", "Osma", "Osmanya", "Ougr", "Old_Uyghur", "Palm", "Palmyrene", "Pauc", "Pau_Cin_Hau", "Perm", "Old_Permic", "Phag", "Phags_Pa", "Phli", "Inscriptional_Pahlavi", "Phlp", "Psalter_Pahlavi", "Phnx", "Phoenician", "Plrd", "Miao", "Prti", "Inscriptional_Parthian", "Rjng", "Rejang", "Rohg", "Hanifi_Rohingya", "Runr", "Runic", "Samr", "Samaritan", "Sarb", "Old_South_Arabian", "Saur", "Saurashtra", "Sgnw", "SignWriting", "Shaw", "Shavian", "Shrd", "Sharada", "Sidd", "Siddham", "Sind", "Khudawadi", "Sinh", "Sinhala", "Sogd", "Sogdian", "Sogo", "Old_Sogdian", "Sora", "Sora_Sompeng", "Soyo", "Soyombo", "Sund", "Sundanese", "Sylo", "Syloti_Nagri", "Syrc", "Syriac", "Tagb", "Tagbanwa", "Takr", "Takri", "Tale", "Tai_Le", "Talu", "New_Tai_Lue", "Taml", "Tamil", "Tang", "Tangut", "Tavt", "Tai_Viet", "Telu", "Telugu", "Tfng", "Tifinagh", "Tglg", "Tagalog", "Thaa", "Thaana", "Thai", "Thai", "Tibt", "Tibetan", "Tirh", "Tirhuta", "Tnsa", "Tangsa", "Toto", "Toto", "Ugar", "Ugaritic", "Vaii", "Vai", "Vith", "Vithkuqi", "Wara", "Warang_Citi", "Wcho", "Wancho", "Xpeo", "Old_Persian", "Xsux", "Cuneiform", "Yezi", "Yezidi", "Yiii", "Yi", "Zanb", "Zanabazar_Square", "Zinh", "Inherited", "Qaai", "Zyyy", "Common", "Zzzz", "Unknown"]),
|
|
14669
|
+
Script_Extensions: /* @__PURE__ */ new Set()
|
|
14670
|
+
// Currently empty
|
|
14671
|
+
};
|
|
13700
14672
|
|
|
13701
14673
|
// src/compiler/utilitiesPublic.ts
|
|
13702
14674
|
function isExternalModuleNameRelative(moduleName) {
|
|
@@ -15916,6 +16888,10 @@ var getScriptTargetFeatures = /* @__PURE__ */ memoize(
|
|
|
15916
16888
|
],
|
|
15917
16889
|
es2022: [
|
|
15918
16890
|
"at"
|
|
16891
|
+
],
|
|
16892
|
+
esnext: [
|
|
16893
|
+
"isWellFormed",
|
|
16894
|
+
"toWellFormed"
|
|
15919
16895
|
]
|
|
15920
16896
|
})),
|
|
15921
16897
|
StringConstructor: new Map(Object.entries({
|
|
@@ -16607,6 +17583,10 @@ function isVarUsing(node) {
|
|
|
16607
17583
|
function isVarConst(node) {
|
|
16608
17584
|
return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 2 /* Const */;
|
|
16609
17585
|
}
|
|
17586
|
+
function isVarConstLike(node) {
|
|
17587
|
+
const blockScopeKind = getCombinedNodeFlags(node) & 7 /* BlockScoped */;
|
|
17588
|
+
return blockScopeKind === 2 /* Const */ || blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */;
|
|
17589
|
+
}
|
|
16610
17590
|
function isLet(node) {
|
|
16611
17591
|
return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 1 /* Let */;
|
|
16612
17592
|
}
|
|
@@ -18546,7 +19526,7 @@ function isNamedEvaluation(node, cb) {
|
|
|
18546
19526
|
function isPushOrUnshiftIdentifier(node) {
|
|
18547
19527
|
return node.escapedText === "push" || node.escapedText === "unshift";
|
|
18548
19528
|
}
|
|
18549
|
-
function
|
|
19529
|
+
function isPartOfParameterDeclaration(node) {
|
|
18550
19530
|
const root = getRootDeclaration(node);
|
|
18551
19531
|
return root.kind === 169 /* Parameter */;
|
|
18552
19532
|
}
|
|
@@ -20937,6 +21917,9 @@ function moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)
|
|
|
20937
21917
|
function getStrictOptionValue(compilerOptions, flag) {
|
|
20938
21918
|
return compilerOptions[flag] === void 0 ? !!compilerOptions.strict : !!compilerOptions[flag];
|
|
20939
21919
|
}
|
|
21920
|
+
function getNameOfScriptTarget(scriptTarget) {
|
|
21921
|
+
return forEachEntry(targetOptionDeclaration.type, (value, key) => value === scriptTarget ? key : void 0);
|
|
21922
|
+
}
|
|
20940
21923
|
function getEmitStandardClassFields(compilerOptions) {
|
|
20941
21924
|
return compilerOptions.useDefineForClassFields !== false && getEmitScriptTarget(compilerOptions) >= 9 /* ES2022 */;
|
|
20942
21925
|
}
|
|
@@ -21004,8 +21987,15 @@ function createSymlinkCache(cwd, getCanonicalFileName) {
|
|
|
21004
21987
|
forEachResolvedTypeReferenceDirective((resolution) => processResolution(this, resolution.resolvedTypeReferenceDirective));
|
|
21005
21988
|
typeReferenceDirectives.forEach((resolution) => processResolution(this, resolution.resolvedTypeReferenceDirective));
|
|
21006
21989
|
},
|
|
21007
|
-
hasProcessedResolutions: () => hasProcessedResolutions
|
|
21990
|
+
hasProcessedResolutions: () => hasProcessedResolutions,
|
|
21991
|
+
setSymlinksFromResolution(resolution) {
|
|
21992
|
+
processResolution(this, resolution);
|
|
21993
|
+
},
|
|
21994
|
+
hasAnySymlinks
|
|
21008
21995
|
};
|
|
21996
|
+
function hasAnySymlinks() {
|
|
21997
|
+
return !!(symlinkedFiles == null ? void 0 : symlinkedFiles.size) || !!symlinkedDirectories && !!forEachEntry(symlinkedDirectories, (value) => !!value);
|
|
21998
|
+
}
|
|
21009
21999
|
function processResolution(cache, resolution) {
|
|
21010
22000
|
if (!resolution || !resolution.originalPath || !resolution.resolvedFileName)
|
|
21011
22001
|
return;
|
|
@@ -22038,26 +23028,28 @@ function replaceFirstStar(s, replacement) {
|
|
|
22038
23028
|
function getNameFromImportAttribute(node) {
|
|
22039
23029
|
return isIdentifier(node.name) ? node.name.escapedText : escapeLeadingUnderscores(node.name.text);
|
|
22040
23030
|
}
|
|
22041
|
-
function evaluatorResult(value, isSyntacticallyString = false, resolvedOtherFiles = false) {
|
|
22042
|
-
return { value, isSyntacticallyString, resolvedOtherFiles };
|
|
23031
|
+
function evaluatorResult(value, isSyntacticallyString = false, resolvedOtherFiles = false, hasExternalReferences = false) {
|
|
23032
|
+
return { value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences };
|
|
22043
23033
|
}
|
|
22044
23034
|
function createEvaluator({ evaluateElementAccessExpression, evaluateEntityNameExpression }) {
|
|
22045
23035
|
function evaluate(expr, location) {
|
|
22046
23036
|
let isSyntacticallyString = false;
|
|
22047
23037
|
let resolvedOtherFiles = false;
|
|
23038
|
+
let hasExternalReferences = false;
|
|
22048
23039
|
expr = skipParentheses(expr);
|
|
22049
23040
|
switch (expr.kind) {
|
|
22050
23041
|
case 224 /* PrefixUnaryExpression */:
|
|
22051
23042
|
const result = evaluate(expr.operand, location);
|
|
22052
23043
|
resolvedOtherFiles = result.resolvedOtherFiles;
|
|
23044
|
+
hasExternalReferences = result.hasExternalReferences;
|
|
22053
23045
|
if (typeof result.value === "number") {
|
|
22054
23046
|
switch (expr.operator) {
|
|
22055
23047
|
case 40 /* PlusToken */:
|
|
22056
|
-
return evaluatorResult(result.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23048
|
+
return evaluatorResult(result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22057
23049
|
case 41 /* MinusToken */:
|
|
22058
|
-
return evaluatorResult(-result.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23050
|
+
return evaluatorResult(-result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22059
23051
|
case 55 /* TildeToken */:
|
|
22060
|
-
return evaluatorResult(~result.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23052
|
+
return evaluatorResult(~result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22061
23053
|
}
|
|
22062
23054
|
}
|
|
22063
23055
|
break;
|
|
@@ -22066,38 +23058,40 @@ function createEvaluator({ evaluateElementAccessExpression, evaluateEntityNameEx
|
|
|
22066
23058
|
const right = evaluate(expr.right, location);
|
|
22067
23059
|
isSyntacticallyString = (left.isSyntacticallyString || right.isSyntacticallyString) && expr.operatorToken.kind === 40 /* PlusToken */;
|
|
22068
23060
|
resolvedOtherFiles = left.resolvedOtherFiles || right.resolvedOtherFiles;
|
|
23061
|
+
hasExternalReferences = left.hasExternalReferences || right.hasExternalReferences;
|
|
22069
23062
|
if (typeof left.value === "number" && typeof right.value === "number") {
|
|
22070
23063
|
switch (expr.operatorToken.kind) {
|
|
22071
23064
|
case 52 /* BarToken */:
|
|
22072
|
-
return evaluatorResult(left.value | right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23065
|
+
return evaluatorResult(left.value | right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22073
23066
|
case 51 /* AmpersandToken */:
|
|
22074
|
-
return evaluatorResult(left.value & right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23067
|
+
return evaluatorResult(left.value & right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22075
23068
|
case 49 /* GreaterThanGreaterThanToken */:
|
|
22076
|
-
return evaluatorResult(left.value >> right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23069
|
+
return evaluatorResult(left.value >> right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22077
23070
|
case 50 /* GreaterThanGreaterThanGreaterThanToken */:
|
|
22078
|
-
return evaluatorResult(left.value >>> right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23071
|
+
return evaluatorResult(left.value >>> right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22079
23072
|
case 48 /* LessThanLessThanToken */:
|
|
22080
|
-
return evaluatorResult(left.value << right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23073
|
+
return evaluatorResult(left.value << right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22081
23074
|
case 53 /* CaretToken */:
|
|
22082
|
-
return evaluatorResult(left.value ^ right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23075
|
+
return evaluatorResult(left.value ^ right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22083
23076
|
case 42 /* AsteriskToken */:
|
|
22084
|
-
return evaluatorResult(left.value * right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23077
|
+
return evaluatorResult(left.value * right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22085
23078
|
case 44 /* SlashToken */:
|
|
22086
|
-
return evaluatorResult(left.value / right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23079
|
+
return evaluatorResult(left.value / right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22087
23080
|
case 40 /* PlusToken */:
|
|
22088
|
-
return evaluatorResult(left.value + right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23081
|
+
return evaluatorResult(left.value + right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22089
23082
|
case 41 /* MinusToken */:
|
|
22090
|
-
return evaluatorResult(left.value - right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23083
|
+
return evaluatorResult(left.value - right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22091
23084
|
case 45 /* PercentToken */:
|
|
22092
|
-
return evaluatorResult(left.value % right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23085
|
+
return evaluatorResult(left.value % right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22093
23086
|
case 43 /* AsteriskAsteriskToken */:
|
|
22094
|
-
return evaluatorResult(left.value ** right.value, isSyntacticallyString, resolvedOtherFiles);
|
|
23087
|
+
return evaluatorResult(left.value ** right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
|
|
22095
23088
|
}
|
|
22096
23089
|
} else if ((typeof left.value === "string" || typeof left.value === "number") && (typeof right.value === "string" || typeof right.value === "number") && expr.operatorToken.kind === 40 /* PlusToken */) {
|
|
22097
23090
|
return evaluatorResult(
|
|
22098
23091
|
"" + left.value + right.value,
|
|
22099
23092
|
isSyntacticallyString,
|
|
22100
|
-
resolvedOtherFiles
|
|
23093
|
+
resolvedOtherFiles,
|
|
23094
|
+
hasExternalReferences
|
|
22101
23095
|
);
|
|
22102
23096
|
}
|
|
22103
23097
|
break;
|
|
@@ -22127,12 +23121,14 @@ function createEvaluator({ evaluateElementAccessExpression, evaluateEntityNameEx
|
|
|
22127
23121
|
/*value*/
|
|
22128
23122
|
void 0,
|
|
22129
23123
|
isSyntacticallyString,
|
|
22130
|
-
resolvedOtherFiles
|
|
23124
|
+
resolvedOtherFiles,
|
|
23125
|
+
hasExternalReferences
|
|
22131
23126
|
);
|
|
22132
23127
|
}
|
|
22133
23128
|
function evaluateTemplateExpression(expr, location) {
|
|
22134
23129
|
let result = expr.head.text;
|
|
22135
23130
|
let resolvedOtherFiles = false;
|
|
23131
|
+
let hasExternalReferences = false;
|
|
22136
23132
|
for (const span of expr.templateSpans) {
|
|
22137
23133
|
const spanResult = evaluate(span.expression, location);
|
|
22138
23134
|
if (spanResult.value === void 0) {
|
|
@@ -22146,12 +23142,14 @@ function createEvaluator({ evaluateElementAccessExpression, evaluateEntityNameEx
|
|
|
22146
23142
|
result += spanResult.value;
|
|
22147
23143
|
result += span.literal.text;
|
|
22148
23144
|
resolvedOtherFiles || (resolvedOtherFiles = spanResult.resolvedOtherFiles);
|
|
23145
|
+
hasExternalReferences || (hasExternalReferences = spanResult.hasExternalReferences);
|
|
22149
23146
|
}
|
|
22150
23147
|
return evaluatorResult(
|
|
22151
23148
|
result,
|
|
22152
23149
|
/*isSyntacticallyString*/
|
|
22153
23150
|
true,
|
|
22154
|
-
resolvedOtherFiles
|
|
23151
|
+
resolvedOtherFiles,
|
|
23152
|
+
hasExternalReferences
|
|
22155
23153
|
);
|
|
22156
23154
|
}
|
|
22157
23155
|
return evaluate;
|
|
@@ -22381,7 +23379,7 @@ function createNameResolver({
|
|
|
22381
23379
|
break;
|
|
22382
23380
|
case 208 /* BindingElement */:
|
|
22383
23381
|
if (lastLocation && (lastLocation === location.initializer || lastLocation === location.name && isBindingPattern(lastLocation))) {
|
|
22384
|
-
if (
|
|
23382
|
+
if (isPartOfParameterDeclaration(location) && !associatedDeclarationForContainingInitializerOrBindingName) {
|
|
22385
23383
|
associatedDeclarationForContainingInitializerOrBindingName = location;
|
|
22386
23384
|
}
|
|
22387
23385
|
}
|
|
@@ -22530,6 +23528,55 @@ function createNameResolver({
|
|
|
22530
23528
|
return false;
|
|
22531
23529
|
}
|
|
22532
23530
|
}
|
|
23531
|
+
function isPrimitiveLiteralValue(node, includeBigInt = true) {
|
|
23532
|
+
Debug.type(node);
|
|
23533
|
+
switch (node.kind) {
|
|
23534
|
+
case 112 /* TrueKeyword */:
|
|
23535
|
+
case 97 /* FalseKeyword */:
|
|
23536
|
+
case 9 /* NumericLiteral */:
|
|
23537
|
+
case 11 /* StringLiteral */:
|
|
23538
|
+
case 15 /* NoSubstitutionTemplateLiteral */:
|
|
23539
|
+
return true;
|
|
23540
|
+
case 10 /* BigIntLiteral */:
|
|
23541
|
+
return includeBigInt;
|
|
23542
|
+
case 224 /* PrefixUnaryExpression */:
|
|
23543
|
+
if (node.operator === 41 /* MinusToken */) {
|
|
23544
|
+
return isNumericLiteral(node.operand) || includeBigInt && isBigIntLiteral(node.operand);
|
|
23545
|
+
}
|
|
23546
|
+
if (node.operator === 40 /* PlusToken */) {
|
|
23547
|
+
return isNumericLiteral(node.operand);
|
|
23548
|
+
}
|
|
23549
|
+
return false;
|
|
23550
|
+
default:
|
|
23551
|
+
assertType(node);
|
|
23552
|
+
return false;
|
|
23553
|
+
}
|
|
23554
|
+
}
|
|
23555
|
+
function unwrapParenthesizedExpression(o) {
|
|
23556
|
+
while (o.kind === 217 /* ParenthesizedExpression */) {
|
|
23557
|
+
o = o.expression;
|
|
23558
|
+
}
|
|
23559
|
+
return o;
|
|
23560
|
+
}
|
|
23561
|
+
function hasInferredType(node) {
|
|
23562
|
+
Debug.type(node);
|
|
23563
|
+
switch (node.kind) {
|
|
23564
|
+
case 169 /* Parameter */:
|
|
23565
|
+
case 171 /* PropertySignature */:
|
|
23566
|
+
case 172 /* PropertyDeclaration */:
|
|
23567
|
+
case 208 /* BindingElement */:
|
|
23568
|
+
case 211 /* PropertyAccessExpression */:
|
|
23569
|
+
case 212 /* ElementAccessExpression */:
|
|
23570
|
+
case 226 /* BinaryExpression */:
|
|
23571
|
+
case 260 /* VariableDeclaration */:
|
|
23572
|
+
case 277 /* ExportAssignment */:
|
|
23573
|
+
case 303 /* PropertyAssignment */:
|
|
23574
|
+
return true;
|
|
23575
|
+
default:
|
|
23576
|
+
assertType(node);
|
|
23577
|
+
return false;
|
|
23578
|
+
}
|
|
23579
|
+
}
|
|
22533
23580
|
|
|
22534
23581
|
// src/compiler/factory/baseNodeFactory.ts
|
|
22535
23582
|
function createBaseNodeFactory() {
|
|
@@ -29592,6 +30639,8 @@ function isSyntaxList(n) {
|
|
|
29592
30639
|
// src/compiler/factory/nodeChildren.ts
|
|
29593
30640
|
var nodeChildren = /* @__PURE__ */ new WeakMap();
|
|
29594
30641
|
function getNodeChildren(node) {
|
|
30642
|
+
if (!isNodeKind(node.kind))
|
|
30643
|
+
return emptyArray;
|
|
29595
30644
|
return nodeChildren.get(node);
|
|
29596
30645
|
}
|
|
29597
30646
|
function setNodeChildren(node, children) {
|
|
@@ -31782,7 +32831,7 @@ var Parser;
|
|
|
31782
32831
|
function currentNode2(position) {
|
|
31783
32832
|
const node = baseSyntaxCursor.currentNode(position);
|
|
31784
32833
|
if (topLevel && node && containsPossibleTopLevelAwait(node)) {
|
|
31785
|
-
node
|
|
32834
|
+
markAsIntersectingIncrementalChange(node);
|
|
31786
32835
|
}
|
|
31787
32836
|
return node;
|
|
31788
32837
|
}
|
|
@@ -31928,7 +32977,10 @@ var Parser;
|
|
|
31928
32977
|
function parseErrorAtPosition(start, length2, message, ...args) {
|
|
31929
32978
|
const lastError = lastOrUndefined(parseDiagnostics);
|
|
31930
32979
|
let result;
|
|
31931
|
-
if (
|
|
32980
|
+
if (message.category === 3 /* Message */ && lastError && start === lastError.start && length2 === lastError.length) {
|
|
32981
|
+
result = createDetachedDiagnostic(fileName, sourceText, start, length2, message, ...args);
|
|
32982
|
+
addRelatedInfo(lastError, result);
|
|
32983
|
+
} else if (!lastError || start !== lastError.start) {
|
|
31932
32984
|
result = createDetachedDiagnostic(fileName, sourceText, start, length2, message, ...args);
|
|
31933
32985
|
parseDiagnostics.push(result);
|
|
31934
32986
|
}
|
|
@@ -32084,7 +33136,7 @@ var Parser;
|
|
|
32084
33136
|
parseErrorForInvalidName(Diagnostics.Type_alias_name_cannot_be_0, Diagnostics.Type_alias_must_be_given_a_name, 64 /* EqualsToken */);
|
|
32085
33137
|
return;
|
|
32086
33138
|
}
|
|
32087
|
-
const suggestion = getSpellingSuggestion(expressionText, viableKeywordSuggestions,
|
|
33139
|
+
const suggestion = getSpellingSuggestion(expressionText, viableKeywordSuggestions, identity) ?? getSpaceSuggestion(expressionText);
|
|
32088
33140
|
if (suggestion) {
|
|
32089
33141
|
parseErrorAt(pos, node.end, Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0, suggestion);
|
|
32090
33142
|
return;
|
|
@@ -32652,7 +33704,7 @@ var Parser;
|
|
|
32652
33704
|
return void 0;
|
|
32653
33705
|
}
|
|
32654
33706
|
const node = syntaxCursor.currentNode(pos ?? scanner2.getTokenFullStart());
|
|
32655
|
-
if (nodeIsMissing(node) || node
|
|
33707
|
+
if (nodeIsMissing(node) || intersectsIncrementalChange(node) || containsParseError(node)) {
|
|
32656
33708
|
return void 0;
|
|
32657
33709
|
}
|
|
32658
33710
|
const nodeContextFlags = node.flags & 101441536 /* ContextFlags */;
|
|
@@ -38167,6 +39219,20 @@ var Parser;
|
|
|
38167
39219
|
}
|
|
38168
39220
|
})(JSDocParser = Parser2.JSDocParser || (Parser2.JSDocParser = {}));
|
|
38169
39221
|
})(Parser || (Parser = {}));
|
|
39222
|
+
var incrementallyParsedFiles = /* @__PURE__ */ new WeakSet();
|
|
39223
|
+
function markAsIncrementallyParsed(sourceFile) {
|
|
39224
|
+
if (incrementallyParsedFiles.has(sourceFile)) {
|
|
39225
|
+
Debug.fail("Source file has already been incrementally parsed");
|
|
39226
|
+
}
|
|
39227
|
+
incrementallyParsedFiles.add(sourceFile);
|
|
39228
|
+
}
|
|
39229
|
+
var intersectingChangeSet = /* @__PURE__ */ new WeakSet();
|
|
39230
|
+
function intersectsIncrementalChange(node) {
|
|
39231
|
+
return intersectingChangeSet.has(node);
|
|
39232
|
+
}
|
|
39233
|
+
function markAsIntersectingIncrementalChange(node) {
|
|
39234
|
+
intersectingChangeSet.add(node);
|
|
39235
|
+
}
|
|
38170
39236
|
var IncrementalParser;
|
|
38171
39237
|
((IncrementalParser2) => {
|
|
38172
39238
|
function updateSourceFile2(sourceFile, newText, textChangeRange, aggressiveChecks) {
|
|
@@ -38189,10 +39255,8 @@ var IncrementalParser;
|
|
|
38189
39255
|
sourceFile.jsDocParsingMode
|
|
38190
39256
|
);
|
|
38191
39257
|
}
|
|
38192
|
-
|
|
38193
|
-
|
|
38194
|
-
incrementalSourceFile.hasBeenIncrementallyParsed = true;
|
|
38195
|
-
Parser.fixupParentReferences(incrementalSourceFile);
|
|
39258
|
+
markAsIncrementallyParsed(sourceFile);
|
|
39259
|
+
Parser.fixupParentReferences(sourceFile);
|
|
38196
39260
|
const oldText = sourceFile.text;
|
|
38197
39261
|
const syntaxCursor = createSyntaxCursor(sourceFile);
|
|
38198
39262
|
const changeRange = extendToAffectedRange(sourceFile, textChangeRange);
|
|
@@ -38201,7 +39265,7 @@ var IncrementalParser;
|
|
|
38201
39265
|
Debug.assert(textSpanEnd(changeRange.span) === textSpanEnd(textChangeRange.span));
|
|
38202
39266
|
Debug.assert(textSpanEnd(textChangeRangeNewSpan(changeRange)) === textSpanEnd(textChangeRangeNewSpan(textChangeRange)));
|
|
38203
39267
|
const delta = textChangeRangeNewSpan(changeRange).length - changeRange.span.length;
|
|
38204
|
-
updateTokenPositionsAndMarkElements(
|
|
39268
|
+
updateTokenPositionsAndMarkElements(sourceFile, changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks);
|
|
38205
39269
|
const result = Parser.parseSourceFile(
|
|
38206
39270
|
sourceFile.fileName,
|
|
38207
39271
|
newText,
|
|
@@ -38317,8 +39381,9 @@ var IncrementalParser;
|
|
|
38317
39381
|
);
|
|
38318
39382
|
Debug.assert(pos <= end);
|
|
38319
39383
|
if (element.parent) {
|
|
38320
|
-
|
|
38321
|
-
Debug.
|
|
39384
|
+
const parent2 = element.parent;
|
|
39385
|
+
Debug.assertGreaterThanOrEqual(pos, parent2.pos);
|
|
39386
|
+
Debug.assertLessThanOrEqual(end, parent2.end);
|
|
38322
39387
|
}
|
|
38323
39388
|
setTextRangePosEnd(element, pos, end);
|
|
38324
39389
|
}
|
|
@@ -38357,7 +39422,7 @@ var IncrementalParser;
|
|
|
38357
39422
|
}
|
|
38358
39423
|
const fullEnd = child.end;
|
|
38359
39424
|
if (fullEnd >= changeStart) {
|
|
38360
|
-
child
|
|
39425
|
+
markAsIntersectingIncrementalChange(child);
|
|
38361
39426
|
unsetNodeChildren(child);
|
|
38362
39427
|
adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);
|
|
38363
39428
|
forEachChild(child, visitNode3, visitArray2);
|
|
@@ -38387,7 +39452,7 @@ var IncrementalParser;
|
|
|
38387
39452
|
}
|
|
38388
39453
|
const fullEnd = array.end;
|
|
38389
39454
|
if (fullEnd >= changeStart) {
|
|
38390
|
-
array
|
|
39455
|
+
markAsIntersectingIncrementalChange(array);
|
|
38391
39456
|
adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);
|
|
38392
39457
|
for (const node of array) {
|
|
38393
39458
|
visitNode3(node);
|
|
@@ -38868,6 +39933,7 @@ var libEntries = [
|
|
|
38868
39933
|
["esnext.object", "lib.esnext.object.d.ts"],
|
|
38869
39934
|
["esnext.array", "lib.esnext.array.d.ts"],
|
|
38870
39935
|
["esnext.regexp", "lib.esnext.regexp.d.ts"],
|
|
39936
|
+
["esnext.string", "lib.esnext.string.d.ts"],
|
|
38871
39937
|
["decorators", "lib.decorators.d.ts"],
|
|
38872
39938
|
["decorators.legacy", "lib.decorators.legacy.d.ts"]
|
|
38873
39939
|
];
|
|
@@ -39436,6 +40502,15 @@ var commandOptionsWithoutBuild = [
|
|
|
39436
40502
|
description: Diagnostics.Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting,
|
|
39437
40503
|
defaultValueDescription: false
|
|
39438
40504
|
},
|
|
40505
|
+
{
|
|
40506
|
+
name: "isolatedDeclarations",
|
|
40507
|
+
type: "boolean",
|
|
40508
|
+
category: Diagnostics.Interop_Constraints,
|
|
40509
|
+
description: Diagnostics.Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files,
|
|
40510
|
+
defaultValueDescription: false,
|
|
40511
|
+
affectsBuildInfo: true,
|
|
40512
|
+
affectsSemanticDiagnostics: true
|
|
40513
|
+
},
|
|
39439
40514
|
// Strict Type Checks
|
|
39440
40515
|
{
|
|
39441
40516
|
name: "strict",
|
|
@@ -47492,7 +48567,7 @@ function createBinder() {
|
|
|
47492
48567
|
declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);
|
|
47493
48568
|
} else if (isBlockOrCatchScoped(node)) {
|
|
47494
48569
|
bindBlockScopedDeclaration(node, 2 /* BlockScopedVariable */, 111551 /* BlockScopedVariableExcludes */);
|
|
47495
|
-
} else if (
|
|
48570
|
+
} else if (isPartOfParameterDeclaration(node)) {
|
|
47496
48571
|
declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111551 /* ParameterExcludes */);
|
|
47497
48572
|
} else {
|
|
47498
48573
|
declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111550 /* FunctionScopedVariableExcludes */);
|
|
@@ -47977,7 +49052,7 @@ function getModuleSpecifier(compilerOptions, importingSourceFile, importingSourc
|
|
|
47977
49052
|
}
|
|
47978
49053
|
function getNodeModulesPackageName(compilerOptions, importingSourceFile, nodeModulesFileName, host, preferences, options = {}) {
|
|
47979
49054
|
const info = getInfo(importingSourceFile.fileName, host);
|
|
47980
|
-
const modulePaths = getAllModulePaths(info, nodeModulesFileName, host, preferences, options);
|
|
49055
|
+
const modulePaths = getAllModulePaths(info, nodeModulesFileName, host, preferences, compilerOptions, options);
|
|
47981
49056
|
return firstDefined(modulePaths, (modulePath) => tryGetModuleNameAsNodeModule(
|
|
47982
49057
|
modulePath,
|
|
47983
49058
|
info,
|
|
@@ -47992,7 +49067,7 @@ function getNodeModulesPackageName(compilerOptions, importingSourceFile, nodeMod
|
|
|
47992
49067
|
}
|
|
47993
49068
|
function getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, preferences, userPreferences, options = {}) {
|
|
47994
49069
|
const info = getInfo(importingSourceFileName, host);
|
|
47995
|
-
const modulePaths = getAllModulePaths(info, toFileName2, host, userPreferences, options);
|
|
49070
|
+
const modulePaths = getAllModulePaths(info, toFileName2, host, userPreferences, compilerOptions, options);
|
|
47996
49071
|
return firstDefined(modulePaths, (modulePath) => tryGetModuleNameAsNodeModule(
|
|
47997
49072
|
modulePath,
|
|
47998
49073
|
info,
|
|
@@ -48054,7 +49129,7 @@ function getModuleSpecifiersWithCacheInfo(moduleSymbol, checker, compilerOptions
|
|
|
48054
49129
|
if (!moduleSourceFile)
|
|
48055
49130
|
return { moduleSpecifiers: emptyArray, computedWithoutCache };
|
|
48056
49131
|
computedWithoutCache = true;
|
|
48057
|
-
modulePaths || (modulePaths = getAllModulePathsWorker(getInfo(importingSourceFile.fileName, host), moduleSourceFile.originalFileName, host));
|
|
49132
|
+
modulePaths || (modulePaths = getAllModulePathsWorker(getInfo(importingSourceFile.fileName, host), moduleSourceFile.originalFileName, host, compilerOptions, options));
|
|
48058
49133
|
const result = computeModuleSpecifiers(
|
|
48059
49134
|
modulePaths,
|
|
48060
49135
|
compilerOptions,
|
|
@@ -48273,7 +49348,7 @@ function forEachFileNameOfModule(importingFileName, importedFileName, host, pref
|
|
|
48273
49348
|
});
|
|
48274
49349
|
return result || (preferSymlinks ? forEach(targets, (p) => shouldFilterIgnoredPaths && containsIgnoredPath(p) ? void 0 : cb(p, p === referenceRedirect)) : void 0);
|
|
48275
49350
|
}
|
|
48276
|
-
function getAllModulePaths(info, importedFileName, host, preferences, options = {}) {
|
|
49351
|
+
function getAllModulePaths(info, importedFileName, host, preferences, compilerOptions, options = {}) {
|
|
48277
49352
|
var _a;
|
|
48278
49353
|
const importingFilePath = toPath(info.importingSourceFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host));
|
|
48279
49354
|
const importedFilePath = toPath(importedFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host));
|
|
@@ -48283,13 +49358,48 @@ function getAllModulePaths(info, importedFileName, host, preferences, options =
|
|
|
48283
49358
|
if (cached == null ? void 0 : cached.modulePaths)
|
|
48284
49359
|
return cached.modulePaths;
|
|
48285
49360
|
}
|
|
48286
|
-
const modulePaths = getAllModulePathsWorker(info, importedFileName, host);
|
|
49361
|
+
const modulePaths = getAllModulePathsWorker(info, importedFileName, host, compilerOptions, options);
|
|
48287
49362
|
if (cache) {
|
|
48288
49363
|
cache.setModulePaths(importingFilePath, importedFilePath, preferences, options, modulePaths);
|
|
48289
49364
|
}
|
|
48290
49365
|
return modulePaths;
|
|
48291
49366
|
}
|
|
48292
|
-
|
|
49367
|
+
var runtimeDependencyFields = ["dependencies", "peerDependencies", "optionalDependencies"];
|
|
49368
|
+
function getAllRuntimeDependencies(packageJson) {
|
|
49369
|
+
let result;
|
|
49370
|
+
for (const field of runtimeDependencyFields) {
|
|
49371
|
+
const deps = packageJson[field];
|
|
49372
|
+
if (deps && typeof deps === "object") {
|
|
49373
|
+
result = concatenate(result, getOwnKeys(deps));
|
|
49374
|
+
}
|
|
49375
|
+
}
|
|
49376
|
+
return result;
|
|
49377
|
+
}
|
|
49378
|
+
function getAllModulePathsWorker(info, importedFileName, host, compilerOptions, options) {
|
|
49379
|
+
var _a, _b;
|
|
49380
|
+
const cache = (_a = host.getModuleResolutionCache) == null ? void 0 : _a.call(host);
|
|
49381
|
+
const links = (_b = host.getSymlinkCache) == null ? void 0 : _b.call(host);
|
|
49382
|
+
if (cache && links && host.readFile && !pathContainsNodeModules(info.importingSourceFileName)) {
|
|
49383
|
+
Debug.type(host);
|
|
49384
|
+
const state = getTemporaryModuleResolutionState(cache.getPackageJsonInfoCache(), host, {});
|
|
49385
|
+
const packageJson = getPackageScopeForPath(info.importingSourceFileName, state);
|
|
49386
|
+
if (packageJson) {
|
|
49387
|
+
const toResolve = getAllRuntimeDependencies(packageJson.contents.packageJsonContent);
|
|
49388
|
+
for (const depName of toResolve || emptyArray) {
|
|
49389
|
+
const resolved = resolveModuleName(
|
|
49390
|
+
depName,
|
|
49391
|
+
combinePaths(packageJson.packageDirectory, "package.json"),
|
|
49392
|
+
compilerOptions,
|
|
49393
|
+
host,
|
|
49394
|
+
cache,
|
|
49395
|
+
/*redirectedReference*/
|
|
49396
|
+
void 0,
|
|
49397
|
+
options.overrideImportMode
|
|
49398
|
+
);
|
|
49399
|
+
links.setSymlinksFromResolution(resolved.resolvedModule);
|
|
49400
|
+
}
|
|
49401
|
+
}
|
|
49402
|
+
}
|
|
48293
49403
|
const allFileNames = /* @__PURE__ */ new Map();
|
|
48294
49404
|
let importedFileFromNodeModules = false;
|
|
48295
49405
|
forEachFileNameOfModule(
|
|
@@ -48998,6 +50108,17 @@ function createTypeChecker(host) {
|
|
|
48998
50108
|
var checkBinaryExpression = createCheckBinaryExpression();
|
|
48999
50109
|
var emitResolver = createResolver();
|
|
49000
50110
|
var nodeBuilder = createNodeBuilder();
|
|
50111
|
+
var syntacticNodeBuilder = createSyntacticTypeNodeBuilder(compilerOptions, {
|
|
50112
|
+
isEntityNameVisible,
|
|
50113
|
+
isExpandoFunctionDeclaration,
|
|
50114
|
+
isNonNarrowedBindableName,
|
|
50115
|
+
getAllAccessorDeclarations: getAllAccessorDeclarationsForDeclaration,
|
|
50116
|
+
requiresAddingImplicitUndefined,
|
|
50117
|
+
isUndefinedIdentifierExpression(node) {
|
|
50118
|
+
Debug.assert(isExpressionNode(node));
|
|
50119
|
+
return getSymbolAtLocation(node) === undefinedSymbol;
|
|
50120
|
+
}
|
|
50121
|
+
});
|
|
49001
50122
|
var evaluate = createEvaluator({
|
|
49002
50123
|
evaluateElementAccessExpression,
|
|
49003
50124
|
evaluateEntityNameExpression
|
|
@@ -53024,7 +54145,7 @@ function createTypeChecker(host) {
|
|
|
53024
54145
|
}
|
|
53025
54146
|
return meaning;
|
|
53026
54147
|
}
|
|
53027
|
-
function isEntityNameVisible(entityName, enclosingDeclaration) {
|
|
54148
|
+
function isEntityNameVisible(entityName, enclosingDeclaration, shouldComputeAliasToMakeVisible = true) {
|
|
53028
54149
|
const meaning = getMeaningOfEntityNameReference(entityName);
|
|
53029
54150
|
const firstIdentifier = getFirstIdentifier(entityName);
|
|
53030
54151
|
const symbol = resolveName(
|
|
@@ -53054,11 +54175,7 @@ function createTypeChecker(host) {
|
|
|
53054
54175
|
).accessibility === 0 /* Accessible */) {
|
|
53055
54176
|
return { accessibility: 0 /* Accessible */ };
|
|
53056
54177
|
}
|
|
53057
|
-
return symbol && hasVisibleDeclarations(
|
|
53058
|
-
symbol,
|
|
53059
|
-
/*shouldComputeAliasToMakeVisible*/
|
|
53060
|
-
true
|
|
53061
|
-
) || {
|
|
54178
|
+
return symbol && hasVisibleDeclarations(symbol, shouldComputeAliasToMakeVisible) || {
|
|
53062
54179
|
accessibility: 1 /* NotAccessible */,
|
|
53063
54180
|
errorSymbolName: getTextOfNode(firstIdentifier),
|
|
53064
54181
|
errorNode: firstIdentifier
|
|
@@ -53207,6 +54324,16 @@ function createTypeChecker(host) {
|
|
|
53207
54324
|
return setTextRange(setOriginalNode(range, location), location);
|
|
53208
54325
|
}
|
|
53209
54326
|
function expressionOrTypeToTypeNode(context, expr, type, addUndefined) {
|
|
54327
|
+
const oldFlags = context.flags;
|
|
54328
|
+
if (expr && !(context.flags & -2147483648 /* NoSyntacticPrinter */)) {
|
|
54329
|
+
syntacticNodeBuilder.serializeTypeOfExpression(expr, context, addUndefined);
|
|
54330
|
+
}
|
|
54331
|
+
context.flags |= -2147483648 /* NoSyntacticPrinter */;
|
|
54332
|
+
const result = expressionOrTypeToTypeNodeHelper(context, expr, type, addUndefined);
|
|
54333
|
+
context.flags = oldFlags;
|
|
54334
|
+
return result;
|
|
54335
|
+
}
|
|
54336
|
+
function expressionOrTypeToTypeNodeHelper(context, expr, type, addUndefined) {
|
|
53210
54337
|
if (expr) {
|
|
53211
54338
|
const typeNode = isAssertionExpression(expr) ? expr.type : isJSDocTypeAssertion(expr) ? getJSDocTypeAssertionType(expr) : void 0;
|
|
53212
54339
|
if (typeNode && !isConstTypeReference(typeNode)) {
|
|
@@ -55151,6 +56278,10 @@ function createTypeChecker(host) {
|
|
|
55151
56278
|
}
|
|
55152
56279
|
const decl = declaration ?? symbol.valueDeclaration ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);
|
|
55153
56280
|
const expr = decl && isDeclarationWithPossibleInnerTypeNodeReuse(decl) ? getPossibleTypeNodeReuseExpression(decl) : void 0;
|
|
56281
|
+
if (decl && hasInferredType(decl) && !(context.flags & -2147483648 /* NoSyntacticPrinter */)) {
|
|
56282
|
+
syntacticNodeBuilder.serializeTypeOfDeclaration(decl, context);
|
|
56283
|
+
}
|
|
56284
|
+
context.flags |= -2147483648 /* NoSyntacticPrinter */;
|
|
55154
56285
|
const result = expressionOrTypeToTypeNode(context, expr, type, addUndefined);
|
|
55155
56286
|
context.flags = oldFlags;
|
|
55156
56287
|
return result;
|
|
@@ -55172,6 +56303,10 @@ function createTypeChecker(host) {
|
|
|
55172
56303
|
let returnTypeNode;
|
|
55173
56304
|
const returnType = getReturnTypeOfSignature(signature);
|
|
55174
56305
|
if (returnType && !(suppressAny && isTypeAny(returnType))) {
|
|
56306
|
+
if (signature.declaration && !(context.flags & -2147483648 /* NoSyntacticPrinter */)) {
|
|
56307
|
+
syntacticNodeBuilder.serializeReturnTypeForSignature(signature.declaration, context);
|
|
56308
|
+
}
|
|
56309
|
+
context.flags |= -2147483648 /* NoSyntacticPrinter */;
|
|
55175
56310
|
returnTypeNode = serializeReturnTypeForSignatureWorker(context, signature);
|
|
55176
56311
|
} else if (!suppressAny) {
|
|
55177
56312
|
returnTypeNode = factory.createKeywordTypeNode(133 /* AnyKeyword */);
|
|
@@ -55239,7 +56374,7 @@ function createTypeChecker(host) {
|
|
|
55239
56374
|
);
|
|
55240
56375
|
if (sym) {
|
|
55241
56376
|
if (sym.flags & 1 /* FunctionScopedVariable */ && sym.valueDeclaration) {
|
|
55242
|
-
if (
|
|
56377
|
+
if (isPartOfParameterDeclaration(sym.valueDeclaration)) {
|
|
55243
56378
|
return { introducesError, node: attachSymbolToLeftmostIdentifier(node) };
|
|
55244
56379
|
}
|
|
55245
56380
|
}
|
|
@@ -55945,7 +57080,7 @@ function createTypeChecker(host) {
|
|
|
55945
57080
|
}
|
|
55946
57081
|
}
|
|
55947
57082
|
function includePrivateSymbol(symbol) {
|
|
55948
|
-
if (some(symbol.declarations,
|
|
57083
|
+
if (some(symbol.declarations, isPartOfParameterDeclaration))
|
|
55949
57084
|
return;
|
|
55950
57085
|
Debug.assertIsDefined(deferredPrivatesStack[deferredPrivatesStack.length - 1]);
|
|
55951
57086
|
getUnusedName(unescapeLeadingUnderscores(symbol.escapedName), symbol);
|
|
@@ -57532,7 +58667,7 @@ function createTypeChecker(host) {
|
|
|
57532
58667
|
return parentType;
|
|
57533
58668
|
}
|
|
57534
58669
|
const pattern = declaration.parent;
|
|
57535
|
-
if (strictNullChecks && declaration.flags & 33554432 /* Ambient */ &&
|
|
58670
|
+
if (strictNullChecks && declaration.flags & 33554432 /* Ambient */ && isPartOfParameterDeclaration(declaration)) {
|
|
57536
58671
|
parentType = getNonNullableType(parentType);
|
|
57537
58672
|
} else if (strictNullChecks && pattern.parent.initializer && !hasTypeFacts(getTypeOfInitializer(pattern.parent.initializer), 65536 /* EQUndefined */)) {
|
|
57538
58673
|
parentType = getTypeWithFacts(parentType, 524288 /* NEUndefined */);
|
|
@@ -64927,13 +66062,18 @@ function createTypeChecker(host) {
|
|
|
64927
66062
|
const typeArguments = map(typeParameters, (t) => getMappedType(t, combinedMapper));
|
|
64928
66063
|
const newAliasSymbol = aliasSymbol || type.aliasSymbol;
|
|
64929
66064
|
const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);
|
|
64930
|
-
const id = getTypeListId(typeArguments) + getAliasId(newAliasSymbol, newAliasTypeArguments);
|
|
66065
|
+
const id = (type.objectFlags & 134217728 /* SingleSignatureType */ ? "S" : "") + getTypeListId(typeArguments) + getAliasId(newAliasSymbol, newAliasTypeArguments);
|
|
64931
66066
|
if (!target.instantiations) {
|
|
64932
66067
|
target.instantiations = /* @__PURE__ */ new Map();
|
|
64933
66068
|
target.instantiations.set(getTypeListId(typeParameters) + getAliasId(target.aliasSymbol, target.aliasTypeArguments), target);
|
|
64934
66069
|
}
|
|
64935
66070
|
let result = target.instantiations.get(id);
|
|
64936
66071
|
if (!result) {
|
|
66072
|
+
if (type.objectFlags & 134217728 /* SingleSignatureType */) {
|
|
66073
|
+
result = instantiateAnonymousType(type, mapper);
|
|
66074
|
+
target.instantiations.set(id, result);
|
|
66075
|
+
return result;
|
|
66076
|
+
}
|
|
64937
66077
|
const newMapper = createTypeMapper(typeParameters, typeArguments);
|
|
64938
66078
|
result = target.objectFlags & 4 /* Reference */ ? createDeferredTypeReference(type.target, type.node, newMapper, newAliasSymbol, newAliasTypeArguments) : target.objectFlags & 32 /* Mapped */ ? instantiateMappedType(target, newMapper, newAliasSymbol, newAliasTypeArguments) : instantiateAnonymousType(target, newMapper, newAliasSymbol, newAliasTypeArguments);
|
|
64939
66079
|
target.instantiations.set(id, result);
|
|
@@ -71770,7 +72910,7 @@ function createTypeChecker(host) {
|
|
|
71770
72910
|
case 206 /* ObjectBindingPattern */:
|
|
71771
72911
|
case 207 /* ArrayBindingPattern */:
|
|
71772
72912
|
const rootDeclaration = getRootDeclaration(node.parent);
|
|
71773
|
-
return isParameter(rootDeclaration) || isCatchClauseVariableDeclaration(rootDeclaration) ? !isSomeSymbolAssigned(rootDeclaration) : isVariableDeclaration(rootDeclaration) &&
|
|
72913
|
+
return isParameter(rootDeclaration) || isCatchClauseVariableDeclaration(rootDeclaration) ? !isSomeSymbolAssigned(rootDeclaration) : isVariableDeclaration(rootDeclaration) && isVarConstLike2(rootDeclaration);
|
|
71774
72914
|
}
|
|
71775
72915
|
return false;
|
|
71776
72916
|
}
|
|
@@ -71909,7 +73049,7 @@ function createTypeChecker(host) {
|
|
|
71909
73049
|
if (!isReachableFlowNode(flow)) {
|
|
71910
73050
|
return unreachableNeverType;
|
|
71911
73051
|
}
|
|
71912
|
-
if (isVariableDeclaration(node) && (isInJSFile(node) ||
|
|
73052
|
+
if (isVariableDeclaration(node) && (isInJSFile(node) || isVarConstLike2(node))) {
|
|
71913
73053
|
const init = getDeclaredExpandoInitializer(node);
|
|
71914
73054
|
if (init && (init.kind === 218 /* FunctionExpression */ || init.kind === 219 /* ArrowFunction */)) {
|
|
71915
73055
|
return getTypeAtFlowNode(flow.antecedent);
|
|
@@ -76149,7 +77289,10 @@ function createTypeChecker(host) {
|
|
|
76149
77289
|
if (indexInfo.isReadonly && (isAssignmentTarget(node) || isDeleteTarget(node))) {
|
|
76150
77290
|
error2(node, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(apparentType));
|
|
76151
77291
|
}
|
|
76152
|
-
propType =
|
|
77292
|
+
propType = indexInfo.type;
|
|
77293
|
+
if (compilerOptions.noUncheckedIndexedAccess && getAssignmentTargetKind(node) !== 1 /* Definite */) {
|
|
77294
|
+
propType = getUnionType([propType, missingType]);
|
|
77295
|
+
}
|
|
76153
77296
|
if (compilerOptions.noPropertyAccessFromIndexSignature && isPropertyAccessExpression(node)) {
|
|
76154
77297
|
error2(right, Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0, unescapeLeadingUnderscores(right.escapedText));
|
|
76155
77298
|
}
|
|
@@ -76599,7 +77742,16 @@ function createTypeChecker(host) {
|
|
|
76599
77742
|
return errorType;
|
|
76600
77743
|
}
|
|
76601
77744
|
const effectiveIndexType = isForInVariableForNumericPropertyNames(indexExpression) ? numberType : indexType;
|
|
76602
|
-
const
|
|
77745
|
+
const assignmentTargetKind = getAssignmentTargetKind(node);
|
|
77746
|
+
let accessFlags;
|
|
77747
|
+
if (assignmentTargetKind === 0 /* None */) {
|
|
77748
|
+
accessFlags = 32 /* ExpressionPosition */;
|
|
77749
|
+
} else {
|
|
77750
|
+
accessFlags = 4 /* Writing */ | (isGenericObjectType(objectType) && !isThisTypeParameter(objectType) ? 2 /* NoIndexSignatures */ : 0);
|
|
77751
|
+
if (assignmentTargetKind === 2 /* Compound */) {
|
|
77752
|
+
accessFlags |= 32 /* ExpressionPosition */;
|
|
77753
|
+
}
|
|
77754
|
+
}
|
|
76603
77755
|
const indexedAccessType = getIndexedAccessTypeOrUndefined(objectType, effectiveIndexType, accessFlags, node) || errorType;
|
|
76604
77756
|
return checkIndexedAccessIndexType(getFlowTypeOfAccessExpression(node, getNodeLinks(node).resolvedSymbol, indexedAccessType, indexExpression, checkMode), node);
|
|
76605
77757
|
}
|
|
@@ -78384,7 +79536,7 @@ function createTypeChecker(host) {
|
|
|
78384
79536
|
let name;
|
|
78385
79537
|
let decl;
|
|
78386
79538
|
if (isVariableDeclaration(node.parent) && node.parent.initializer === node) {
|
|
78387
|
-
if (!isInJSFile(node) && !(
|
|
79539
|
+
if (!isInJSFile(node) && !(isVarConstLike2(node.parent) && isFunctionLikeDeclaration(node))) {
|
|
78388
79540
|
return void 0;
|
|
78389
79541
|
}
|
|
78390
79542
|
name = node.parent.name;
|
|
@@ -83827,7 +84979,7 @@ function createTypeChecker(host) {
|
|
|
83827
84979
|
for (const node of potentialUnusedRenamedBindingElementsInTypes) {
|
|
83828
84980
|
if (!((_a = getSymbolOfDeclaration(node)) == null ? void 0 : _a.isReferenced)) {
|
|
83829
84981
|
const wrappingDeclaration = walkUpBindingElementsAndPatterns(node);
|
|
83830
|
-
Debug.assert(
|
|
84982
|
+
Debug.assert(isPartOfParameterDeclaration(wrappingDeclaration), "Only parameter declaration should be checked here");
|
|
83831
84983
|
const diagnostic = createDiagnosticForNode(node.name, Diagnostics._0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation, declarationNameToString(node.name), declarationNameToString(node.propertyName));
|
|
83832
84984
|
if (!wrappingDeclaration.type) {
|
|
83833
84985
|
addRelatedInfo(
|
|
@@ -84015,7 +85167,7 @@ function createTypeChecker(host) {
|
|
|
84015
85167
|
}
|
|
84016
85168
|
}
|
|
84017
85169
|
function checkVarDeclaredNamesNotShadowed(node) {
|
|
84018
|
-
if ((getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */) !== 0 ||
|
|
85170
|
+
if ((getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */) !== 0 || isPartOfParameterDeclaration(node)) {
|
|
84019
85171
|
return;
|
|
84020
85172
|
}
|
|
84021
85173
|
const symbol = getSymbolOfDeclaration(node);
|
|
@@ -84063,7 +85215,7 @@ function createTypeChecker(host) {
|
|
|
84063
85215
|
}
|
|
84064
85216
|
}
|
|
84065
85217
|
if (isBindingElement(node)) {
|
|
84066
|
-
if (node.propertyName && isIdentifier(node.name) &&
|
|
85218
|
+
if (node.propertyName && isIdentifier(node.name) && isPartOfParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) {
|
|
84067
85219
|
potentialUnusedRenamedBindingElementsInTypes.push(node);
|
|
84068
85220
|
return;
|
|
84069
85221
|
}
|
|
@@ -84108,7 +85260,7 @@ function createTypeChecker(host) {
|
|
|
84108
85260
|
}
|
|
84109
85261
|
forEach(node.name.elements, checkSourceElement);
|
|
84110
85262
|
}
|
|
84111
|
-
if (node.initializer &&
|
|
85263
|
+
if (node.initializer && isPartOfParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) {
|
|
84112
85264
|
error2(node, Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);
|
|
84113
85265
|
return;
|
|
84114
85266
|
}
|
|
@@ -86260,10 +87412,18 @@ function createTypeChecker(host) {
|
|
|
86260
87412
|
/*isSyntacticallyString*/
|
|
86261
87413
|
false,
|
|
86262
87414
|
/*resolvedOtherFiles*/
|
|
87415
|
+
true,
|
|
87416
|
+
/*hasExternalReferences*/
|
|
86263
87417
|
true
|
|
86264
87418
|
);
|
|
86265
87419
|
}
|
|
86266
|
-
return
|
|
87420
|
+
return evaluatorResult(
|
|
87421
|
+
result.value,
|
|
87422
|
+
result.isSyntacticallyString,
|
|
87423
|
+
result.resolvedOtherFiles,
|
|
87424
|
+
/*hasExternalReferences*/
|
|
87425
|
+
true
|
|
87426
|
+
);
|
|
86267
87427
|
}
|
|
86268
87428
|
}
|
|
86269
87429
|
return evaluatorResult(
|
|
@@ -86310,7 +87470,17 @@ function createTypeChecker(host) {
|
|
|
86310
87470
|
0
|
|
86311
87471
|
);
|
|
86312
87472
|
}
|
|
86313
|
-
|
|
87473
|
+
const value = getEnumMemberValue(declaration);
|
|
87474
|
+
if (location.parent !== declaration.parent) {
|
|
87475
|
+
return evaluatorResult(
|
|
87476
|
+
value.value,
|
|
87477
|
+
value.isSyntacticallyString,
|
|
87478
|
+
value.resolvedOtherFiles,
|
|
87479
|
+
/*hasExternalReferences*/
|
|
87480
|
+
true
|
|
87481
|
+
);
|
|
87482
|
+
}
|
|
87483
|
+
return value;
|
|
86314
87484
|
}
|
|
86315
87485
|
function checkEnumDeclaration(node) {
|
|
86316
87486
|
addLazyDiagnostic(() => checkEnumDeclarationWorker(node));
|
|
@@ -88421,12 +89591,24 @@ function createTypeChecker(host) {
|
|
|
88421
89591
|
return strictNullChecks && isOptionalParameter(parameter) && (isJSDocParameterTag(parameter) || !parameter.initializer) && hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
|
|
88422
89592
|
}
|
|
88423
89593
|
function isExpandoFunctionDeclaration(node) {
|
|
88424
|
-
const declaration = getParseTreeNode(node, isFunctionDeclaration);
|
|
89594
|
+
const declaration = getParseTreeNode(node, (n) => isFunctionDeclaration(n) || isVariableDeclaration(n));
|
|
88425
89595
|
if (!declaration) {
|
|
88426
89596
|
return false;
|
|
88427
89597
|
}
|
|
88428
|
-
|
|
88429
|
-
if (
|
|
89598
|
+
let symbol;
|
|
89599
|
+
if (isVariableDeclaration(declaration)) {
|
|
89600
|
+
if (declaration.type || !isInJSFile(declaration) && !isVarConstLike2(declaration)) {
|
|
89601
|
+
return false;
|
|
89602
|
+
}
|
|
89603
|
+
const initializer = getDeclaredExpandoInitializer(declaration);
|
|
89604
|
+
if (!initializer || !canHaveSymbol(initializer)) {
|
|
89605
|
+
return false;
|
|
89606
|
+
}
|
|
89607
|
+
symbol = getSymbolOfDeclaration(initializer);
|
|
89608
|
+
} else {
|
|
89609
|
+
symbol = getSymbolOfDeclaration(declaration);
|
|
89610
|
+
}
|
|
89611
|
+
if (!symbol || !(symbol.flags & 16 /* Function */ | 3 /* Variable */)) {
|
|
88430
89612
|
return false;
|
|
88431
89613
|
}
|
|
88432
89614
|
return !!forEachEntry(getExportsOfSymbol(symbol), (p) => p.flags & 111551 /* Value */ && isExpandoPropertyDeclaration(p.valueDeclaration));
|
|
@@ -88730,11 +89912,27 @@ function createTypeChecker(host) {
|
|
|
88730
89912
|
return void 0;
|
|
88731
89913
|
}
|
|
88732
89914
|
function isLiteralConstDeclaration(node) {
|
|
88733
|
-
if (isDeclarationReadonly(node) || isVariableDeclaration(node) &&
|
|
89915
|
+
if (isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike2(node)) {
|
|
88734
89916
|
return isFreshLiteralType(getTypeOfSymbol(getSymbolOfDeclaration(node)));
|
|
88735
89917
|
}
|
|
88736
89918
|
return false;
|
|
88737
89919
|
}
|
|
89920
|
+
function isNonNarrowedBindableName(node) {
|
|
89921
|
+
if (!hasBindableName(node.parent)) {
|
|
89922
|
+
return false;
|
|
89923
|
+
}
|
|
89924
|
+
const expression = node.expression;
|
|
89925
|
+
if (!isEntityNameExpression(expression)) {
|
|
89926
|
+
return true;
|
|
89927
|
+
}
|
|
89928
|
+
const type = getTypeOfExpression(expression);
|
|
89929
|
+
const symbol = getSymbolAtLocation(expression);
|
|
89930
|
+
if (!symbol) {
|
|
89931
|
+
return false;
|
|
89932
|
+
}
|
|
89933
|
+
const declaredType = getTypeOfSymbol(symbol);
|
|
89934
|
+
return declaredType === type;
|
|
89935
|
+
}
|
|
88738
89936
|
function literalTypeToNode(type, enclosing, tracker) {
|
|
88739
89937
|
const enumResult = type.flags & 1056 /* EnumLike */ ? nodeBuilder.symbolToExpression(
|
|
88740
89938
|
type.symbol,
|
|
@@ -88854,6 +90052,7 @@ function createTypeChecker(host) {
|
|
|
88854
90052
|
return node && getExternalModuleFileFromDeclaration(node);
|
|
88855
90053
|
},
|
|
88856
90054
|
isLiteralConstDeclaration,
|
|
90055
|
+
isNonNarrowedBindableName,
|
|
88857
90056
|
isLateBound: (nodeIn) => {
|
|
88858
90057
|
const node = getParseTreeNode(nodeIn, isDeclaration);
|
|
88859
90058
|
const symbol = node && getSymbolOfDeclaration(node);
|
|
@@ -90225,7 +91424,7 @@ function createTypeChecker(host) {
|
|
|
90225
91424
|
const initializer = node.initializer;
|
|
90226
91425
|
if (initializer) {
|
|
90227
91426
|
const isInvalidInitializer = !(isStringOrNumberLiteralExpression(initializer) || isSimpleLiteralEnumReference(initializer) || initializer.kind === 112 /* TrueKeyword */ || initializer.kind === 97 /* FalseKeyword */ || isBigIntLiteralExpression(initializer));
|
|
90228
|
-
const isConstOrReadonly = isDeclarationReadonly(node) || isVariableDeclaration(node) &&
|
|
91427
|
+
const isConstOrReadonly = isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike2(node);
|
|
90229
91428
|
if (isConstOrReadonly && !node.type) {
|
|
90230
91429
|
if (isInvalidInitializer) {
|
|
90231
91430
|
return grammarErrorOnNode(initializer, Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference);
|
|
@@ -90690,7 +91889,7 @@ function createTypeChecker(host) {
|
|
|
90690
91889
|
lastGetCombinedNodeFlagsResult = getCombinedNodeFlags(node);
|
|
90691
91890
|
return lastGetCombinedNodeFlagsResult;
|
|
90692
91891
|
}
|
|
90693
|
-
function
|
|
91892
|
+
function isVarConstLike2(node) {
|
|
90694
91893
|
const blockScopeKind = getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */;
|
|
90695
91894
|
return blockScopeKind === 2 /* Const */ || blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */;
|
|
90696
91895
|
}
|
|
@@ -90844,6 +92043,12 @@ var SymbolTrackerImpl = class _SymbolTrackerImpl {
|
|
|
90844
92043
|
onDiagnosticReported() {
|
|
90845
92044
|
this.context.reportedDiagnostic = true;
|
|
90846
92045
|
}
|
|
92046
|
+
reportInferenceFallback(node) {
|
|
92047
|
+
var _a;
|
|
92048
|
+
if ((_a = this.inner) == null ? void 0 : _a.reportInferenceFallback) {
|
|
92049
|
+
this.inner.reportInferenceFallback(node);
|
|
92050
|
+
}
|
|
92051
|
+
}
|
|
90847
92052
|
};
|
|
90848
92053
|
|
|
90849
92054
|
// src/compiler/visitorPublic.ts
|
|
@@ -95073,7 +96278,7 @@ function transformTypeScript(context) {
|
|
|
95073
96278
|
}
|
|
95074
96279
|
function visitParenthesizedExpression(node) {
|
|
95075
96280
|
const innerExpression = skipOuterExpressions(node.expression, ~6 /* Assertions */);
|
|
95076
|
-
if (isAssertionExpression(innerExpression)) {
|
|
96281
|
+
if (isAssertionExpression(innerExpression) || isSatisfiesExpression(innerExpression)) {
|
|
95077
96282
|
const expression = visitNode(node.expression, visitor, isExpression);
|
|
95078
96283
|
Debug.assert(expression);
|
|
95079
96284
|
return factory2.createPartiallyEmittedExpression(expression, node);
|
|
@@ -113996,6 +115201,194 @@ function createGetSymbolAccessibilityDiagnosticForNode(node) {
|
|
|
113996
115201
|
};
|
|
113997
115202
|
}
|
|
113998
115203
|
}
|
|
115204
|
+
function createGetIsolatedDeclarationErrors(resolver) {
|
|
115205
|
+
const relatedSuggestionByDeclarationKind = {
|
|
115206
|
+
[219 /* ArrowFunction */]: Diagnostics.Add_a_return_type_to_the_function_expression,
|
|
115207
|
+
[218 /* FunctionExpression */]: Diagnostics.Add_a_return_type_to_the_function_expression,
|
|
115208
|
+
[174 /* MethodDeclaration */]: Diagnostics.Add_a_return_type_to_the_method,
|
|
115209
|
+
[177 /* GetAccessor */]: Diagnostics.Add_a_return_type_to_the_get_accessor_declaration,
|
|
115210
|
+
[178 /* SetAccessor */]: Diagnostics.Add_a_type_to_parameter_of_the_set_accessor_declaration,
|
|
115211
|
+
[262 /* FunctionDeclaration */]: Diagnostics.Add_a_return_type_to_the_function_declaration,
|
|
115212
|
+
[180 /* ConstructSignature */]: Diagnostics.Add_a_return_type_to_the_function_declaration,
|
|
115213
|
+
[169 /* Parameter */]: Diagnostics.Add_a_type_annotation_to_the_parameter_0,
|
|
115214
|
+
[260 /* VariableDeclaration */]: Diagnostics.Add_a_type_annotation_to_the_variable_0,
|
|
115215
|
+
[172 /* PropertyDeclaration */]: Diagnostics.Add_a_type_annotation_to_the_property_0,
|
|
115216
|
+
[171 /* PropertySignature */]: Diagnostics.Add_a_type_annotation_to_the_property_0,
|
|
115217
|
+
[277 /* ExportAssignment */]: Diagnostics.Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it
|
|
115218
|
+
};
|
|
115219
|
+
const errorByDeclarationKind = {
|
|
115220
|
+
[218 /* FunctionExpression */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
|
|
115221
|
+
[262 /* FunctionDeclaration */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
|
|
115222
|
+
[219 /* ArrowFunction */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
|
|
115223
|
+
[174 /* MethodDeclaration */]: Diagnostics.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
|
|
115224
|
+
[180 /* ConstructSignature */]: Diagnostics.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
|
|
115225
|
+
[177 /* GetAccessor */]: Diagnostics.At_least_one_accessor_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
|
|
115226
|
+
[178 /* SetAccessor */]: Diagnostics.At_least_one_accessor_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
|
|
115227
|
+
[169 /* Parameter */]: Diagnostics.Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations,
|
|
115228
|
+
[260 /* VariableDeclaration */]: Diagnostics.Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations,
|
|
115229
|
+
[172 /* PropertyDeclaration */]: Diagnostics.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations,
|
|
115230
|
+
[171 /* PropertySignature */]: Diagnostics.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations,
|
|
115231
|
+
[167 /* ComputedPropertyName */]: Diagnostics.Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations,
|
|
115232
|
+
[305 /* SpreadAssignment */]: Diagnostics.Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations,
|
|
115233
|
+
[304 /* ShorthandPropertyAssignment */]: Diagnostics.Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations,
|
|
115234
|
+
[209 /* ArrayLiteralExpression */]: Diagnostics.Only_const_arrays_can_be_inferred_with_isolatedDeclarations,
|
|
115235
|
+
[277 /* ExportAssignment */]: Diagnostics.Default_exports_can_t_be_inferred_with_isolatedDeclarations,
|
|
115236
|
+
[230 /* SpreadElement */]: Diagnostics.Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations
|
|
115237
|
+
};
|
|
115238
|
+
return getDiagnostic2;
|
|
115239
|
+
function getDiagnostic2(node) {
|
|
115240
|
+
const heritageClause = findAncestor(node, isHeritageClause);
|
|
115241
|
+
if (heritageClause) {
|
|
115242
|
+
return createDiagnosticForNode(node, Diagnostics.Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations);
|
|
115243
|
+
}
|
|
115244
|
+
Debug.type(node);
|
|
115245
|
+
switch (node.kind) {
|
|
115246
|
+
case 177 /* GetAccessor */:
|
|
115247
|
+
case 178 /* SetAccessor */:
|
|
115248
|
+
return createAccessorTypeError(node);
|
|
115249
|
+
case 167 /* ComputedPropertyName */:
|
|
115250
|
+
case 304 /* ShorthandPropertyAssignment */:
|
|
115251
|
+
case 305 /* SpreadAssignment */:
|
|
115252
|
+
return createObjectLiteralError(node);
|
|
115253
|
+
case 209 /* ArrayLiteralExpression */:
|
|
115254
|
+
case 230 /* SpreadElement */:
|
|
115255
|
+
return createArrayLiteralError(node);
|
|
115256
|
+
case 174 /* MethodDeclaration */:
|
|
115257
|
+
case 180 /* ConstructSignature */:
|
|
115258
|
+
case 218 /* FunctionExpression */:
|
|
115259
|
+
case 219 /* ArrowFunction */:
|
|
115260
|
+
case 262 /* FunctionDeclaration */:
|
|
115261
|
+
return createReturnTypeError(node);
|
|
115262
|
+
case 208 /* BindingElement */:
|
|
115263
|
+
return createBindingElementError(node);
|
|
115264
|
+
case 172 /* PropertyDeclaration */:
|
|
115265
|
+
case 260 /* VariableDeclaration */:
|
|
115266
|
+
return createVariableOrPropertyError(node);
|
|
115267
|
+
case 169 /* Parameter */:
|
|
115268
|
+
return createParameterError(node);
|
|
115269
|
+
case 303 /* PropertyAssignment */:
|
|
115270
|
+
return createExpressionError(node.initializer);
|
|
115271
|
+
case 231 /* ClassExpression */:
|
|
115272
|
+
return createClassExpressionError(node);
|
|
115273
|
+
default:
|
|
115274
|
+
assertType(node);
|
|
115275
|
+
return createExpressionError(node);
|
|
115276
|
+
}
|
|
115277
|
+
}
|
|
115278
|
+
function findNearestDeclaration(node) {
|
|
115279
|
+
const result = findAncestor(node, (n) => isExportAssignment(n) || (isStatement(n) ? "quit" : isVariableDeclaration(n) || isPropertyDeclaration(n) || isParameter(n)));
|
|
115280
|
+
return result;
|
|
115281
|
+
}
|
|
115282
|
+
function createAccessorTypeError(node) {
|
|
115283
|
+
const { getAccessor, setAccessor } = getAllAccessorDeclarations(node.symbol.declarations, node);
|
|
115284
|
+
const targetNode = (isSetAccessor(node) ? node.parameters[0] : node) ?? node;
|
|
115285
|
+
const diag2 = createDiagnosticForNode(targetNode, errorByDeclarationKind[node.kind]);
|
|
115286
|
+
if (setAccessor) {
|
|
115287
|
+
addRelatedInfo(diag2, createDiagnosticForNode(setAccessor, relatedSuggestionByDeclarationKind[setAccessor.kind]));
|
|
115288
|
+
}
|
|
115289
|
+
if (getAccessor) {
|
|
115290
|
+
addRelatedInfo(diag2, createDiagnosticForNode(getAccessor, relatedSuggestionByDeclarationKind[getAccessor.kind]));
|
|
115291
|
+
}
|
|
115292
|
+
return diag2;
|
|
115293
|
+
}
|
|
115294
|
+
function createObjectLiteralError(node) {
|
|
115295
|
+
const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);
|
|
115296
|
+
const parentDeclaration = findNearestDeclaration(node);
|
|
115297
|
+
if (parentDeclaration) {
|
|
115298
|
+
const targetStr = isExportAssignment(parentDeclaration) ? "" : getTextOfNode(
|
|
115299
|
+
parentDeclaration.name,
|
|
115300
|
+
/*includeTrivia*/
|
|
115301
|
+
false
|
|
115302
|
+
);
|
|
115303
|
+
addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));
|
|
115304
|
+
}
|
|
115305
|
+
return diag2;
|
|
115306
|
+
}
|
|
115307
|
+
function createArrayLiteralError(node) {
|
|
115308
|
+
const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);
|
|
115309
|
+
const parentDeclaration = findNearestDeclaration(node);
|
|
115310
|
+
if (parentDeclaration) {
|
|
115311
|
+
const targetStr = isExportAssignment(parentDeclaration) ? "" : getTextOfNode(
|
|
115312
|
+
parentDeclaration.name,
|
|
115313
|
+
/*includeTrivia*/
|
|
115314
|
+
false
|
|
115315
|
+
);
|
|
115316
|
+
addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));
|
|
115317
|
+
}
|
|
115318
|
+
return diag2;
|
|
115319
|
+
}
|
|
115320
|
+
function createReturnTypeError(node) {
|
|
115321
|
+
const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);
|
|
115322
|
+
const parentDeclaration = findNearestDeclaration(node);
|
|
115323
|
+
if (parentDeclaration) {
|
|
115324
|
+
const targetStr = isExportAssignment(parentDeclaration) ? "" : getTextOfNode(
|
|
115325
|
+
parentDeclaration.name,
|
|
115326
|
+
/*includeTrivia*/
|
|
115327
|
+
false
|
|
115328
|
+
);
|
|
115329
|
+
addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));
|
|
115330
|
+
}
|
|
115331
|
+
addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind]));
|
|
115332
|
+
return diag2;
|
|
115333
|
+
}
|
|
115334
|
+
function createBindingElementError(node) {
|
|
115335
|
+
return createDiagnosticForNode(node, Diagnostics.Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations);
|
|
115336
|
+
}
|
|
115337
|
+
function createVariableOrPropertyError(node) {
|
|
115338
|
+
const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);
|
|
115339
|
+
const targetStr = getTextOfNode(
|
|
115340
|
+
node.name,
|
|
115341
|
+
/*includeTrivia*/
|
|
115342
|
+
false
|
|
115343
|
+
);
|
|
115344
|
+
addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind], targetStr));
|
|
115345
|
+
return diag2;
|
|
115346
|
+
}
|
|
115347
|
+
function createParameterError(node) {
|
|
115348
|
+
if (isSetAccessor(node.parent)) {
|
|
115349
|
+
return createAccessorTypeError(node.parent);
|
|
115350
|
+
}
|
|
115351
|
+
const addUndefined = resolver.requiresAddingImplicitUndefined(node);
|
|
115352
|
+
if (!addUndefined && node.initializer) {
|
|
115353
|
+
return createExpressionError(node.initializer);
|
|
115354
|
+
}
|
|
115355
|
+
const message = addUndefined ? Diagnostics.Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_it_s_type_This_is_not_supported_with_isolatedDeclarations : errorByDeclarationKind[node.kind];
|
|
115356
|
+
const diag2 = createDiagnosticForNode(node, message);
|
|
115357
|
+
const targetStr = getTextOfNode(
|
|
115358
|
+
node.name,
|
|
115359
|
+
/*includeTrivia*/
|
|
115360
|
+
false
|
|
115361
|
+
);
|
|
115362
|
+
addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind], targetStr));
|
|
115363
|
+
return diag2;
|
|
115364
|
+
}
|
|
115365
|
+
function createClassExpressionError(node) {
|
|
115366
|
+
return createExpressionError(node, Diagnostics.Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations);
|
|
115367
|
+
}
|
|
115368
|
+
function createExpressionError(node, diagnosticMessage) {
|
|
115369
|
+
const parentDeclaration = findNearestDeclaration(node);
|
|
115370
|
+
let diag2;
|
|
115371
|
+
if (parentDeclaration) {
|
|
115372
|
+
const targetStr = isExportAssignment(parentDeclaration) ? "" : getTextOfNode(
|
|
115373
|
+
parentDeclaration.name,
|
|
115374
|
+
/*includeTrivia*/
|
|
115375
|
+
false
|
|
115376
|
+
);
|
|
115377
|
+
const parent2 = findAncestor(node.parent, (n) => isExportAssignment(n) || (isStatement(n) ? "quit" : !isParenthesizedExpression(n) && !isTypeAssertionExpression(n) && !isAsExpression(n)));
|
|
115378
|
+
if (parentDeclaration === parent2) {
|
|
115379
|
+
diag2 = createDiagnosticForNode(node, diagnosticMessage ?? errorByDeclarationKind[parentDeclaration.kind]);
|
|
115380
|
+
addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));
|
|
115381
|
+
} else {
|
|
115382
|
+
diag2 = createDiagnosticForNode(node, diagnosticMessage ?? Diagnostics.Expression_type_can_t_be_inferred_with_isolatedDeclarations);
|
|
115383
|
+
addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));
|
|
115384
|
+
addRelatedInfo(diag2, createDiagnosticForNode(node, Diagnostics.Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit));
|
|
115385
|
+
}
|
|
115386
|
+
} else {
|
|
115387
|
+
diag2 = createDiagnosticForNode(node, diagnosticMessage ?? Diagnostics.Expression_type_can_t_be_inferred_with_isolatedDeclarations);
|
|
115388
|
+
}
|
|
115389
|
+
return diag2;
|
|
115390
|
+
}
|
|
115391
|
+
}
|
|
113999
115392
|
|
|
114000
115393
|
// src/compiler/transformers/declarations.ts
|
|
114001
115394
|
function getDeclarationDiagnostics(host, resolver, file) {
|
|
@@ -114037,7 +115430,8 @@ function transformDeclarations(context) {
|
|
|
114037
115430
|
reportTruncationError,
|
|
114038
115431
|
moduleResolverHost: host,
|
|
114039
115432
|
reportNonlocalAugmentation,
|
|
114040
|
-
reportNonSerializableProperty
|
|
115433
|
+
reportNonSerializableProperty,
|
|
115434
|
+
reportInferenceFallback
|
|
114041
115435
|
};
|
|
114042
115436
|
let errorNameNode;
|
|
114043
115437
|
let errorFallbackNode;
|
|
@@ -114047,8 +115441,29 @@ function transformDeclarations(context) {
|
|
|
114047
115441
|
let rawLibReferenceDirectives;
|
|
114048
115442
|
const resolver = context.getEmitResolver();
|
|
114049
115443
|
const options = context.getCompilerOptions();
|
|
114050
|
-
const
|
|
115444
|
+
const getIsolatedDeclarationError = createGetIsolatedDeclarationErrors(resolver);
|
|
115445
|
+
const { stripInternal, isolatedDeclarations } = options;
|
|
114051
115446
|
return transformRoot;
|
|
115447
|
+
function reportExpandoFunctionErrors(node) {
|
|
115448
|
+
resolver.getPropertiesOfContainerFunction(node).forEach((p) => {
|
|
115449
|
+
if (isExpandoPropertyDeclaration(p.valueDeclaration)) {
|
|
115450
|
+
const errorTarget = isBinaryExpression(p.valueDeclaration) ? p.valueDeclaration.left : p.valueDeclaration;
|
|
115451
|
+
context.addDiagnostic(createDiagnosticForNode(
|
|
115452
|
+
errorTarget,
|
|
115453
|
+
Diagnostics.Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function
|
|
115454
|
+
));
|
|
115455
|
+
}
|
|
115456
|
+
});
|
|
115457
|
+
}
|
|
115458
|
+
function reportInferenceFallback(node) {
|
|
115459
|
+
if (!isolatedDeclarations || isSourceFileJS(currentSourceFile))
|
|
115460
|
+
return;
|
|
115461
|
+
if (isVariableDeclaration(node) && resolver.isExpandoFunctionDeclaration(node)) {
|
|
115462
|
+
reportExpandoFunctionErrors(node);
|
|
115463
|
+
} else {
|
|
115464
|
+
context.addDiagnostic(getIsolatedDeclarationError(node));
|
|
115465
|
+
}
|
|
115466
|
+
}
|
|
114052
115467
|
function handleSymbolAccessibilityError(symbolAccessibilityResult) {
|
|
114053
115468
|
if (symbolAccessibilityResult.accessibility === 0 /* Accessible */) {
|
|
114054
115469
|
if (symbolAccessibilityResult.aliasesToMakeVisible) {
|
|
@@ -114352,7 +115767,8 @@ function transformDeclarations(context) {
|
|
|
114352
115767
|
elem.dotDotDotToken,
|
|
114353
115768
|
elem.propertyName,
|
|
114354
115769
|
filterBindingPatternInitializers(elem.name),
|
|
114355
|
-
|
|
115770
|
+
/*initializer*/
|
|
115771
|
+
void 0
|
|
114356
115772
|
);
|
|
114357
115773
|
}
|
|
114358
115774
|
}
|
|
@@ -114383,11 +115799,15 @@ function transformDeclarations(context) {
|
|
|
114383
115799
|
return newParam;
|
|
114384
115800
|
}
|
|
114385
115801
|
function shouldPrintWithInitializer(node) {
|
|
114386
|
-
return canHaveLiteralInitializer(node) && resolver.isLiteralConstDeclaration(getParseTreeNode(node));
|
|
115802
|
+
return canHaveLiteralInitializer(node) && !!node.initializer && resolver.isLiteralConstDeclaration(getParseTreeNode(node));
|
|
114387
115803
|
}
|
|
114388
115804
|
function ensureNoInitializer(node) {
|
|
114389
115805
|
if (shouldPrintWithInitializer(node)) {
|
|
114390
|
-
|
|
115806
|
+
const unwrappedInitializer = unwrapParenthesizedExpression(node.initializer);
|
|
115807
|
+
if (!isPrimitiveLiteralValue(unwrappedInitializer)) {
|
|
115808
|
+
reportInferenceFallback(node);
|
|
115809
|
+
}
|
|
115810
|
+
return resolver.createLiteralConstValue(getParseTreeNode(node, canHaveLiteralInitializer), symbolTracker);
|
|
114391
115811
|
}
|
|
114392
115812
|
return void 0;
|
|
114393
115813
|
}
|
|
@@ -114629,6 +116049,9 @@ function transformDeclarations(context) {
|
|
|
114629
116049
|
);
|
|
114630
116050
|
}
|
|
114631
116051
|
if (resolver.isImportRequiredByAugmentation(decl)) {
|
|
116052
|
+
if (isolatedDeclarations) {
|
|
116053
|
+
context.addDiagnostic(createDiagnosticForNode(decl, Diagnostics.Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations));
|
|
116054
|
+
}
|
|
114632
116055
|
return factory2.updateImportDeclaration(
|
|
114633
116056
|
decl,
|
|
114634
116057
|
decl.modifiers,
|
|
@@ -114683,6 +116106,9 @@ function transformDeclarations(context) {
|
|
|
114683
116106
|
if (isDeclarationAndNotVisible(input))
|
|
114684
116107
|
return;
|
|
114685
116108
|
if (hasDynamicName(input) && !resolver.isLateBound(getParseTreeNode(input))) {
|
|
116109
|
+
if (isolatedDeclarations && isClassDeclaration(input.parent) && isEntityNameExpression(input.name.expression) && resolver.isEntityNameVisible(input.name.expression, input.parent).accessibility === 0 /* Accessible */ && !resolver.isNonNarrowedBindableName(input.name)) {
|
|
116110
|
+
context.addDiagnostic(createDiagnosticForNode(input, Diagnostics.Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations));
|
|
116111
|
+
}
|
|
114686
116112
|
return;
|
|
114687
116113
|
}
|
|
114688
116114
|
}
|
|
@@ -115123,6 +116549,9 @@ function transformDeclarations(context) {
|
|
|
115123
116549
|
));
|
|
115124
116550
|
if (clean2 && resolver.isExpandoFunctionDeclaration(input) && shouldEmitFunctionProperties(input)) {
|
|
115125
116551
|
const props = resolver.getPropertiesOfContainerFunction(input);
|
|
116552
|
+
if (isolatedDeclarations) {
|
|
116553
|
+
reportExpandoFunctionErrors(input);
|
|
116554
|
+
}
|
|
115126
116555
|
const fakespace = parseNodeFactory.createModuleDeclaration(
|
|
115127
116556
|
/*modifiers*/
|
|
115128
116557
|
void 0,
|
|
@@ -115143,7 +116572,7 @@ function transformDeclarations(context) {
|
|
|
115143
116572
|
return void 0;
|
|
115144
116573
|
}
|
|
115145
116574
|
getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(p.valueDeclaration);
|
|
115146
|
-
const type = resolver.createTypeOfDeclaration(p.valueDeclaration, fakespace, declarationEmitNodeBuilderFlags
|
|
116575
|
+
const type = resolver.createTypeOfDeclaration(p.valueDeclaration, fakespace, declarationEmitNodeBuilderFlags | -2147483648 /* NoSyntacticPrinter */, symbolTracker);
|
|
115147
116576
|
getSymbolAccessibilityDiagnostic = oldDiag;
|
|
115148
116577
|
const isNonContextualKeywordName = isStringANonContextualKeyword(nameStr);
|
|
115149
116578
|
const name = isNonContextualKeywordName ? factory2.getGeneratedNameForNode(p.valueDeclaration) : factory2.createIdentifier(nameStr);
|
|
@@ -115397,7 +116826,12 @@ function transformDeclarations(context) {
|
|
|
115397
116826
|
factory2.createNodeArray(mapDefined(input.members, (m) => {
|
|
115398
116827
|
if (shouldStripInternal(m))
|
|
115399
116828
|
return;
|
|
115400
|
-
const
|
|
116829
|
+
const enumValue = resolver.getEnumMemberValue(m);
|
|
116830
|
+
const constValue = enumValue == null ? void 0 : enumValue.value;
|
|
116831
|
+
if (isolatedDeclarations && m.initializer && (enumValue == null ? void 0 : enumValue.hasExternalReferences) && // This will be its own compiler error instead, so don't report.
|
|
116832
|
+
!isComputedPropertyName(m.name)) {
|
|
116833
|
+
context.addDiagnostic(createDiagnosticForNode(m, Diagnostics.Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations));
|
|
116834
|
+
}
|
|
115401
116835
|
const newInitializer = constValue === void 0 ? void 0 : typeof constValue === "string" ? factory2.createStringLiteral(constValue) : constValue < 0 ? factory2.createPrefixUnaryExpression(41 /* MinusToken */, factory2.createNumericLiteral(-constValue)) : factory2.createNumericLiteral(constValue);
|
|
115402
116836
|
return preserveJsDoc(factory2.updateEnumMember(m, m.name, newInitializer), m);
|
|
115403
116837
|
}))
|
|
@@ -116644,6 +118078,7 @@ var notImplementedResolver = {
|
|
|
116644
118078
|
isArgumentsLocalBinding: notImplemented,
|
|
116645
118079
|
getExternalModuleFileFromDeclaration: notImplemented,
|
|
116646
118080
|
isLiteralConstDeclaration: notImplemented,
|
|
118081
|
+
isNonNarrowedBindableName: notImplemented,
|
|
116647
118082
|
getJsxFactoryEntity: notImplemented,
|
|
116648
118083
|
getJsxFragmentFactoryEntity: notImplemented,
|
|
116649
118084
|
isBindingCapturedByNode: notImplemented,
|
|
@@ -122453,6 +123888,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
|
|
|
122453
123888
|
const supportedExtensionsWithJsonIfResolveJsonModule = getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);
|
|
122454
123889
|
const hasEmitBlockingDiagnostics = /* @__PURE__ */ new Map();
|
|
122455
123890
|
let _compilerOptionsObjectLiteralSyntax;
|
|
123891
|
+
let _compilerOptionsPropertySyntax;
|
|
122456
123892
|
let moduleResolutionCache;
|
|
122457
123893
|
let actualResolveModuleNamesWorker;
|
|
122458
123894
|
const hasInvalidatedResolutions = host.hasInvalidatedResolutions || returnFalse;
|
|
@@ -123338,6 +124774,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
|
|
|
123338
124774
|
return false;
|
|
123339
124775
|
return host.fileExists(f);
|
|
123340
124776
|
},
|
|
124777
|
+
realpath: maybeBind(host, host.realpath),
|
|
123341
124778
|
useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),
|
|
123342
124779
|
getBuildInfo: () => {
|
|
123343
124780
|
var _a2;
|
|
@@ -123346,7 +124783,9 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
|
|
|
123346
124783
|
getSourceFileFromReference: (file, ref) => program.getSourceFileFromReference(file, ref),
|
|
123347
124784
|
redirectTargetsMap,
|
|
123348
124785
|
getFileIncludeReasons: program.getFileIncludeReasons,
|
|
123349
|
-
createHash: maybeBind(host, host.createHash)
|
|
124786
|
+
createHash: maybeBind(host, host.createHash),
|
|
124787
|
+
getModuleResolutionCache: () => program.getModuleResolutionCache(),
|
|
124788
|
+
trace: maybeBind(host, host.trace)
|
|
123350
124789
|
};
|
|
123351
124790
|
}
|
|
123352
124791
|
function writeFile2(fileName, text, writeByteOrderMark, onError, sourceFiles, data) {
|
|
@@ -124663,6 +126102,14 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
|
|
|
124663
126102
|
createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", options.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules");
|
|
124664
126103
|
}
|
|
124665
126104
|
}
|
|
126105
|
+
if (options.isolatedDeclarations) {
|
|
126106
|
+
if (getAllowJSCompilerOption(options)) {
|
|
126107
|
+
createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "allowJs", "isolatedDeclarations");
|
|
126108
|
+
}
|
|
126109
|
+
if (!getEmitDeclarations(options)) {
|
|
126110
|
+
createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "isolatedDeclarations", "declaration", "composite");
|
|
126111
|
+
}
|
|
126112
|
+
}
|
|
124666
126113
|
if (options.inlineSourceMap) {
|
|
124667
126114
|
if (options.sourceMap) {
|
|
124668
126115
|
createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap");
|
|
@@ -124814,7 +126261,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
|
|
|
124814
126261
|
}
|
|
124815
126262
|
}
|
|
124816
126263
|
if (options.checkJs && !getAllowJSCompilerOption(options)) {
|
|
124817
|
-
|
|
126264
|
+
createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "checkJs", "allowJs");
|
|
124818
126265
|
}
|
|
124819
126266
|
if (options.emitDeclarationOnly) {
|
|
124820
126267
|
if (!getEmitDeclarations(options)) {
|
|
@@ -125166,7 +126613,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
|
|
|
125166
126613
|
message = Diagnostics.File_is_library_specified_here;
|
|
125167
126614
|
break;
|
|
125168
126615
|
}
|
|
125169
|
-
const target =
|
|
126616
|
+
const target = getNameOfScriptTarget(getEmitScriptTarget(options));
|
|
125170
126617
|
configFileNode = target ? getOptionsSyntaxByValue("target", target) : void 0;
|
|
125171
126618
|
message = Diagnostics.File_is_default_library_for_target_specified_here;
|
|
125172
126619
|
break;
|
|
@@ -125219,7 +126666,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
|
|
|
125219
126666
|
}
|
|
125220
126667
|
});
|
|
125221
126668
|
if (needCompilerDiagnostic) {
|
|
125222
|
-
|
|
126669
|
+
createCompilerOptionsDiagnostic(message, ...args);
|
|
125223
126670
|
}
|
|
125224
126671
|
}
|
|
125225
126672
|
function createDiagnosticForOptionPaths(onKey, key, message, ...args) {
|
|
@@ -125238,7 +126685,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
|
|
|
125238
126685
|
}
|
|
125239
126686
|
});
|
|
125240
126687
|
if (needCompilerDiagnostic) {
|
|
125241
|
-
|
|
126688
|
+
createCompilerOptionsDiagnostic(message, ...args);
|
|
125242
126689
|
}
|
|
125243
126690
|
}
|
|
125244
126691
|
function forEachOptionsSyntaxByName(name, callback) {
|
|
@@ -125289,22 +126736,39 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
|
|
|
125289
126736
|
const compilerOptionsObjectLiteralSyntax = getCompilerOptionsObjectLiteralSyntax();
|
|
125290
126737
|
const needCompilerDiagnostic = !compilerOptionsObjectLiteralSyntax || !createOptionDiagnosticInObjectLiteralSyntax(compilerOptionsObjectLiteralSyntax, onKey, option1, option2, message, ...args);
|
|
125291
126738
|
if (needCompilerDiagnostic) {
|
|
126739
|
+
createCompilerOptionsDiagnostic(message, ...args);
|
|
126740
|
+
}
|
|
126741
|
+
}
|
|
126742
|
+
function createCompilerOptionsDiagnostic(message, ...args) {
|
|
126743
|
+
const compilerOptionsProperty = getCompilerOptionsPropertySyntax();
|
|
126744
|
+
if (compilerOptionsProperty) {
|
|
125292
126745
|
if ("messageText" in message) {
|
|
125293
|
-
programDiagnostics.add(
|
|
126746
|
+
programDiagnostics.add(createDiagnosticForNodeFromMessageChain(options.configFile, compilerOptionsProperty.name, message));
|
|
125294
126747
|
} else {
|
|
125295
|
-
programDiagnostics.add(
|
|
126748
|
+
programDiagnostics.add(createDiagnosticForNodeInSourceFile(options.configFile, compilerOptionsProperty.name, message, ...args));
|
|
125296
126749
|
}
|
|
126750
|
+
} else if ("messageText" in message) {
|
|
126751
|
+
programDiagnostics.add(createCompilerDiagnosticFromMessageChain(message));
|
|
126752
|
+
} else {
|
|
126753
|
+
programDiagnostics.add(createCompilerDiagnostic(message, ...args));
|
|
125297
126754
|
}
|
|
125298
126755
|
}
|
|
125299
126756
|
function getCompilerOptionsObjectLiteralSyntax() {
|
|
125300
126757
|
if (_compilerOptionsObjectLiteralSyntax === void 0) {
|
|
125301
|
-
|
|
126758
|
+
const compilerOptionsProperty = getCompilerOptionsPropertySyntax();
|
|
126759
|
+
_compilerOptionsObjectLiteralSyntax = compilerOptionsProperty ? tryCast(compilerOptionsProperty.initializer, isObjectLiteralExpression) || false : false;
|
|
126760
|
+
}
|
|
126761
|
+
return _compilerOptionsObjectLiteralSyntax || void 0;
|
|
126762
|
+
}
|
|
126763
|
+
function getCompilerOptionsPropertySyntax() {
|
|
126764
|
+
if (_compilerOptionsPropertySyntax === void 0) {
|
|
126765
|
+
_compilerOptionsPropertySyntax = forEachPropertyAssignment(
|
|
125302
126766
|
getTsConfigObjectLiteralExpression(options.configFile),
|
|
125303
126767
|
"compilerOptions",
|
|
125304
|
-
|
|
126768
|
+
identity
|
|
125305
126769
|
) || false;
|
|
125306
126770
|
}
|
|
125307
|
-
return
|
|
126771
|
+
return _compilerOptionsPropertySyntax || void 0;
|
|
125308
126772
|
}
|
|
125309
126773
|
function createOptionDiagnosticInObjectLiteralSyntax(objectLiteral, onKey, key1, key2, message, ...args) {
|
|
125310
126774
|
let needsCompilerDiagnostic = false;
|
|
@@ -128871,7 +130335,7 @@ function fileIncludeReasonToDiagnostics(program, reason, fileNameConvertor) {
|
|
|
128871
130335
|
Diagnostics.Library_0_specified_in_compilerOptions,
|
|
128872
130336
|
options.lib[reason.index]
|
|
128873
130337
|
);
|
|
128874
|
-
const target =
|
|
130338
|
+
const target = getNameOfScriptTarget(getEmitScriptTarget(options));
|
|
128875
130339
|
const messageAndArgs = target ? [Diagnostics.Default_library_for_target_0, target] : [Diagnostics.Default_library];
|
|
128876
130340
|
return chainDiagnosticMessages(
|
|
128877
130341
|
/*details*/
|
|
@@ -132952,6 +134416,443 @@ function writeConfigFile(sys2, reportDiagnostic, options, fileNames) {
|
|
|
132952
134416
|
return;
|
|
132953
134417
|
}
|
|
132954
134418
|
|
|
134419
|
+
// src/compiler/expressionToTypeNode.ts
|
|
134420
|
+
function createSyntacticTypeNodeBuilder(options, resolver) {
|
|
134421
|
+
const strictNullChecks = getStrictOptionValue(options, "strictNullChecks");
|
|
134422
|
+
return {
|
|
134423
|
+
typeFromExpression,
|
|
134424
|
+
serializeTypeOfDeclaration,
|
|
134425
|
+
serializeReturnTypeForSignature,
|
|
134426
|
+
serializeTypeOfExpression
|
|
134427
|
+
};
|
|
134428
|
+
function serializeExistingTypeAnnotation(type) {
|
|
134429
|
+
return type === void 0 ? void 0 : !type.parent || !isParameter(type.parent) || !resolver.requiresAddingImplicitUndefined(type.parent) || canAddUndefined(type);
|
|
134430
|
+
}
|
|
134431
|
+
function serializeTypeOfExpression(expr, context, addUndefined, preserveLiterals) {
|
|
134432
|
+
return typeFromExpression(
|
|
134433
|
+
expr,
|
|
134434
|
+
context,
|
|
134435
|
+
/*isConstContext*/
|
|
134436
|
+
false,
|
|
134437
|
+
addUndefined,
|
|
134438
|
+
preserveLiterals
|
|
134439
|
+
) ?? inferExpressionType(expr, context);
|
|
134440
|
+
}
|
|
134441
|
+
function serializeTypeOfDeclaration(node, context) {
|
|
134442
|
+
switch (node.kind) {
|
|
134443
|
+
case 171 /* PropertySignature */:
|
|
134444
|
+
return serializeExistingTypeAnnotation(getEffectiveTypeAnnotationNode(node));
|
|
134445
|
+
case 169 /* Parameter */:
|
|
134446
|
+
return typeFromParameter(node, context);
|
|
134447
|
+
case 260 /* VariableDeclaration */:
|
|
134448
|
+
return typeFromVariable(node, context);
|
|
134449
|
+
case 172 /* PropertyDeclaration */:
|
|
134450
|
+
return typeFromProperty(node, context);
|
|
134451
|
+
case 208 /* BindingElement */:
|
|
134452
|
+
return inferTypeOfDeclaration(node, context);
|
|
134453
|
+
case 277 /* ExportAssignment */:
|
|
134454
|
+
return serializeTypeOfExpression(
|
|
134455
|
+
node.expression,
|
|
134456
|
+
context,
|
|
134457
|
+
/*addUndefined*/
|
|
134458
|
+
void 0,
|
|
134459
|
+
/*preserveLiterals*/
|
|
134460
|
+
true
|
|
134461
|
+
);
|
|
134462
|
+
case 211 /* PropertyAccessExpression */:
|
|
134463
|
+
case 212 /* ElementAccessExpression */:
|
|
134464
|
+
case 226 /* BinaryExpression */:
|
|
134465
|
+
return serializeExistingTypeAnnotation(getEffectiveTypeAnnotationNode(node)) || inferTypeOfDeclaration(node, context);
|
|
134466
|
+
case 303 /* PropertyAssignment */:
|
|
134467
|
+
return typeFromExpression(node.initializer, context) || inferTypeOfDeclaration(node, context);
|
|
134468
|
+
default:
|
|
134469
|
+
Debug.assertNever(node, `Node needs to be an inferrable node, found ${Debug.formatSyntaxKind(node.kind)}`);
|
|
134470
|
+
}
|
|
134471
|
+
}
|
|
134472
|
+
function serializeReturnTypeForSignature(node, context) {
|
|
134473
|
+
switch (node.kind) {
|
|
134474
|
+
case 177 /* GetAccessor */:
|
|
134475
|
+
return typeFromAccessor(node, context);
|
|
134476
|
+
case 174 /* MethodDeclaration */:
|
|
134477
|
+
case 262 /* FunctionDeclaration */:
|
|
134478
|
+
case 180 /* ConstructSignature */:
|
|
134479
|
+
case 173 /* MethodSignature */:
|
|
134480
|
+
case 179 /* CallSignature */:
|
|
134481
|
+
case 176 /* Constructor */:
|
|
134482
|
+
case 178 /* SetAccessor */:
|
|
134483
|
+
case 181 /* IndexSignature */:
|
|
134484
|
+
case 184 /* FunctionType */:
|
|
134485
|
+
case 185 /* ConstructorType */:
|
|
134486
|
+
case 218 /* FunctionExpression */:
|
|
134487
|
+
case 219 /* ArrowFunction */:
|
|
134488
|
+
case 317 /* JSDocFunctionType */:
|
|
134489
|
+
case 323 /* JSDocSignature */:
|
|
134490
|
+
return createReturnFromSignature(node, context);
|
|
134491
|
+
default:
|
|
134492
|
+
Debug.assertNever(node, `Node needs to be an inferrable node, found ${Debug.formatSyntaxKind(node.kind)}`);
|
|
134493
|
+
}
|
|
134494
|
+
}
|
|
134495
|
+
function getTypeAnnotationFromAccessor2(accessor) {
|
|
134496
|
+
if (accessor) {
|
|
134497
|
+
return accessor.kind === 177 /* GetAccessor */ ? getEffectiveReturnTypeNode(accessor) : accessor.parameters.length > 0 ? getEffectiveTypeAnnotationNode(accessor.parameters[0]) : void 0;
|
|
134498
|
+
}
|
|
134499
|
+
}
|
|
134500
|
+
function getTypeAnnotationFromAllAccessorDeclarations(node, accessors) {
|
|
134501
|
+
let accessorType = getTypeAnnotationFromAccessor2(node);
|
|
134502
|
+
if (!accessorType && node !== accessors.firstAccessor) {
|
|
134503
|
+
accessorType = getTypeAnnotationFromAccessor2(accessors.firstAccessor);
|
|
134504
|
+
}
|
|
134505
|
+
if (!accessorType && accessors.secondAccessor && node !== accessors.secondAccessor) {
|
|
134506
|
+
accessorType = getTypeAnnotationFromAccessor2(accessors.secondAccessor);
|
|
134507
|
+
}
|
|
134508
|
+
return accessorType;
|
|
134509
|
+
}
|
|
134510
|
+
function typeFromAccessor(node, context) {
|
|
134511
|
+
const accessorDeclarations = resolver.getAllAccessorDeclarations(node);
|
|
134512
|
+
const accessorType = getTypeAnnotationFromAllAccessorDeclarations(node, accessorDeclarations);
|
|
134513
|
+
if (accessorType) {
|
|
134514
|
+
return serializeExistingTypeAnnotation(accessorType);
|
|
134515
|
+
}
|
|
134516
|
+
if (accessorDeclarations.getAccessor) {
|
|
134517
|
+
return createReturnFromSignature(accessorDeclarations.getAccessor, context);
|
|
134518
|
+
}
|
|
134519
|
+
return false;
|
|
134520
|
+
}
|
|
134521
|
+
function typeFromVariable(node, context) {
|
|
134522
|
+
const declaredType = getEffectiveTypeAnnotationNode(node);
|
|
134523
|
+
if (declaredType) {
|
|
134524
|
+
return serializeExistingTypeAnnotation(declaredType);
|
|
134525
|
+
}
|
|
134526
|
+
let resultType;
|
|
134527
|
+
if (node.initializer) {
|
|
134528
|
+
if (!resolver.isExpandoFunctionDeclaration(node)) {
|
|
134529
|
+
resultType = typeFromExpression(
|
|
134530
|
+
node.initializer,
|
|
134531
|
+
context,
|
|
134532
|
+
/*isConstContext*/
|
|
134533
|
+
void 0,
|
|
134534
|
+
/*requiresAddingUndefined*/
|
|
134535
|
+
void 0,
|
|
134536
|
+
isVarConstLike(node)
|
|
134537
|
+
);
|
|
134538
|
+
}
|
|
134539
|
+
}
|
|
134540
|
+
return resultType ?? inferTypeOfDeclaration(node, context);
|
|
134541
|
+
}
|
|
134542
|
+
function typeFromParameter(node, context) {
|
|
134543
|
+
const parent2 = node.parent;
|
|
134544
|
+
if (parent2.kind === 178 /* SetAccessor */) {
|
|
134545
|
+
return typeFromAccessor(parent2, context);
|
|
134546
|
+
}
|
|
134547
|
+
const declaredType = getEffectiveTypeAnnotationNode(node);
|
|
134548
|
+
const addUndefined = resolver.requiresAddingImplicitUndefined(node);
|
|
134549
|
+
let resultType;
|
|
134550
|
+
if (!addUndefined) {
|
|
134551
|
+
if (declaredType) {
|
|
134552
|
+
return serializeExistingTypeAnnotation(declaredType);
|
|
134553
|
+
}
|
|
134554
|
+
if (node.initializer && isIdentifier(node.name)) {
|
|
134555
|
+
resultType = typeFromExpression(node.initializer, context);
|
|
134556
|
+
}
|
|
134557
|
+
}
|
|
134558
|
+
return resultType ?? inferTypeOfDeclaration(node, context);
|
|
134559
|
+
}
|
|
134560
|
+
function typeFromProperty(node, context) {
|
|
134561
|
+
const declaredType = getEffectiveTypeAnnotationNode(node);
|
|
134562
|
+
if (declaredType) {
|
|
134563
|
+
return serializeExistingTypeAnnotation(declaredType);
|
|
134564
|
+
}
|
|
134565
|
+
let resultType;
|
|
134566
|
+
if (node.initializer) {
|
|
134567
|
+
const isReadonly = isDeclarationReadonly(node);
|
|
134568
|
+
resultType = typeFromExpression(
|
|
134569
|
+
node.initializer,
|
|
134570
|
+
context,
|
|
134571
|
+
/*isConstContext*/
|
|
134572
|
+
void 0,
|
|
134573
|
+
/*requiresAddingUndefined*/
|
|
134574
|
+
void 0,
|
|
134575
|
+
isReadonly
|
|
134576
|
+
);
|
|
134577
|
+
}
|
|
134578
|
+
return resultType ?? inferTypeOfDeclaration(node, context);
|
|
134579
|
+
}
|
|
134580
|
+
function inferTypeOfDeclaration(node, context) {
|
|
134581
|
+
context.tracker.reportInferenceFallback(node);
|
|
134582
|
+
return false;
|
|
134583
|
+
}
|
|
134584
|
+
function inferExpressionType(node, context) {
|
|
134585
|
+
context.tracker.reportInferenceFallback(node);
|
|
134586
|
+
return false;
|
|
134587
|
+
}
|
|
134588
|
+
function inferReturnTypeOfSignatureSignature(node, context) {
|
|
134589
|
+
context.tracker.reportInferenceFallback(node);
|
|
134590
|
+
return false;
|
|
134591
|
+
}
|
|
134592
|
+
function inferAccessorType(node, allAccessors, context) {
|
|
134593
|
+
if (node.kind === 177 /* GetAccessor */) {
|
|
134594
|
+
return createReturnFromSignature(node, context);
|
|
134595
|
+
} else {
|
|
134596
|
+
context.tracker.reportInferenceFallback(node);
|
|
134597
|
+
return false;
|
|
134598
|
+
}
|
|
134599
|
+
}
|
|
134600
|
+
function typeFromTypeAssertion(expression, type, context, requiresAddingUndefined) {
|
|
134601
|
+
if (isConstTypeReference(type)) {
|
|
134602
|
+
return typeFromExpression(
|
|
134603
|
+
expression,
|
|
134604
|
+
context,
|
|
134605
|
+
/*isConstContext*/
|
|
134606
|
+
true,
|
|
134607
|
+
requiresAddingUndefined
|
|
134608
|
+
);
|
|
134609
|
+
}
|
|
134610
|
+
if (requiresAddingUndefined && !canAddUndefined(type)) {
|
|
134611
|
+
context.tracker.reportInferenceFallback(type);
|
|
134612
|
+
}
|
|
134613
|
+
return serializeExistingTypeAnnotation(type);
|
|
134614
|
+
}
|
|
134615
|
+
function typeFromExpression(node, context, isConstContext = false, requiresAddingUndefined = false, preserveLiterals = false) {
|
|
134616
|
+
switch (node.kind) {
|
|
134617
|
+
case 217 /* ParenthesizedExpression */:
|
|
134618
|
+
if (isJSDocTypeAssertion(node)) {
|
|
134619
|
+
return typeFromTypeAssertion(node.expression, getJSDocTypeAssertionType(node), context, requiresAddingUndefined);
|
|
134620
|
+
}
|
|
134621
|
+
return typeFromExpression(node.expression, context, isConstContext, requiresAddingUndefined);
|
|
134622
|
+
case 80 /* Identifier */:
|
|
134623
|
+
if (resolver.isUndefinedIdentifierExpression(node)) {
|
|
134624
|
+
return true;
|
|
134625
|
+
}
|
|
134626
|
+
break;
|
|
134627
|
+
case 106 /* NullKeyword */:
|
|
134628
|
+
return true;
|
|
134629
|
+
case 219 /* ArrowFunction */:
|
|
134630
|
+
case 218 /* FunctionExpression */:
|
|
134631
|
+
return typeFromFunctionLikeExpression(node, context);
|
|
134632
|
+
case 216 /* TypeAssertionExpression */:
|
|
134633
|
+
case 234 /* AsExpression */:
|
|
134634
|
+
const asExpression = node;
|
|
134635
|
+
return typeFromTypeAssertion(asExpression.expression, asExpression.type, context, requiresAddingUndefined);
|
|
134636
|
+
case 224 /* PrefixUnaryExpression */:
|
|
134637
|
+
const unaryExpression = node;
|
|
134638
|
+
if (isPrimitiveLiteralValue(unaryExpression)) {
|
|
134639
|
+
if (unaryExpression.operand.kind === 10 /* BigIntLiteral */) {
|
|
134640
|
+
return typeFromPrimitiveLiteral();
|
|
134641
|
+
}
|
|
134642
|
+
if (unaryExpression.operand.kind === 9 /* NumericLiteral */) {
|
|
134643
|
+
return typeFromPrimitiveLiteral();
|
|
134644
|
+
}
|
|
134645
|
+
}
|
|
134646
|
+
break;
|
|
134647
|
+
case 9 /* NumericLiteral */:
|
|
134648
|
+
return typeFromPrimitiveLiteral();
|
|
134649
|
+
case 228 /* TemplateExpression */:
|
|
134650
|
+
if (!isConstContext && !preserveLiterals) {
|
|
134651
|
+
return true;
|
|
134652
|
+
}
|
|
134653
|
+
break;
|
|
134654
|
+
case 15 /* NoSubstitutionTemplateLiteral */:
|
|
134655
|
+
case 11 /* StringLiteral */:
|
|
134656
|
+
return typeFromPrimitiveLiteral();
|
|
134657
|
+
case 10 /* BigIntLiteral */:
|
|
134658
|
+
return typeFromPrimitiveLiteral();
|
|
134659
|
+
case 112 /* TrueKeyword */:
|
|
134660
|
+
case 97 /* FalseKeyword */:
|
|
134661
|
+
return typeFromPrimitiveLiteral();
|
|
134662
|
+
case 209 /* ArrayLiteralExpression */:
|
|
134663
|
+
return typeFromArrayLiteral(node, context, isConstContext);
|
|
134664
|
+
case 210 /* ObjectLiteralExpression */:
|
|
134665
|
+
return typeFromObjectLiteral(node, context, isConstContext);
|
|
134666
|
+
case 231 /* ClassExpression */:
|
|
134667
|
+
return inferExpressionType(node, context);
|
|
134668
|
+
}
|
|
134669
|
+
return void 0;
|
|
134670
|
+
}
|
|
134671
|
+
function typeFromFunctionLikeExpression(fnNode, context) {
|
|
134672
|
+
const returnType = serializeExistingTypeAnnotation(fnNode.type) ?? createReturnFromSignature(fnNode, context);
|
|
134673
|
+
const typeParameters = reuseTypeParameters(fnNode.typeParameters);
|
|
134674
|
+
const parameters = fnNode.parameters.every((p) => ensureParameter(p, context));
|
|
134675
|
+
return returnType && typeParameters && parameters;
|
|
134676
|
+
}
|
|
134677
|
+
function canGetTypeFromArrayLiteral(arrayLiteral, context, isConstContext) {
|
|
134678
|
+
if (!isConstContext) {
|
|
134679
|
+
context.tracker.reportInferenceFallback(arrayLiteral);
|
|
134680
|
+
return false;
|
|
134681
|
+
}
|
|
134682
|
+
for (const element of arrayLiteral.elements) {
|
|
134683
|
+
if (element.kind === 230 /* SpreadElement */) {
|
|
134684
|
+
context.tracker.reportInferenceFallback(element);
|
|
134685
|
+
return false;
|
|
134686
|
+
}
|
|
134687
|
+
}
|
|
134688
|
+
return true;
|
|
134689
|
+
}
|
|
134690
|
+
function typeFromArrayLiteral(arrayLiteral, context, isConstContext) {
|
|
134691
|
+
if (!canGetTypeFromArrayLiteral(arrayLiteral, context, isConstContext)) {
|
|
134692
|
+
return false;
|
|
134693
|
+
}
|
|
134694
|
+
let canInferArray = true;
|
|
134695
|
+
for (const element of arrayLiteral.elements) {
|
|
134696
|
+
Debug.assert(element.kind !== 230 /* SpreadElement */);
|
|
134697
|
+
if (element.kind !== 232 /* OmittedExpression */) {
|
|
134698
|
+
canInferArray = (typeFromExpression(element, context, isConstContext) ?? inferExpressionType(element, context)) && canInferArray;
|
|
134699
|
+
}
|
|
134700
|
+
}
|
|
134701
|
+
return true;
|
|
134702
|
+
}
|
|
134703
|
+
function canGetTypeFromObjectLiteral(objectLiteral, context) {
|
|
134704
|
+
let result = true;
|
|
134705
|
+
for (const prop of objectLiteral.properties) {
|
|
134706
|
+
if (prop.flags & 262144 /* ThisNodeHasError */) {
|
|
134707
|
+
result = false;
|
|
134708
|
+
break;
|
|
134709
|
+
}
|
|
134710
|
+
if (prop.kind === 304 /* ShorthandPropertyAssignment */ || prop.kind === 305 /* SpreadAssignment */) {
|
|
134711
|
+
context.tracker.reportInferenceFallback(prop);
|
|
134712
|
+
result = false;
|
|
134713
|
+
} else if (prop.name.flags & 262144 /* ThisNodeHasError */) {
|
|
134714
|
+
result = false;
|
|
134715
|
+
break;
|
|
134716
|
+
} else if (prop.name.kind === 81 /* PrivateIdentifier */) {
|
|
134717
|
+
result = false;
|
|
134718
|
+
} else if (prop.name.kind === 167 /* ComputedPropertyName */) {
|
|
134719
|
+
const expression = prop.name.expression;
|
|
134720
|
+
if (!isPrimitiveLiteralValue(
|
|
134721
|
+
expression,
|
|
134722
|
+
/*includeBigInt*/
|
|
134723
|
+
false
|
|
134724
|
+
) && !isEntityNameExpression(expression)) {
|
|
134725
|
+
context.tracker.reportInferenceFallback(prop.name);
|
|
134726
|
+
result = false;
|
|
134727
|
+
}
|
|
134728
|
+
}
|
|
134729
|
+
}
|
|
134730
|
+
return result;
|
|
134731
|
+
}
|
|
134732
|
+
function typeFromObjectLiteral(objectLiteral, context, isConstContext) {
|
|
134733
|
+
if (!canGetTypeFromObjectLiteral(objectLiteral, context))
|
|
134734
|
+
return false;
|
|
134735
|
+
let canInferObjectLiteral = true;
|
|
134736
|
+
for (const prop of objectLiteral.properties) {
|
|
134737
|
+
Debug.assert(!isShorthandPropertyAssignment(prop) && !isSpreadAssignment(prop));
|
|
134738
|
+
const name = prop.name;
|
|
134739
|
+
if (prop.name.kind === 167 /* ComputedPropertyName */) {
|
|
134740
|
+
if (!resolver.isNonNarrowedBindableName(prop.name)) {
|
|
134741
|
+
context.tracker.reportInferenceFallback(prop.name);
|
|
134742
|
+
} else if (isEntityNameExpression(prop.name.expression)) {
|
|
134743
|
+
const visibilityResult = resolver.isEntityNameVisible(
|
|
134744
|
+
prop.name.expression,
|
|
134745
|
+
context.enclosingDeclaration,
|
|
134746
|
+
/*shouldComputeAliasToMakeVisible*/
|
|
134747
|
+
false
|
|
134748
|
+
);
|
|
134749
|
+
if (visibilityResult.accessibility !== 0 /* Accessible */) {
|
|
134750
|
+
context.tracker.reportInferenceFallback(prop.name);
|
|
134751
|
+
}
|
|
134752
|
+
}
|
|
134753
|
+
}
|
|
134754
|
+
switch (prop.kind) {
|
|
134755
|
+
case 174 /* MethodDeclaration */:
|
|
134756
|
+
canInferObjectLiteral = !!typeFromObjectLiteralMethod(prop, name, context) && canInferObjectLiteral;
|
|
134757
|
+
break;
|
|
134758
|
+
case 303 /* PropertyAssignment */:
|
|
134759
|
+
canInferObjectLiteral = !!typeFromObjectLiteralPropertyAssignment(prop, name, context, isConstContext) && canInferObjectLiteral;
|
|
134760
|
+
break;
|
|
134761
|
+
case 178 /* SetAccessor */:
|
|
134762
|
+
case 177 /* GetAccessor */:
|
|
134763
|
+
canInferObjectLiteral = !!typeFromObjectLiteralAccessor(prop, name, context) && canInferObjectLiteral;
|
|
134764
|
+
break;
|
|
134765
|
+
}
|
|
134766
|
+
}
|
|
134767
|
+
return canInferObjectLiteral;
|
|
134768
|
+
}
|
|
134769
|
+
function typeFromObjectLiteralPropertyAssignment(prop, name, context, isConstContext) {
|
|
134770
|
+
return typeFromExpression(prop.initializer, context, isConstContext) ?? inferTypeOfDeclaration(prop, context);
|
|
134771
|
+
}
|
|
134772
|
+
function ensureParameter(p, context) {
|
|
134773
|
+
return typeFromParameter(p, context);
|
|
134774
|
+
}
|
|
134775
|
+
function reuseTypeParameters(typeParameters) {
|
|
134776
|
+
return (typeParameters == null ? void 0 : typeParameters.every(
|
|
134777
|
+
(tp) => serializeExistingTypeAnnotation(tp.constraint) && serializeExistingTypeAnnotation(tp.default)
|
|
134778
|
+
)) ?? true;
|
|
134779
|
+
}
|
|
134780
|
+
function typeFromObjectLiteralMethod(method, name, context) {
|
|
134781
|
+
const returnType = createReturnFromSignature(method, context);
|
|
134782
|
+
const typeParameters = reuseTypeParameters(method.typeParameters);
|
|
134783
|
+
const parameters = method.parameters.every((p) => ensureParameter(p, context));
|
|
134784
|
+
return returnType && typeParameters && parameters;
|
|
134785
|
+
}
|
|
134786
|
+
function typeFromObjectLiteralAccessor(accessor, name, context) {
|
|
134787
|
+
const allAccessors = resolver.getAllAccessorDeclarations(accessor);
|
|
134788
|
+
const getAccessorType = allAccessors.getAccessor && getTypeAnnotationFromAccessor2(allAccessors.getAccessor);
|
|
134789
|
+
const setAccessorType = allAccessors.setAccessor && getTypeAnnotationFromAccessor2(allAccessors.setAccessor);
|
|
134790
|
+
if (getAccessorType !== void 0 && setAccessorType !== void 0) {
|
|
134791
|
+
const parameters = accessor.parameters.every((p) => ensureParameter(p, context));
|
|
134792
|
+
if (isGetAccessor(accessor)) {
|
|
134793
|
+
return parameters && serializeExistingTypeAnnotation(getAccessorType);
|
|
134794
|
+
} else {
|
|
134795
|
+
return parameters;
|
|
134796
|
+
}
|
|
134797
|
+
} else if (allAccessors.firstAccessor === accessor) {
|
|
134798
|
+
const foundType = getAccessorType ?? setAccessorType;
|
|
134799
|
+
const propertyType = foundType ? serializeExistingTypeAnnotation(foundType) : inferAccessorType(accessor, allAccessors, context);
|
|
134800
|
+
return propertyType;
|
|
134801
|
+
}
|
|
134802
|
+
return false;
|
|
134803
|
+
}
|
|
134804
|
+
function typeFromPrimitiveLiteral() {
|
|
134805
|
+
return true;
|
|
134806
|
+
}
|
|
134807
|
+
function canAddUndefined(node) {
|
|
134808
|
+
if (!strictNullChecks)
|
|
134809
|
+
return true;
|
|
134810
|
+
if (isKeyword(node.kind) || node.kind === 201 /* LiteralType */ || node.kind === 184 /* FunctionType */ || node.kind === 185 /* ConstructorType */ || node.kind === 188 /* ArrayType */ || node.kind === 189 /* TupleType */ || node.kind === 187 /* TypeLiteral */ || node.kind === 203 /* TemplateLiteralType */ || node.kind === 197 /* ThisType */) {
|
|
134811
|
+
return true;
|
|
134812
|
+
}
|
|
134813
|
+
if (node.kind === 196 /* ParenthesizedType */) {
|
|
134814
|
+
return canAddUndefined(node.type);
|
|
134815
|
+
}
|
|
134816
|
+
if (node.kind === 192 /* UnionType */ || node.kind === 193 /* IntersectionType */) {
|
|
134817
|
+
return node.types.every(canAddUndefined);
|
|
134818
|
+
}
|
|
134819
|
+
return false;
|
|
134820
|
+
}
|
|
134821
|
+
function createReturnFromSignature(fn, context) {
|
|
134822
|
+
let returnType;
|
|
134823
|
+
const returnTypeNode = getEffectiveReturnTypeNode(fn);
|
|
134824
|
+
if (returnTypeNode) {
|
|
134825
|
+
returnType = serializeExistingTypeAnnotation(returnTypeNode);
|
|
134826
|
+
}
|
|
134827
|
+
if (!returnType && isValueSignatureDeclaration(fn)) {
|
|
134828
|
+
returnType = typeFromSingleReturnExpression(fn, context);
|
|
134829
|
+
}
|
|
134830
|
+
return returnType ?? inferReturnTypeOfSignatureSignature(fn, context);
|
|
134831
|
+
}
|
|
134832
|
+
function typeFromSingleReturnExpression(declaration, context) {
|
|
134833
|
+
let candidateExpr;
|
|
134834
|
+
if (declaration && !nodeIsMissing(declaration.body)) {
|
|
134835
|
+
const body = declaration.body;
|
|
134836
|
+
if (body && isBlock(body)) {
|
|
134837
|
+
forEachReturnStatement(body, (s) => {
|
|
134838
|
+
if (!candidateExpr) {
|
|
134839
|
+
candidateExpr = s.expression;
|
|
134840
|
+
} else {
|
|
134841
|
+
candidateExpr = void 0;
|
|
134842
|
+
return true;
|
|
134843
|
+
}
|
|
134844
|
+
});
|
|
134845
|
+
} else {
|
|
134846
|
+
candidateExpr = body;
|
|
134847
|
+
}
|
|
134848
|
+
}
|
|
134849
|
+
if (candidateExpr) {
|
|
134850
|
+
return typeFromExpression(candidateExpr, context);
|
|
134851
|
+
}
|
|
134852
|
+
return void 0;
|
|
134853
|
+
}
|
|
134854
|
+
}
|
|
134855
|
+
|
|
132955
134856
|
// src/jsTyping/_namespaces/ts.JsTyping.ts
|
|
132956
134857
|
var ts_JsTyping_exports = {};
|
|
132957
134858
|
__export(ts_JsTyping_exports, {
|
|
@@ -146425,9 +148326,6 @@ var NodeObject = class {
|
|
|
146425
148326
|
}
|
|
146426
148327
|
};
|
|
146427
148328
|
function createChildren(node, sourceFile) {
|
|
146428
|
-
if (!isNodeKind(node.kind)) {
|
|
146429
|
-
return emptyArray;
|
|
146430
|
-
}
|
|
146431
148329
|
const children = [];
|
|
146432
148330
|
if (isJSDocCommentContainingNode(node)) {
|
|
146433
148331
|
node.forEachChild((child) => {
|
|
@@ -156653,6 +158551,9 @@ registerCodeFix({
|
|
|
156653
158551
|
createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteEntireVariableStatement(t, sourceFile, token.parent)), Diagnostics.Remove_variable_statement)
|
|
156654
158552
|
];
|
|
156655
158553
|
}
|
|
158554
|
+
if (isIdentifier(token) && isFunctionDeclaration(token.parent)) {
|
|
158555
|
+
return [createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteFunctionLikeDeclaration(t, sourceFile, token.parent)), [Diagnostics.Remove_unused_declaration_for_Colon_0, token.getText(sourceFile)])];
|
|
158556
|
+
}
|
|
156656
158557
|
const result = [];
|
|
156657
158558
|
if (token.kind === 140 /* InferKeyword */) {
|
|
156658
158559
|
const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => changeInferToUnknown(t, sourceFile, token));
|
|
@@ -156919,6 +158820,14 @@ function isLastParameter(func, parameter, isFixAll) {
|
|
|
156919
158820
|
function mayDeleteExpression(node) {
|
|
156920
158821
|
return (isBinaryExpression(node.parent) && node.parent.left === node || (isPostfixUnaryExpression(node.parent) || isPrefixUnaryExpression(node.parent)) && node.parent.operand === node) && isExpressionStatement(node.parent.parent);
|
|
156921
158822
|
}
|
|
158823
|
+
function deleteFunctionLikeDeclaration(changes, sourceFile, node) {
|
|
158824
|
+
const declarations = node.symbol.declarations;
|
|
158825
|
+
if (declarations) {
|
|
158826
|
+
for (const declaration of declarations) {
|
|
158827
|
+
changes.delete(sourceFile, declaration);
|
|
158828
|
+
}
|
|
158829
|
+
}
|
|
158830
|
+
}
|
|
156922
158831
|
|
|
156923
158832
|
// src/services/codefixes/fixUnreachableCode.ts
|
|
156924
158833
|
var fixId33 = "fixUnreachableCode";
|
|
@@ -162665,6 +164574,7 @@ function getCompletionData(program, log, sourceFile, compilerOptions, position,
|
|
|
162665
164574
|
}
|
|
162666
164575
|
}
|
|
162667
164576
|
function shouldOfferImportCompletions() {
|
|
164577
|
+
var _a;
|
|
162668
164578
|
if (importStatementCompletion)
|
|
162669
164579
|
return true;
|
|
162670
164580
|
if (!preferences.includeCompletionsForModuleExports)
|
|
@@ -162673,7 +164583,7 @@ function getCompletionData(program, log, sourceFile, compilerOptions, position,
|
|
|
162673
164583
|
return true;
|
|
162674
164584
|
if (compilerOptionsIndicateEsModules(program.getCompilerOptions()))
|
|
162675
164585
|
return true;
|
|
162676
|
-
return programContainsModules(program);
|
|
164586
|
+
return ((_a = program.getSymlinkCache) == null ? void 0 : _a.call(program).hasAnySymlinks()) || !!program.getCompilerOptions().paths || programContainsModules(program);
|
|
162677
164587
|
}
|
|
162678
164588
|
function isSnippetScope(scopeNode) {
|
|
162679
164589
|
switch (scopeNode.kind) {
|
|
@@ -164940,7 +166850,7 @@ function isPathRelativeToScript(path) {
|
|
|
164940
166850
|
}
|
|
164941
166851
|
return false;
|
|
164942
166852
|
}
|
|
164943
|
-
var tripleSlashDirectiveFragmentRegex = /^(\/\/\/\s*<reference\s+(path|types)\s*=\s*(?:'|"))([^\
|
|
166853
|
+
var tripleSlashDirectiveFragmentRegex = /^(\/\/\/\s*<reference\s+(path|types)\s*=\s*(?:'|"))([^\x03"]*)$/;
|
|
164944
166854
|
var nodeModulesDependencyKeys = ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"];
|
|
164945
166855
|
function containsSlash(fragment) {
|
|
164946
166856
|
return fragment.includes(directorySeparator);
|
|
@@ -167838,9 +169748,13 @@ function isExpandoDeclaration(node) {
|
|
|
167838
169748
|
}
|
|
167839
169749
|
function getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution, excludeDeclaration) {
|
|
167840
169750
|
const filteredDeclarations = filter(symbol.declarations, (d) => d !== excludeDeclaration);
|
|
169751
|
+
const signatureDefinition = getConstructSignatureDefinition() || getCallSignatureDefinition();
|
|
169752
|
+
if (signatureDefinition) {
|
|
169753
|
+
return signatureDefinition;
|
|
169754
|
+
}
|
|
167841
169755
|
const withoutExpandos = filter(filteredDeclarations, (d) => !isExpandoDeclaration(d));
|
|
167842
169756
|
const results = some(withoutExpandos) ? withoutExpandos : filteredDeclarations;
|
|
167843
|
-
return
|
|
169757
|
+
return map(results, (declaration) => createDefinitionInfo(
|
|
167844
169758
|
declaration,
|
|
167845
169759
|
typeChecker,
|
|
167846
169760
|
symbol,
|
|
@@ -167851,8 +169765,8 @@ function getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolutio
|
|
|
167851
169765
|
));
|
|
167852
169766
|
function getConstructSignatureDefinition() {
|
|
167853
169767
|
if (symbol.flags & 32 /* Class */ && !(symbol.flags & (16 /* Function */ | 3 /* Variable */)) && (isNewExpressionTarget(node) || node.kind === 137 /* ConstructorKeyword */)) {
|
|
167854
|
-
const cls = find(filteredDeclarations, isClassLike)
|
|
167855
|
-
return getSignatureDefinition(
|
|
169768
|
+
const cls = find(filteredDeclarations, isClassLike);
|
|
169769
|
+
return cls && getSignatureDefinition(
|
|
167856
169770
|
cls.members,
|
|
167857
169771
|
/*selectConstructors*/
|
|
167858
169772
|
true
|
|
@@ -168722,7 +170636,7 @@ function provideInlayHints(context) {
|
|
|
168722
170636
|
return name === "undefined";
|
|
168723
170637
|
}
|
|
168724
170638
|
function isHintableDeclaration(node) {
|
|
168725
|
-
if ((
|
|
170639
|
+
if ((isPartOfParameterDeclaration(node) || isVariableDeclaration(node) && isVarConst(node)) && node.initializer) {
|
|
168726
170640
|
const initializer = skipParentheses(node.initializer);
|
|
168727
170641
|
return !(isHintableLiteral(initializer) || isNewExpression(initializer) || isObjectLiteralExpression(initializer) || isAssertionExpression(initializer));
|
|
168728
170642
|
}
|
|
@@ -175980,6 +177894,7 @@ __export(ts_exports2, {
|
|
|
175980
177894
|
ProcessLevel: () => ProcessLevel,
|
|
175981
177895
|
ProgramUpdateLevel: () => ProgramUpdateLevel,
|
|
175982
177896
|
QuotePreference: () => QuotePreference,
|
|
177897
|
+
RegularExpressionFlags: () => RegularExpressionFlags,
|
|
175983
177898
|
RelationComparisonResult: () => RelationComparisonResult,
|
|
175984
177899
|
Rename: () => ts_Rename_exports,
|
|
175985
177900
|
ScriptElementKind: () => ScriptElementKind,
|
|
@@ -176108,6 +178023,7 @@ __export(ts_exports2, {
|
|
|
176108
178023
|
changeFullExtension: () => changeFullExtension,
|
|
176109
178024
|
changesAffectModuleResolution: () => changesAffectModuleResolution,
|
|
176110
178025
|
changesAffectingProgramStructure: () => changesAffectingProgramStructure,
|
|
178026
|
+
characterToRegularExpressionFlag: () => characterToRegularExpressionFlag,
|
|
176111
178027
|
childIsDecorated: () => childIsDecorated,
|
|
176112
178028
|
classElementOrClassElementParameterIsDecorated: () => classElementOrClassElementParameterIsDecorated,
|
|
176113
178029
|
classHasClassThisAssignment: () => classHasClassThisAssignment,
|
|
@@ -176253,6 +178169,7 @@ __export(ts_exports2, {
|
|
|
176253
178169
|
createForOfBindingStatement: () => createForOfBindingStatement,
|
|
176254
178170
|
createFutureSourceFile: () => createFutureSourceFile,
|
|
176255
178171
|
createGetCanonicalFileName: () => createGetCanonicalFileName,
|
|
178172
|
+
createGetIsolatedDeclarationErrors: () => createGetIsolatedDeclarationErrors,
|
|
176256
178173
|
createGetSourceFile: () => createGetSourceFile,
|
|
176257
178174
|
createGetSymbolAccessibilityDiagnosticForNode: () => createGetSymbolAccessibilityDiagnosticForNode,
|
|
176258
178175
|
createGetSymbolAccessibilityDiagnosticForNodeName: () => createGetSymbolAccessibilityDiagnosticForNodeName,
|
|
@@ -176307,6 +178224,7 @@ __export(ts_exports2, {
|
|
|
176307
178224
|
createSuperAccessVariableStatement: () => createSuperAccessVariableStatement,
|
|
176308
178225
|
createSymbolTable: () => createSymbolTable,
|
|
176309
178226
|
createSymlinkCache: () => createSymlinkCache,
|
|
178227
|
+
createSyntacticTypeNodeBuilder: () => createSyntacticTypeNodeBuilder,
|
|
176310
178228
|
createSystemWatchFunctions: () => createSystemWatchFunctions,
|
|
176311
178229
|
createTextChange: () => createTextChange,
|
|
176312
178230
|
createTextChangeFromStartLength: () => createTextChangeFromStartLength,
|
|
@@ -176746,6 +178664,7 @@ __export(ts_exports2, {
|
|
|
176746
178664
|
getNameOfDeclaration: () => getNameOfDeclaration,
|
|
176747
178665
|
getNameOfExpando: () => getNameOfExpando,
|
|
176748
178666
|
getNameOfJSDocTypedef: () => getNameOfJSDocTypedef,
|
|
178667
|
+
getNameOfScriptTarget: () => getNameOfScriptTarget,
|
|
176749
178668
|
getNameOrArgument: () => getNameOrArgument,
|
|
176750
178669
|
getNameTable: () => getNameTable,
|
|
176751
178670
|
getNamesForExportedSymbol: () => getNamesForExportedSymbol,
|
|
@@ -176960,6 +178879,7 @@ __export(ts_exports2, {
|
|
|
176960
178879
|
hasEffectiveReadonlyModifier: () => hasEffectiveReadonlyModifier,
|
|
176961
178880
|
hasExtension: () => hasExtension,
|
|
176962
178881
|
hasIndexSignature: () => hasIndexSignature,
|
|
178882
|
+
hasInferredType: () => hasInferredType,
|
|
176963
178883
|
hasInitializer: () => hasInitializer,
|
|
176964
178884
|
hasInvalidEscape: () => hasInvalidEscape,
|
|
176965
178885
|
hasJSDocNodes: () => hasJSDocNodes,
|
|
@@ -177504,12 +179424,12 @@ __export(ts_exports2, {
|
|
|
177504
179424
|
isPackageJsonInfo: () => isPackageJsonInfo,
|
|
177505
179425
|
isPackedArrayLiteral: () => isPackedArrayLiteral,
|
|
177506
179426
|
isParameter: () => isParameter,
|
|
177507
|
-
isParameterDeclaration: () => isParameterDeclaration,
|
|
177508
179427
|
isParameterPropertyDeclaration: () => isParameterPropertyDeclaration,
|
|
177509
179428
|
isParameterPropertyModifier: () => isParameterPropertyModifier,
|
|
177510
179429
|
isParenthesizedExpression: () => isParenthesizedExpression,
|
|
177511
179430
|
isParenthesizedTypeNode: () => isParenthesizedTypeNode,
|
|
177512
179431
|
isParseTreeNode: () => isParseTreeNode,
|
|
179432
|
+
isPartOfParameterDeclaration: () => isPartOfParameterDeclaration,
|
|
177513
179433
|
isPartOfTypeNode: () => isPartOfTypeNode,
|
|
177514
179434
|
isPartOfTypeQuery: () => isPartOfTypeQuery,
|
|
177515
179435
|
isPartiallyEmittedExpression: () => isPartiallyEmittedExpression,
|
|
@@ -177520,6 +179440,7 @@ __export(ts_exports2, {
|
|
|
177520
179440
|
isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition,
|
|
177521
179441
|
isPostfixUnaryExpression: () => isPostfixUnaryExpression,
|
|
177522
179442
|
isPrefixUnaryExpression: () => isPrefixUnaryExpression,
|
|
179443
|
+
isPrimitiveLiteralValue: () => isPrimitiveLiteralValue,
|
|
177523
179444
|
isPrivateIdentifier: () => isPrivateIdentifier,
|
|
177524
179445
|
isPrivateIdentifierClassElementDeclaration: () => isPrivateIdentifierClassElementDeclaration,
|
|
177525
179446
|
isPrivateIdentifierPropertyAccessExpression: () => isPrivateIdentifierPropertyAccessExpression,
|
|
@@ -177686,6 +179607,7 @@ __export(ts_exports2, {
|
|
|
177686
179607
|
isValueSignatureDeclaration: () => isValueSignatureDeclaration,
|
|
177687
179608
|
isVarAwaitUsing: () => isVarAwaitUsing,
|
|
177688
179609
|
isVarConst: () => isVarConst,
|
|
179610
|
+
isVarConstLike: () => isVarConstLike,
|
|
177689
179611
|
isVarUsing: () => isVarUsing,
|
|
177690
179612
|
isVariableDeclaration: () => isVariableDeclaration,
|
|
177691
179613
|
isVariableDeclarationInVariableStatement: () => isVariableDeclarationInVariableStatement,
|
|
@@ -177890,6 +179812,7 @@ __export(ts_exports2, {
|
|
|
177890
179812
|
reducePathComponents: () => reducePathComponents,
|
|
177891
179813
|
refactor: () => ts_refactor_exports,
|
|
177892
179814
|
regExpEscape: () => regExpEscape,
|
|
179815
|
+
regularExpressionFlagToCharacter: () => regularExpressionFlagToCharacter,
|
|
177893
179816
|
relativeComplement: () => relativeComplement,
|
|
177894
179817
|
removeAllComments: () => removeAllComments,
|
|
177895
179818
|
removeEmitHelper: () => removeEmitHelper,
|
|
@@ -178145,6 +180068,7 @@ __export(ts_exports2, {
|
|
|
178145
180068
|
unsetNodeChildren: () => unsetNodeChildren,
|
|
178146
180069
|
unusedLabelIsError: () => unusedLabelIsError,
|
|
178147
180070
|
unwrapInnermostStatementOfLabel: () => unwrapInnermostStatementOfLabel,
|
|
180071
|
+
unwrapParenthesizedExpression: () => unwrapParenthesizedExpression,
|
|
178148
180072
|
updateErrorForNoInputFiles: () => updateErrorForNoInputFiles,
|
|
178149
180073
|
updateLanguageServiceSourceFile: () => updateLanguageServiceSourceFile,
|
|
178150
180074
|
updateMissingFilePathsWatch: () => updateMissingFilePathsWatch,
|
|
@@ -180665,6 +182589,13 @@ var Project3 = class _Project {
|
|
|
180665
182589
|
}
|
|
180666
182590
|
}
|
|
180667
182591
|
/** @internal */
|
|
182592
|
+
markAutoImportProviderAsDirty() {
|
|
182593
|
+
var _a;
|
|
182594
|
+
if (!this.autoImportProviderHost)
|
|
182595
|
+
this.autoImportProviderHost = void 0;
|
|
182596
|
+
(_a = this.autoImportProviderHost) == null ? void 0 : _a.markAsDirty();
|
|
182597
|
+
}
|
|
182598
|
+
/** @internal */
|
|
180668
182599
|
onAutoImportProviderSettingsChanged() {
|
|
180669
182600
|
var _a;
|
|
180670
182601
|
if (this.autoImportProviderHost === false) {
|
|
@@ -180700,7 +182631,7 @@ var Project3 = class _Project {
|
|
|
180700
182631
|
* @returns: true if set of files in the project stays the same and false - otherwise.
|
|
180701
182632
|
*/
|
|
180702
182633
|
updateGraph() {
|
|
180703
|
-
var _a, _b, _c, _d
|
|
182634
|
+
var _a, _b, _c, _d;
|
|
180704
182635
|
(_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "updateGraph", { name: this.projectName, kind: ProjectKind[this.projectKind] });
|
|
180705
182636
|
(_b = perfLogger) == null ? void 0 : _b.logStartUpdateGraph();
|
|
180706
182637
|
this.resolutionCache.startRecordingFilesWithChangedResolutions();
|
|
@@ -180725,15 +182656,13 @@ var Project3 = class _Project {
|
|
|
180725
182656
|
this.projectProgramVersion++;
|
|
180726
182657
|
}
|
|
180727
182658
|
if (hasAddedorRemovedFiles) {
|
|
180728
|
-
|
|
180729
|
-
this.autoImportProviderHost = void 0;
|
|
180730
|
-
(_c = this.autoImportProviderHost) == null ? void 0 : _c.markAsDirty();
|
|
182659
|
+
this.markAutoImportProviderAsDirty();
|
|
180731
182660
|
}
|
|
180732
182661
|
if (isFirstProgramLoad) {
|
|
180733
182662
|
this.getPackageJsonAutoImportProvider();
|
|
180734
182663
|
}
|
|
180735
|
-
(
|
|
180736
|
-
(
|
|
182664
|
+
(_c = perfLogger) == null ? void 0 : _c.logStopUpdateGraph();
|
|
182665
|
+
(_d = tracing) == null ? void 0 : _d.pop();
|
|
180737
182666
|
return !hasNewProgram;
|
|
180738
182667
|
}
|
|
180739
182668
|
/** @internal */
|
|
@@ -181701,8 +183630,7 @@ var _AutoImportProviderProject = class _AutoImportProviderProject extends Projec
|
|
|
181701
183630
|
if (packageJson) {
|
|
181702
183631
|
const entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache);
|
|
181703
183632
|
if (entrypoints) {
|
|
181704
|
-
|
|
181705
|
-
dependenciesAdded += entrypoints.length ? 1 : 0;
|
|
183633
|
+
dependenciesAdded += addRootNames(entrypoints);
|
|
181706
183634
|
continue;
|
|
181707
183635
|
}
|
|
181708
183636
|
}
|
|
@@ -181717,8 +183645,7 @@ var _AutoImportProviderProject = class _AutoImportProviderProject extends Projec
|
|
|
181717
183645
|
);
|
|
181718
183646
|
if (typesPackageJson) {
|
|
181719
183647
|
const entrypoints = getRootNamesFromPackageJson(typesPackageJson, program, symlinkCache);
|
|
181720
|
-
|
|
181721
|
-
dependenciesAdded += (entrypoints == null ? void 0 : entrypoints.length) ? 1 : 0;
|
|
183648
|
+
dependenciesAdded += addRootNames(entrypoints);
|
|
181722
183649
|
return true;
|
|
181723
183650
|
}
|
|
181724
183651
|
}
|
|
@@ -181733,15 +183660,48 @@ var _AutoImportProviderProject = class _AutoImportProviderProject extends Projec
|
|
|
181733
183660
|
/*resolveJs*/
|
|
181734
183661
|
true
|
|
181735
183662
|
);
|
|
181736
|
-
|
|
181737
|
-
|
|
183663
|
+
dependenciesAdded += addRootNames(entrypoints);
|
|
183664
|
+
}
|
|
183665
|
+
}
|
|
183666
|
+
}
|
|
183667
|
+
const references = program.getResolvedProjectReferences();
|
|
183668
|
+
let referencesAddded = 0;
|
|
183669
|
+
if ((references == null ? void 0 : references.length) && hostProject.projectService.getHostPreferences().includeCompletionsForModuleExports) {
|
|
183670
|
+
references.forEach((ref) => {
|
|
183671
|
+
if (ref == null ? void 0 : ref.commandLine.options.outFile) {
|
|
183672
|
+
referencesAddded += addRootNames(filterEntrypoints([
|
|
183673
|
+
changeExtension(ref.commandLine.options.outFile, ".d.ts")
|
|
183674
|
+
]));
|
|
183675
|
+
} else if (ref) {
|
|
183676
|
+
const getCommonSourceDirectory2 = memoize(
|
|
183677
|
+
() => getCommonSourceDirectoryOfConfig(
|
|
183678
|
+
ref.commandLine,
|
|
183679
|
+
!hostProject.useCaseSensitiveFileNames()
|
|
183680
|
+
)
|
|
183681
|
+
);
|
|
183682
|
+
referencesAddded += addRootNames(filterEntrypoints(mapDefined(
|
|
183683
|
+
ref.commandLine.fileNames,
|
|
183684
|
+
(fileName) => !isDeclarationFileName(fileName) && !fileExtensionIs(fileName, ".json" /* Json */) && !program.getSourceFile(fileName) ? getOutputDeclarationFileName(
|
|
183685
|
+
fileName,
|
|
183686
|
+
ref.commandLine,
|
|
183687
|
+
!hostProject.useCaseSensitiveFileNames(),
|
|
183688
|
+
getCommonSourceDirectory2
|
|
183689
|
+
) : void 0
|
|
183690
|
+
)));
|
|
181738
183691
|
}
|
|
181739
|
-
}
|
|
183692
|
+
});
|
|
183693
|
+
}
|
|
183694
|
+
if (rootNames == null ? void 0 : rootNames.size) {
|
|
183695
|
+
hostProject.log(`AutoImportProviderProject: found ${rootNames.size} root files in ${dependenciesAdded} dependencies ${referencesAddded} referenced projects in ${timestamp() - start} ms`);
|
|
181740
183696
|
}
|
|
181741
|
-
|
|
181742
|
-
|
|
183697
|
+
return rootNames ? arrayFrom(rootNames.values()) : emptyArray;
|
|
183698
|
+
function addRootNames(entrypoints) {
|
|
183699
|
+
if (!(entrypoints == null ? void 0 : entrypoints.length))
|
|
183700
|
+
return 0;
|
|
183701
|
+
rootNames ?? (rootNames = /* @__PURE__ */ new Set());
|
|
183702
|
+
entrypoints.forEach((entry) => rootNames.add(entry));
|
|
183703
|
+
return 1;
|
|
181743
183704
|
}
|
|
181744
|
-
return rootNames || emptyArray;
|
|
181745
183705
|
function addDependency(dependency) {
|
|
181746
183706
|
if (!startsWith(dependency, "@types/")) {
|
|
181747
183707
|
(dependencyNames || (dependencyNames = /* @__PURE__ */ new Set())).add(dependency);
|
|
@@ -181766,14 +183726,17 @@ var _AutoImportProviderProject = class _AutoImportProviderProject extends Projec
|
|
|
181766
183726
|
realPath: ensureTrailingDirectorySeparator(realPath2)
|
|
181767
183727
|
});
|
|
181768
183728
|
}
|
|
181769
|
-
return
|
|
181770
|
-
const resolvedFileName = isSymlink ? entrypoint.replace(packageJson.packageDirectory, real) : entrypoint;
|
|
181771
|
-
if (!program2.getSourceFile(resolvedFileName) && !(isSymlink && program2.getSourceFile(entrypoint))) {
|
|
181772
|
-
return resolvedFileName;
|
|
181773
|
-
}
|
|
181774
|
-
});
|
|
183729
|
+
return filterEntrypoints(entrypoints, isSymlink ? (entrypoint) => entrypoint.replace(packageJson.packageDirectory, real) : void 0);
|
|
181775
183730
|
}
|
|
181776
183731
|
}
|
|
183732
|
+
function filterEntrypoints(entrypoints, symlinkName) {
|
|
183733
|
+
return mapDefined(entrypoints, (entrypoint) => {
|
|
183734
|
+
const resolvedFileName = symlinkName ? symlinkName(entrypoint) : entrypoint;
|
|
183735
|
+
if (!program.getSourceFile(resolvedFileName) && !(symlinkName && program.getSourceFile(entrypoint))) {
|
|
183736
|
+
return resolvedFileName;
|
|
183737
|
+
}
|
|
183738
|
+
});
|
|
183739
|
+
}
|
|
181777
183740
|
}
|
|
181778
183741
|
/** @internal */
|
|
181779
183742
|
static create(dependencySelection, hostProject, host, documentRegistry) {
|
|
@@ -183116,11 +185079,18 @@ var _ProjectService = class _ProjectService {
|
|
|
183116
185079
|
if (config.updateLevel !== 2 /* Full */)
|
|
183117
185080
|
config.updateLevel = 1 /* RootNamesAndUpdate */;
|
|
183118
185081
|
config.projects.forEach((watchWildcardDirectories, projectCanonicalPath) => {
|
|
185082
|
+
var _a;
|
|
183119
185083
|
if (!watchWildcardDirectories)
|
|
183120
185084
|
return;
|
|
183121
185085
|
const project = this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath);
|
|
183122
185086
|
if (!project)
|
|
183123
185087
|
return;
|
|
185088
|
+
if (configuredProjectForConfig !== project && this.getHostPreferences().includeCompletionsForModuleExports) {
|
|
185089
|
+
const path = this.toPath(configFileName);
|
|
185090
|
+
if (find((_a = project.getCurrentProgram()) == null ? void 0 : _a.getResolvedProjectReferences(), (ref) => (ref == null ? void 0 : ref.sourceFile.path) === path)) {
|
|
185091
|
+
project.markAutoImportProviderAsDirty();
|
|
185092
|
+
}
|
|
185093
|
+
}
|
|
183124
185094
|
const updateLevel = configuredProjectForConfig === project ? 1 /* RootNamesAndUpdate */ : 0 /* Update */;
|
|
183125
185095
|
if (project.pendingUpdateLevel !== void 0 && project.pendingUpdateLevel > updateLevel)
|
|
183126
185096
|
return;
|
|
@@ -183169,6 +185139,7 @@ var _ProjectService = class _ProjectService {
|
|
|
183169
185139
|
let scheduledAnyProjectUpdate = false;
|
|
183170
185140
|
configFileExistenceInfo.config.updateLevel = 2 /* Full */;
|
|
183171
185141
|
configFileExistenceInfo.config.projects.forEach((_watchWildcardDirectories, projectCanonicalPath) => {
|
|
185142
|
+
var _a;
|
|
183172
185143
|
const project = this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath);
|
|
183173
185144
|
if (!project)
|
|
183174
185145
|
return;
|
|
@@ -183179,9 +185150,14 @@ var _ProjectService = class _ProjectService {
|
|
|
183179
185150
|
project.pendingUpdateLevel = 2 /* Full */;
|
|
183180
185151
|
project.pendingUpdateReason = loadReason;
|
|
183181
185152
|
this.delayUpdateProjectGraph(project);
|
|
185153
|
+
project.markAutoImportProviderAsDirty();
|
|
183182
185154
|
} else {
|
|
183183
|
-
|
|
185155
|
+
const path = this.toPath(canonicalConfigFilePath);
|
|
185156
|
+
project.resolutionCache.removeResolutionsFromProjectReferenceRedirects(path);
|
|
183184
185157
|
this.delayUpdateProjectGraph(project);
|
|
185158
|
+
if (this.getHostPreferences().includeCompletionsForModuleExports && find((_a = project.getCurrentProgram()) == null ? void 0 : _a.getResolvedProjectReferences(), (ref) => (ref == null ? void 0 : ref.sourceFile.path) === path)) {
|
|
185159
|
+
project.markAutoImportProviderAsDirty();
|
|
185160
|
+
}
|
|
183185
185161
|
}
|
|
183186
185162
|
});
|
|
183187
185163
|
return scheduledAnyProjectUpdate;
|
|
@@ -183610,13 +185586,8 @@ var _ProjectService = class _ProjectService {
|
|
|
183610
185586
|
if (result !== void 0)
|
|
183611
185587
|
return result || void 0;
|
|
183612
185588
|
}
|
|
183613
|
-
this.logger.info(`Search path: ${getDirectoryPath(info.fileName)}`);
|
|
183614
185589
|
const configFileName = this.forEachConfigFileLocation(info, (canonicalConfigFilePath, configFileName2) => this.configFileExists(configFileName2, canonicalConfigFilePath, info));
|
|
183615
|
-
|
|
183616
|
-
this.logger.info(`For info: ${info.fileName} :: Config file name: ${configFileName}`);
|
|
183617
|
-
} else {
|
|
183618
|
-
this.logger.info(`For info: ${info.fileName} :: No config files found.`);
|
|
183619
|
-
}
|
|
185590
|
+
this.logger.info(`getConfigFileNameForFile:: File: ${info.fileName} ProjectRootPath: ${this.openFiles.get(info.path)}:: Result: ${configFileName}`);
|
|
183620
185591
|
if (isOpenScriptInfo(info)) {
|
|
183621
185592
|
this.configFileForOpenFiles.set(info.path, configFileName || false);
|
|
183622
185593
|
}
|
|
@@ -184646,7 +186617,8 @@ Dynamic files must always be opened with service's current directory or service
|
|
|
184646
186617
|
if (args.preferences) {
|
|
184647
186618
|
const {
|
|
184648
186619
|
lazyConfiguredProjectsFromExternalProject,
|
|
184649
|
-
includePackageJsonAutoImports
|
|
186620
|
+
includePackageJsonAutoImports,
|
|
186621
|
+
includeCompletionsForModuleExports
|
|
184650
186622
|
} = this.hostConfiguration.preferences;
|
|
184651
186623
|
this.hostConfiguration.preferences = { ...this.hostConfiguration.preferences, ...args.preferences };
|
|
184652
186624
|
if (lazyConfiguredProjectsFromExternalProject && !this.hostConfiguration.preferences.lazyConfiguredProjectsFromExternalProject) {
|
|
@@ -184658,7 +186630,7 @@ Dynamic files must always be opened with service's current directory or service
|
|
|
184658
186630
|
})
|
|
184659
186631
|
);
|
|
184660
186632
|
}
|
|
184661
|
-
if (includePackageJsonAutoImports !== args.preferences.includePackageJsonAutoImports) {
|
|
186633
|
+
if (includePackageJsonAutoImports !== args.preferences.includePackageJsonAutoImports || !!includeCompletionsForModuleExports !== !!args.preferences.includeCompletionsForModuleExports) {
|
|
184662
186634
|
this.forEachProject((project) => {
|
|
184663
186635
|
project.onAutoImportProviderSettingsChanged();
|
|
184664
186636
|
});
|
|
@@ -190348,6 +192320,7 @@ if (typeof console !== "undefined") {
|
|
|
190348
192320
|
ProcessLevel,
|
|
190349
192321
|
ProgramUpdateLevel,
|
|
190350
192322
|
QuotePreference,
|
|
192323
|
+
RegularExpressionFlags,
|
|
190351
192324
|
RelationComparisonResult,
|
|
190352
192325
|
Rename,
|
|
190353
192326
|
ScriptElementKind,
|
|
@@ -190476,6 +192449,7 @@ if (typeof console !== "undefined") {
|
|
|
190476
192449
|
changeFullExtension,
|
|
190477
192450
|
changesAffectModuleResolution,
|
|
190478
192451
|
changesAffectingProgramStructure,
|
|
192452
|
+
characterToRegularExpressionFlag,
|
|
190479
192453
|
childIsDecorated,
|
|
190480
192454
|
classElementOrClassElementParameterIsDecorated,
|
|
190481
192455
|
classHasClassThisAssignment,
|
|
@@ -190621,6 +192595,7 @@ if (typeof console !== "undefined") {
|
|
|
190621
192595
|
createForOfBindingStatement,
|
|
190622
192596
|
createFutureSourceFile,
|
|
190623
192597
|
createGetCanonicalFileName,
|
|
192598
|
+
createGetIsolatedDeclarationErrors,
|
|
190624
192599
|
createGetSourceFile,
|
|
190625
192600
|
createGetSymbolAccessibilityDiagnosticForNode,
|
|
190626
192601
|
createGetSymbolAccessibilityDiagnosticForNodeName,
|
|
@@ -190675,6 +192650,7 @@ if (typeof console !== "undefined") {
|
|
|
190675
192650
|
createSuperAccessVariableStatement,
|
|
190676
192651
|
createSymbolTable,
|
|
190677
192652
|
createSymlinkCache,
|
|
192653
|
+
createSyntacticTypeNodeBuilder,
|
|
190678
192654
|
createSystemWatchFunctions,
|
|
190679
192655
|
createTextChange,
|
|
190680
192656
|
createTextChangeFromStartLength,
|
|
@@ -191114,6 +193090,7 @@ if (typeof console !== "undefined") {
|
|
|
191114
193090
|
getNameOfDeclaration,
|
|
191115
193091
|
getNameOfExpando,
|
|
191116
193092
|
getNameOfJSDocTypedef,
|
|
193093
|
+
getNameOfScriptTarget,
|
|
191117
193094
|
getNameOrArgument,
|
|
191118
193095
|
getNameTable,
|
|
191119
193096
|
getNamesForExportedSymbol,
|
|
@@ -191328,6 +193305,7 @@ if (typeof console !== "undefined") {
|
|
|
191328
193305
|
hasEffectiveReadonlyModifier,
|
|
191329
193306
|
hasExtension,
|
|
191330
193307
|
hasIndexSignature,
|
|
193308
|
+
hasInferredType,
|
|
191331
193309
|
hasInitializer,
|
|
191332
193310
|
hasInvalidEscape,
|
|
191333
193311
|
hasJSDocNodes,
|
|
@@ -191872,12 +193850,12 @@ if (typeof console !== "undefined") {
|
|
|
191872
193850
|
isPackageJsonInfo,
|
|
191873
193851
|
isPackedArrayLiteral,
|
|
191874
193852
|
isParameter,
|
|
191875
|
-
isParameterDeclaration,
|
|
191876
193853
|
isParameterPropertyDeclaration,
|
|
191877
193854
|
isParameterPropertyModifier,
|
|
191878
193855
|
isParenthesizedExpression,
|
|
191879
193856
|
isParenthesizedTypeNode,
|
|
191880
193857
|
isParseTreeNode,
|
|
193858
|
+
isPartOfParameterDeclaration,
|
|
191881
193859
|
isPartOfTypeNode,
|
|
191882
193860
|
isPartOfTypeQuery,
|
|
191883
193861
|
isPartiallyEmittedExpression,
|
|
@@ -191888,6 +193866,7 @@ if (typeof console !== "undefined") {
|
|
|
191888
193866
|
isPossiblyTypeArgumentPosition,
|
|
191889
193867
|
isPostfixUnaryExpression,
|
|
191890
193868
|
isPrefixUnaryExpression,
|
|
193869
|
+
isPrimitiveLiteralValue,
|
|
191891
193870
|
isPrivateIdentifier,
|
|
191892
193871
|
isPrivateIdentifierClassElementDeclaration,
|
|
191893
193872
|
isPrivateIdentifierPropertyAccessExpression,
|
|
@@ -192054,6 +194033,7 @@ if (typeof console !== "undefined") {
|
|
|
192054
194033
|
isValueSignatureDeclaration,
|
|
192055
194034
|
isVarAwaitUsing,
|
|
192056
194035
|
isVarConst,
|
|
194036
|
+
isVarConstLike,
|
|
192057
194037
|
isVarUsing,
|
|
192058
194038
|
isVariableDeclaration,
|
|
192059
194039
|
isVariableDeclarationInVariableStatement,
|
|
@@ -192258,6 +194238,7 @@ if (typeof console !== "undefined") {
|
|
|
192258
194238
|
reducePathComponents,
|
|
192259
194239
|
refactor,
|
|
192260
194240
|
regExpEscape,
|
|
194241
|
+
regularExpressionFlagToCharacter,
|
|
192261
194242
|
relativeComplement,
|
|
192262
194243
|
removeAllComments,
|
|
192263
194244
|
removeEmitHelper,
|
|
@@ -192513,6 +194494,7 @@ if (typeof console !== "undefined") {
|
|
|
192513
194494
|
unsetNodeChildren,
|
|
192514
194495
|
unusedLabelIsError,
|
|
192515
194496
|
unwrapInnermostStatementOfLabel,
|
|
194497
|
+
unwrapParenthesizedExpression,
|
|
192516
194498
|
updateErrorForNoInputFiles,
|
|
192517
194499
|
updateLanguageServiceSourceFile,
|
|
192518
194500
|
updateMissingFilePathsWatch,
|