@artel/artc 0.6.25233 → 0.6.25234

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.
@@ -70,11 +70,11 @@ var __yieldStar = (value) => {
70
70
  };
71
71
 
72
72
  // source/common/PackageDialect.ts
73
- var PackageDialect = /* @__PURE__ */ ((PackageDialect7) => {
74
- PackageDialect7[PackageDialect7["Mixed"] = 0] = "Mixed";
75
- PackageDialect7[PackageDialect7["Usual"] = 1] = "Usual";
76
- PackageDialect7[PackageDialect7["Special"] = 2] = "Special";
77
- return PackageDialect7;
73
+ var PackageDialect = /* @__PURE__ */ ((PackageDialect8) => {
74
+ PackageDialect8[PackageDialect8["Mixed"] = 0] = "Mixed";
75
+ PackageDialect8[PackageDialect8["Usual"] = 1] = "Usual";
76
+ PackageDialect8[PackageDialect8["Special"] = 2] = "Special";
77
+ return PackageDialect8;
78
78
  })(PackageDialect || {});
79
79
 
80
80
  // source/common/PackageLocale.ts
@@ -195,6 +195,9 @@ var Query = class _Query {
195
195
  return void 0;
196
196
  }
197
197
  toMap(keySelector, valueSelector) {
198
+ if (keySelector === void 0 || valueSelector === void 0) {
199
+ return new Map(this);
200
+ }
198
201
  const result = /* @__PURE__ */ new Map();
199
202
  for (const e of this) {
200
203
  const key = keySelector(e);
@@ -617,7 +620,7 @@ var UniqueWithComparatorQuery = class extends Query {
617
620
  };
618
621
 
619
622
  // source/common/Constants.ts
620
- var ArtelVersion = true ? "0.6.25233" : "";
623
+ var ArtelVersion = true ? "0.6.25234" : "";
621
624
  var ArtelSourceFileExtensions = [".\u0430\u0440\u0442", ".\u0430\u0440\u0442\u0435\u043B\u044C", ".art", ".artel"];
622
625
  var ArtelSourceFileExtensionSet = new Set(ArtelSourceFileExtensions);
623
626
  var ArtelSourceAndConfigurationFileExtensionSet = new Set(ArtelSourceFileExtensionSet).add(".json");
@@ -761,6 +764,9 @@ var ArrayUtils = class {
761
764
  static pushElementIfUniqueComparingWithEquals(array, element) {
762
765
  if (!array.some((e) => e.equals(element))) {
763
766
  array.push(element);
767
+ return true;
768
+ } else {
769
+ return false;
764
770
  }
765
771
  }
766
772
  static pushElementsIfUniqueComparingWithEquals(array, elements) {
@@ -1542,60 +1548,60 @@ var TokenKind = /* @__PURE__ */ ((TokenKind6) => {
1542
1548
  TokenKind6[TokenKind6["TextTemplateHead"] = 7] = "TextTemplateHead";
1543
1549
  TokenKind6[TokenKind6["TextTemplatePart"] = 8] = "TextTemplatePart";
1544
1550
  TokenKind6[TokenKind6["TextTemplateTail"] = 9] = "TextTemplateTail";
1545
- TokenKind6[TokenKind6["Ampersand"] = 10] = "Ampersand";
1546
- TokenKind6[TokenKind6["AmpersandAmpersand"] = 11] = "AmpersandAmpersand";
1547
- TokenKind6[TokenKind6["AmpersandEquals"] = 12] = "AmpersandEquals";
1548
- TokenKind6[TokenKind6["Asterisk"] = 13] = "Asterisk";
1549
- TokenKind6[TokenKind6["AsteriskAsterisk"] = 14] = "AsteriskAsterisk";
1550
- TokenKind6[TokenKind6["AsteriskEquals"] = 15] = "AsteriskEquals";
1551
- TokenKind6[TokenKind6["BackQuote"] = 16] = "BackQuote";
1552
- TokenKind6[TokenKind6["Bar"] = 17] = "Bar";
1553
- TokenKind6[TokenKind6["BarBar"] = 18] = "BarBar";
1554
- TokenKind6[TokenKind6["Caret"] = 19] = "Caret";
1555
- TokenKind6[TokenKind6["CloseBrace"] = 20] = "CloseBrace";
1556
- TokenKind6[TokenKind6["CloseParenthesis"] = 21] = "CloseParenthesis";
1557
- TokenKind6[TokenKind6["CloseSquareBracket"] = 22] = "CloseSquareBracket";
1558
- TokenKind6[TokenKind6["Colon"] = 23] = "Colon";
1559
- TokenKind6[TokenKind6["Comma"] = 24] = "Comma";
1560
- TokenKind6[TokenKind6["CommercialAt"] = 25] = "CommercialAt";
1561
- TokenKind6[TokenKind6["Dot"] = 26] = "Dot";
1562
- TokenKind6[TokenKind6["DoublePeriod"] = 27] = "DoublePeriod";
1563
- TokenKind6[TokenKind6["Ellipsis"] = 28] = "Ellipsis";
1564
- TokenKind6[TokenKind6["EqualsEquals"] = 29] = "EqualsEquals";
1565
- TokenKind6[TokenKind6["EqualsGreaterThan"] = 30] = "EqualsGreaterThan";
1566
- TokenKind6[TokenKind6["Exclamation"] = 31] = "Exclamation";
1567
- TokenKind6[TokenKind6["ExclamationEquals"] = 32] = "ExclamationEquals";
1568
- TokenKind6[TokenKind6["GreaterThan"] = 33] = "GreaterThan";
1569
- TokenKind6[TokenKind6["GreaterThanOrEqual"] = 34] = "GreaterThanOrEqual";
1570
- TokenKind6[TokenKind6["HashSign"] = 35] = "HashSign";
1571
- TokenKind6[TokenKind6["LessThan"] = 36] = "LessThan";
1572
- TokenKind6[TokenKind6["LessThanOrEqual"] = 37] = "LessThanOrEqual";
1573
- TokenKind6[TokenKind6["LessThanMinus"] = 38] = "LessThanMinus";
1574
- TokenKind6[TokenKind6["Minus"] = 39] = "Minus";
1575
- TokenKind6[TokenKind6["MinusMinus"] = 40] = "MinusMinus";
1576
- TokenKind6[TokenKind6["MinusEquals"] = 41] = "MinusEquals";
1577
- TokenKind6[TokenKind6["MinusGreaterThan"] = 42] = "MinusGreaterThan";
1578
- TokenKind6[TokenKind6["OpenBrace"] = 43] = "OpenBrace";
1579
- TokenKind6[TokenKind6["OpenParenthesis"] = 44] = "OpenParenthesis";
1580
- TokenKind6[TokenKind6["OpenSquareBracket"] = 45] = "OpenSquareBracket";
1581
- TokenKind6[TokenKind6["Plus"] = 46] = "Plus";
1582
- TokenKind6[TokenKind6["PlusPlus"] = 47] = "PlusPlus";
1583
- TokenKind6[TokenKind6["PlusEquals"] = 48] = "PlusEquals";
1584
- TokenKind6[TokenKind6["Question"] = 49] = "Question";
1585
- TokenKind6[TokenKind6["QuestionQuestion"] = 50] = "QuestionQuestion";
1586
- TokenKind6[TokenKind6["Semicolon"] = 51] = "Semicolon";
1587
- TokenKind6[TokenKind6["Slash"] = 52] = "Slash";
1588
- TokenKind6[TokenKind6["SlashEquals"] = 53] = "SlashEquals";
1589
- TokenKind6[TokenKind6["Tilde"] = 54] = "Tilde";
1590
- TokenKind6[TokenKind6["TildeTilde"] = 55] = "TildeTilde";
1591
- TokenKind6[TokenKind6["Underscore"] = 56] = "Underscore";
1592
- TokenKind6[TokenKind6["Equals"] = 57] = "Equals";
1593
- TokenKind6[TokenKind6["Percent"] = 58] = "Percent";
1594
- TokenKind6[TokenKind6["PercentPercent"] = 59] = "PercentPercent";
1595
- TokenKind6[TokenKind6["Backslash"] = 60] = "Backslash";
1596
- TokenKind6[TokenKind6["BackslashEquals"] = 61] = "BackslashEquals";
1597
- TokenKind6[TokenKind6["BackslashBackslash"] = 62] = "BackslashBackslash";
1598
- TokenKind6[TokenKind6["Identifier"] = 63] = "Identifier";
1551
+ TokenKind6[TokenKind6["Identifier"] = 10] = "Identifier";
1552
+ TokenKind6[TokenKind6["Ampersand"] = 11] = "Ampersand";
1553
+ TokenKind6[TokenKind6["AmpersandAmpersand"] = 12] = "AmpersandAmpersand";
1554
+ TokenKind6[TokenKind6["AmpersandEquals"] = 13] = "AmpersandEquals";
1555
+ TokenKind6[TokenKind6["Asterisk"] = 14] = "Asterisk";
1556
+ TokenKind6[TokenKind6["AsteriskAsterisk"] = 15] = "AsteriskAsterisk";
1557
+ TokenKind6[TokenKind6["AsteriskEquals"] = 16] = "AsteriskEquals";
1558
+ TokenKind6[TokenKind6["BackQuote"] = 17] = "BackQuote";
1559
+ TokenKind6[TokenKind6["Bar"] = 18] = "Bar";
1560
+ TokenKind6[TokenKind6["BarBar"] = 19] = "BarBar";
1561
+ TokenKind6[TokenKind6["Caret"] = 20] = "Caret";
1562
+ TokenKind6[TokenKind6["CloseBrace"] = 21] = "CloseBrace";
1563
+ TokenKind6[TokenKind6["CloseParenthesis"] = 22] = "CloseParenthesis";
1564
+ TokenKind6[TokenKind6["CloseSquareBracket"] = 23] = "CloseSquareBracket";
1565
+ TokenKind6[TokenKind6["Colon"] = 24] = "Colon";
1566
+ TokenKind6[TokenKind6["Comma"] = 25] = "Comma";
1567
+ TokenKind6[TokenKind6["CommercialAt"] = 26] = "CommercialAt";
1568
+ TokenKind6[TokenKind6["Dot"] = 27] = "Dot";
1569
+ TokenKind6[TokenKind6["DoublePeriod"] = 28] = "DoublePeriod";
1570
+ TokenKind6[TokenKind6["Ellipsis"] = 29] = "Ellipsis";
1571
+ TokenKind6[TokenKind6["EqualsEquals"] = 30] = "EqualsEquals";
1572
+ TokenKind6[TokenKind6["EqualsGreaterThan"] = 31] = "EqualsGreaterThan";
1573
+ TokenKind6[TokenKind6["Exclamation"] = 32] = "Exclamation";
1574
+ TokenKind6[TokenKind6["ExclamationEquals"] = 33] = "ExclamationEquals";
1575
+ TokenKind6[TokenKind6["GreaterThan"] = 34] = "GreaterThan";
1576
+ TokenKind6[TokenKind6["GreaterThanOrEqual"] = 35] = "GreaterThanOrEqual";
1577
+ TokenKind6[TokenKind6["HashSign"] = 36] = "HashSign";
1578
+ TokenKind6[TokenKind6["LessThan"] = 37] = "LessThan";
1579
+ TokenKind6[TokenKind6["LessThanOrEqual"] = 38] = "LessThanOrEqual";
1580
+ TokenKind6[TokenKind6["LessThanMinus"] = 39] = "LessThanMinus";
1581
+ TokenKind6[TokenKind6["Minus"] = 40] = "Minus";
1582
+ TokenKind6[TokenKind6["MinusMinus"] = 41] = "MinusMinus";
1583
+ TokenKind6[TokenKind6["MinusEquals"] = 42] = "MinusEquals";
1584
+ TokenKind6[TokenKind6["MinusGreaterThan"] = 43] = "MinusGreaterThan";
1585
+ TokenKind6[TokenKind6["OpenBrace"] = 44] = "OpenBrace";
1586
+ TokenKind6[TokenKind6["OpenParenthesis"] = 45] = "OpenParenthesis";
1587
+ TokenKind6[TokenKind6["OpenSquareBracket"] = 46] = "OpenSquareBracket";
1588
+ TokenKind6[TokenKind6["Plus"] = 47] = "Plus";
1589
+ TokenKind6[TokenKind6["PlusPlus"] = 48] = "PlusPlus";
1590
+ TokenKind6[TokenKind6["PlusEquals"] = 49] = "PlusEquals";
1591
+ TokenKind6[TokenKind6["Question"] = 50] = "Question";
1592
+ TokenKind6[TokenKind6["QuestionQuestion"] = 51] = "QuestionQuestion";
1593
+ TokenKind6[TokenKind6["Semicolon"] = 52] = "Semicolon";
1594
+ TokenKind6[TokenKind6["Slash"] = 53] = "Slash";
1595
+ TokenKind6[TokenKind6["SlashEquals"] = 54] = "SlashEquals";
1596
+ TokenKind6[TokenKind6["Tilde"] = 55] = "Tilde";
1597
+ TokenKind6[TokenKind6["TildeTilde"] = 56] = "TildeTilde";
1598
+ TokenKind6[TokenKind6["Underscore"] = 57] = "Underscore";
1599
+ TokenKind6[TokenKind6["Equals"] = 58] = "Equals";
1600
+ TokenKind6[TokenKind6["Percent"] = 59] = "Percent";
1601
+ TokenKind6[TokenKind6["PercentPercent"] = 60] = "PercentPercent";
1602
+ TokenKind6[TokenKind6["Backslash"] = 61] = "Backslash";
1603
+ TokenKind6[TokenKind6["BackslashEquals"] = 62] = "BackslashEquals";
1604
+ TokenKind6[TokenKind6["BackslashBackslash"] = 63] = "BackslashBackslash";
1599
1605
  return TokenKind6;
1600
1606
  })(TokenKind || {});
1601
1607
  var tokenKindValues = {
@@ -1609,60 +1615,60 @@ var tokenKindValues = {
1609
1615
  [7 /* TextTemplateHead */]: "",
1610
1616
  [8 /* TextTemplatePart */]: "",
1611
1617
  [9 /* TextTemplateTail */]: "",
1612
- [10 /* Ampersand */]: "&",
1613
- [11 /* AmpersandAmpersand */]: "&&",
1614
- [12 /* AmpersandEquals */]: "&=",
1615
- [13 /* Asterisk */]: "*",
1616
- [14 /* AsteriskAsterisk */]: "**",
1617
- [15 /* AsteriskEquals */]: "*=",
1618
- [16 /* BackQuote */]: "`",
1619
- [17 /* Bar */]: "|",
1620
- [18 /* BarBar */]: "||",
1621
- [19 /* Caret */]: "^",
1622
- [20 /* CloseBrace */]: "}",
1623
- [21 /* CloseParenthesis */]: ")",
1624
- [22 /* CloseSquareBracket */]: "]",
1625
- [23 /* Colon */]: ":",
1626
- [24 /* Comma */]: ",",
1627
- [25 /* CommercialAt */]: "@",
1628
- [26 /* Dot */]: ".",
1629
- [27 /* DoublePeriod */]: "..",
1630
- [28 /* Ellipsis */]: "...",
1631
- [29 /* EqualsEquals */]: "==",
1632
- [30 /* EqualsGreaterThan */]: "=>",
1633
- [31 /* Exclamation */]: "!",
1634
- [32 /* ExclamationEquals */]: "!=",
1635
- [33 /* GreaterThan */]: ">",
1636
- [34 /* GreaterThanOrEqual */]: ">=",
1637
- [35 /* HashSign */]: "#",
1638
- [36 /* LessThan */]: "<",
1639
- [37 /* LessThanOrEqual */]: "<=",
1640
- [38 /* LessThanMinus */]: "<-",
1641
- [39 /* Minus */]: "-",
1642
- [40 /* MinusMinus */]: "--",
1643
- [41 /* MinusEquals */]: "-=",
1644
- [42 /* MinusGreaterThan */]: "->",
1645
- [43 /* OpenBrace */]: "{",
1646
- [44 /* OpenParenthesis */]: "(",
1647
- [45 /* OpenSquareBracket */]: "[",
1648
- [46 /* Plus */]: "+",
1649
- [47 /* PlusPlus */]: "++",
1650
- [48 /* PlusEquals */]: "+=",
1651
- [49 /* Question */]: "?",
1652
- [50 /* QuestionQuestion */]: "??",
1653
- [51 /* Semicolon */]: ";",
1654
- [52 /* Slash */]: "/",
1655
- [53 /* SlashEquals */]: "/=",
1656
- [54 /* Tilde */]: "~",
1657
- [55 /* TildeTilde */]: "~~",
1658
- [56 /* Underscore */]: "_",
1659
- [57 /* Equals */]: "=",
1660
- [58 /* Percent */]: "%",
1661
- [59 /* PercentPercent */]: "%%",
1662
- [60 /* Backslash */]: "\\",
1663
- [61 /* BackslashEquals */]: "\\=",
1664
- [62 /* BackslashBackslash */]: "\\\\",
1665
- [63 /* Identifier */]: ""
1618
+ [10 /* Identifier */]: "",
1619
+ [11 /* Ampersand */]: "&",
1620
+ [12 /* AmpersandAmpersand */]: "&&",
1621
+ [13 /* AmpersandEquals */]: "&=",
1622
+ [14 /* Asterisk */]: "*",
1623
+ [15 /* AsteriskAsterisk */]: "**",
1624
+ [16 /* AsteriskEquals */]: "*=",
1625
+ [17 /* BackQuote */]: "`",
1626
+ [18 /* Bar */]: "|",
1627
+ [19 /* BarBar */]: "||",
1628
+ [20 /* Caret */]: "^",
1629
+ [21 /* CloseBrace */]: "}",
1630
+ [22 /* CloseParenthesis */]: ")",
1631
+ [23 /* CloseSquareBracket */]: "]",
1632
+ [24 /* Colon */]: ":",
1633
+ [25 /* Comma */]: ",",
1634
+ [26 /* CommercialAt */]: "@",
1635
+ [27 /* Dot */]: ".",
1636
+ [28 /* DoublePeriod */]: "..",
1637
+ [29 /* Ellipsis */]: "...",
1638
+ [30 /* EqualsEquals */]: "==",
1639
+ [31 /* EqualsGreaterThan */]: "=>",
1640
+ [32 /* Exclamation */]: "!",
1641
+ [33 /* ExclamationEquals */]: "!=",
1642
+ [34 /* GreaterThan */]: ">",
1643
+ [35 /* GreaterThanOrEqual */]: ">=",
1644
+ [36 /* HashSign */]: "#",
1645
+ [37 /* LessThan */]: "<",
1646
+ [38 /* LessThanOrEqual */]: "<=",
1647
+ [39 /* LessThanMinus */]: "<-",
1648
+ [40 /* Minus */]: "-",
1649
+ [41 /* MinusMinus */]: "--",
1650
+ [42 /* MinusEquals */]: "-=",
1651
+ [43 /* MinusGreaterThan */]: "->",
1652
+ [44 /* OpenBrace */]: "{",
1653
+ [45 /* OpenParenthesis */]: "(",
1654
+ [46 /* OpenSquareBracket */]: "[",
1655
+ [47 /* Plus */]: "+",
1656
+ [48 /* PlusPlus */]: "++",
1657
+ [49 /* PlusEquals */]: "+=",
1658
+ [50 /* Question */]: "?",
1659
+ [51 /* QuestionQuestion */]: "??",
1660
+ [52 /* Semicolon */]: ";",
1661
+ [53 /* Slash */]: "/",
1662
+ [54 /* SlashEquals */]: "/=",
1663
+ [55 /* Tilde */]: "~",
1664
+ [56 /* TildeTilde */]: "~~",
1665
+ [57 /* Underscore */]: "_",
1666
+ [58 /* Equals */]: "=",
1667
+ [59 /* Percent */]: "%",
1668
+ [60 /* PercentPercent */]: "%%",
1669
+ [61 /* Backslash */]: "\\",
1670
+ [62 /* BackslashEquals */]: "\\=",
1671
+ [63 /* BackslashBackslash */]: "\\\\"
1666
1672
  };
1667
1673
 
1668
1674
  // source/tree/TriviaKind.ts
@@ -2483,61 +2489,61 @@ var TokenKind2 = /* @__PURE__ */ ((TokenKind6) => {
2483
2489
  TokenKind6[TokenKind6["TextTemplateTail"] = 13] = "TextTemplateTail";
2484
2490
  TokenKind6[TokenKind6["LocalizableTextLiteral"] = 14] = "LocalizableTextLiteral";
2485
2491
  TokenKind6[TokenKind6["LocalizableTextTemplateHead"] = 15] = "LocalizableTextTemplateHead";
2486
- TokenKind6[TokenKind6["Ampersand"] = 16] = "Ampersand";
2487
- TokenKind6[TokenKind6["AmpersandAmpersand"] = 17] = "AmpersandAmpersand";
2488
- TokenKind6[TokenKind6["AmpersandEquals"] = 18] = "AmpersandEquals";
2489
- TokenKind6[TokenKind6["Asterisk"] = 19] = "Asterisk";
2490
- TokenKind6[TokenKind6["AsteriskAsterisk"] = 20] = "AsteriskAsterisk";
2491
- TokenKind6[TokenKind6["AsteriskEquals"] = 21] = "AsteriskEquals";
2492
- TokenKind6[TokenKind6["BackQuote"] = 22] = "BackQuote";
2493
- TokenKind6[TokenKind6["Bar"] = 23] = "Bar";
2494
- TokenKind6[TokenKind6["BarBar"] = 24] = "BarBar";
2495
- TokenKind6[TokenKind6["Caret"] = 25] = "Caret";
2496
- TokenKind6[TokenKind6["RightBrace"] = 26] = "RightBrace";
2497
- TokenKind6[TokenKind6["RightParenthesis"] = 27] = "RightParenthesis";
2498
- TokenKind6[TokenKind6["RightSquareBracket"] = 28] = "RightSquareBracket";
2499
- TokenKind6[TokenKind6["Colon"] = 29] = "Colon";
2500
- TokenKind6[TokenKind6["Comma"] = 30] = "Comma";
2501
- TokenKind6[TokenKind6["CommercialAt"] = 31] = "CommercialAt";
2502
- TokenKind6[TokenKind6["Dot"] = 32] = "Dot";
2503
- TokenKind6[TokenKind6["DoublePeriod"] = 33] = "DoublePeriod";
2504
- TokenKind6[TokenKind6["Ellipsis"] = 34] = "Ellipsis";
2505
- TokenKind6[TokenKind6["EqualsEquals"] = 35] = "EqualsEquals";
2506
- TokenKind6[TokenKind6["EqualsRightAngle"] = 36] = "EqualsRightAngle";
2507
- TokenKind6[TokenKind6["Exclamation"] = 37] = "Exclamation";
2508
- TokenKind6[TokenKind6["ExclamationEquals"] = 38] = "ExclamationEquals";
2509
- TokenKind6[TokenKind6["RightAngle"] = 39] = "RightAngle";
2510
- TokenKind6[TokenKind6["RightAngleEquals"] = 40] = "RightAngleEquals";
2511
- TokenKind6[TokenKind6["HashSign"] = 41] = "HashSign";
2512
- TokenKind6[TokenKind6["LeftAngle"] = 42] = "LeftAngle";
2513
- TokenKind6[TokenKind6["LeftAngleEquals"] = 43] = "LeftAngleEquals";
2514
- TokenKind6[TokenKind6["LeftAngleMinus"] = 44] = "LeftAngleMinus";
2515
- TokenKind6[TokenKind6["Minus"] = 45] = "Minus";
2516
- TokenKind6[TokenKind6["MinusMinus"] = 46] = "MinusMinus";
2517
- TokenKind6[TokenKind6["MinusEquals"] = 47] = "MinusEquals";
2518
- TokenKind6[TokenKind6["MinusRightAngle"] = 48] = "MinusRightAngle";
2519
- TokenKind6[TokenKind6["LeftBrace"] = 49] = "LeftBrace";
2520
- TokenKind6[TokenKind6["LeftParenthesis"] = 50] = "LeftParenthesis";
2521
- TokenKind6[TokenKind6["LeftSquareBracket"] = 51] = "LeftSquareBracket";
2522
- TokenKind6[TokenKind6["Plus"] = 52] = "Plus";
2523
- TokenKind6[TokenKind6["PlusPlus"] = 53] = "PlusPlus";
2524
- TokenKind6[TokenKind6["PlusEquals"] = 54] = "PlusEquals";
2525
- TokenKind6[TokenKind6["Question"] = 55] = "Question";
2526
- TokenKind6[TokenKind6["QuestionQuestion"] = 56] = "QuestionQuestion";
2527
- TokenKind6[TokenKind6["Semicolon"] = 57] = "Semicolon";
2528
- TokenKind6[TokenKind6["Slash"] = 58] = "Slash";
2529
- TokenKind6[TokenKind6["SlashEquals"] = 59] = "SlashEquals";
2530
- TokenKind6[TokenKind6["Tilde"] = 60] = "Tilde";
2531
- TokenKind6[TokenKind6["TildeTilde"] = 61] = "TildeTilde";
2532
- TokenKind6[TokenKind6["Underscore"] = 62] = "Underscore";
2533
- TokenKind6[TokenKind6["Equals"] = 63] = "Equals";
2534
- TokenKind6[TokenKind6["Percent"] = 64] = "Percent";
2535
- TokenKind6[TokenKind6["PercentPercent"] = 65] = "PercentPercent";
2536
- TokenKind6[TokenKind6["BackSlash"] = 66] = "BackSlash";
2537
- TokenKind6[TokenKind6["BackSlashEquals"] = 67] = "BackSlashEquals";
2538
- TokenKind6[TokenKind6["BackSlashBackSlash"] = 68] = "BackSlashBackSlash";
2539
- TokenKind6[TokenKind6["Identifier"] = 69] = "Identifier";
2540
- TokenKind6[TokenKind6["QuotedIdentifier"] = 70] = "QuotedIdentifier";
2492
+ TokenKind6[TokenKind6["Identifier"] = 16] = "Identifier";
2493
+ TokenKind6[TokenKind6["QuotedIdentifier"] = 17] = "QuotedIdentifier";
2494
+ TokenKind6[TokenKind6["Ampersand"] = 18] = "Ampersand";
2495
+ TokenKind6[TokenKind6["AmpersandAmpersand"] = 19] = "AmpersandAmpersand";
2496
+ TokenKind6[TokenKind6["AmpersandEquals"] = 20] = "AmpersandEquals";
2497
+ TokenKind6[TokenKind6["Asterisk"] = 21] = "Asterisk";
2498
+ TokenKind6[TokenKind6["AsteriskAsterisk"] = 22] = "AsteriskAsterisk";
2499
+ TokenKind6[TokenKind6["AsteriskEquals"] = 23] = "AsteriskEquals";
2500
+ TokenKind6[TokenKind6["BackQuote"] = 24] = "BackQuote";
2501
+ TokenKind6[TokenKind6["Bar"] = 25] = "Bar";
2502
+ TokenKind6[TokenKind6["BarBar"] = 26] = "BarBar";
2503
+ TokenKind6[TokenKind6["Caret"] = 27] = "Caret";
2504
+ TokenKind6[TokenKind6["RightBrace"] = 28] = "RightBrace";
2505
+ TokenKind6[TokenKind6["RightParenthesis"] = 29] = "RightParenthesis";
2506
+ TokenKind6[TokenKind6["RightSquareBracket"] = 30] = "RightSquareBracket";
2507
+ TokenKind6[TokenKind6["Colon"] = 31] = "Colon";
2508
+ TokenKind6[TokenKind6["Comma"] = 32] = "Comma";
2509
+ TokenKind6[TokenKind6["CommercialAt"] = 33] = "CommercialAt";
2510
+ TokenKind6[TokenKind6["Dot"] = 34] = "Dot";
2511
+ TokenKind6[TokenKind6["DoublePeriod"] = 35] = "DoublePeriod";
2512
+ TokenKind6[TokenKind6["Ellipsis"] = 36] = "Ellipsis";
2513
+ TokenKind6[TokenKind6["EqualsEquals"] = 37] = "EqualsEquals";
2514
+ TokenKind6[TokenKind6["EqualsRightAngle"] = 38] = "EqualsRightAngle";
2515
+ TokenKind6[TokenKind6["Exclamation"] = 39] = "Exclamation";
2516
+ TokenKind6[TokenKind6["ExclamationEquals"] = 40] = "ExclamationEquals";
2517
+ TokenKind6[TokenKind6["RightAngle"] = 41] = "RightAngle";
2518
+ TokenKind6[TokenKind6["RightAngleEquals"] = 42] = "RightAngleEquals";
2519
+ TokenKind6[TokenKind6["HashSign"] = 43] = "HashSign";
2520
+ TokenKind6[TokenKind6["LeftAngle"] = 44] = "LeftAngle";
2521
+ TokenKind6[TokenKind6["LeftAngleEquals"] = 45] = "LeftAngleEquals";
2522
+ TokenKind6[TokenKind6["LeftAngleMinus"] = 46] = "LeftAngleMinus";
2523
+ TokenKind6[TokenKind6["Minus"] = 47] = "Minus";
2524
+ TokenKind6[TokenKind6["MinusMinus"] = 48] = "MinusMinus";
2525
+ TokenKind6[TokenKind6["MinusEquals"] = 49] = "MinusEquals";
2526
+ TokenKind6[TokenKind6["MinusRightAngle"] = 50] = "MinusRightAngle";
2527
+ TokenKind6[TokenKind6["LeftBrace"] = 51] = "LeftBrace";
2528
+ TokenKind6[TokenKind6["LeftParenthesis"] = 52] = "LeftParenthesis";
2529
+ TokenKind6[TokenKind6["LeftSquareBracket"] = 53] = "LeftSquareBracket";
2530
+ TokenKind6[TokenKind6["Plus"] = 54] = "Plus";
2531
+ TokenKind6[TokenKind6["PlusPlus"] = 55] = "PlusPlus";
2532
+ TokenKind6[TokenKind6["PlusEquals"] = 56] = "PlusEquals";
2533
+ TokenKind6[TokenKind6["Question"] = 57] = "Question";
2534
+ TokenKind6[TokenKind6["QuestionQuestion"] = 58] = "QuestionQuestion";
2535
+ TokenKind6[TokenKind6["Semicolon"] = 59] = "Semicolon";
2536
+ TokenKind6[TokenKind6["Slash"] = 60] = "Slash";
2537
+ TokenKind6[TokenKind6["SlashEquals"] = 61] = "SlashEquals";
2538
+ TokenKind6[TokenKind6["Tilde"] = 62] = "Tilde";
2539
+ TokenKind6[TokenKind6["TildeTilde"] = 63] = "TildeTilde";
2540
+ TokenKind6[TokenKind6["Underscore"] = 64] = "Underscore";
2541
+ TokenKind6[TokenKind6["Equals"] = 65] = "Equals";
2542
+ TokenKind6[TokenKind6["Percent"] = 66] = "Percent";
2543
+ TokenKind6[TokenKind6["PercentPercent"] = 67] = "PercentPercent";
2544
+ TokenKind6[TokenKind6["BackSlash"] = 68] = "BackSlash";
2545
+ TokenKind6[TokenKind6["BackSlashEquals"] = 69] = "BackSlashEquals";
2546
+ TokenKind6[TokenKind6["BackSlashBackSlash"] = 70] = "BackSlashBackSlash";
2541
2547
  return TokenKind6;
2542
2548
  })(TokenKind2 || {});
2543
2549
 
@@ -2647,74 +2653,74 @@ var Scanner = class _Scanner {
2647
2653
  case "!":
2648
2654
  if (this.text.charAt(this.currentPosition + 1) === "=") {
2649
2655
  this.currentPosition += 2;
2650
- kind = 38 /* ExclamationEquals */;
2656
+ kind = 40 /* ExclamationEquals */;
2651
2657
  } else {
2652
2658
  this.currentPosition++;
2653
- kind = 37 /* Exclamation */;
2659
+ kind = 39 /* Exclamation */;
2654
2660
  }
2655
2661
  break;
2656
2662
  case "&":
2657
2663
  if (this.text.charAt(this.currentPosition + 1) === "&") {
2658
2664
  this.currentPosition += 2;
2659
- kind = 17 /* AmpersandAmpersand */;
2665
+ kind = 19 /* AmpersandAmpersand */;
2660
2666
  } else if (this.text.charAt(this.currentPosition + 1) === "=") {
2661
2667
  this.currentPosition += 2;
2662
- kind = 18 /* AmpersandEquals */;
2668
+ kind = 20 /* AmpersandEquals */;
2663
2669
  } else {
2664
2670
  this.currentPosition++;
2665
- kind = 16 /* Ampersand */;
2671
+ kind = 18 /* Ampersand */;
2666
2672
  }
2667
2673
  break;
2668
2674
  case "(":
2669
2675
  this.currentPosition++;
2670
- kind = 50 /* LeftParenthesis */;
2676
+ kind = 52 /* LeftParenthesis */;
2671
2677
  break;
2672
2678
  case ")":
2673
2679
  this.currentPosition++;
2674
- kind = 27 /* RightParenthesis */;
2680
+ kind = 29 /* RightParenthesis */;
2675
2681
  break;
2676
2682
  case "*":
2677
2683
  if (this.text.charAt(this.currentPosition + 1) === "=") {
2678
2684
  this.currentPosition += 2;
2679
- kind = 21 /* AsteriskEquals */;
2685
+ kind = 23 /* AsteriskEquals */;
2680
2686
  } else if (this.text.charAt(this.currentPosition + 1) === "*") {
2681
2687
  this.currentPosition += 2;
2682
- kind = 20 /* AsteriskAsterisk */;
2688
+ kind = 22 /* AsteriskAsterisk */;
2683
2689
  } else {
2684
2690
  this.currentPosition++;
2685
- kind = 19 /* Asterisk */;
2691
+ kind = 21 /* Asterisk */;
2686
2692
  }
2687
2693
  break;
2688
2694
  case "+":
2689
2695
  if (this.text.charAt(this.currentPosition + 1) === "+") {
2690
2696
  this.currentPosition += 2;
2691
- kind = 53 /* PlusPlus */;
2697
+ kind = 55 /* PlusPlus */;
2692
2698
  } else if (this.text.charAt(this.currentPosition + 1) === "=") {
2693
2699
  this.currentPosition += 2;
2694
- kind = 54 /* PlusEquals */;
2700
+ kind = 56 /* PlusEquals */;
2695
2701
  } else {
2696
2702
  this.currentPosition++;
2697
- kind = 52 /* Plus */;
2703
+ kind = 54 /* Plus */;
2698
2704
  }
2699
2705
  break;
2700
2706
  case "-":
2701
2707
  if (this.text.charAt(this.currentPosition + 1) === "-") {
2702
2708
  this.currentPosition += 2;
2703
- kind = 46 /* MinusMinus */;
2709
+ kind = 48 /* MinusMinus */;
2704
2710
  } else if (this.text.charAt(this.currentPosition + 1) === "=") {
2705
2711
  this.currentPosition += 2;
2706
- kind = 47 /* MinusEquals */;
2712
+ kind = 49 /* MinusEquals */;
2707
2713
  } else if (this.text.charAt(this.currentPosition + 1) === ">") {
2708
2714
  this.currentPosition += 2;
2709
- kind = 48 /* MinusRightAngle */;
2715
+ kind = 50 /* MinusRightAngle */;
2710
2716
  } else {
2711
2717
  this.currentPosition++;
2712
- kind = 45 /* Minus */;
2718
+ kind = 47 /* Minus */;
2713
2719
  }
2714
2720
  break;
2715
2721
  case ",":
2716
2722
  this.currentPosition++;
2717
- kind = 30 /* Comma */;
2723
+ kind = 32 /* Comma */;
2718
2724
  break;
2719
2725
  case ".":
2720
2726
  if (_Scanner.isDigit(this.text.charCodeAt(this.currentPosition + 1))) {
@@ -2723,17 +2729,17 @@ var Scanner = class _Scanner {
2723
2729
  unterminated = r.unterminated;
2724
2730
  } else {
2725
2731
  this.currentPosition++;
2726
- kind = 32 /* Dot */;
2732
+ kind = 34 /* Dot */;
2727
2733
  }
2728
2734
  break;
2729
2735
  case "`":
2730
2736
  this.currentPosition++;
2731
- kind = 22 /* BackQuote */;
2737
+ kind = 24 /* BackQuote */;
2732
2738
  break;
2733
2739
  case "/":
2734
2740
  if (this.text.charAt(this.currentPosition + 1) === "=") {
2735
2741
  this.currentPosition += 2;
2736
- kind = 59 /* SlashEquals */;
2742
+ kind = 61 /* SlashEquals */;
2737
2743
  } else if (this.text.charAt(this.currentPosition + 1) === "/") {
2738
2744
  this.currentPosition += 2;
2739
2745
  this.scanSingleLineComment();
@@ -2745,16 +2751,16 @@ var Scanner = class _Scanner {
2745
2751
  unterminated = !r;
2746
2752
  } else {
2747
2753
  this.currentPosition++;
2748
- kind = 58 /* Slash */;
2754
+ kind = 60 /* Slash */;
2749
2755
  }
2750
2756
  break;
2751
2757
  case "%":
2752
2758
  if (this.text.charAt(this.currentPosition + 1) === "%") {
2753
2759
  this.currentPosition += 2;
2754
- kind = 65 /* PercentPercent */;
2760
+ kind = 67 /* PercentPercent */;
2755
2761
  } else {
2756
2762
  this.currentPosition++;
2757
- kind = 64 /* Percent */;
2763
+ kind = 66 /* Percent */;
2758
2764
  }
2759
2765
  break;
2760
2766
  case "0":
@@ -2774,67 +2780,67 @@ var Scanner = class _Scanner {
2774
2780
  }
2775
2781
  case ":":
2776
2782
  this.currentPosition++;
2777
- kind = 29 /* Colon */;
2783
+ kind = 31 /* Colon */;
2778
2784
  break;
2779
2785
  case ";":
2780
2786
  this.currentPosition++;
2781
- kind = 57 /* Semicolon */;
2787
+ kind = 59 /* Semicolon */;
2782
2788
  break;
2783
2789
  case "<":
2784
2790
  if (this.text.charAt(this.currentPosition + 1) === "=") {
2785
2791
  this.currentPosition += 2;
2786
- kind = 43 /* LeftAngleEquals */;
2792
+ kind = 45 /* LeftAngleEquals */;
2787
2793
  } else if (this.text.charAt(this.currentPosition + 1) === "-") {
2788
2794
  this.currentPosition += 2;
2789
- kind = 44 /* LeftAngleMinus */;
2795
+ kind = 46 /* LeftAngleMinus */;
2790
2796
  } else {
2791
2797
  this.currentPosition++;
2792
- kind = 42 /* LeftAngle */;
2798
+ kind = 44 /* LeftAngle */;
2793
2799
  }
2794
2800
  break;
2795
2801
  case "=":
2796
2802
  if (this.text.charAt(this.currentPosition + 1) === "=") {
2797
2803
  this.currentPosition += 2;
2798
- kind = 35 /* EqualsEquals */;
2804
+ kind = 37 /* EqualsEquals */;
2799
2805
  } else if (this.text.charAt(this.currentPosition + 1) === ">") {
2800
2806
  this.currentPosition += 2;
2801
- kind = 36 /* EqualsRightAngle */;
2807
+ kind = 38 /* EqualsRightAngle */;
2802
2808
  } else {
2803
2809
  this.currentPosition++;
2804
- kind = 63 /* Equals */;
2810
+ kind = 65 /* Equals */;
2805
2811
  }
2806
2812
  break;
2807
2813
  case ">":
2808
2814
  if (this.text.charAt(this.currentPosition + 1) === "=") {
2809
2815
  this.currentPosition += 2;
2810
- kind = 40 /* RightAngleEquals */;
2816
+ kind = 42 /* RightAngleEquals */;
2811
2817
  } else {
2812
2818
  this.currentPosition++;
2813
- kind = 39 /* RightAngle */;
2819
+ kind = 41 /* RightAngle */;
2814
2820
  }
2815
2821
  break;
2816
2822
  case "?":
2817
2823
  if (this.text.charAt(this.currentPosition + 1) === "?") {
2818
2824
  this.currentPosition += 2;
2819
- kind = 56 /* QuestionQuestion */;
2825
+ kind = 58 /* QuestionQuestion */;
2820
2826
  } else {
2821
2827
  this.currentPosition++;
2822
- kind = 55 /* Question */;
2828
+ kind = 57 /* Question */;
2823
2829
  }
2824
2830
  break;
2825
2831
  case "|":
2826
2832
  if (this.text.charAt(this.currentPosition + 1) === "|") {
2827
2833
  this.currentPosition += 2;
2828
- kind = 24 /* BarBar */;
2834
+ kind = 26 /* BarBar */;
2829
2835
  } else {
2830
2836
  this.currentPosition++;
2831
- kind = 23 /* Bar */;
2837
+ kind = 25 /* Bar */;
2832
2838
  }
2833
2839
  break;
2834
2840
  case "{":
2835
2841
  this.braceBalance++;
2836
2842
  this.currentPosition++;
2837
- kind = 49 /* LeftBrace */;
2843
+ kind = 51 /* LeftBrace */;
2838
2844
  break;
2839
2845
  case "}":
2840
2846
  if (this.isCloseBraceEndingTextTemplate()) {
@@ -2844,21 +2850,21 @@ var Scanner = class _Scanner {
2844
2850
  } else {
2845
2851
  this.braceBalance--;
2846
2852
  this.currentPosition++;
2847
- kind = 26 /* RightBrace */;
2853
+ kind = 28 /* RightBrace */;
2848
2854
  }
2849
2855
  break;
2850
2856
  case "[":
2851
2857
  this.currentPosition++;
2852
- kind = 51 /* LeftSquareBracket */;
2858
+ kind = 53 /* LeftSquareBracket */;
2853
2859
  break;
2854
2860
  case "]":
2855
2861
  this.currentPosition++;
2856
- kind = 28 /* RightSquareBracket */;
2862
+ kind = 30 /* RightSquareBracket */;
2857
2863
  break;
2858
2864
  case "~":
2859
2865
  if (this.text.charAt(this.currentPosition + 1) === "~") {
2860
2866
  this.currentPosition += 2;
2861
- kind = 61 /* TildeTilde */;
2867
+ kind = 63 /* TildeTilde */;
2862
2868
  } else if (this.text.charAt(this.currentPosition + 1) === '"') {
2863
2869
  this.currentPosition++;
2864
2870
  const r = this.scanCharOrTextOrTextTemplateElement(true);
@@ -2866,50 +2872,50 @@ var Scanner = class _Scanner {
2866
2872
  unterminated = r.unterminated;
2867
2873
  } else if (this.text.charAt(this.currentPosition + 1) === "'") {
2868
2874
  const r = this.scanQuotedIdentifier();
2869
- kind = 70 /* QuotedIdentifier */;
2875
+ kind = 17 /* QuotedIdentifier */;
2870
2876
  unterminated = !r;
2871
2877
  } else if (_Scanner.isIdentifierStart(this.text.charCodeAt(this.currentPosition + 1))) {
2872
2878
  this.scanIdentifier();
2873
- kind = 69 /* Identifier */;
2879
+ kind = 16 /* Identifier */;
2874
2880
  } else {
2875
2881
  this.currentPosition++;
2876
- kind = 60 /* Tilde */;
2882
+ kind = 62 /* Tilde */;
2877
2883
  }
2878
2884
  break;
2879
2885
  case "@":
2880
2886
  this.currentPosition++;
2881
- kind = 31 /* CommercialAt */;
2887
+ kind = 33 /* CommercialAt */;
2882
2888
  break;
2883
2889
  case "#":
2884
2890
  this.currentPosition++;
2885
- kind = 41 /* HashSign */;
2891
+ kind = 43 /* HashSign */;
2886
2892
  break;
2887
2893
  case "^":
2888
2894
  this.currentPosition++;
2889
- kind = 25 /* Caret */;
2895
+ kind = 27 /* Caret */;
2890
2896
  break;
2891
2897
  case "\\":
2892
2898
  if (this.text.charAt(this.currentPosition + 1) === "\\") {
2893
2899
  this.currentPosition += 2;
2894
- kind = 68 /* BackSlashBackSlash */;
2900
+ kind = 70 /* BackSlashBackSlash */;
2895
2901
  } else if (this.text.charAt(this.currentPosition + 1) === "=") {
2896
2902
  this.currentPosition += 2;
2897
- kind = 67 /* BackSlashEquals */;
2903
+ kind = 69 /* BackSlashEquals */;
2898
2904
  } else {
2899
2905
  this.currentPosition++;
2900
- kind = 66 /* BackSlash */;
2906
+ kind = 68 /* BackSlash */;
2901
2907
  }
2902
2908
  break;
2903
2909
  case "'": {
2904
2910
  const r = this.scanQuotedIdentifier();
2905
- kind = 70 /* QuotedIdentifier */;
2911
+ kind = 17 /* QuotedIdentifier */;
2906
2912
  unterminated = !r;
2907
2913
  break;
2908
2914
  }
2909
2915
  default:
2910
2916
  if (_Scanner.isIdentifierStart(this.text.charCodeAt(this.currentPosition))) {
2911
2917
  this.scanIdentifier();
2912
- kind = 69 /* Identifier */;
2918
+ kind = 16 /* Identifier */;
2913
2919
  } else {
2914
2920
  this.currentPosition++;
2915
2921
  kind = 0 /* Unknown */;
@@ -4554,7 +4560,7 @@ function childRangeStart(parent, childIndex) {
4554
4560
 
4555
4561
  // source/tree/red/Utils.ts
4556
4562
  function isIdentifier(node) {
4557
- return node.kind === 0 /* Token */ && node.tokenKind === 63 /* Identifier */;
4563
+ return node.kind === 0 /* Token */ && node.tokenKind === 10 /* Identifier */;
4558
4564
  }
4559
4565
  function isToken(node, kind) {
4560
4566
  if (node.kind !== 0 /* Token */) {
@@ -12805,6 +12811,8 @@ var DiagnosticCode = /* @__PURE__ */ ((DiagnosticCode2) => {
12805
12811
  DiagnosticCode2[DiagnosticCode2["OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0"] = 346] = "OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0";
12806
12812
  DiagnosticCode2[DiagnosticCode2["TypeDoesNotImplementMember0"] = 347] = "TypeDoesNotImplementMember0";
12807
12813
  DiagnosticCode2[DiagnosticCode2["CanNotAccessAbstractMemberOfBaseType"] = 348] = "CanNotAccessAbstractMemberOfBaseType";
12814
+ DiagnosticCode2[DiagnosticCode2["TheFollowingBaseTypeMembersConflictAndMustBeOverridden0"] = 349] = "TheFollowingBaseTypeMembersConflictAndMustBeOverridden0";
12815
+ DiagnosticCode2[DiagnosticCode2["TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1"] = 350] = "TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1";
12808
12816
  DiagnosticCode2[DiagnosticCode2["CannotFindTsLibDirectoryBaseSearchPaths0"] = 401] = "CannotFindTsLibDirectoryBaseSearchPaths0";
12809
12817
  DiagnosticCode2[DiagnosticCode2["SourceFile0IsNotPartOfThePackageAndWontBeLoaded"] = 402] = "SourceFile0IsNotPartOfThePackageAndWontBeLoaded";
12810
12818
  DiagnosticCode2[DiagnosticCode2["ProgramWithoutMainPackageCannotBeCompiled"] = 403] = "ProgramWithoutMainPackageCannotBeCompiled";
@@ -13036,6 +13044,8 @@ var englishErrorMessages = {
13036
13044
  [346 /* OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0 */]: "Overriding field must not be 'const' or have write function to match base field '{0}'",
13037
13045
  [347 /* TypeDoesNotImplementMember0 */]: "Type does not implement member '{0}'.",
13038
13046
  [348 /* CanNotAccessAbstractMemberOfBaseType */]: "Can not access abstract member of base type.",
13047
+ [349 /* TheFollowingBaseTypeMembersConflictAndMustBeOverridden0 */]: "The following base type members conflict and must be overridden:{0}",
13048
+ [350 /* TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1 */]: "The following base type members conflict because they have the same original name '{0}' and must be overridden:{1}",
13039
13049
  [401 /* CannotFindTsLibDirectoryBaseSearchPaths0 */]: "Can not find directory with TypeScript library. Base search paths: {0}.",
13040
13050
  [402 /* SourceFile0IsNotPartOfThePackageAndWontBeLoaded */]: "Source file '{0}' is not part of the package and won't be loaded.",
13041
13051
  [403 /* ProgramWithoutMainPackageCannotBeCompiled */]: "Program without main package can not be compiled.",
@@ -13069,7 +13079,7 @@ var russianErrorMessages = {
13069
13079
  [118 /* CatchClauseOrFinallyClauseExpected */]: "\u041E\u0436\u0438\u0434\u0430\u043B\u0441\u044F \u0431\u043B\u043E\u043A '\u043B\u043E\u0432\u0443\u0448\u043A\u0430' \u0438\u043B\u0438 '\u043D\u0430\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u043A'.",
13070
13080
  [119 /* PackageImportExpected */]: "\u041E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043F\u0430\u043A\u0435\u0442\u0430.",
13071
13081
  [120 /* DeclarationOrPackageImportExpected */]: "\u041E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043F\u0430\u043A\u0435\u0442\u0430.",
13072
- [121 /* Expected0But1Found */]: "\u041E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C '{0}', \u043D\u043E \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043B\u043E\u0441\u044C '{1}'.",
13082
+ [121 /* Expected0But1Found */]: "\u041E\u0436\u0438\u0434\u0430\u043B\u0430\u0441\u044C \u043B\u0435\u043A\u0441\u0435\u043C\u0430 '{0}', \u043D\u043E \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043B\u0430\u0441\u044C \u043B\u0435\u043A\u0441\u0435\u043C\u0430 '{1}'.",
13073
13083
  [122 /* InvalidTextTemplateLiteral */]: "\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u0448\u0430\u0431\u043B\u043E\u043D.",
13074
13084
  [123 /* ModifierListExpected */]: "\u041E\u0436\u0438\u0434\u0430\u043B\u0441\u044F \u0441\u043F\u0438\u0441\u043E\u043A \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432.",
13075
13085
  [124 /* RunKeywordCreationKeywordOrModifierListExpected */]: "\u041E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u043E\u0435 \u0441\u043B\u043E\u0432\u043E '\u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C' \u0438\u043B\u0438 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u043E\u0435 \u0441\u043B\u043E\u0432\u043E '\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435', \u0438\u043B\u0438 \u0441\u043F\u0438\u0441\u043E\u043A \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u0432.",
@@ -13229,6 +13239,8 @@ var russianErrorMessages = {
13229
13239
  [345 /* OverridingMethodMustNotBeAsyncBecauseBaseMethod0IsNotAsync */]: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043F\u043E\u043C\u0435\u0447\u0435\u043D \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0439', \u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u0431\u0430\u0437\u043E\u0432\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 '{0}' \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0435\u043D \u0442\u0430\u043A\u0438\u043C \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C.",
13230
13240
  [346 /* OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0 */]: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u043E\u0435 \u043F\u043E\u043B\u0435 \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043E \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043E\u043C '\u043A\u043E\u043D\u0441\u0442' \u0438\u043B\u0438 \u0434\u043E\u043B\u0436\u043D\u043E \u0438\u043C\u0435\u0442\u044C \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u0437\u0430\u043F\u0438\u0441\u0438, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0431\u0430\u0437\u043E\u0432\u043E\u043C\u0443 \u043F\u043E\u043B\u044E '{0}'.",
13231
13241
  [348 /* CanNotAccessAbstractMemberOfBaseType */]: "\u041D\u0435\u043B\u044C\u0437\u044F \u043E\u0431\u0440\u0430\u0442\u0438\u0442\u044C\u0441\u044F \u043A \u0430\u0431\u0441\u0442\u0440\u0430\u043A\u0442\u043D\u043E\u043C\u0443 \u0447\u043B\u0435\u043D\u0443 \u0431\u0430\u0437\u043E\u0432\u043E\u0433\u043E \u0442\u0438\u043F\u0430.",
13242
+ [349 /* TheFollowingBaseTypeMembersConflictAndMustBeOverridden0 */]: "\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0447\u043B\u0435\u043D\u044B \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u0442\u0438\u043F\u043E\u0432 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u044E\u0442 \u043C\u0435\u0436\u0434\u0443 \u0441\u043E\u0431\u043E\u0439 \u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u044B:{0}",
13243
+ [350 /* TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1 */]: "\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0447\u043B\u0435\u043D\u044B \u0431\u0430\u0437\u043E\u0432\u044B\u0445 \u0442\u0438\u043F\u043E\u0432 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u044E\u0442 \u043C\u0435\u0436\u0434\u0443 \u0441\u043E\u0431\u043E\u0439, \u043F\u043E\u0442\u043E\u043C\u0443 \u0447\u0442\u043E \u0438\u0445 \u0438\u043C\u0435\u043D\u0430 '{0}' \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0442 \u043D\u0430 \u044F\u0437\u044B\u043A\u0435 \u043E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u0430, \u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u044B:{1}",
13232
13244
  [401 /* CannotFindTsLibDirectoryBaseSearchPaths0 */]: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0439\u0442\u0438 \u043F\u0430\u043F\u043A\u0443 \u0441\u043E \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0439 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u043E\u0439 TypeScript. \u041F\u0443\u0442\u0438, \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u043E\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043B\u044F\u043B\u0441\u044F \u043F\u043E\u0438\u0441\u043A: {0}.",
13233
13245
  [402 /* SourceFile0IsNotPartOfThePackageAndWontBeLoaded */]: "\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u0444\u0430\u0439\u043B '{0}' \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0447\u0430\u0441\u0442\u044C\u044E \u043F\u0430\u043A\u0435\u0442\u0430 \u0438 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D.",
13234
13246
  [403 /* ProgramWithoutMainPackageCannotBeCompiled */]: "\u041F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0430 \u0431\u0435\u0437 \u0433\u043B\u0430\u0432\u043D\u043E\u0433\u043E \u043F\u0430\u043A\u0435\u0442\u0430 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0441\u043A\u043E\u043C\u043F\u0438\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0430.",
@@ -14516,10 +14528,14 @@ var LocalizationContext = class {
14516
14528
  getEntityName(entity) {
14517
14529
  const containingPackage = getPackageContainingEntity(entity);
14518
14530
  const translationPackage = this._translationPackageByTranslated.get(containingPackage);
14519
- if (translationPackage === void 0) {
14520
- return entity.getName();
14531
+ const translatedName = translationPackage?.getEntityName(entity);
14532
+ if (translationPackage !== void 0 && translatedName !== void 0) {
14533
+ return new LocalizedName.Translated(
14534
+ translatedName,
14535
+ new Localization.Translated(new Translation(translationPackage))
14536
+ );
14521
14537
  }
14522
- return translationPackage.getEntityName(entity) ?? entity.getName();
14538
+ return new LocalizedName.Original(entity.getName(), new Localization.Original(containingPackage.getLocale()));
14523
14539
  }
14524
14540
  };
14525
14541
 
@@ -15314,7 +15330,7 @@ var DisplayService = class {
15314
15330
  Debug.never(localization);
15315
15331
  }
15316
15332
  }
15317
- return this._lctxOrLocale instanceof LocalizationContext ? this._lctxOrLocale.getEntityName(entity) : entity.getName();
15333
+ return this._lctxOrLocale instanceof LocalizationContext ? this._lctxOrLocale.getEntityName(entity).value : entity.getName();
15318
15334
  }
15319
15335
  };
15320
15336
  function typeToTypeUsage(type) {
@@ -16702,7 +16718,8 @@ __export(types_exports, {
16702
16718
  UnionType: () => UnionType,
16703
16719
  UnresolvedType: () => UnresolvedType2,
16704
16720
  ValueParameter: () => ValueParameter,
16705
- VariantType: () => VariantType2
16721
+ VariantType: () => VariantType2,
16722
+ isNamedTypeMember: () => isNamedTypeMember
16706
16723
  });
16707
16724
 
16708
16725
  // source/types/AliasType.ts
@@ -17357,6 +17374,9 @@ var TypeFactory = class {
17357
17374
  };
17358
17375
 
17359
17376
  // source/types/TypeMembers.ts
17377
+ function isNamedTypeMember(member) {
17378
+ return member.kind === "field" || member.kind === "method";
17379
+ }
17360
17380
  var Method = class _Method {
17361
17381
  constructor(_analyzer, _entity, _substitutions) {
17362
17382
  this._analyzer = _analyzer;
@@ -17366,6 +17386,9 @@ var Method = class _Method {
17366
17386
  this._valueParameters = new Cached();
17367
17387
  this._signatureEntity = new Cached();
17368
17388
  }
17389
+ get debuggerDisplay() {
17390
+ return this.toString();
17391
+ }
17369
17392
  getName() {
17370
17393
  return this._entity.getName();
17371
17394
  }
@@ -17437,6 +17460,9 @@ var Method = class _Method {
17437
17460
  }
17438
17461
  return other.kind === "method" && this._entity === other._entity && this._substitutions.equals(other._substitutions);
17439
17462
  }
17463
+ toString() {
17464
+ return new DisplayService(void 0, 1 /* Ru */).displayTypeMember(this);
17465
+ }
17440
17466
  };
17441
17467
  var ValueParameter = class {
17442
17468
  constructor(_entity, _substitutions) {
@@ -17468,6 +17494,9 @@ var Field = class _Field {
17468
17494
  this._substitutions = _substitutions;
17469
17495
  this.kind = "field";
17470
17496
  }
17497
+ get debuggerDisplay() {
17498
+ return this.toString();
17499
+ }
17471
17500
  getName() {
17472
17501
  return this._entity.getName();
17473
17502
  }
@@ -17501,6 +17530,9 @@ var Field = class _Field {
17501
17530
  }
17502
17531
  return other.kind === "field" && this._entity === other._entity && this._substitutions.equals(other._substitutions);
17503
17532
  }
17533
+ toString() {
17534
+ return new DisplayService(void 0, 1 /* Ru */).displayTypeMember(this);
17535
+ }
17504
17536
  };
17505
17537
  var Operator = class _Operator {
17506
17538
  constructor(_analyzer, _entity, _substitutions) {
@@ -17511,6 +17543,9 @@ var Operator = class _Operator {
17511
17543
  this._valueParameters = new Cached();
17512
17544
  this._signatureEntity = new Cached();
17513
17545
  }
17546
+ get debuggerDisplay() {
17547
+ return this.toString();
17548
+ }
17514
17549
  getOperatorKind() {
17515
17550
  return this._entity.getOperatorKind();
17516
17551
  }
@@ -17581,6 +17616,9 @@ var Constructor = class _Constructor {
17581
17616
  this.kind = "constructor";
17582
17617
  this._valueParameters = new Cached();
17583
17618
  }
17619
+ get debuggerDisplay() {
17620
+ return this.toString();
17621
+ }
17584
17622
  getValueParameters() {
17585
17623
  return this._valueParameters.getOrInsertWith(
17586
17624
  () => this._entity.getValueParameters().map((p) => new ValueParameter(p, this._substitutions))
@@ -17607,6 +17645,9 @@ var Constructor = class _Constructor {
17607
17645
  }
17608
17646
  return other.kind === "constructor" && this._entity === other._entity && this._substitutions.equals(other._substitutions);
17609
17647
  }
17648
+ toString() {
17649
+ return new DisplayService(void 0, 1 /* Ru */).displayTypeMember(this);
17650
+ }
17610
17651
  };
17611
17652
  var Destructor = class _Destructor {
17612
17653
  constructor(_entity, _substitutions) {
@@ -17615,6 +17656,9 @@ var Destructor = class _Destructor {
17615
17656
  this.kind = "destructor";
17616
17657
  this._valueParameters = new Cached();
17617
17658
  }
17659
+ get debuggerDisplay() {
17660
+ return this.toString();
17661
+ }
17618
17662
  getValueParameters() {
17619
17663
  return this._valueParameters.getOrInsertWith(
17620
17664
  () => this._entity.getValueParameters().map((p) => new ValueParameter(p, this._substitutions))
@@ -17641,6 +17685,9 @@ var Destructor = class _Destructor {
17641
17685
  }
17642
17686
  return other.kind === "destructor" && this._entity === other._entity && this._substitutions.equals(other._substitutions);
17643
17687
  }
17688
+ toString() {
17689
+ return new DisplayService(void 0, 1 /* Ru */).displayTypeMember(this);
17690
+ }
17644
17691
  };
17645
17692
  var Indexer = class _Indexer {
17646
17693
  constructor(_entity, _substitutions) {
@@ -17649,6 +17696,9 @@ var Indexer = class _Indexer {
17649
17696
  this.kind = "indexer";
17650
17697
  this._valueParameters = new Cached();
17651
17698
  }
17699
+ get debuggerDisplay() {
17700
+ return this.toString();
17701
+ }
17652
17702
  getValueParameters() {
17653
17703
  return this._valueParameters.getOrInsertWith(
17654
17704
  () => this._entity.getValueParameters().map((p) => new ValueParameter(p, this._substitutions))
@@ -17678,6 +17728,9 @@ var Indexer = class _Indexer {
17678
17728
  }
17679
17729
  return other.kind === "indexer" && this._entity === other._entity && this._substitutions.equals(other._substitutions);
17680
17730
  }
17731
+ toString() {
17732
+ return new DisplayService(void 0, 1 /* Ru */).displayTypeMember(this);
17733
+ }
17681
17734
  };
17682
17735
  var DereferenceOperator = class _DereferenceOperator {
17683
17736
  constructor(_entity, _substitutions) {
@@ -17685,6 +17738,9 @@ var DereferenceOperator = class _DereferenceOperator {
17685
17738
  this._substitutions = _substitutions;
17686
17739
  this.kind = "dereference-operator";
17687
17740
  }
17741
+ get debuggerDisplay() {
17742
+ return this.toString();
17743
+ }
17688
17744
  getType() {
17689
17745
  return this._entity.getType().applySubstitutions(this._substitutions.map);
17690
17746
  }
@@ -17709,6 +17765,9 @@ var DereferenceOperator = class _DereferenceOperator {
17709
17765
  }
17710
17766
  return other.kind === "dereference-operator" && this._entity === other._entity && this._substitutions.equals(other._substitutions);
17711
17767
  }
17768
+ toString() {
17769
+ return new DisplayService(void 0, 1 /* Ru */).displayTypeMember(this);
17770
+ }
17712
17771
  };
17713
17772
 
17714
17773
  // source/types/UnionType.ts
@@ -17873,6 +17932,23 @@ var VariantType2 = class {
17873
17932
  };
17874
17933
 
17875
17934
  // source/entities/TypeEntity.ts
17935
+ var TypeEntity2;
17936
+ ((TypeEntity10) => {
17937
+ function isAbstract(entity) {
17938
+ switch (entity.typeEntityKind) {
17939
+ case 1 /* Structured */:
17940
+ return entity.isAbstract() || entity.isAspect();
17941
+ case 0 /* Function */:
17942
+ case 2 /* Parameter */:
17943
+ case 3 /* Variant */:
17944
+ case 4 /* Alias */:
17945
+ return false;
17946
+ default:
17947
+ Debug.never(entity);
17948
+ }
17949
+ }
17950
+ TypeEntity10.isAbstract = isAbstract;
17951
+ })(TypeEntity2 || (TypeEntity2 = {}));
17876
17952
  var TypeEntityKind = /* @__PURE__ */ ((TypeEntityKind4) => {
17877
17953
  TypeEntityKind4[TypeEntityKind4["Function"] = 0] = "Function";
17878
17954
  TypeEntityKind4[TypeEntityKind4["Structured"] = 1] = "Structured";
@@ -20098,6 +20174,150 @@ __decorateClass([
20098
20174
  atomicBlock
20099
20175
  ], FileInternal.prototype, "update", 1);
20100
20176
 
20177
+ // source/diagnostic/TokenDiagnostic.ts
20178
+ function getTokenName(tokenKind) {
20179
+ const userLocale2 = getUserLocale();
20180
+ let names = englishTokenNames;
20181
+ if (userLocale2 !== void 0) {
20182
+ if (userLocale2.startsWith("ru")) {
20183
+ names = russianTokenNames;
20184
+ }
20185
+ }
20186
+ return names[tokenKind];
20187
+ }
20188
+ var englishTokenNames = {
20189
+ [0 /* Unknown */]: "unknown",
20190
+ [1 /* EndOfFile */]: "end of file",
20191
+ [2 /* IntegerLiteral */]: "integer literal",
20192
+ [3 /* RealLiteral */]: "real literal",
20193
+ [4 /* MeasureLiteral */]: "measure literal",
20194
+ [5 /* CharLiteral */]: "character literal",
20195
+ [6 /* TextLiteral */]: "text literal",
20196
+ [7 /* TextTemplateHead */]: "text template literal",
20197
+ [8 /* TextTemplatePart */]: "text template literal",
20198
+ [9 /* TextTemplateTail */]: "text template literal",
20199
+ [10 /* Identifier */]: "identifier",
20200
+ [11 /* Ampersand */]: "&",
20201
+ [12 /* AmpersandAmpersand */]: "&&",
20202
+ [13 /* AmpersandEquals */]: "&=",
20203
+ [14 /* Asterisk */]: "*",
20204
+ [15 /* AsteriskAsterisk */]: "**",
20205
+ [16 /* AsteriskEquals */]: "*=",
20206
+ [17 /* BackQuote */]: "`",
20207
+ [18 /* Bar */]: "|",
20208
+ [19 /* BarBar */]: "||",
20209
+ [20 /* Caret */]: "^",
20210
+ [21 /* CloseBrace */]: "}",
20211
+ [22 /* CloseParenthesis */]: ")",
20212
+ [23 /* CloseSquareBracket */]: "]",
20213
+ [24 /* Colon */]: ":",
20214
+ [25 /* Comma */]: ",",
20215
+ [26 /* CommercialAt */]: "@",
20216
+ [27 /* Dot */]: ".",
20217
+ [28 /* DoublePeriod */]: "..",
20218
+ [29 /* Ellipsis */]: "...",
20219
+ [30 /* EqualsEquals */]: "==",
20220
+ [31 /* EqualsGreaterThan */]: "=>",
20221
+ [32 /* Exclamation */]: "!",
20222
+ [33 /* ExclamationEquals */]: "!=",
20223
+ [34 /* GreaterThan */]: ">",
20224
+ [35 /* GreaterThanOrEqual */]: ">=",
20225
+ [36 /* HashSign */]: "#",
20226
+ [37 /* LessThan */]: "<",
20227
+ [38 /* LessThanOrEqual */]: "<=",
20228
+ [39 /* LessThanMinus */]: "<-",
20229
+ [40 /* Minus */]: "-",
20230
+ [41 /* MinusMinus */]: "--",
20231
+ [42 /* MinusEquals */]: "-=",
20232
+ [43 /* MinusGreaterThan */]: "->",
20233
+ [44 /* OpenBrace */]: "{",
20234
+ [45 /* OpenParenthesis */]: "(",
20235
+ [46 /* OpenSquareBracket */]: "[",
20236
+ [47 /* Plus */]: "+",
20237
+ [48 /* PlusPlus */]: "++",
20238
+ [49 /* PlusEquals */]: "+=",
20239
+ [50 /* Question */]: "?",
20240
+ [51 /* QuestionQuestion */]: "??",
20241
+ [52 /* Semicolon */]: ";",
20242
+ [53 /* Slash */]: "/",
20243
+ [54 /* SlashEquals */]: "/=",
20244
+ [55 /* Tilde */]: "~",
20245
+ [56 /* TildeTilde */]: "~~",
20246
+ [57 /* Underscore */]: "_",
20247
+ [58 /* Equals */]: "=",
20248
+ [59 /* Percent */]: "%",
20249
+ [60 /* PercentPercent */]: "%%",
20250
+ [61 /* Backslash */]: "\\",
20251
+ [62 /* BackslashEquals */]: "\\=",
20252
+ [63 /* BackslashBackslash */]: "\\\\"
20253
+ };
20254
+ var russianTokenNames = {
20255
+ [0 /* Unknown */]: "\u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F",
20256
+ [1 /* EndOfFile */]: "\u043A\u043E\u043D\u0435\u0446 \u0444\u0430\u0439\u043B\u0430",
20257
+ [2 /* IntegerLiteral */]: "\u0431\u0443\u043A\u0432\u0430\u043B\u044C\u043D\u043E \u0446\u0435\u043B\u043E\u0435 \u0447\u0438\u0441\u043B\u043E",
20258
+ [3 /* RealLiteral */]: "\u0431\u0443\u043A\u0432\u0430\u043B\u044C\u043D\u043E \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E",
20259
+ [4 /* MeasureLiteral */]: "\u0431\u0443\u043A\u0432\u0430\u043B\u044C\u043D\u043E \u0447\u0438\u0441\u043B\u043E \u0441 \u0435\u0434\u0438\u043D\u0438\u0446\u0435\u0439 \u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u044F",
20260
+ [5 /* CharLiteral */]: "\u0431\u0443\u043A\u0432\u0430\u043B\u044C\u043D\u043E \u0441\u0438\u043C\u0432\u043E\u043B \u0442\u0435\u043A\u0441\u0442\u0430",
20261
+ [6 /* TextLiteral */]: "\u0431\u0443\u043A\u0432\u0430\u043B\u044C\u043D\u043E \u0442\u0435\u043A\u0441\u0442",
20262
+ [7 /* TextTemplateHead */]: "\u0431\u0443\u043A\u0432\u0430\u043B\u044C\u043D\u043E \u0448\u0430\u0431\u043B\u043E\u043D \u0442\u0435\u043A\u0441\u0442\u0430",
20263
+ [8 /* TextTemplatePart */]: "\u0431\u0443\u043A\u0432\u0430\u043B\u044C\u043D\u043E \u0448\u0430\u0431\u043B\u043E\u043D \u0442\u0435\u043A\u0441\u0442\u0430",
20264
+ [9 /* TextTemplateTail */]: "\u0431\u0443\u043A\u0432\u0430\u043B\u044C\u043D\u043E \u0448\u0430\u0431\u043B\u043E\u043D \u0442\u0435\u043A\u0441\u0442\u0430",
20265
+ [10 /* Identifier */]: "\u0438\u043C\u044F",
20266
+ [11 /* Ampersand */]: "&",
20267
+ [12 /* AmpersandAmpersand */]: "&&",
20268
+ [13 /* AmpersandEquals */]: "&=",
20269
+ [14 /* Asterisk */]: "*",
20270
+ [15 /* AsteriskAsterisk */]: "**",
20271
+ [16 /* AsteriskEquals */]: "*=",
20272
+ [17 /* BackQuote */]: "`",
20273
+ [18 /* Bar */]: "|",
20274
+ [19 /* BarBar */]: "||",
20275
+ [20 /* Caret */]: "^",
20276
+ [21 /* CloseBrace */]: "}",
20277
+ [22 /* CloseParenthesis */]: ")",
20278
+ [23 /* CloseSquareBracket */]: "]",
20279
+ [24 /* Colon */]: ":",
20280
+ [25 /* Comma */]: ",",
20281
+ [26 /* CommercialAt */]: "@",
20282
+ [27 /* Dot */]: ".",
20283
+ [28 /* DoublePeriod */]: "..",
20284
+ [29 /* Ellipsis */]: "...",
20285
+ [30 /* EqualsEquals */]: "==",
20286
+ [31 /* EqualsGreaterThan */]: "=>",
20287
+ [32 /* Exclamation */]: "!",
20288
+ [33 /* ExclamationEquals */]: "!=",
20289
+ [34 /* GreaterThan */]: ">",
20290
+ [35 /* GreaterThanOrEqual */]: ">=",
20291
+ [36 /* HashSign */]: "#",
20292
+ [37 /* LessThan */]: "<",
20293
+ [38 /* LessThanOrEqual */]: "<=",
20294
+ [39 /* LessThanMinus */]: "<-",
20295
+ [40 /* Minus */]: "-",
20296
+ [41 /* MinusMinus */]: "--",
20297
+ [42 /* MinusEquals */]: "-=",
20298
+ [43 /* MinusGreaterThan */]: "->",
20299
+ [44 /* OpenBrace */]: "{",
20300
+ [45 /* OpenParenthesis */]: "(",
20301
+ [46 /* OpenSquareBracket */]: "[",
20302
+ [47 /* Plus */]: "+",
20303
+ [48 /* PlusPlus */]: "++",
20304
+ [49 /* PlusEquals */]: "+=",
20305
+ [50 /* Question */]: "?",
20306
+ [51 /* QuestionQuestion */]: "??",
20307
+ [52 /* Semicolon */]: ";",
20308
+ [53 /* Slash */]: "/",
20309
+ [54 /* SlashEquals */]: "/=",
20310
+ [55 /* Tilde */]: "~",
20311
+ [56 /* TildeTilde */]: "~~",
20312
+ [57 /* Underscore */]: "_",
20313
+ [58 /* Equals */]: "=",
20314
+ [59 /* Percent */]: "%",
20315
+ [60 /* PercentPercent */]: "%%",
20316
+ [61 /* Backslash */]: "\\",
20317
+ [62 /* BackslashEquals */]: "\\=",
20318
+ [63 /* BackslashBackslash */]: "\\\\"
20319
+ };
20320
+
20101
20321
  // source/parser/ConvertTokenKind.ts
20102
20322
  function scannerTokenKindToTreeTokenKind(kind) {
20103
20323
  return getOrCreateTokenMapping()[kind];
@@ -20122,61 +20342,61 @@ function getOrCreateTokenMapping() {
20122
20342
  result[13 /* TextTemplateTail */] = 9 /* TextTemplateTail */;
20123
20343
  result[14 /* LocalizableTextLiteral */] = 6 /* TextLiteral */;
20124
20344
  result[15 /* LocalizableTextTemplateHead */] = 7 /* TextTemplateHead */;
20125
- result[16 /* Ampersand */] = 10 /* Ampersand */;
20126
- result[17 /* AmpersandAmpersand */] = 11 /* AmpersandAmpersand */;
20127
- result[18 /* AmpersandEquals */] = 12 /* AmpersandEquals */;
20128
- result[19 /* Asterisk */] = 13 /* Asterisk */;
20129
- result[20 /* AsteriskAsterisk */] = 14 /* AsteriskAsterisk */;
20130
- result[21 /* AsteriskEquals */] = 15 /* AsteriskEquals */;
20131
- result[22 /* BackQuote */] = 16 /* BackQuote */;
20132
- result[23 /* Bar */] = 17 /* Bar */;
20133
- result[24 /* BarBar */] = 18 /* BarBar */;
20134
- result[25 /* Caret */] = 19 /* Caret */;
20135
- result[26 /* RightBrace */] = 20 /* CloseBrace */;
20136
- result[27 /* RightParenthesis */] = 21 /* CloseParenthesis */;
20137
- result[28 /* RightSquareBracket */] = 22 /* CloseSquareBracket */;
20138
- result[29 /* Colon */] = 23 /* Colon */;
20139
- result[30 /* Comma */] = 24 /* Comma */;
20140
- result[31 /* CommercialAt */] = 25 /* CommercialAt */;
20141
- result[32 /* Dot */] = 26 /* Dot */;
20142
- result[33 /* DoublePeriod */] = 27 /* DoublePeriod */;
20143
- result[34 /* Ellipsis */] = 28 /* Ellipsis */;
20144
- result[35 /* EqualsEquals */] = 29 /* EqualsEquals */;
20145
- result[36 /* EqualsRightAngle */] = 30 /* EqualsGreaterThan */;
20146
- result[37 /* Exclamation */] = 31 /* Exclamation */;
20147
- result[38 /* ExclamationEquals */] = 32 /* ExclamationEquals */;
20148
- result[39 /* RightAngle */] = 33 /* GreaterThan */;
20149
- result[40 /* RightAngleEquals */] = 34 /* GreaterThanOrEqual */;
20150
- result[41 /* HashSign */] = 35 /* HashSign */;
20151
- result[42 /* LeftAngle */] = 36 /* LessThan */;
20152
- result[43 /* LeftAngleEquals */] = 37 /* LessThanOrEqual */;
20153
- result[44 /* LeftAngleMinus */] = 38 /* LessThanMinus */;
20154
- result[45 /* Minus */] = 39 /* Minus */;
20155
- result[46 /* MinusMinus */] = 40 /* MinusMinus */;
20156
- result[47 /* MinusEquals */] = 41 /* MinusEquals */;
20157
- result[48 /* MinusRightAngle */] = 42 /* MinusGreaterThan */;
20158
- result[49 /* LeftBrace */] = 43 /* OpenBrace */;
20159
- result[50 /* LeftParenthesis */] = 44 /* OpenParenthesis */;
20160
- result[51 /* LeftSquareBracket */] = 45 /* OpenSquareBracket */;
20161
- result[52 /* Plus */] = 46 /* Plus */;
20162
- result[53 /* PlusPlus */] = 47 /* PlusPlus */;
20163
- result[54 /* PlusEquals */] = 48 /* PlusEquals */;
20164
- result[55 /* Question */] = 49 /* Question */;
20165
- result[56 /* QuestionQuestion */] = 50 /* QuestionQuestion */;
20166
- result[57 /* Semicolon */] = 51 /* Semicolon */;
20167
- result[58 /* Slash */] = 52 /* Slash */;
20168
- result[59 /* SlashEquals */] = 53 /* SlashEquals */;
20169
- result[60 /* Tilde */] = 54 /* Tilde */;
20170
- result[61 /* TildeTilde */] = 55 /* TildeTilde */;
20171
- result[62 /* Underscore */] = 56 /* Underscore */;
20172
- result[63 /* Equals */] = 57 /* Equals */;
20173
- result[69 /* Identifier */] = 63 /* Identifier */;
20174
- result[70 /* QuotedIdentifier */] = 63 /* Identifier */;
20175
- result[64 /* Percent */] = 58 /* Percent */;
20176
- result[65 /* PercentPercent */] = 59 /* PercentPercent */;
20177
- result[66 /* BackSlash */] = 60 /* Backslash */;
20178
- result[67 /* BackSlashEquals */] = 61 /* BackslashEquals */;
20179
- result[68 /* BackSlashBackSlash */] = 62 /* BackslashBackslash */;
20345
+ result[16 /* Identifier */] = 10 /* Identifier */;
20346
+ result[17 /* QuotedIdentifier */] = 10 /* Identifier */;
20347
+ result[18 /* Ampersand */] = 11 /* Ampersand */;
20348
+ result[19 /* AmpersandAmpersand */] = 12 /* AmpersandAmpersand */;
20349
+ result[20 /* AmpersandEquals */] = 13 /* AmpersandEquals */;
20350
+ result[21 /* Asterisk */] = 14 /* Asterisk */;
20351
+ result[22 /* AsteriskAsterisk */] = 15 /* AsteriskAsterisk */;
20352
+ result[23 /* AsteriskEquals */] = 16 /* AsteriskEquals */;
20353
+ result[24 /* BackQuote */] = 17 /* BackQuote */;
20354
+ result[25 /* Bar */] = 18 /* Bar */;
20355
+ result[26 /* BarBar */] = 19 /* BarBar */;
20356
+ result[27 /* Caret */] = 20 /* Caret */;
20357
+ result[28 /* RightBrace */] = 21 /* CloseBrace */;
20358
+ result[29 /* RightParenthesis */] = 22 /* CloseParenthesis */;
20359
+ result[30 /* RightSquareBracket */] = 23 /* CloseSquareBracket */;
20360
+ result[31 /* Colon */] = 24 /* Colon */;
20361
+ result[32 /* Comma */] = 25 /* Comma */;
20362
+ result[33 /* CommercialAt */] = 26 /* CommercialAt */;
20363
+ result[34 /* Dot */] = 27 /* Dot */;
20364
+ result[35 /* DoublePeriod */] = 28 /* DoublePeriod */;
20365
+ result[36 /* Ellipsis */] = 29 /* Ellipsis */;
20366
+ result[37 /* EqualsEquals */] = 30 /* EqualsEquals */;
20367
+ result[38 /* EqualsRightAngle */] = 31 /* EqualsGreaterThan */;
20368
+ result[39 /* Exclamation */] = 32 /* Exclamation */;
20369
+ result[40 /* ExclamationEquals */] = 33 /* ExclamationEquals */;
20370
+ result[41 /* RightAngle */] = 34 /* GreaterThan */;
20371
+ result[42 /* RightAngleEquals */] = 35 /* GreaterThanOrEqual */;
20372
+ result[43 /* HashSign */] = 36 /* HashSign */;
20373
+ result[44 /* LeftAngle */] = 37 /* LessThan */;
20374
+ result[45 /* LeftAngleEquals */] = 38 /* LessThanOrEqual */;
20375
+ result[46 /* LeftAngleMinus */] = 39 /* LessThanMinus */;
20376
+ result[47 /* Minus */] = 40 /* Minus */;
20377
+ result[48 /* MinusMinus */] = 41 /* MinusMinus */;
20378
+ result[49 /* MinusEquals */] = 42 /* MinusEquals */;
20379
+ result[50 /* MinusRightAngle */] = 43 /* MinusGreaterThan */;
20380
+ result[51 /* LeftBrace */] = 44 /* OpenBrace */;
20381
+ result[52 /* LeftParenthesis */] = 45 /* OpenParenthesis */;
20382
+ result[53 /* LeftSquareBracket */] = 46 /* OpenSquareBracket */;
20383
+ result[54 /* Plus */] = 47 /* Plus */;
20384
+ result[55 /* PlusPlus */] = 48 /* PlusPlus */;
20385
+ result[56 /* PlusEquals */] = 49 /* PlusEquals */;
20386
+ result[57 /* Question */] = 50 /* Question */;
20387
+ result[58 /* QuestionQuestion */] = 51 /* QuestionQuestion */;
20388
+ result[59 /* Semicolon */] = 52 /* Semicolon */;
20389
+ result[60 /* Slash */] = 53 /* Slash */;
20390
+ result[61 /* SlashEquals */] = 54 /* SlashEquals */;
20391
+ result[62 /* Tilde */] = 55 /* Tilde */;
20392
+ result[63 /* TildeTilde */] = 56 /* TildeTilde */;
20393
+ result[64 /* Underscore */] = 57 /* Underscore */;
20394
+ result[65 /* Equals */] = 58 /* Equals */;
20395
+ result[66 /* Percent */] = 59 /* Percent */;
20396
+ result[67 /* PercentPercent */] = 60 /* PercentPercent */;
20397
+ result[68 /* BackSlash */] = 61 /* Backslash */;
20398
+ result[69 /* BackSlashEquals */] = 62 /* BackslashEquals */;
20399
+ result[70 /* BackSlashBackSlash */] = 63 /* BackslashBackslash */;
20180
20400
  for (let i = 0; i < result.length; i++) {
20181
20401
  if (result[i] === void 0) {
20182
20402
  throw new Error(`Mapping for token ${TokenKind2[i]} not specified.`);
@@ -20265,7 +20485,7 @@ var TextParser = class {
20265
20485
  this.tryReportDiagnosticAtCurrentRange(
20266
20486
  121 /* Expected0But1Found */,
20267
20487
  0 /* Error */,
20268
- tokenKindValues[kind],
20488
+ getTokenName(kind),
20269
20489
  this._currentTokenOrKeyword.toString()
20270
20490
  );
20271
20491
  return this.createMissingToken(kind);
@@ -20315,7 +20535,7 @@ var TextParser = class {
20315
20535
  return result;
20316
20536
  }
20317
20537
  parseIdentifier(declarationKind = 0 /* None */, diagnosticKind = 101 /* IdentifierExpected */) {
20318
- if (this._currentTokenOrKeyword.kind === "token" && this._currentTokenOrKeyword.value.tokenKind === 63 /* Identifier */) {
20538
+ if (this._currentTokenOrKeyword.kind === "token" && this._currentTokenOrKeyword.value.tokenKind === 10 /* Identifier */) {
20319
20539
  const range = this._currentTokenOrKeyword.getRangeWithoutTrivia();
20320
20540
  const identifier2 = this.tokenWithSkippedTokens(
20321
20541
  this._currentTokenOrKeyword.value,
@@ -20329,13 +20549,13 @@ var TextParser = class {
20329
20549
  return identifier2;
20330
20550
  }
20331
20551
  this.tryReportDiagnosticAtCurrentRange(diagnosticKind);
20332
- return this.createMissingToken(63 /* Identifier */);
20552
+ return this.createMissingToken(10 /* Identifier */);
20333
20553
  }
20334
20554
  parseSemicolonOrLineBreak() {
20335
20555
  if (this._currentTokenOrKeyword.hasPrecedingLineBreak()) {
20336
20556
  return void 0;
20337
20557
  }
20338
- return this.parseExpectedToken(51 /* Semicolon */);
20558
+ return this.parseExpectedToken(52 /* Semicolon */);
20339
20559
  }
20340
20560
  parseQualifiedName(diagnosticKindForFirstMissingIdentifier) {
20341
20561
  const qualifiedNameStart = this.tokenOrKeywordStartPosition();
@@ -20343,17 +20563,17 @@ var TextParser = class {
20343
20563
  0 /* None */,
20344
20564
  diagnosticKindForFirstMissingIdentifier
20345
20565
  )];
20346
- let dotToken = this.parseOptionalToken(26 /* Dot */);
20566
+ let dotToken = this.parseOptionalToken(27 /* Dot */);
20347
20567
  while (dotToken !== void 0) {
20348
20568
  parts.push(dotToken);
20349
20569
  parts.push(this.parseIdentifier());
20350
- dotToken = this.parseOptionalToken(26 /* Dot */);
20570
+ dotToken = this.parseOptionalToken(27 /* Dot */);
20351
20571
  }
20352
20572
  const result = new QualifiedName2(parts);
20353
20573
  return this.intern(result, qualifiedNameStart);
20354
20574
  }
20355
20575
  parseOptionalFunctionBlock(allowSingleExpression = true) {
20356
- if (this.currentTokenOrKeyword.isToken(43 /* OpenBrace */)) {
20576
+ if (this.currentTokenOrKeyword.isToken(44 /* OpenBrace */)) {
20357
20577
  return this.statementParser.parseFunctionBlock(allowSingleExpression);
20358
20578
  }
20359
20579
  return void 0;
@@ -20421,7 +20641,7 @@ var TextParser = class {
20421
20641
  return this._nodeInterner.intern(node, startPosition);
20422
20642
  }
20423
20643
  parseComma() {
20424
- return this.parseExpectedToken(24 /* Comma */);
20644
+ return this.parseExpectedToken(25 /* Comma */);
20425
20645
  }
20426
20646
  tokenOrKeywordStartPosition() {
20427
20647
  let startPosition;
@@ -20503,7 +20723,7 @@ var TextParser = class {
20503
20723
  tryParseKeywordParts(dictionary) {
20504
20724
  let result = void 0;
20505
20725
  const token = this._nextToken;
20506
- if (token.tokenKind === 63 /* Identifier */) {
20726
+ if (token.tokenKind === 10 /* Identifier */) {
20507
20727
  const identifier2 = token;
20508
20728
  const keywordPart = dictionary.get(identifier2.value);
20509
20729
  if (keywordPart !== void 0) {
@@ -20533,7 +20753,7 @@ var TextParser = class {
20533
20753
  this.validateScannerToken(scannerToken);
20534
20754
  const kind = scannerTokenKindToTreeTokenKind(scannerToken.kind);
20535
20755
  let result;
20536
- if (kind === 63 /* Identifier */) {
20756
+ if (kind === 10 /* Identifier */) {
20537
20757
  result = this.intern(this.createIdentifierToken(scannerToken.value, trivia), tokenStart);
20538
20758
  } else {
20539
20759
  result = this.intern(this.createNonIdentifierToken(kind, scannerToken.value, trivia), tokenStart);
@@ -20565,7 +20785,7 @@ var TextParser = class {
20565
20785
  code = 3 /* UnterminatedTextOrTextTemplate */;
20566
20786
  break;
20567
20787
  }
20568
- case 70 /* QuotedIdentifier */: {
20788
+ case 17 /* QuotedIdentifier */: {
20569
20789
  code = 4 /* UnterminatedQuotedIdentifier */;
20570
20790
  break;
20571
20791
  }
@@ -20622,7 +20842,7 @@ var TextParser = class {
20622
20842
  if (!Scanner.isPlainIdentifier(valueWithoutQuotes)) {
20623
20843
  flags |= 8 /* RequiresQuotes */;
20624
20844
  }
20625
- return new Token6(63 /* Identifier */, value, trivia, flags, operatorKind);
20845
+ return new Token6(10 /* Identifier */, value, trivia, flags, operatorKind);
20626
20846
  }
20627
20847
  createNonIdentifierToken(kind, value, trivia) {
20628
20848
  const flags = 0 /* None */;
@@ -20756,8 +20976,8 @@ var PackageImportDirectiveParser = class {
20756
20976
  );
20757
20977
  this._packageImportSequenceParser = new SequenceParser(
20758
20978
  this.parser,
20759
- () => this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */),
20760
- () => this.parser.currentTokenOrKeyword.isToken(20 /* CloseBrace */),
20979
+ () => this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */),
20980
+ () => this.parser.currentTokenOrKeyword.isToken(21 /* CloseBrace */),
20761
20981
  () => true,
20762
20982
  () => this.parsePackageImport(),
20763
20983
  () => this.parser.parseSemicolonOrLineBreak(),
@@ -20773,12 +20993,12 @@ var PackageImportDirectiveParser = class {
20773
20993
  parsePackageImportDirective() {
20774
20994
  const packageImportDirectiveStart = this.parser.tokenOrKeywordStartPosition();
20775
20995
  const usingKeyword = this.parser.parseExpectedKeyword(18 /* Import */);
20776
- const openBraceToken = this.parser.parseOptionalToken(43 /* OpenBrace */);
20996
+ const openBraceToken = this.parser.parseOptionalToken(44 /* OpenBrace */);
20777
20997
  let result;
20778
20998
  if (openBraceToken !== void 0) {
20779
20999
  const elements = this._packageImportSequenceParser.parse();
20780
21000
  const packageImports = new PackageImportList2(elements);
20781
- const closeBraceToken = this.parser.parseExpectedToken(20 /* CloseBrace */);
21001
+ const closeBraceToken = this.parser.parseExpectedToken(21 /* CloseBrace */);
20782
21002
  result = new PackageGroupImportDirective2(usingKeyword, openBraceToken, packageImports, closeBraceToken);
20783
21003
  } else {
20784
21004
  const packageImport = this.parsePackageImport();
@@ -20790,13 +21010,13 @@ var PackageImportDirectiveParser = class {
20790
21010
  const packageImportStart = this.parser.tokenOrKeywordStartPosition();
20791
21011
  const hasAlias = this.parser.lookAhead(() => {
20792
21012
  this.parser.parseIdentifier();
20793
- return this.parser.currentTokenOrKeyword.isToken(57 /* Equals */);
21013
+ return this.parser.currentTokenOrKeyword.isToken(58 /* Equals */);
20794
21014
  });
20795
21015
  let alias;
20796
21016
  let equalsToken;
20797
21017
  if (hasAlias) {
20798
21018
  alias = this.parser.parseIdentifier();
20799
- equalsToken = this.parser.parseExpectedToken(57 /* Equals */);
21019
+ equalsToken = this.parser.parseExpectedToken(58 /* Equals */);
20800
21020
  }
20801
21021
  const packageName = this.parsePackageName();
20802
21022
  const result = new PackageImport2(alias, equalsToken, packageName);
@@ -20808,8 +21028,8 @@ var PackageImportDirectiveParser = class {
20808
21028
  0 /* None */,
20809
21029
  103 /* PackageNameExpected */
20810
21030
  )];
20811
- while (this.parser.currentTokenOrKeyword.isToken(26 /* Dot */)) {
20812
- parts.push(this.parser.parseExpectedToken(26 /* Dot */));
21031
+ while (this.parser.currentTokenOrKeyword.isToken(27 /* Dot */)) {
21032
+ parts.push(this.parser.parseExpectedToken(27 /* Dot */));
20813
21033
  parts.push(this.parser.parseIdentifier());
20814
21034
  }
20815
21035
  const result = new PackageName2(parts);
@@ -20822,7 +21042,7 @@ var StatementParser = class {
20822
21042
  this._statementSequenceParser = new SequenceParser(
20823
21043
  this.parser,
20824
21044
  () => this.isStartOfStatement(),
20825
- () => this.parser.currentTokenOrKeyword.isToken(20 /* CloseBrace */),
21045
+ () => this.parser.currentTokenOrKeyword.isToken(21 /* CloseBrace */),
20826
21046
  () => true,
20827
21047
  () => this.parseStatement(),
20828
21048
  () => this.parser.parseSemicolonOrLineBreak(),
@@ -20832,7 +21052,7 @@ var StatementParser = class {
20832
21052
  this._switchStatementParser = new SwitchStatementParser(this.parser);
20833
21053
  this._forStatementVariableSequenceParser = new SequenceParser(
20834
21054
  this.parser,
20835
- () => this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */),
21055
+ () => this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */),
20836
21056
  () => this.isEnumerationVariableSequenceTerminator(),
20837
21057
  () => true,
20838
21058
  () => this.parseEnumerationVariableDeclaration(),
@@ -20850,15 +21070,15 @@ var StatementParser = class {
20850
21070
  );
20851
21071
  }
20852
21072
  isStartOfBlock() {
20853
- return this.parser.currentTokenOrKeyword.isToken(43 /* OpenBrace */);
21073
+ return this.parser.currentTokenOrKeyword.isToken(44 /* OpenBrace */);
20854
21074
  }
20855
21075
  parseStatementBlock() {
20856
21076
  let result;
20857
21077
  const blockStart = this.parser.tokenOrKeywordStartPosition();
20858
- const openBraceToken = this.parser.parseExpectedToken(43 /* OpenBrace */);
21078
+ const openBraceToken = this.parser.parseExpectedToken(44 /* OpenBrace */);
20859
21079
  if (!openBraceToken.isMissing) {
20860
21080
  const statementList = this.parseStatementList();
20861
- const closeBraceToken = this.parser.parseExpectedToken(20 /* CloseBrace */);
21081
+ const closeBraceToken = this.parser.parseExpectedToken(21 /* CloseBrace */);
20862
21082
  result = this.parser.intern(
20863
21083
  new StatementBlock2(openBraceToken, statementList, closeBraceToken),
20864
21084
  blockStart
@@ -20867,21 +21087,20 @@ var StatementParser = class {
20867
21087
  const statementList = this.parser.intern(new StatementList2([]), blockStart);
20868
21088
  const flags = 1 /* Missing */;
20869
21089
  const closeBraceToken = this.parser.intern(
20870
- new Token6(20 /* CloseBrace */, "", [], flags, void 0),
21090
+ new Token6(21 /* CloseBrace */, "", [], flags, void 0),
20871
21091
  blockStart
20872
21092
  );
20873
21093
  result = this.parser.intern(
20874
21094
  new StatementBlock2(openBraceToken, statementList, closeBraceToken),
20875
21095
  blockStart
20876
21096
  );
20877
- result = this.parser.intern(result, blockStart);
20878
21097
  }
20879
21098
  return result;
20880
21099
  }
20881
21100
  parseFunctionBlock(allowSingleExpression = true) {
20882
21101
  let result;
20883
21102
  const blockStart = this.parser.tokenOrKeywordStartPosition();
20884
- const openBraceToken = this.parser.parseExpectedToken(43 /* OpenBrace */);
21103
+ const openBraceToken = this.parser.parseExpectedToken(44 /* OpenBrace */);
20885
21104
  if (!openBraceToken.isMissing) {
20886
21105
  let expressionOrStatementList;
20887
21106
  if (allowSingleExpression) {
@@ -20890,7 +21109,7 @@ var StatementParser = class {
20890
21109
  if (expressionOrStatementList === void 0) {
20891
21110
  expressionOrStatementList = this.parseStatementList();
20892
21111
  }
20893
- const closeBraceToken = this.parser.parseExpectedToken(20 /* CloseBrace */);
21112
+ const closeBraceToken = this.parser.parseExpectedToken(21 /* CloseBrace */);
20894
21113
  result = this.parser.intern(
20895
21114
  new FunctionBlock2(openBraceToken, expressionOrStatementList, closeBraceToken),
20896
21115
  blockStart
@@ -20899,14 +21118,13 @@ var StatementParser = class {
20899
21118
  const expressionOrStatementList = this.parser.intern(new StatementList2([]), blockStart);
20900
21119
  const flags = 1 /* Missing */;
20901
21120
  const closeBraceToken = this.parser.intern(
20902
- new Token6(20 /* CloseBrace */, "", [], flags, void 0),
21121
+ new Token6(21 /* CloseBrace */, "", [], flags, void 0),
20903
21122
  blockStart
20904
21123
  );
20905
21124
  result = this.parser.intern(
20906
21125
  new FunctionBlock2(openBraceToken, expressionOrStatementList, closeBraceToken),
20907
21126
  blockStart
20908
21127
  );
20909
- result = this.parser.intern(result, blockStart);
20910
21128
  }
20911
21129
  return result;
20912
21130
  }
@@ -20928,7 +21146,7 @@ var StatementParser = class {
20928
21146
  }
20929
21147
  parseEmptyStatement() {
20930
21148
  const statementStart = this.parser.tokenOrKeywordStartPosition();
20931
- const semicolonToken = this.parser.parseExpectedToken(51 /* Semicolon */);
21149
+ const semicolonToken = this.parser.parseExpectedToken(52 /* Semicolon */);
20932
21150
  const result = new EmptyStatement2(semicolonToken);
20933
21151
  return this.parser.intern(result, statementStart);
20934
21152
  }
@@ -20978,7 +21196,7 @@ var StatementParser = class {
20978
21196
  const clauseStart = this.parser.tokenOrKeywordStartPosition();
20979
21197
  const catchKeyword = this.parser.parseExpectedKeyword(32 /* Catch */);
20980
21198
  let errorVariable;
20981
- if (this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */)) {
21199
+ if (this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */)) {
20982
21200
  errorVariable = this.parseErrorVariableDeclaration();
20983
21201
  }
20984
21202
  const block = this.parseStatementBlock();
@@ -21018,7 +21236,7 @@ var StatementParser = class {
21018
21236
  return this.parser.intern(result, statementStart);
21019
21237
  }
21020
21238
  isEnumerationVariableSequenceTerminator() {
21021
- return this.parser.currentTokenOrKeyword.isKeyword(9 /* From */) || this.parser.currentTokenOrKeyword.isToken(43 /* OpenBrace */);
21239
+ return this.parser.currentTokenOrKeyword.isKeyword(9 /* From */) || this.parser.currentTokenOrKeyword.isToken(44 /* OpenBrace */);
21022
21240
  }
21023
21241
  parseEnumerationVariableDeclaration() {
21024
21242
  const declarationStart = this.parser.tokenOrKeywordStartPosition();
@@ -21033,7 +21251,7 @@ var StatementParser = class {
21033
21251
  } else {
21034
21252
  result = this.parser.tryParse(() => {
21035
21253
  const expression = this.parser.expressionParser.parseExpression(false);
21036
- return this.parser.currentTokenOrKeyword.isToken(20 /* CloseBrace */) ? expression : void 0;
21254
+ return this.parser.currentTokenOrKeyword.isToken(21 /* CloseBrace */) ? expression : void 0;
21037
21255
  });
21038
21256
  }
21039
21257
  return result;
@@ -21132,7 +21350,7 @@ var StatementParser = class {
21132
21350
  typeAnnotation = this.parser.typeAnnotationParser.parseTypeAnnotation();
21133
21351
  }
21134
21352
  let initializer;
21135
- const equalsToken = this.parser.parseOptionalToken(57 /* Equals */);
21353
+ const equalsToken = this.parser.parseOptionalToken(58 /* Equals */);
21136
21354
  if (equalsToken !== void 0) {
21137
21355
  initializer = this.parser.expressionParser.parseExpression(false);
21138
21356
  }
@@ -21153,12 +21371,12 @@ var StatementParser = class {
21153
21371
  isAssignmentOperator() {
21154
21372
  if (this.parser.currentTokenOrKeyword.kind === "token") {
21155
21373
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
21156
- case 57 /* Equals */:
21157
- case 15 /* AsteriskEquals */:
21158
- case 41 /* MinusEquals */:
21159
- case 48 /* PlusEquals */:
21160
- case 53 /* SlashEquals */:
21161
- case 61 /* BackslashEquals */:
21374
+ case 58 /* Equals */:
21375
+ case 16 /* AsteriskEquals */:
21376
+ case 42 /* MinusEquals */:
21377
+ case 49 /* PlusEquals */:
21378
+ case 54 /* SlashEquals */:
21379
+ case 62 /* BackslashEquals */:
21162
21380
  return true;
21163
21381
  default:
21164
21382
  return false;
@@ -21197,10 +21415,10 @@ var StatementParser = class {
21197
21415
  let result;
21198
21416
  if (this.parser.currentTokenOrKeyword.kind === "token") {
21199
21417
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
21200
- case 51 /* Semicolon */:
21418
+ case 52 /* Semicolon */:
21201
21419
  result = () => this.parseEmptyStatement();
21202
21420
  break;
21203
- case 43 /* OpenBrace */:
21421
+ case 44 /* OpenBrace */:
21204
21422
  result = () => this.parseRunStatement();
21205
21423
  break;
21206
21424
  }
@@ -21319,12 +21537,12 @@ var ExpressionParser = class {
21319
21537
  this._indexedAccessArgumentListParser = new ArgumentListParser(
21320
21538
  this.parser,
21321
21539
  () => this.parser.tryReportDiagnosticAtCurrentRange(114 /* IndexedAccessArgumentExpected */),
21322
- 22 /* CloseSquareBracket */
21540
+ 23 /* CloseSquareBracket */
21323
21541
  );
21324
21542
  this._callArgumentListParser = new ArgumentListParser(
21325
21543
  this.parser,
21326
21544
  () => this.parser.tryReportDiagnosticAtCurrentRange(113 /* FunctionCallArgumentExpected */),
21327
- 21 /* CloseParenthesis */
21545
+ 22 /* CloseParenthesis */
21328
21546
  );
21329
21547
  }
21330
21548
  // isFollowedByStatementBlock = true если по синтаксису сразу после выражения следует блок.
@@ -21342,7 +21560,7 @@ var ExpressionParser = class {
21342
21560
  parseNoneCoalescingExpression(isFollowedByStatementBlock) {
21343
21561
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
21344
21562
  let result = this.parseDisjunctiveExpression(isFollowedByStatementBlock);
21345
- while (this.parser.currentTokenOrKeyword.isToken(50 /* QuestionQuestion */)) {
21563
+ while (this.parser.currentTokenOrKeyword.isToken(51 /* QuestionQuestion */)) {
21346
21564
  const operator = this.parser.parseTokenOrKeyword();
21347
21565
  const right = this.parseDisjunctiveExpression(isFollowedByStatementBlock);
21348
21566
  result = new BinaryExpression2(result, operator.value, right);
@@ -21394,7 +21612,7 @@ var ExpressionParser = class {
21394
21612
  return result;
21395
21613
  }
21396
21614
  isRelationOperator(tokenOrKeyword) {
21397
- return tokenOrKeyword.isToken(29 /* EqualsEquals */) || tokenOrKeyword.isToken(32 /* ExclamationEquals */) || tokenOrKeyword.isToken(36 /* LessThan */) || tokenOrKeyword.isToken(33 /* GreaterThan */) || tokenOrKeyword.isToken(37 /* LessThanOrEqual */) || tokenOrKeyword.isToken(34 /* GreaterThanOrEqual */) || tokenOrKeyword.isKeyword(14 /* Is */);
21615
+ return tokenOrKeyword.isToken(30 /* EqualsEquals */) || tokenOrKeyword.isToken(33 /* ExclamationEquals */) || tokenOrKeyword.isToken(37 /* LessThan */) || tokenOrKeyword.isToken(34 /* GreaterThan */) || tokenOrKeyword.isToken(38 /* LessThanOrEqual */) || tokenOrKeyword.isToken(35 /* GreaterThanOrEqual */) || tokenOrKeyword.isKeyword(14 /* Is */);
21398
21616
  }
21399
21617
  parseAdditiveExpression(isFollowedByStatementBlock) {
21400
21618
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
@@ -21408,7 +21626,7 @@ var ExpressionParser = class {
21408
21626
  return result;
21409
21627
  }
21410
21628
  isAdditiveOperator(tokenOrKeyword) {
21411
- return tokenOrKeyword.isToken(46 /* Plus */) || tokenOrKeyword.isToken(39 /* Minus */);
21629
+ return tokenOrKeyword.isToken(47 /* Plus */) || tokenOrKeyword.isToken(40 /* Minus */);
21412
21630
  }
21413
21631
  parseMultiplicativeExpression(isFollowedByStatementBlock) {
21414
21632
  if (this.parser.dialect === 1 /* Usual */ || this.parser.dialect === 0 /* Mixed */) {
@@ -21434,7 +21652,7 @@ var ExpressionParser = class {
21434
21652
  }
21435
21653
  }
21436
21654
  isMultiplicativeOperator(tokenOrKeyword) {
21437
- return tokenOrKeyword.isToken(13 /* Asterisk */) || tokenOrKeyword.isToken(52 /* Slash */) || tokenOrKeyword.isToken(60 /* Backslash */) || tokenOrKeyword.isToken(62 /* BackslashBackslash */);
21655
+ return tokenOrKeyword.isToken(14 /* Asterisk */) || tokenOrKeyword.isToken(53 /* Slash */) || tokenOrKeyword.isToken(61 /* Backslash */) || tokenOrKeyword.isToken(63 /* BackslashBackslash */);
21438
21656
  }
21439
21657
  parseBitwiseDisjunctiveExpression(isFollowedByStatementBlock) {
21440
21658
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
@@ -21448,7 +21666,7 @@ var ExpressionParser = class {
21448
21666
  return result;
21449
21667
  }
21450
21668
  isBitwiseDisjunctiveOperator(tokenOrKeyword) {
21451
- return tokenOrKeyword.isToken(17 /* Bar */) || tokenOrKeyword.isToken(18 /* BarBar */);
21669
+ return tokenOrKeyword.isToken(18 /* Bar */) || tokenOrKeyword.isToken(19 /* BarBar */);
21452
21670
  }
21453
21671
  parseBitwiseConjunctiveExpression(isFollowedByStatementBlock) {
21454
21672
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
@@ -21462,7 +21680,7 @@ var ExpressionParser = class {
21462
21680
  return result;
21463
21681
  }
21464
21682
  isBitwiseConjunctiveOperator(tokenOrKeyword) {
21465
- return tokenOrKeyword.isToken(10 /* Ampersand */);
21683
+ return tokenOrKeyword.isToken(11 /* Ampersand */);
21466
21684
  }
21467
21685
  parseAsExpression(isFollowedByStatementBlock) {
21468
21686
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
@@ -21494,7 +21712,7 @@ var ExpressionParser = class {
21494
21712
  return result;
21495
21713
  }
21496
21714
  isPrefixUnaryOperator(tokenOrKeyword) {
21497
- return tokenOrKeyword.isToken(46 /* Plus */) || tokenOrKeyword.isToken(39 /* Minus */) || tokenOrKeyword.isKeyword(43 /* Not */);
21715
+ return tokenOrKeyword.isToken(47 /* Plus */) || tokenOrKeyword.isToken(40 /* Minus */) || tokenOrKeyword.isKeyword(43 /* Not */);
21498
21716
  }
21499
21717
  parsePostfixUnaryExpression(isFollowedByStatementBlock) {
21500
21718
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
@@ -21505,7 +21723,7 @@ var ExpressionParser = class {
21505
21723
  throw internalCompilerError();
21506
21724
  }
21507
21725
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
21508
- case 36 /* LessThan */: {
21726
+ case 37 /* LessThan */: {
21509
21727
  const hasTypeArguments = this.parser.typeArgumentParser.canParseTypeArgumentClause();
21510
21728
  if (!hasTypeArguments) {
21511
21729
  break parsingLoop;
@@ -21517,32 +21735,32 @@ var ExpressionParser = class {
21517
21735
  );
21518
21736
  break;
21519
21737
  }
21520
- case 31 /* Exclamation */: {
21521
- const exclamationToken = this.parser.parseExpectedToken(31 /* Exclamation */);
21738
+ case 32 /* Exclamation */: {
21739
+ const exclamationToken = this.parser.parseExpectedToken(32 /* Exclamation */);
21522
21740
  expression = this.parser.intern(
21523
21741
  new AssertionExpression2(expression, exclamationToken),
21524
21742
  expressionStart
21525
21743
  );
21526
21744
  break;
21527
21745
  }
21528
- case 49 /* Question */: {
21529
- const questionToken = this.parser.parseExpectedToken(49 /* Question */);
21746
+ case 50 /* Question */: {
21747
+ const questionToken = this.parser.parseExpectedToken(50 /* Question */);
21530
21748
  expression = this.parser.intern(
21531
21749
  new AssumptionExpression2(expression, questionToken),
21532
21750
  expressionStart
21533
21751
  );
21534
21752
  break;
21535
21753
  }
21536
- case 19 /* Caret */: {
21537
- const caretToken = this.parser.parseExpectedToken(19 /* Caret */);
21754
+ case 20 /* Caret */: {
21755
+ const caretToken = this.parser.parseExpectedToken(20 /* Caret */);
21538
21756
  expression = this.parser.intern(
21539
21757
  new DereferenceExpression2(expression, caretToken),
21540
21758
  expressionStart
21541
21759
  );
21542
21760
  break;
21543
21761
  }
21544
- case 26 /* Dot */: {
21545
- const dotToken = this.parser.parseExpectedToken(26 /* Dot */);
21762
+ case 27 /* Dot */: {
21763
+ const dotToken = this.parser.parseExpectedToken(27 /* Dot */);
21546
21764
  let memberName;
21547
21765
  const runKeyword = this.parser.parseOptionalKeyword(7 /* Run */);
21548
21766
  if (runKeyword !== void 0) {
@@ -21557,20 +21775,20 @@ var ExpressionParser = class {
21557
21775
  );
21558
21776
  break;
21559
21777
  }
21560
- case 45 /* OpenSquareBracket */: {
21561
- const openBracketToken = this.parser.parseExpectedToken(45 /* OpenSquareBracket */);
21778
+ case 46 /* OpenSquareBracket */: {
21779
+ const openBracketToken = this.parser.parseExpectedToken(46 /* OpenSquareBracket */);
21562
21780
  const argumentList = this._indexedAccessArgumentListParser.parseArgumentList();
21563
- const closeSquareBracketToken = this.parser.parseExpectedToken(22 /* CloseSquareBracket */);
21781
+ const closeSquareBracketToken = this.parser.parseExpectedToken(23 /* CloseSquareBracket */);
21564
21782
  expression = this.parser.intern(
21565
21783
  new IndexedAccessExpression2(expression, openBracketToken, argumentList, closeSquareBracketToken),
21566
21784
  expressionStart
21567
21785
  );
21568
21786
  break;
21569
21787
  }
21570
- case 44 /* OpenParenthesis */: {
21571
- const openParenthesisToken = this.parser.parseExpectedToken(44 /* OpenParenthesis */);
21788
+ case 45 /* OpenParenthesis */: {
21789
+ const openParenthesisToken = this.parser.parseExpectedToken(45 /* OpenParenthesis */);
21572
21790
  const argumentList = this._callArgumentListParser.parseArgumentList();
21573
- const closeParenthesisToken = this.parser.parseExpectedToken(21 /* CloseParenthesis */);
21791
+ const closeParenthesisToken = this.parser.parseExpectedToken(22 /* CloseParenthesis */);
21574
21792
  expression = this.parser.intern(
21575
21793
  new CallExpression2(expression, openParenthesisToken, argumentList, closeParenthesisToken),
21576
21794
  expressionStart
@@ -21584,13 +21802,13 @@ var ExpressionParser = class {
21584
21802
  isStartOfPostfixUnaryExpression() {
21585
21803
  if (this.parser.currentTokenOrKeyword.kind === "token") {
21586
21804
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
21587
- case 36 /* LessThan */:
21588
- case 31 /* Exclamation */:
21589
- case 44 /* OpenParenthesis */:
21590
- case 26 /* Dot */:
21591
- case 19 /* Caret */:
21592
- case 49 /* Question */:
21593
- case 45 /* OpenSquareBracket */:
21805
+ case 37 /* LessThan */:
21806
+ case 32 /* Exclamation */:
21807
+ case 45 /* OpenParenthesis */:
21808
+ case 27 /* Dot */:
21809
+ case 20 /* Caret */:
21810
+ case 50 /* Question */:
21811
+ case 46 /* OpenSquareBracket */:
21594
21812
  return true;
21595
21813
  default:
21596
21814
  return false;
@@ -21602,10 +21820,10 @@ var ExpressionParser = class {
21602
21820
  let result = false;
21603
21821
  if (this.parser.currentTokenOrKeyword.kind === "token") {
21604
21822
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
21605
- case 44 /* OpenParenthesis */:
21606
- case 45 /* OpenSquareBracket */:
21823
+ case 45 /* OpenParenthesis */:
21824
+ case 46 /* OpenSquareBracket */:
21607
21825
  case 7 /* TextTemplateHead */:
21608
- case 63 /* Identifier */:
21826
+ case 10 /* Identifier */:
21609
21827
  case 5 /* CharLiteral */:
21610
21828
  case 6 /* TextLiteral */:
21611
21829
  case 2 /* IntegerLiteral */:
@@ -21613,7 +21831,7 @@ var ExpressionParser = class {
21613
21831
  case 4 /* MeasureLiteral */:
21614
21832
  result = true;
21615
21833
  break;
21616
- case 43 /* OpenBrace */:
21834
+ case 44 /* OpenBrace */:
21617
21835
  result = !isFollowedByStatementBlock;
21618
21836
  break;
21619
21837
  }
@@ -21624,7 +21842,7 @@ var ExpressionParser = class {
21624
21842
  result = this.parser.lookAhead(() => {
21625
21843
  this.parser.parseOptionalKeyword(40 /* Async */);
21626
21844
  const functionKeyword = this.parser.parseOptionalKeyword(12 /* Function */);
21627
- return functionKeyword !== void 0 && this.parser.currentTokenOrKeyword.isToken(44 /* OpenParenthesis */);
21845
+ return functionKeyword !== void 0 && this.parser.currentTokenOrKeyword.isToken(45 /* OpenParenthesis */);
21628
21846
  });
21629
21847
  break;
21630
21848
  case 52 /* Yes */:
@@ -21645,21 +21863,21 @@ var ExpressionParser = class {
21645
21863
  let result = void 0;
21646
21864
  if (this.parser.currentTokenOrKeyword.kind === "token") {
21647
21865
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
21648
- case 44 /* OpenParenthesis */:
21866
+ case 45 /* OpenParenthesis */:
21649
21867
  result = this.parseParenthesizedExpression();
21650
21868
  break;
21651
- case 45 /* OpenSquareBracket */:
21869
+ case 46 /* OpenSquareBracket */:
21652
21870
  result = this._arrayLiteralParser.parseArrayLiteral();
21653
21871
  break;
21654
21872
  case 7 /* TextTemplateHead */:
21655
21873
  result = this.parseTextTemplateLiteral();
21656
21874
  break;
21657
- case 43 /* OpenBrace */:
21875
+ case 44 /* OpenBrace */:
21658
21876
  if (!isFollowedByStatementBlock) {
21659
21877
  result = this.parseFunctionBlockLiteral();
21660
21878
  }
21661
21879
  break;
21662
- case 63 /* Identifier */:
21880
+ case 10 /* Identifier */:
21663
21881
  result = this.parseIdentifierExpression();
21664
21882
  break;
21665
21883
  case 5 /* CharLiteral */:
@@ -21723,9 +21941,9 @@ var ExpressionParser = class {
21723
21941
  parseReferenceExpression() {
21724
21942
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
21725
21943
  const referenceKeyword = this.parser.parseExpectedKeyword(54 /* Reference */);
21726
- const openParenthesisToken = this.parser.parseExpectedToken(44 /* OpenParenthesis */);
21944
+ const openParenthesisToken = this.parser.parseExpectedToken(45 /* OpenParenthesis */);
21727
21945
  const expression = this.parseExpression(false);
21728
- const closeParenthesisToken = this.parser.parseExpectedToken(21 /* CloseParenthesis */);
21946
+ const closeParenthesisToken = this.parser.parseExpectedToken(22 /* CloseParenthesis */);
21729
21947
  const result = new ReferenceExpression2(
21730
21948
  referenceKeyword,
21731
21949
  openParenthesisToken,
@@ -21737,9 +21955,9 @@ var ExpressionParser = class {
21737
21955
  parseAutotypeCallExpression() {
21738
21956
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
21739
21957
  const colonKeyword = this.parser.parseExpectedKeyword(2 /* Autotype */);
21740
- const openParenthesisToken = this.parser.parseExpectedToken(44 /* OpenParenthesis */);
21958
+ const openParenthesisToken = this.parser.parseExpectedToken(45 /* OpenParenthesis */);
21741
21959
  const argumentList = this._callArgumentListParser.parseArgumentList();
21742
- const closeParenthesisToken = this.parser.parseExpectedToken(21 /* CloseParenthesis */);
21960
+ const closeParenthesisToken = this.parser.parseExpectedToken(22 /* CloseParenthesis */);
21743
21961
  const result = new AutotypeCallExpression2(
21744
21962
  colonKeyword,
21745
21963
  openParenthesisToken,
@@ -21756,25 +21974,25 @@ var ExpressionParser = class {
21756
21974
  }
21757
21975
  parseParenthesizedExpression() {
21758
21976
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
21759
- const openParenthesisToken = this.parser.parseExpectedToken(44 /* OpenParenthesis */);
21977
+ const openParenthesisToken = this.parser.parseExpectedToken(45 /* OpenParenthesis */);
21760
21978
  const expression = this.parseExpression(false);
21761
- const closeParenthesisToken = this.parser.parseExpectedToken(21 /* CloseParenthesis */);
21979
+ const closeParenthesisToken = this.parser.parseExpectedToken(22 /* CloseParenthesis */);
21762
21980
  const result = new ParenthesizedExpression2(openParenthesisToken, expression, closeParenthesisToken);
21763
21981
  return this.parser.intern(result, expressionStart);
21764
21982
  }
21765
21983
  parseConditionalExpression() {
21766
21984
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
21767
21985
  const condKeyword = this.parser.parseExpectedKeyword(30 /* Cond */);
21768
- const openParenthesisToken = this.parser.parseExpectedToken(44 /* OpenParenthesis */);
21986
+ const openParenthesisToken = this.parser.parseExpectedToken(45 /* OpenParenthesis */);
21769
21987
  const condition = this.parseExpression(false);
21770
- const firstComma = this.parser.parseExpectedToken(24 /* Comma */);
21988
+ const firstComma = this.parser.parseExpectedToken(25 /* Comma */);
21771
21989
  const first = this.parseExpression(false);
21772
- const secondComma = this.parser.parseOptionalToken(24 /* Comma */);
21990
+ const secondComma = this.parser.parseOptionalToken(25 /* Comma */);
21773
21991
  let second = void 0;
21774
21992
  if (secondComma !== void 0) {
21775
21993
  second = this.parseExpression(false);
21776
21994
  }
21777
- const closeParenthesisToken = this.parser.parseExpectedToken(21 /* CloseParenthesis */);
21995
+ const closeParenthesisToken = this.parser.parseExpectedToken(22 /* CloseParenthesis */);
21778
21996
  const result = new ConditionalExpression2(
21779
21997
  condKeyword,
21780
21998
  openParenthesisToken,
@@ -21801,9 +22019,6 @@ var ExpressionParser = class {
21801
22019
  return this.parser.intern(result, expressionStart);
21802
22020
  }
21803
22021
  parseTextTemplateLiteral() {
21804
- if (!this.parser.currentTokenOrKeyword.isToken(7 /* TextTemplateHead */)) {
21805
- throw internalCompilerError();
21806
- }
21807
22022
  const literalStart = this.parser.tokenOrKeywordStartPosition();
21808
22023
  const head = this.parser.parseExpectedToken(7 /* TextTemplateHead */);
21809
22024
  const spanListStart = this.parser.tokenOrKeywordStartPosition();
@@ -21886,7 +22101,7 @@ var PackageMemberDeclarationParser = class {
21886
22101
  typeAnnotation = this.parser.typeAnnotationParser.parseTypeAnnotation();
21887
22102
  }
21888
22103
  let initializer;
21889
- const equalsToken = this.parser.parseOptionalToken(57 /* Equals */);
22104
+ const equalsToken = this.parser.parseOptionalToken(58 /* Equals */);
21890
22105
  if (equalsToken !== void 0) {
21891
22106
  initializer = this.parser.expressionParser.parseExpression(false);
21892
22107
  }
@@ -21957,16 +22172,16 @@ var PackageMemberDeclarationParser = class {
21957
22172
  const declarationsParser = new SequenceParser(
21958
22173
  this.parser,
21959
22174
  () => this.isStartOfPackageMemberDeclaration(),
21960
- () => this.parser.currentTokenOrKeyword.isToken(20 /* CloseBrace */),
22175
+ () => this.parser.currentTokenOrKeyword.isToken(21 /* CloseBrace */),
21961
22176
  () => true,
21962
22177
  () => this.parsePackageMemberDeclaration(),
21963
22178
  () => this.parser.parseSemicolonOrLineBreak(),
21964
22179
  () => this.parser.tryReportDiagnosticAtCurrentRange(105 /* PackageMemberDeclarationExpected */)
21965
22180
  );
21966
- const openBraceToken = this.parser.parseExpectedToken(43 /* OpenBrace */);
22181
+ const openBraceToken = this.parser.parseExpectedToken(44 /* OpenBrace */);
21967
22182
  const listStart = this.parser.tokenOrKeywordStartPosition();
21968
22183
  const elements = declarationsParser.parse();
21969
- const closeBraceToken = this.parser.parseExpectedToken(20 /* CloseBrace */);
22184
+ const closeBraceToken = this.parser.parseExpectedToken(21 /* CloseBrace */);
21970
22185
  const declarationList = this.parser.intern(new PackageMemberDeclarationList2(elements), listStart);
21971
22186
  const result = new PackageMemberGroupDeclaration2(
21972
22187
  tagList,
@@ -21983,7 +22198,7 @@ var PackageMemberDeclarationParser = class {
21983
22198
  return false;
21984
22199
  }
21985
22200
  this.parseExtendedTypeClause();
21986
- return this.parser.currentTokenOrKeyword.isToken(48 /* PlusEquals */);
22201
+ return this.parser.currentTokenOrKeyword.isToken(49 /* PlusEquals */);
21987
22202
  });
21988
22203
  if (isTypeExtensionDeclaration) {
21989
22204
  return this.parseTypeExtensionDeclaration(declarationStart, tagList, modifierList);
@@ -21998,7 +22213,7 @@ var PackageMemberDeclarationParser = class {
21998
22213
  if (this.parser.typeParameterParser.isStartOfTypeParameterClause()) {
21999
22214
  typeParameterClause = this.parser.typeParameterParser.parseTypeParameterClause();
22000
22215
  }
22001
- const equalsToken = this.parser.parseExpectedToken(57 /* Equals */);
22216
+ const equalsToken = this.parser.parseExpectedToken(58 /* Equals */);
22002
22217
  const body = this.parser.typeDeclarationBodyParser.parseTypeDeclarationBody();
22003
22218
  let result;
22004
22219
  switch (body.kind) {
@@ -22054,7 +22269,7 @@ var PackageMemberDeclarationParser = class {
22054
22269
  parseTypeExtensionDeclaration(declarationStart, tagList, modifierList) {
22055
22270
  const typeKeyword = this.parser.parseExpectedKeyword(16 /* Type */);
22056
22271
  const extendedTypeClause = this.parseExtendedTypeClause();
22057
- const plusEqualsToken = this.parser.parseExpectedToken(48 /* PlusEquals */);
22272
+ const plusEqualsToken = this.parser.parseExpectedToken(49 /* PlusEquals */);
22058
22273
  const memberBlock = this.parser.typeMemberDeclarationParser.parseTypeMemberDeclarationBlock(false);
22059
22274
  const result = new TypeExtensionDeclaration2(
22060
22275
  tagList,
@@ -22069,17 +22284,17 @@ var PackageMemberDeclarationParser = class {
22069
22284
  parseExtendedTypeClause() {
22070
22285
  const extendedTypeClauseStart = this.parser.tokenOrKeywordStartPosition();
22071
22286
  const qualifiedName = this.parser.parseQualifiedName(102 /* TypeNameExpected */);
22072
- const lessThanToken = this.parser.parseOptionalToken(36 /* LessThan */);
22287
+ const lessThanToken = this.parser.parseOptionalToken(37 /* LessThan */);
22073
22288
  let commaList;
22074
22289
  let greaterThanToken;
22075
22290
  if (lessThanToken !== void 0) {
22076
22291
  const commas = new Array();
22077
22292
  const listStart = this.parser.tokenOrKeywordStartPosition();
22078
- while (this.parser.currentTokenOrKeyword.isToken(24 /* Comma */)) {
22293
+ while (this.parser.currentTokenOrKeyword.isToken(25 /* Comma */)) {
22079
22294
  commas.push(this.parser.parseComma());
22080
22295
  }
22081
22296
  commaList = this.parser.intern(new ExtendedTypeClauseCommaList2(commas), listStart);
22082
- greaterThanToken = this.parser.parseExpectedToken(33 /* GreaterThan */);
22297
+ greaterThanToken = this.parser.parseExpectedToken(34 /* GreaterThan */);
22083
22298
  }
22084
22299
  const result = new ExtendedTypeClause2(qualifiedName, lessThanToken, commaList, greaterThanToken);
22085
22300
  return this.parser.intern(result, extendedTypeClauseStart);
@@ -22087,9 +22302,9 @@ var PackageMemberDeclarationParser = class {
22087
22302
  getPackageMemberDeclarationParsingFunction(allowGroupDeclaration) {
22088
22303
  if (this.parser.currentTokenOrKeyword.kind === "token") {
22089
22304
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
22090
- case 63 /* Identifier */:
22305
+ case 10 /* Identifier */:
22091
22306
  return (declarationStart, tagList, modifierList) => this.parsePackageVariableDeclaration(declarationStart, tagList, modifierList);
22092
- case 43 /* OpenBrace */:
22307
+ case 44 /* OpenBrace */:
22093
22308
  return (declarationStart, tagList, modifierList) => {
22094
22309
  if (!allowGroupDeclaration) {
22095
22310
  this.parser.tryReportDiagnosticAtCurrentRange(
@@ -22129,7 +22344,7 @@ var TypeMemberDeclarationParser = class {
22129
22344
  const declarationsParser = new SequenceParser(
22130
22345
  this.parser,
22131
22346
  () => this.isStartOfTypeMemberDeclaration(parseVariantInsteadOfVariable),
22132
- () => this.parser.currentTokenOrKeyword.isToken(20 /* CloseBrace */),
22347
+ () => this.parser.currentTokenOrKeyword.isToken(21 /* CloseBrace */),
22133
22348
  () => true,
22134
22349
  () => this.parseTypeMemberDeclaration(parseVariantInsteadOfVariable),
22135
22350
  () => this.parser.parseSemicolonOrLineBreak(),
@@ -22140,15 +22355,15 @@ var TypeMemberDeclarationParser = class {
22140
22355
  return this.parser.intern(result, listStart);
22141
22356
  }
22142
22357
  isStartOfTypeMemberDeclarationBlock() {
22143
- return this.parser.currentTokenOrKeyword.isToken(43 /* OpenBrace */);
22358
+ return this.parser.currentTokenOrKeyword.isToken(44 /* OpenBrace */);
22144
22359
  }
22145
22360
  parseTypeMemberDeclarationBlock(parseVariantInsteadOfVariable) {
22146
22361
  const blockStart = this.parser.tokenOrKeywordStartPosition();
22147
- const openBraceToken = this.parser.parseExpectedToken(43 /* OpenBrace */);
22362
+ const openBraceToken = this.parser.parseExpectedToken(44 /* OpenBrace */);
22148
22363
  const memberList = this.parser.typeMemberDeclarationParser.parseTypeMemberDeclarationList(
22149
22364
  parseVariantInsteadOfVariable
22150
22365
  );
22151
- const closeBraceToken = this.parser.parseExpectedToken(20 /* CloseBrace */);
22366
+ const closeBraceToken = this.parser.parseExpectedToken(21 /* CloseBrace */);
22152
22367
  const result = new TypeMemberDeclarationBlock2(openBraceToken, memberList, closeBraceToken);
22153
22368
  return this.parser.intern(result, blockStart);
22154
22369
  }
@@ -22174,7 +22389,7 @@ var TypeMemberDeclarationParser = class {
22174
22389
  parseVariantDeclaration(declarationStart, tagList, modifierList) {
22175
22390
  const identifier2 = this.parser.parseIdentifier(4 /* Other */);
22176
22391
  let value;
22177
- const equalsToken = this.parser.parseOptionalToken(57 /* Equals */);
22392
+ const equalsToken = this.parser.parseOptionalToken(58 /* Equals */);
22178
22393
  if (equalsToken !== void 0) {
22179
22394
  value = this.parser.expressionParser.parseExpression(false);
22180
22395
  }
@@ -22260,7 +22475,7 @@ var TypeMemberDeclarationParser = class {
22260
22475
  typeAnnotation = this.parser.typeAnnotationParser.parseTypeAnnotation();
22261
22476
  }
22262
22477
  let initializer;
22263
- const equalsToken = this.parser.parseOptionalToken(57 /* Equals */);
22478
+ const equalsToken = this.parser.parseOptionalToken(58 /* Equals */);
22264
22479
  if (equalsToken !== void 0) {
22265
22480
  initializer = this.parser.expressionParser.parseExpression(false);
22266
22481
  }
@@ -22276,9 +22491,9 @@ var TypeMemberDeclarationParser = class {
22276
22491
  }
22277
22492
  parseTypeMemberGetterDeclaration(declarationStart, tagList, modifierList) {
22278
22493
  const getKeyword = this.parser.parseExpectedKeyword(58 /* Get */);
22279
- if (this.parser.currentTokenOrKeyword.isToken(45 /* OpenSquareBracket */)) {
22494
+ if (this.parser.currentTokenOrKeyword.isToken(46 /* OpenSquareBracket */)) {
22280
22495
  return this.parseIndexedElementGetterDeclaration(declarationStart, tagList, modifierList, getKeyword);
22281
- } else if (this.parser.currentTokenOrKeyword.isToken(19 /* Caret */)) {
22496
+ } else if (this.parser.currentTokenOrKeyword.isToken(20 /* Caret */)) {
22282
22497
  return this.parseDereferencedVariableGetterDeclaration(declarationStart, tagList, modifierList, getKeyword);
22283
22498
  } else {
22284
22499
  return this.parseFieldGetterDeclaration(declarationStart, tagList, modifierList, getKeyword);
@@ -22299,7 +22514,7 @@ var TypeMemberDeclarationParser = class {
22299
22514
  return this.parser.intern(result, declarationStart);
22300
22515
  }
22301
22516
  parseDereferencedVariableGetterDeclaration(declarationStart, tagList, modifierList, getKeyword) {
22302
- const caretToken = this.parser.parseExpectedToken(19 /* Caret */);
22517
+ const caretToken = this.parser.parseExpectedToken(20 /* Caret */);
22303
22518
  const typeAnnotation = this.parser.typeAnnotationParser.parseTypeAnnotation();
22304
22519
  const block = this.parser.parseOptionalFunctionBlock();
22305
22520
  const result = new DereferencedVariableGetterDeclaration2(
@@ -22328,9 +22543,9 @@ var TypeMemberDeclarationParser = class {
22328
22543
  }
22329
22544
  parseTypeMemberSetterDeclaration(declarationStart, tagList, modifierList) {
22330
22545
  const setKeyword = this.parser.parseExpectedKeyword(59 /* Set */);
22331
- if (this.parser.currentTokenOrKeyword.isToken(45 /* OpenSquareBracket */)) {
22546
+ if (this.parser.currentTokenOrKeyword.isToken(46 /* OpenSquareBracket */)) {
22332
22547
  return this.parseIndexedElementSetterDeclaration(declarationStart, tagList, modifierList, setKeyword);
22333
- } else if (this.parser.currentTokenOrKeyword.isToken(19 /* Caret */)) {
22548
+ } else if (this.parser.currentTokenOrKeyword.isToken(20 /* Caret */)) {
22334
22549
  return this.parseDereferencedVariableSetterDeclaration(declarationStart, tagList, modifierList, setKeyword);
22335
22550
  } else {
22336
22551
  return this.parseFieldSetterDeclaration(declarationStart, tagList, modifierList, setKeyword);
@@ -22343,7 +22558,7 @@ var TypeMemberDeclarationParser = class {
22343
22558
  return this.parser.intern(result, declarationStart);
22344
22559
  }
22345
22560
  parseDereferencedVariableSetterDeclaration(declarationStart, tagList, modifierList, setKeyword) {
22346
- const caretToken = this.parser.parseExpectedToken(19 /* Caret */);
22561
+ const caretToken = this.parser.parseExpectedToken(20 /* Caret */);
22347
22562
  const block = this.parser.parseOptionalFunctionBlock(false);
22348
22563
  const result = new DereferencedVariableSetterDeclaration2(
22349
22564
  tagList,
@@ -22368,13 +22583,13 @@ var TypeMemberDeclarationParser = class {
22368
22583
  getTypeMemberDeclarationParsingFunction(allowGroupDeclaration, parseVariantInsteadOfVariable) {
22369
22584
  if (this.parser.currentTokenOrKeyword.kind === "token") {
22370
22585
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
22371
- case 63 /* Identifier */:
22586
+ case 10 /* Identifier */:
22372
22587
  if (parseVariantInsteadOfVariable) {
22373
22588
  return (declarationStart, tags, modifiers) => this.parseVariantDeclaration(declarationStart, tags, modifiers);
22374
22589
  } else {
22375
22590
  return (declarationStart, tags, modifiers) => this.parseFieldDeclaration(declarationStart, tags, modifiers);
22376
22591
  }
22377
- case 43 /* OpenBrace */:
22592
+ case 44 /* OpenBrace */:
22378
22593
  return (declarationStart, tags, modifiers) => {
22379
22594
  if (!allowGroupDeclaration) {
22380
22595
  this.parser.tryReportDiagnosticAtCurrentRange(123 /* ModifierListExpected */);
@@ -22410,11 +22625,11 @@ var TagParser = class {
22410
22625
  this._argumentListParser = new ArgumentListParser(
22411
22626
  this.parser,
22412
22627
  () => this.parser.tryReportDiagnosticAtCurrentRange(115 /* TagArgumentExpected */),
22413
- 21 /* CloseParenthesis */
22628
+ 22 /* CloseParenthesis */
22414
22629
  );
22415
22630
  }
22416
22631
  isStartOfTag() {
22417
- return this.parser.currentTokenOrKeyword.isToken(35 /* HashSign */);
22632
+ return this.parser.currentTokenOrKeyword.isToken(36 /* HashSign */);
22418
22633
  }
22419
22634
  parseTagList() {
22420
22635
  const listStart = this.parser.tokenOrKeywordStartPosition();
@@ -22427,7 +22642,7 @@ var TagParser = class {
22427
22642
  }
22428
22643
  parseTag() {
22429
22644
  const tagStart = this.parser.tokenOrKeywordStartPosition();
22430
- const hashSignToken = this.parser.parseExpectedToken(35 /* HashSign */);
22645
+ const hashSignToken = this.parser.parseExpectedToken(36 /* HashSign */);
22431
22646
  const name = this.parser.parseQualifiedName(130 /* TagNameExpected */);
22432
22647
  let typeArgumentClause;
22433
22648
  if (this.parser.typeArgumentParser.isStartOfTypeArgumentClause()) {
@@ -22436,10 +22651,10 @@ var TagParser = class {
22436
22651
  let openParenthesisToken;
22437
22652
  let argumentList;
22438
22653
  let closeParenthesisToken;
22439
- if (this.parser.currentTokenOrKeyword.isToken(44 /* OpenParenthesis */)) {
22440
- openParenthesisToken = this.parser.parseExpectedToken(44 /* OpenParenthesis */);
22654
+ if (this.parser.currentTokenOrKeyword.isToken(45 /* OpenParenthesis */)) {
22655
+ openParenthesisToken = this.parser.parseExpectedToken(45 /* OpenParenthesis */);
22441
22656
  argumentList = this._argumentListParser.parseArgumentList();
22442
- closeParenthesisToken = this.parser.parseExpectedToken(21 /* CloseParenthesis */);
22657
+ closeParenthesisToken = this.parser.parseExpectedToken(22 /* CloseParenthesis */);
22443
22658
  }
22444
22659
  const result = new Tag2(
22445
22660
  hashSignToken,
@@ -22490,7 +22705,7 @@ var ModifierParser = class {
22490
22705
  const value = this.parser.parseTokenOrKeyword().asKeyword();
22491
22706
  let constraint;
22492
22707
  let closeParenthesisToken;
22493
- const openParenthesisToken = this.parser.parseOptionalToken(44 /* OpenParenthesis */);
22708
+ const openParenthesisToken = this.parser.parseOptionalToken(45 /* OpenParenthesis */);
22494
22709
  if (openParenthesisToken !== void 0) {
22495
22710
  if (this.parser.currentTokenOrKeyword.kind === "keyword") {
22496
22711
  switch (this.parser.currentTokenOrKeyword.keywordKind) {
@@ -22505,7 +22720,7 @@ var ModifierParser = class {
22505
22720
  if (constraint === void 0) {
22506
22721
  this.parser.tryReportDiagnosticAtCurrentRange(125 /* HidingLevelExpected */);
22507
22722
  }
22508
- closeParenthesisToken = this.parser.parseExpectedToken(21 /* CloseParenthesis */);
22723
+ closeParenthesisToken = this.parser.parseExpectedToken(22 /* CloseParenthesis */);
22509
22724
  }
22510
22725
  const result = new Modifier2(value, openParenthesisToken, constraint, closeParenthesisToken);
22511
22726
  return this.parser.intern(result, modifierStart);
@@ -22516,7 +22731,7 @@ var ArgumentListParser = class {
22516
22731
  this.parser = parser2;
22517
22732
  this._sequenceParser = new SequenceParser(
22518
22733
  this.parser,
22519
- () => this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */) || this.parser.expressionParser.isStartOfExpression(false),
22734
+ () => this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */) || this.parser.expressionParser.isStartOfExpression(false),
22520
22735
  () => this.parser.currentTokenOrKeyword.isToken(closingBracketKind),
22521
22736
  () => true,
22522
22737
  () => this.parseExpectedArgument(),
@@ -22535,11 +22750,11 @@ var ArgumentListParser = class {
22535
22750
  let name;
22536
22751
  let equalsToken;
22537
22752
  const isNamedArgumentDeclaration = this.parser.lookAhead(() => {
22538
- return !this.parser.parseIdentifier().isMissing && this.parser.currentTokenOrKeyword.isToken(57 /* Equals */);
22753
+ return !this.parser.parseIdentifier().isMissing && this.parser.currentTokenOrKeyword.isToken(58 /* Equals */);
22539
22754
  });
22540
22755
  if (isNamedArgumentDeclaration) {
22541
22756
  name = this.parser.parseIdentifier();
22542
- equalsToken = this.parser.parseExpectedToken(57 /* Equals */);
22757
+ equalsToken = this.parser.parseExpectedToken(58 /* Equals */);
22543
22758
  }
22544
22759
  const expression = this.parser.expressionParser.parseExpression(false);
22545
22760
  const result = new Argument2(name, equalsToken, expression);
@@ -22552,7 +22767,7 @@ var TypeArgumentParser = class {
22552
22767
  this._sequenceParser = new SequenceParser(
22553
22768
  this.parser,
22554
22769
  () => this.parser.typeSpecifierParser.isStartOfTypeSpecifier(),
22555
- () => !this.parser.currentTokenOrKeyword.isToken(24 /* Comma */),
22770
+ () => !this.parser.currentTokenOrKeyword.isToken(25 /* Comma */),
22556
22771
  () => false,
22557
22772
  () => this.parser.typeSpecifierParser.parseTypeSpecifier(),
22558
22773
  () => this.parser.parseComma(),
@@ -22561,9 +22776,9 @@ var TypeArgumentParser = class {
22561
22776
  }
22562
22777
  parseTypeArgumentClause() {
22563
22778
  const clauseStart = this.parser.tokenOrKeywordStartPosition();
22564
- const lessThanToken = this.parser.parseExpectedToken(36 /* LessThan */);
22779
+ const lessThanToken = this.parser.parseExpectedToken(37 /* LessThan */);
22565
22780
  const typeArgumentList = this.parseTypeArgumentList();
22566
- const greaterThanToken = this.parser.parseExpectedToken(33 /* GreaterThan */);
22781
+ const greaterThanToken = this.parser.parseExpectedToken(34 /* GreaterThan */);
22567
22782
  const result = new TypeArgumentClause2(lessThanToken, typeArgumentList, greaterThanToken);
22568
22783
  return this.parser.intern(result, clauseStart);
22569
22784
  }
@@ -22574,7 +22789,7 @@ var TypeArgumentParser = class {
22574
22789
  return this.parser.intern(result, listStart);
22575
22790
  }
22576
22791
  isStartOfTypeArgumentClause() {
22577
- return this.parser.currentTokenOrKeyword.isToken(36 /* LessThan */);
22792
+ return this.parser.currentTokenOrKeyword.isToken(37 /* LessThan */);
22578
22793
  }
22579
22794
  canParseTypeArgumentClause() {
22580
22795
  return this.parser.lookAhead(() => {
@@ -22588,22 +22803,22 @@ var TypeParameterParser = class {
22588
22803
  this.parser = parser2;
22589
22804
  this._sequenceParser = new SequenceParser(
22590
22805
  this.parser,
22591
- () => this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */),
22806
+ () => this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */),
22592
22807
  () => this.isTypeParameterSequenceTerminator(),
22593
- () => this.parser.currentTokenOrKeyword.isToken(33 /* GreaterThan */),
22808
+ () => this.parser.currentTokenOrKeyword.isToken(34 /* GreaterThan */),
22594
22809
  () => this.parseTypeParameterDeclaration(),
22595
22810
  () => this.parser.parseComma(),
22596
22811
  () => this.parser.tryReportDiagnosticAtCurrentRange(116 /* TypeParameterExpected */)
22597
22812
  );
22598
22813
  }
22599
22814
  isStartOfTypeParameterClause() {
22600
- return this.parser.currentTokenOrKeyword.isToken(36 /* LessThan */);
22815
+ return this.parser.currentTokenOrKeyword.isToken(37 /* LessThan */);
22601
22816
  }
22602
22817
  parseTypeParameterClause() {
22603
22818
  const clauseStart = this.parser.tokenOrKeywordStartPosition();
22604
- const lessThanToken = this.parser.parseExpectedToken(36 /* LessThan */);
22819
+ const lessThanToken = this.parser.parseExpectedToken(37 /* LessThan */);
22605
22820
  const typeParameterList = this.parseTypeParameterList();
22606
- const greaterThanToken = this.parser.parseExpectedToken(33 /* GreaterThan */);
22821
+ const greaterThanToken = this.parser.parseExpectedToken(34 /* GreaterThan */);
22607
22822
  const result = new TypeParameterClause2(lessThanToken, typeParameterList, greaterThanToken);
22608
22823
  return this.parser.intern(result, clauseStart);
22609
22824
  }
@@ -22616,10 +22831,10 @@ var TypeParameterParser = class {
22616
22831
  isTypeParameterSequenceTerminator() {
22617
22832
  if (this.parser.currentTokenOrKeyword.kind === "token") {
22618
22833
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
22619
- case 33 /* GreaterThan */:
22834
+ case 34 /* GreaterThan */:
22620
22835
  return true;
22621
- case 44 /* OpenParenthesis */:
22622
- case 57 /* Equals */:
22836
+ case 45 /* OpenParenthesis */:
22837
+ case 58 /* Equals */:
22623
22838
  return true;
22624
22839
  default:
22625
22840
  return false;
@@ -22631,12 +22846,12 @@ var TypeParameterParser = class {
22631
22846
  const declarationStart = this.parser.tokenOrKeywordStartPosition();
22632
22847
  const name = this.parser.parseIdentifier(4 /* Other */);
22633
22848
  let typeConstraint;
22634
- const colonToken = this.parser.parseOptionalToken(23 /* Colon */);
22849
+ const colonToken = this.parser.parseOptionalToken(24 /* Colon */);
22635
22850
  if (colonToken !== void 0) {
22636
22851
  typeConstraint = this.parser.typeSpecifierParser.parseTypeSpecifier();
22637
22852
  }
22638
22853
  let defaultValue;
22639
- const equalsToken = this.parser.parseOptionalToken(57 /* Equals */);
22854
+ const equalsToken = this.parser.parseOptionalToken(58 /* Equals */);
22640
22855
  if (equalsToken !== void 0) {
22641
22856
  defaultValue = this.parser.typeSpecifierParser.parseTypeSpecifier();
22642
22857
  }
@@ -22649,8 +22864,8 @@ var ParameterParser = class {
22649
22864
  this.parser = parser2;
22650
22865
  this._parameterSequenceParser = new SequenceParser(
22651
22866
  this.parser,
22652
- () => this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */) || this.parser.tagParser.isStartOfTag(),
22653
- () => this.parser.currentTokenOrKeyword.isToken(21 /* CloseParenthesis */) || this.parser.currentTokenOrKeyword.isToken(43 /* OpenBrace */),
22867
+ () => this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */) || this.parser.tagParser.isStartOfTag(),
22868
+ () => this.parser.currentTokenOrKeyword.isToken(22 /* CloseParenthesis */) || this.parser.currentTokenOrKeyword.isToken(44 /* OpenBrace */),
22654
22869
  // For better error recovery.
22655
22870
  () => true,
22656
22871
  () => this.parseParameterDeclaration(),
@@ -22659,8 +22874,8 @@ var ParameterParser = class {
22659
22874
  );
22660
22875
  this._indexParameterSequenceParser = new SequenceParser(
22661
22876
  this.parser,
22662
- () => this.parser.tagParser.isStartOfTag() || this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */),
22663
- () => this.parser.currentTokenOrKeyword.isToken(22 /* CloseSquareBracket */),
22877
+ () => this.parser.tagParser.isStartOfTag() || this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */),
22878
+ () => this.parser.currentTokenOrKeyword.isToken(23 /* CloseSquareBracket */),
22664
22879
  () => true,
22665
22880
  () => this.parser.parameterParser.parseParameterDeclaration(),
22666
22881
  () => this.parser.parseComma(),
@@ -22669,9 +22884,9 @@ var ParameterParser = class {
22669
22884
  }
22670
22885
  parseParameterClause() {
22671
22886
  const clauseStart = this.parser.tokenOrKeywordStartPosition();
22672
- const openParenthesisToken = this.parser.parseExpectedToken(44 /* OpenParenthesis */);
22887
+ const openParenthesisToken = this.parser.parseExpectedToken(45 /* OpenParenthesis */);
22673
22888
  const parameterList = this.parseParameterList();
22674
- const closeParenthesisToken = this.parser.parseExpectedToken(21 /* CloseParenthesis */);
22889
+ const closeParenthesisToken = this.parser.parseExpectedToken(22 /* CloseParenthesis */);
22675
22890
  const result = new ParameterClause2(openParenthesisToken, parameterList, closeParenthesisToken);
22676
22891
  return this.parser.intern(result, clauseStart);
22677
22892
  }
@@ -22683,9 +22898,9 @@ var ParameterParser = class {
22683
22898
  }
22684
22899
  parseIndexParameterClause() {
22685
22900
  const clauseStart = this.parser.tokenOrKeywordStartPosition();
22686
- const openBracketToken = this.parser.parseExpectedToken(45 /* OpenSquareBracket */);
22901
+ const openBracketToken = this.parser.parseExpectedToken(46 /* OpenSquareBracket */);
22687
22902
  const parameterList = this.parseIndexParameterList();
22688
- const closeSquareBracketToken = this.parser.parseExpectedToken(22 /* CloseSquareBracket */);
22903
+ const closeSquareBracketToken = this.parser.parseExpectedToken(23 /* CloseSquareBracket */);
22689
22904
  const result = new IndexParameterClause2(openBracketToken, parameterList, closeSquareBracketToken);
22690
22905
  return this.parser.intern(result, clauseStart);
22691
22906
  }
@@ -22704,7 +22919,7 @@ var ParameterParser = class {
22704
22919
  typeAnnotation = this.parser.typeAnnotationParser.parseTypeAnnotation();
22705
22920
  }
22706
22921
  let defaultValue;
22707
- const equalsToken = this.parser.parseOptionalToken(57 /* Equals */);
22922
+ const equalsToken = this.parser.parseOptionalToken(58 /* Equals */);
22708
22923
  if (equalsToken !== void 0) {
22709
22924
  defaultValue = this.parser.expressionParser.parseExpression(false);
22710
22925
  }
@@ -22718,7 +22933,7 @@ var ArrayLiteralParser = class {
22718
22933
  this._elementParser = new SequenceParser(
22719
22934
  this.parser,
22720
22935
  () => this.parser.expressionParser.isStartOfExpression(false),
22721
- () => this.parser.currentTokenOrKeyword.isToken(22 /* CloseSquareBracket */),
22936
+ () => this.parser.currentTokenOrKeyword.isToken(23 /* CloseSquareBracket */),
22722
22937
  () => true,
22723
22938
  () => this.parser.expressionParser.parseExpression(false),
22724
22939
  () => this.parser.parseComma(),
@@ -22727,11 +22942,11 @@ var ArrayLiteralParser = class {
22727
22942
  }
22728
22943
  parseArrayLiteral() {
22729
22944
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
22730
- const openSquareBracketToken = this.parser.parseExpectedToken(45 /* OpenSquareBracket */);
22945
+ const openSquareBracketToken = this.parser.parseExpectedToken(46 /* OpenSquareBracket */);
22731
22946
  const listStart = this.parser.tokenOrKeywordStartPosition();
22732
22947
  const elements = this._elementParser.parse();
22733
22948
  const elementList = this.parser.intern(new ArrayLiteralElementList2(elements), listStart);
22734
- const closeSquareBracketToken = this.parser.parseExpectedToken(22 /* CloseSquareBracket */);
22949
+ const closeSquareBracketToken = this.parser.parseExpectedToken(23 /* CloseSquareBracket */);
22735
22950
  const result = new ArrayLiteral2(openSquareBracketToken, elementList, closeSquareBracketToken);
22736
22951
  return this.parser.intern(result, expressionStart);
22737
22952
  }
@@ -22750,11 +22965,11 @@ var SwitchStatementParser = class {
22750
22965
  );
22751
22966
  this._matchExpressionSequenceParser = new SequenceParser(
22752
22967
  this.parser,
22753
- () => this.parser.currentTokenOrKeyword.isToken(13 /* Asterisk */) || this.parser.expressionParser.isStartOfExpression(true),
22754
- () => this.parser.currentTokenOrKeyword.isToken(43 /* OpenBrace */),
22968
+ () => this.parser.currentTokenOrKeyword.isToken(14 /* Asterisk */) || this.parser.expressionParser.isStartOfExpression(true),
22969
+ () => this.parser.currentTokenOrKeyword.isToken(44 /* OpenBrace */),
22755
22970
  () => true,
22756
22971
  () => {
22757
- if (this.parser.currentTokenOrKeyword.isToken(13 /* Asterisk */)) {
22972
+ if (this.parser.currentTokenOrKeyword.isToken(14 /* Asterisk */)) {
22758
22973
  return this.parseDefaultMatchExpression();
22759
22974
  }
22760
22975
  return this.parser.expressionParser.parseExpression(true);
@@ -22785,7 +23000,7 @@ var SwitchStatementParser = class {
22785
23000
  }
22786
23001
  parseDefaultMatchExpression() {
22787
23002
  const expressionStart = this.parser.tokenOrKeywordStartPosition();
22788
- const asteriskToken = this.parser.parseExpectedToken(13 /* Asterisk */);
23003
+ const asteriskToken = this.parser.parseExpectedToken(14 /* Asterisk */);
22789
23004
  const result = new DefaultMatchExpression2(asteriskToken);
22790
23005
  return this.parser.intern(result, expressionStart);
22791
23006
  }
@@ -22795,8 +23010,8 @@ var TranslationsDeclarationParser = class {
22795
23010
  this.parser = parser2;
22796
23011
  this._parameterSequenceParser = new SequenceParser(
22797
23012
  this.parser,
22798
- () => this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */),
22799
- () => this.parser.currentTokenOrKeyword.isToken(21 /* CloseParenthesis */),
23013
+ () => this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */),
23014
+ () => this.parser.currentTokenOrKeyword.isToken(22 /* CloseParenthesis */),
22800
23015
  () => true,
22801
23016
  () => this.parser.parseIdentifier(4 /* Other */),
22802
23017
  () => this.parser.parseComma(),
@@ -22804,8 +23019,8 @@ var TranslationsDeclarationParser = class {
22804
23019
  );
22805
23020
  this._typeParameterSequenceParser = new SequenceParser(
22806
23021
  this.parser,
22807
- () => this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */),
22808
- () => this.parser.currentTokenOrKeyword.isToken(33 /* GreaterThan */) || this.parser.currentTokenOrKeyword.isToken(57 /* Equals */),
23022
+ () => this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */),
23023
+ () => this.parser.currentTokenOrKeyword.isToken(34 /* GreaterThan */) || this.parser.currentTokenOrKeyword.isToken(58 /* Equals */),
22809
23024
  /* for better error recovery */
22810
23025
  () => true,
22811
23026
  () => this.parser.parseIdentifier(4 /* Other */),
@@ -22815,7 +23030,7 @@ var TranslationsDeclarationParser = class {
22815
23030
  this._typeMemberTranslationSequenceParser = new SequenceParser(
22816
23031
  this.parser,
22817
23032
  () => this.isStartOfTypeMemberTranslation(),
22818
- () => this.parser.currentTokenOrKeyword.isToken(20 /* CloseBrace */),
23033
+ () => this.parser.currentTokenOrKeyword.isToken(21 /* CloseBrace */),
22819
23034
  () => true,
22820
23035
  () => this.parseTypeMemberTranslation(),
22821
23036
  () => this.parser.parseSemicolonOrLineBreak(),
@@ -22824,7 +23039,7 @@ var TranslationsDeclarationParser = class {
22824
23039
  this._topLevelTranslationSequenceParser = new SequenceParser(
22825
23040
  this.parser,
22826
23041
  () => this.isStartOfTopLevelTranslation(),
22827
- () => this.parser.currentTokenOrKeyword.isToken(20 /* CloseBrace */),
23042
+ () => this.parser.currentTokenOrKeyword.isToken(21 /* CloseBrace */),
22828
23043
  () => true,
22829
23044
  () => this.parseTopLevelTranslation(),
22830
23045
  () => this.parser.parseSemicolonOrLineBreak(),
@@ -22832,8 +23047,8 @@ var TranslationsDeclarationParser = class {
22832
23047
  );
22833
23048
  this._indexParameterSequenceParser = new SequenceParser(
22834
23049
  this.parser,
22835
- () => this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */),
22836
- () => this.parser.currentTokenOrKeyword.isToken(22 /* CloseSquareBracket */),
23050
+ () => this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */),
23051
+ () => this.parser.currentTokenOrKeyword.isToken(23 /* CloseSquareBracket */),
22837
23052
  () => true,
22838
23053
  () => this.parser.parseIdentifier(4 /* Other */),
22839
23054
  () => this.parser.parseComma(),
@@ -22848,14 +23063,14 @@ var TranslationsDeclarationParser = class {
22848
23063
  }
22849
23064
  parseTranslationsDeclaration(declarationStart, tags, modifiers) {
22850
23065
  const translationsKeyword = this.parser.parseExpectedKeyword(55 /* Translations */);
22851
- const openBraceToken = this.parser.parseExpectedToken(43 /* OpenBrace */);
23066
+ const openBraceToken = this.parser.parseExpectedToken(44 /* OpenBrace */);
22852
23067
  const listStart = this.parser.tokenOrKeywordStartPosition();
22853
23068
  const translationListElements = this._topLevelTranslationSequenceParser.parse();
22854
23069
  const translationList = this.parser.intern(
22855
23070
  new TopLevelTranslationList2(translationListElements),
22856
23071
  listStart
22857
23072
  );
22858
- const closeBraceToken = this.parser.parseExpectedToken(20 /* CloseBrace */);
23073
+ const closeBraceToken = this.parser.parseExpectedToken(21 /* CloseBrace */);
22859
23074
  const result = new TranslationsDeclaration2(
22860
23075
  tags,
22861
23076
  modifiers,
@@ -22883,7 +23098,7 @@ var TranslationsDeclarationParser = class {
22883
23098
  getTopLevelTranslationParsingFunction() {
22884
23099
  if (this.parser.currentTokenOrKeyword.kind === "token") {
22885
23100
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
22886
- case 63 /* Identifier */:
23101
+ case 10 /* Identifier */:
22887
23102
  return () => this.parsePackageVariableTranslation();
22888
23103
  case 6 /* TextLiteral */:
22889
23104
  return () => this.parseTextLiteralTranslation();
@@ -22905,9 +23120,9 @@ var TranslationsDeclarationParser = class {
22905
23120
  getTypeMemberTranslationParsingFunction() {
22906
23121
  if (this.parser.currentTokenOrKeyword.kind === "token") {
22907
23122
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
22908
- case 63 /* Identifier */:
23123
+ case 10 /* Identifier */:
22909
23124
  return () => this.parseFieldOrVariantTranslation();
22910
- case 45 /* OpenSquareBracket */:
23125
+ case 46 /* OpenSquareBracket */:
22911
23126
  return () => this.parseIndexerTranslation();
22912
23127
  }
22913
23128
  } else {
@@ -22924,7 +23139,7 @@ var TranslationsDeclarationParser = class {
22924
23139
  const translationStart = this.parser.tokenOrKeywordStartPosition();
22925
23140
  const importKeyword = this.parser.parseExpectedKeyword(18 /* Import */);
22926
23141
  const sourceName = this.parser.parseQualifiedName(103 /* PackageNameExpected */);
22927
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23142
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
22928
23143
  const translatedName = this.parser.parseQualifiedName(103 /* PackageNameExpected */);
22929
23144
  const result = new PackageImportTranslation2(importKeyword, sourceName, minusGreaterThanToken, translatedName);
22930
23145
  return this.parser.intern(result, translationStart);
@@ -22932,7 +23147,7 @@ var TranslationsDeclarationParser = class {
22932
23147
  parsePackageVariableTranslation() {
22933
23148
  const translationStart = this.parser.tokenOrKeywordStartPosition();
22934
23149
  const sourceName = this.parser.parseIdentifier(4 /* Other */);
22935
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23150
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
22936
23151
  const translatedName = this.parser.parseIdentifier(4 /* Other */);
22937
23152
  const result = new PackageVariableTranslation2(sourceName, minusGreaterThanToken, translatedName);
22938
23153
  return this.parser.intern(result, translationStart);
@@ -22943,7 +23158,7 @@ var TranslationsDeclarationParser = class {
22943
23158
  const sourceName = this.parser.parseIdentifier(4 /* Other */);
22944
23159
  const sourceTypeParameterClause = this.parseOptionalTypeParameterClause();
22945
23160
  const sourceParameterClause = this.parseParameterClause();
22946
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23161
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
22947
23162
  const translatedName = this.parser.parseIdentifier(4 /* Other */);
22948
23163
  const translatedTypeParameterClause = this.parseOptionalTypeParameterClause();
22949
23164
  const translatedParameterClause = this.parseParameterClause();
@@ -22965,7 +23180,7 @@ var TranslationsDeclarationParser = class {
22965
23180
  const sourceName = this.parser.parseIdentifier(4 /* Other */);
22966
23181
  const sourceTypeParameterClause = this.parseOptionalTypeParameterClause();
22967
23182
  const sourceParameterClause = this.parseParameterClause();
22968
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23183
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
22969
23184
  const translatedName = this.parser.parseIdentifier(4 /* Other */);
22970
23185
  const translatedTypeParameterClause = this.parseOptionalTypeParameterClause();
22971
23186
  const translatedParameterClause = this.parseParameterClause();
@@ -22984,7 +23199,7 @@ var TranslationsDeclarationParser = class {
22984
23199
  parseFieldOrVariantTranslation() {
22985
23200
  const translationStart = this.parser.tokenOrKeywordStartPosition();
22986
23201
  const sourceName = this.parser.parseIdentifier(3 /* FieldTranslation */);
22987
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23202
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
22988
23203
  const translatedName = this.parser.parseIdentifier(3 /* FieldTranslation */);
22989
23204
  const result = new FieldOrVariantTranslation2(sourceName, minusGreaterThanToken, translatedName);
22990
23205
  return this.parser.intern(result, translationStart);
@@ -22993,7 +23208,7 @@ var TranslationsDeclarationParser = class {
22993
23208
  const translationStart = this.parser.tokenOrKeywordStartPosition();
22994
23209
  const creationKeyword = this.parser.parseExpectedKeyword(31 /* Creation */);
22995
23210
  const sourceParameterClause = this.parseParameterClause();
22996
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23211
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
22997
23212
  const translatedParameterClause = this.parseParameterClause();
22998
23213
  const result = new ConstructorTranslation2(
22999
23214
  creationKeyword,
@@ -23006,23 +23221,23 @@ var TranslationsDeclarationParser = class {
23006
23221
  parseIndexerTranslation() {
23007
23222
  const translationStart = this.parser.tokenOrKeywordStartPosition();
23008
23223
  const sourceParameterClause = this.parseIndexParameterClause();
23009
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23224
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
23010
23225
  const translatedParameterClause = this.parseIndexParameterClause();
23011
23226
  const result = new IndexerTranslation2(sourceParameterClause, minusGreaterThanToken, translatedParameterClause);
23012
23227
  return this.parser.intern(result, translationStart);
23013
23228
  }
23014
23229
  parseOptionalTypeParameterClause() {
23015
23230
  let result;
23016
- if (this.parser.currentTokenOrKeyword.isToken(36 /* LessThan */)) {
23231
+ if (this.parser.currentTokenOrKeyword.isToken(37 /* LessThan */)) {
23017
23232
  const clauseStart = this.parser.tokenOrKeywordStartPosition();
23018
- const lessThanToken = this.parser.parseExpectedToken(36 /* LessThan */);
23233
+ const lessThanToken = this.parser.parseExpectedToken(37 /* LessThan */);
23019
23234
  const listStart = this.parser.tokenOrKeywordStartPosition();
23020
23235
  const elements = this._typeParameterSequenceParser.parse();
23021
23236
  const parameterList = this.parser.intern(
23022
23237
  new TranslationTypeParameterList2(elements),
23023
23238
  listStart
23024
23239
  );
23025
- const greaterThanToken = this.parser.parseExpectedToken(33 /* GreaterThan */);
23240
+ const greaterThanToken = this.parser.parseExpectedToken(34 /* GreaterThan */);
23026
23241
  result = this.parser.intern(
23027
23242
  new TranslationTypeParameterClause2(lessThanToken, parameterList, greaterThanToken),
23028
23243
  clauseStart
@@ -23032,21 +23247,21 @@ var TranslationsDeclarationParser = class {
23032
23247
  }
23033
23248
  parseParameterClause() {
23034
23249
  const clauseStart = this.parser.tokenOrKeywordStartPosition();
23035
- const openParenthesisToken = this.parser.parseExpectedToken(44 /* OpenParenthesis */);
23250
+ const openParenthesisToken = this.parser.parseExpectedToken(45 /* OpenParenthesis */);
23036
23251
  const listStart = this.parser.tokenOrKeywordStartPosition();
23037
23252
  const elements = this._parameterSequenceParser.parse();
23038
23253
  const parameterList = this.parser.intern(new TranslationParameterList2(elements), listStart);
23039
- const closeParenthesisToken = this.parser.parseExpectedToken(21 /* CloseParenthesis */);
23254
+ const closeParenthesisToken = this.parser.parseExpectedToken(22 /* CloseParenthesis */);
23040
23255
  const result = new TranslationParameterClause2(openParenthesisToken, parameterList, closeParenthesisToken);
23041
23256
  return this.parser.intern(result, clauseStart);
23042
23257
  }
23043
23258
  parseIndexParameterClause() {
23044
23259
  const clauseStart = this.parser.tokenOrKeywordStartPosition();
23045
- const openBracketToken = this.parser.parseExpectedToken(45 /* OpenSquareBracket */);
23260
+ const openBracketToken = this.parser.parseExpectedToken(46 /* OpenSquareBracket */);
23046
23261
  const listStart = this.parser.tokenOrKeywordStartPosition();
23047
23262
  const elements = this._indexParameterSequenceParser.parse();
23048
23263
  const parameterList = this.parser.intern(new TranslationParameterList2(elements), listStart);
23049
- const closeSquareBracketToken = this.parser.parseExpectedToken(22 /* CloseSquareBracket */);
23264
+ const closeSquareBracketToken = this.parser.parseExpectedToken(23 /* CloseSquareBracket */);
23050
23265
  const result = new IndexParameterTranslationClause2(openBracketToken, parameterList, closeSquareBracketToken);
23051
23266
  return this.parser.intern(result, clauseStart);
23052
23267
  }
@@ -23055,24 +23270,24 @@ var TranslationsDeclarationParser = class {
23055
23270
  const typeKeyword = this.parser.parseExpectedKeyword(16 /* Type */);
23056
23271
  const sourceName = this.parser.parseIdentifier(4 /* Other */);
23057
23272
  const sourceTypeParameterClause = this.parseOptionalTypeParameterClause();
23058
- if (this.parser.currentTokenOrKeyword.isToken(44 /* OpenParenthesis */)) {
23273
+ if (this.parser.currentTokenOrKeyword.isToken(45 /* OpenParenthesis */)) {
23059
23274
  return this.parseFunctionTypeTranslation(translationStart, typeKeyword, sourceName, sourceTypeParameterClause);
23060
23275
  } else {
23061
23276
  return this.parseTypeTranslation(translationStart, typeKeyword, sourceName, sourceTypeParameterClause);
23062
23277
  }
23063
23278
  }
23064
23279
  parseTypeTranslation(translationStart, typeKeyword, sourceName, sourceTypeParameterClause) {
23065
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23280
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
23066
23281
  const translatedName = this.parser.parseIdentifier(4 /* Other */);
23067
23282
  const translatedTypeParameterClause = this.parseOptionalTypeParameterClause();
23068
23283
  let memberList;
23069
23284
  let closeBraceToken;
23070
- const openBraceToken = this.parser.parseOptionalToken(43 /* OpenBrace */);
23285
+ const openBraceToken = this.parser.parseOptionalToken(44 /* OpenBrace */);
23071
23286
  if (openBraceToken !== void 0) {
23072
23287
  const listStart = this.parser.tokenOrKeywordStartPosition();
23073
23288
  const elements = this._typeMemberTranslationSequenceParser.parse();
23074
23289
  memberList = this.parser.intern(new TypeMemberTranslationList2(elements), listStart);
23075
- closeBraceToken = this.parser.parseExpectedToken(20 /* CloseBrace */);
23290
+ closeBraceToken = this.parser.parseExpectedToken(21 /* CloseBrace */);
23076
23291
  }
23077
23292
  const result = new TypeTranslation2(
23078
23293
  typeKeyword,
@@ -23089,7 +23304,7 @@ var TranslationsDeclarationParser = class {
23089
23304
  }
23090
23305
  parseFunctionTypeTranslation(translationStart, typeKeyword, sourceName, sourceTypeParameterClause) {
23091
23306
  const sourceParameterClause = this.parseParameterClause();
23092
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23307
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
23093
23308
  const translatedName = this.parser.parseIdentifier(4 /* Other */);
23094
23309
  const translatedTypeParameterClause = this.parseOptionalTypeParameterClause();
23095
23310
  const translatedParameterClause = this.parseParameterClause();
@@ -23108,7 +23323,7 @@ var TranslationsDeclarationParser = class {
23108
23323
  parseTextLiteralTranslation() {
23109
23324
  const translationStart = this.parser.tokenOrKeywordStartPosition();
23110
23325
  const sourceTextLiteral = this.parser.parseExpectedToken(6 /* TextLiteral */);
23111
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23326
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
23112
23327
  const translatedTextLiteral = this.parser.parseExpectedToken(6 /* TextLiteral */);
23113
23328
  const result = new TextLiteralTranslation2(
23114
23329
  sourceTextLiteral,
@@ -23120,7 +23335,7 @@ var TranslationsDeclarationParser = class {
23120
23335
  parseTextTemplateLiteralTranslation() {
23121
23336
  const translationStart = this.parser.tokenOrKeywordStartPosition();
23122
23337
  const sourceTextTemplateLiteral = this.parser.expressionParser.parseTextTemplateLiteral();
23123
- const minusGreaterThanToken = this.parser.parseExpectedToken(42 /* MinusGreaterThan */);
23338
+ const minusGreaterThanToken = this.parser.parseExpectedToken(43 /* MinusGreaterThan */);
23124
23339
  const translatedTextTemplateLiteral = this.parser.expressionParser.parseTextTemplateLiteral();
23125
23340
  const result = new TextTemplateLiteralTranslation2(
23126
23341
  sourceTextTemplateLiteral,
@@ -23143,10 +23358,10 @@ var TypeSpecifierParser = class {
23143
23358
  parseUnionTypeSpecifier() {
23144
23359
  const specifierStart = this.parser.tokenOrKeywordStartPosition();
23145
23360
  let result = this.parseIntersectionTypeSpecifier();
23146
- if (this.parser.currentTokenOrKeyword.isToken(17 /* Bar */)) {
23361
+ if (this.parser.currentTokenOrKeyword.isToken(18 /* Bar */)) {
23147
23362
  const typeListElements = [result];
23148
- while (this.parser.currentTokenOrKeyword.isToken(17 /* Bar */)) {
23149
- typeListElements.push(this.parser.parseExpectedToken(17 /* Bar */));
23363
+ while (this.parser.currentTokenOrKeyword.isToken(18 /* Bar */)) {
23364
+ typeListElements.push(this.parser.parseExpectedToken(18 /* Bar */));
23150
23365
  typeListElements.push(this.parseIntersectionTypeSpecifier());
23151
23366
  }
23152
23367
  result = this.parser.intern(new UnionTypeSpecifier2(typeListElements), specifierStart);
@@ -23156,10 +23371,10 @@ var TypeSpecifierParser = class {
23156
23371
  parseIntersectionTypeSpecifier() {
23157
23372
  const specifierStart = this.parser.tokenOrKeywordStartPosition();
23158
23373
  let result = this.parsePostfixTypeSpecifier();
23159
- if (this.parser.currentTokenOrKeyword.isToken(10 /* Ampersand */)) {
23374
+ if (this.parser.currentTokenOrKeyword.isToken(11 /* Ampersand */)) {
23160
23375
  const typeListElements = [result];
23161
- while (this.parser.currentTokenOrKeyword.isToken(10 /* Ampersand */)) {
23162
- typeListElements.push(this.parser.parseExpectedToken(10 /* Ampersand */));
23376
+ while (this.parser.currentTokenOrKeyword.isToken(11 /* Ampersand */)) {
23377
+ typeListElements.push(this.parser.parseExpectedToken(11 /* Ampersand */));
23163
23378
  typeListElements.push(this.parsePostfixTypeSpecifier());
23164
23379
  }
23165
23380
  result = this.parser.intern(new IntersectionTypeSpecifier2(typeListElements), specifierStart);
@@ -23169,8 +23384,8 @@ var TypeSpecifierParser = class {
23169
23384
  parsePostfixTypeSpecifier() {
23170
23385
  const specifierStart = this.parser.tokenOrKeywordStartPosition();
23171
23386
  let typeSpecifier = this.parsePrimaryTypeSpecifier();
23172
- if (this.parser.currentTokenOrKeyword.isToken(49 /* Question */) && (typeSpecifier.kind === 10 /* NamedTypeSpecifier */ || typeSpecifier.kind === 13 /* ParenthesizedTypeSpecifier */)) {
23173
- const questionToken = this.parser.parseExpectedToken(49 /* Question */);
23387
+ if (this.parser.currentTokenOrKeyword.isToken(50 /* Question */) && (typeSpecifier.kind === 10 /* NamedTypeSpecifier */ || typeSpecifier.kind === 13 /* ParenthesizedTypeSpecifier */)) {
23388
+ const questionToken = this.parser.parseExpectedToken(50 /* Question */);
23174
23389
  typeSpecifier = this.parser.intern(
23175
23390
  new NullableTypeSpecifier2(typeSpecifier, questionToken),
23176
23391
  specifierStart
@@ -23191,7 +23406,7 @@ var TypeSpecifierParser = class {
23191
23406
  const specifierStart = this.parser.tokenOrKeywordStartPosition();
23192
23407
  const qualifiedName = this.parser.parseQualifiedName(102 /* TypeNameExpected */);
23193
23408
  let typeArgumentClause;
23194
- if (this.parser.currentTokenOrKeyword.isToken(36 /* LessThan */)) {
23409
+ if (this.parser.currentTokenOrKeyword.isToken(37 /* LessThan */)) {
23195
23410
  typeArgumentClause = this.parser.typeArgumentParser.parseTypeArgumentClause();
23196
23411
  }
23197
23412
  const result = new NamedTypeSpecifier2(qualifiedName, typeArgumentClause);
@@ -23199,9 +23414,9 @@ var TypeSpecifierParser = class {
23199
23414
  }
23200
23415
  parseParenthesizedTypeSpecifier() {
23201
23416
  const specifierStart = this.parser.tokenOrKeywordStartPosition();
23202
- const openParenthesisToken = this.parser.parseExpectedToken(44 /* OpenParenthesis */);
23417
+ const openParenthesisToken = this.parser.parseExpectedToken(45 /* OpenParenthesis */);
23203
23418
  const typeSpecifier = this.parseTypeSpecifier();
23204
- const closeParenthesisToken = this.parser.parseExpectedToken(21 /* CloseParenthesis */);
23419
+ const closeParenthesisToken = this.parser.parseExpectedToken(22 /* CloseParenthesis */);
23205
23420
  const result = new ParenthesizedTypeSpecifier2(openParenthesisToken, typeSpecifier, closeParenthesisToken);
23206
23421
  return this.parser.intern(result, specifierStart);
23207
23422
  }
@@ -23258,9 +23473,9 @@ var TypeSpecifierParser = class {
23258
23473
  getPrimaryTypeSpecifierParsingFunction() {
23259
23474
  if (this.parser.currentTokenOrKeyword.kind === "token") {
23260
23475
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
23261
- case 63 /* Identifier */:
23476
+ case 10 /* Identifier */:
23262
23477
  return () => this.parseNamedTypeSpecifier();
23263
- case 44 /* OpenParenthesis */:
23478
+ case 45 /* OpenParenthesis */:
23264
23479
  return () => this.parseParenthesizedTypeSpecifier();
23265
23480
  }
23266
23481
  } else {
@@ -23286,8 +23501,8 @@ var TypeDeclarationBodyParser = class {
23286
23501
  this.parser = parser2;
23287
23502
  this._baseTypesSequenceParser = new SequenceParser(
23288
23503
  this.parser,
23289
- () => this.parser.currentTokenOrKeyword.isToken(63 /* Identifier */),
23290
- () => this.parser.currentTokenOrKeyword.isToken(43 /* OpenBrace */),
23504
+ () => this.parser.currentTokenOrKeyword.isToken(10 /* Identifier */),
23505
+ () => this.parser.currentTokenOrKeyword.isToken(44 /* OpenBrace */),
23291
23506
  () => true,
23292
23507
  () => this.parser.typeSpecifierParser.parseNamedTypeSpecifier(),
23293
23508
  () => this.parser.parseComma(),
@@ -23378,8 +23593,8 @@ var TypeDeclarationBodyParser = class {
23378
23593
  getTypeDeclarationBodyParsingFunction() {
23379
23594
  if (this.parser.currentTokenOrKeyword.kind === "token") {
23380
23595
  switch (this.parser.currentTokenOrKeyword.tokenKind) {
23381
- case 63 /* Identifier */:
23382
- case 44 /* OpenParenthesis */:
23596
+ case 10 /* Identifier */:
23597
+ case 45 /* OpenParenthesis */:
23383
23598
  return () => this.parseAliasTypeDeclarationBody();
23384
23599
  }
23385
23600
  } else {
@@ -23405,11 +23620,11 @@ var TypeAnnotationParser = class {
23405
23620
  this.parser = parser2;
23406
23621
  }
23407
23622
  isStartOfTypeAnnotation() {
23408
- return this.parser.currentTokenOrKeyword.isToken(23 /* Colon */);
23623
+ return this.parser.currentTokenOrKeyword.isToken(24 /* Colon */);
23409
23624
  }
23410
23625
  parseTypeAnnotation() {
23411
23626
  const typeAnnotationStart = this.parser.tokenOrKeywordStartPosition();
23412
- const colonToken = this.parser.parseExpectedToken(23 /* Colon */);
23627
+ const colonToken = this.parser.parseExpectedToken(24 /* Colon */);
23413
23628
  const typeSpecifier = this.parser.typeSpecifierParser.parseTypeSpecifier();
23414
23629
  const result = new TypeAnnotation2(colonToken, typeSpecifier);
23415
23630
  return this.parser.intern(result, typeAnnotationStart);
@@ -23431,7 +23646,11 @@ var TokenDetails = class {
23431
23646
  return this.value.tokenKind;
23432
23647
  }
23433
23648
  toString() {
23434
- return this.value.value;
23649
+ let value = this.value.value;
23650
+ if (value === "") {
23651
+ value = `(${getTokenName(this.value.tokenKind)})`;
23652
+ }
23653
+ return value;
23435
23654
  }
23436
23655
  isToken(kind) {
23437
23656
  return this.value.tokenKind === kind;
@@ -27906,11 +28125,9 @@ function modifierToModifierFlag(modifier) {
27906
28125
 
27907
28126
  // source/analysis/ModifierValidator.ts
27908
28127
  var ModifierValidator = class _ModifierValidator {
27909
- constructor(_analyzer, _diagnostics, _locale, _dialect) {
28128
+ constructor(_analyzer, _diagnostics) {
27910
28129
  this._analyzer = _analyzer;
27911
28130
  this._diagnostics = _diagnostics;
27912
- this._locale = _locale;
27913
- this._dialect = _dialect;
27914
28131
  this.effectiveModifiers = [];
27915
28132
  }
27916
28133
  static {
@@ -28163,7 +28380,7 @@ var ModifierValidator = class _ModifierValidator {
28163
28380
  break;
28164
28381
  }
28165
28382
  case 22 /* PackageAliasTypeDeclaration */: {
28166
- const declarationKind = 1 /* AliasTypeDeclaration */;
28383
+ const declarationKind = declaration.body.aliasedTypeSpecifier.kind !== 16 /* InvalidTypeSpecifier */ ? 1 /* AliasTypeDeclaration */ : 15 /* InvalidDeclaration */;
28167
28384
  this.validatePackageMemberModifierList(declaration.modifierList, declarationKind, parentGroupFlags);
28168
28385
  this.validatePackageMemberCanBePlacedInGroupWithModifiers(
28169
28386
  declarationKind,
@@ -28218,7 +28435,6 @@ var ModifierValidator = class _ModifierValidator {
28218
28435
  case 43 /* InvalidPackageMemberDeclaration */: {
28219
28436
  const declarationKind = 15 /* InvalidDeclaration */;
28220
28437
  this.validatePackageMemberModifierList(declaration.modifierList, declarationKind, parentGroupFlags);
28221
- this.validatePackageMemberCanBePlacedInGroupWithModifiers(declarationKind, declaration, parentGroupFlags);
28222
28438
  break;
28223
28439
  }
28224
28440
  case 26 /* PackageEntryPointDeclaration */:
@@ -28256,7 +28472,7 @@ var ModifierValidator = class _ModifierValidator {
28256
28472
  const flag = 128 /* Basic */;
28257
28473
  if ((flags & flag) !== 0) {
28258
28474
  this.reportDuplicateModifier(modifier, flag, parentGroupFlags);
28259
- } else if (!(declarationKind === 2 /* MemberGroupDeclaration */ || declarationKind === 8 /* ObjectTypeDeclaration */)) {
28475
+ } else if (!(declarationKind === 2 /* MemberGroupDeclaration */ || declarationKind === 8 /* ObjectTypeDeclaration */ || declarationKind === 15 /* InvalidDeclaration */)) {
28260
28476
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
28261
28477
  332 /* BasicModifierCanOnlyBeAppliedToObjectTypes */,
28262
28478
  modifier
@@ -28274,7 +28490,7 @@ var ModifierValidator = class _ModifierValidator {
28274
28490
  const flag = 64 /* Abstract */;
28275
28491
  if ((flags & flag) !== 0) {
28276
28492
  this.reportDuplicateModifier(modifier, flag, parentGroupFlags);
28277
- } else if (!(declarationKind === 2 /* MemberGroupDeclaration */ || declarationKind === 8 /* ObjectTypeDeclaration */)) {
28493
+ } else if (!(declarationKind === 2 /* MemberGroupDeclaration */ || declarationKind === 8 /* ObjectTypeDeclaration */ || declarationKind === 15 /* InvalidDeclaration */)) {
28278
28494
  this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
28279
28495
  333 /* AbstractModifierCanOnlyBeAppliedToObjectTypes */,
28280
28496
  modifier
@@ -28297,7 +28513,7 @@ var ModifierValidator = class _ModifierValidator {
28297
28513
  modifier,
28298
28514
  this.findModifier(512 /* Async */)
28299
28515
  );
28300
- } else if (!(declarationKind === 2 /* MemberGroupDeclaration */ || declarationKind === 11 /* VariableDeclaration */)) {
28516
+ } else if (!(declarationKind === 2 /* MemberGroupDeclaration */ || declarationKind === 11 /* VariableDeclaration */ || declarationKind === 15 /* InvalidDeclaration */)) {
28301
28517
  this.reportModifierIsNotAllowedHere(modifier);
28302
28518
  }
28303
28519
  flags |= flag;
@@ -28312,7 +28528,7 @@ var ModifierValidator = class _ModifierValidator {
28312
28528
  modifier,
28313
28529
  this.findModifier(1024 /* Const */)
28314
28530
  );
28315
- } else if (!(declarationKind === 2 /* MemberGroupDeclaration */ || declarationKind === 6 /* FunctionDeclaration */)) {
28531
+ } else if (!(declarationKind === 2 /* MemberGroupDeclaration */ || declarationKind === 6 /* FunctionDeclaration */ || declarationKind === 15 /* InvalidDeclaration */)) {
28316
28532
  this.reportModifierIsNotAllowedHere(modifier);
28317
28533
  }
28318
28534
  flags |= flag;
@@ -28471,11 +28687,6 @@ var ModifierValidator = class _ModifierValidator {
28471
28687
  );
28472
28688
  break;
28473
28689
  case 57 /* InvalidTypeMemberDeclaration */:
28474
- this.validateTypeMemberCanBePlacedInGroupWithModifiers(
28475
- declaration.kind,
28476
- declaration,
28477
- parentGroupFlags
28478
- );
28479
28690
  break;
28480
28691
  case 142 /* VariantDeclaration */:
28481
28692
  this.validateTypeMemberCanBePlacedInGroupWithModifiers(
@@ -28643,7 +28854,7 @@ var ModifierValidator = class _ModifierValidator {
28643
28854
  modifier,
28644
28855
  this.findModifier(512 /* Async */)
28645
28856
  );
28646
- } else if (!(typeMemberDeclarationKind === 44 /* TypeMemberGroupDeclaration */ || typeMemberDeclarationKind === 54 /* FieldDeclaration */)) {
28857
+ } else if (!(typeMemberDeclarationKind === 44 /* TypeMemberGroupDeclaration */ || typeMemberDeclarationKind === 54 /* FieldDeclaration */ || typeMemberDeclarationKind === 57 /* InvalidTypeMemberDeclaration */)) {
28647
28858
  this.reportModifierIsNotAllowedHere(modifier);
28648
28859
  }
28649
28860
  flags |= flag;
@@ -28658,7 +28869,7 @@ var ModifierValidator = class _ModifierValidator {
28658
28869
  modifier,
28659
28870
  this.findModifier(1024 /* Const */)
28660
28871
  );
28661
- } else if (!(typeMemberDeclarationKind === 44 /* TypeMemberGroupDeclaration */ || typeMemberDeclarationKind === 52 /* MethodDeclaration */)) {
28872
+ } else if (!(typeMemberDeclarationKind === 44 /* TypeMemberGroupDeclaration */ || typeMemberDeclarationKind === 52 /* MethodDeclaration */ || typeMemberDeclarationKind === 57 /* InvalidTypeMemberDeclaration */)) {
28662
28873
  this.reportModifierIsNotAllowedHere(modifier);
28663
28874
  }
28664
28875
  flags |= flag;
@@ -35944,7 +36155,7 @@ var GraphBuilder = class {
35944
36155
  }
35945
36156
  visitAssignmentStatement(node) {
35946
36157
  this.visitChildren(node);
35947
- if (node.operator.tokenKind === 57 /* Equals */ && isNarrowableExpression(node.left)) {
36158
+ if (node.operator.tokenKind === 58 /* Equals */ && isNarrowableExpression(node.left)) {
35948
36159
  this.setAssignmentAsCurrentPredecessor(new AssignmentNode(this._currentPredecessor, node));
35949
36160
  }
35950
36161
  }
@@ -36211,7 +36422,7 @@ var GraphBuilder = class {
36211
36422
  this.visitCondition(node.left, leftFlowTargets);
36212
36423
  this._currentPredecessor = rightPredecessor.toNode();
36213
36424
  this.visitCondition(node.right, conditionTargets);
36214
- } else if (operator.kind === 0 /* Token */ && (operator.tokenKind === 29 /* EqualsEquals */ || operator.tokenKind === 32 /* ExclamationEquals */) && (isNarrowableExpression(node.left) || isNarrowableExpression(node.right))) {
36425
+ } else if (operator.kind === 0 /* Token */ && (operator.tokenKind === 30 /* EqualsEquals */ || operator.tokenKind === 33 /* ExclamationEquals */) && (isNarrowableExpression(node.left) || isNarrowableExpression(node.right))) {
36215
36426
  this.visitChildren(node);
36216
36427
  conditionTargets?.createAndAddConditionPredecessor(node, this._currentPredecessor);
36217
36428
  } else {
@@ -36703,9 +36914,9 @@ var TypeNarrower = class {
36703
36914
  const left = unwrapParenthesizedExpressions(node.syntaxNode.left);
36704
36915
  const right = unwrapParenthesizedExpressions(node.syntaxNode.right);
36705
36916
  const operator = node.syntaxNode.operator;
36706
- if (operator.kind === 0 /* Token */ && (operator.tokenKind === 29 /* EqualsEquals */ || operator.tokenKind === 32 /* ExclamationEquals */)) {
36917
+ if (operator.kind === 0 /* Token */ && (operator.tokenKind === 30 /* EqualsEquals */ || operator.tokenKind === 33 /* ExclamationEquals */)) {
36707
36918
  if (this.isSameReferenceAsNarrowedExpression(left) && NodeTypeUtils.isNoneLiteral(right) || this.isSameReferenceAsNarrowedExpression(right) && NodeTypeUtils.isNoneLiteral(left)) {
36708
- const isEqual = node.isTrue ? operator.tokenKind === 29 /* EqualsEquals */ : !(operator.tokenKind === 29 /* EqualsEquals */);
36919
+ const isEqual = node.isTrue ? operator.tokenKind === 30 /* EqualsEquals */ : !(operator.tokenKind === 30 /* EqualsEquals */);
36709
36920
  return this.getTypeAtComparisonWithNone(typeAtPredecessor, isEqual);
36710
36921
  }
36711
36922
  }
@@ -36718,7 +36929,7 @@ var TypeNarrower = class {
36718
36929
  }
36719
36930
  }
36720
36931
  getTypeAtAssignment(node) {
36721
- if (node.syntaxNode.operator.tokenKind !== 57 /* Equals */) {
36932
+ if (node.syntaxNode.operator.tokenKind !== 58 /* Equals */) {
36722
36933
  return this.getTypeAtControlFlowNode(node.predecessor);
36723
36934
  }
36724
36935
  const reference = getReferenceAtExpressionIfNarrowable(this._analyzer, node.syntaxNode.left);
@@ -37010,9 +37221,9 @@ var UserDefinableUnaryOperatorResolver = class {
37010
37221
  const operator = this._node.operator;
37011
37222
  if (operator.kind === 0 /* Token */) {
37012
37223
  switch (operator.tokenKind) {
37013
- case 46 /* Plus */:
37224
+ case 47 /* Plus */:
37014
37225
  return 0 /* UnaryPlus */;
37015
- case 39 /* Minus */:
37226
+ case 40 /* Minus */:
37016
37227
  return 1 /* UnaryMinus */;
37017
37228
  }
37018
37229
  } else if (operator.kind === 3 /* Keyword */) {
@@ -39758,7 +39969,7 @@ var Analyzer = class _Analyzer {
39758
39969
  return 3 /* ReferencedValue */;
39759
39970
  }
39760
39971
  if (parent.kind === 91 /* AssignmentStatement */ && unwrapParenthesizedExpressions(parent.left) === node) {
39761
- return parent.operator.tokenKind === 57 /* Equals */ ? 1 /* Set */ : 2 /* GetSet */;
39972
+ return parent.operator.tokenKind === 58 /* Equals */ ? 1 /* Set */ : 2 /* GetSet */;
39762
39973
  }
39763
39974
  return 0 /* Get */;
39764
39975
  }
@@ -40309,37 +40520,37 @@ var Analyzer = class _Analyzer {
40309
40520
  classifyBinaryExpressionOperator(operator) {
40310
40521
  if (operator.kind === 0 /* Token */) {
40311
40522
  switch (operator.tokenKind) {
40312
- case 13 /* Asterisk */:
40523
+ case 14 /* Asterisk */:
40313
40524
  return { kind: "user-definable", operatorKind: 5 /* Multiply */ };
40314
- case 29 /* EqualsEquals */:
40525
+ case 30 /* EqualsEquals */:
40315
40526
  return { kind: "equals" };
40316
- case 32 /* ExclamationEquals */:
40527
+ case 33 /* ExclamationEquals */:
40317
40528
  return { kind: "not-equals" };
40318
- case 33 /* GreaterThan */:
40529
+ case 34 /* GreaterThan */:
40319
40530
  return { kind: "user-definable", operatorKind: 10 /* GreaterThan */ };
40320
- case 34 /* GreaterThanOrEqual */:
40531
+ case 35 /* GreaterThanOrEqual */:
40321
40532
  return { kind: "user-definable", operatorKind: 12 /* GreaterThanOrEqual */ };
40322
- case 36 /* LessThan */:
40533
+ case 37 /* LessThan */:
40323
40534
  return { kind: "user-definable", operatorKind: 9 /* LessThan */ };
40324
- case 37 /* LessThanOrEqual */:
40535
+ case 38 /* LessThanOrEqual */:
40325
40536
  return { kind: "user-definable", operatorKind: 11 /* LessThanOrEqual */ };
40326
- case 39 /* Minus */:
40537
+ case 40 /* Minus */:
40327
40538
  return { kind: "user-definable", operatorKind: 4 /* Subtract */ };
40328
- case 46 /* Plus */:
40539
+ case 47 /* Plus */:
40329
40540
  return { kind: "user-definable", operatorKind: 3 /* Add */ };
40330
- case 50 /* QuestionQuestion */:
40541
+ case 51 /* QuestionQuestion */:
40331
40542
  return { kind: "question-question" };
40332
- case 52 /* Slash */:
40543
+ case 53 /* Slash */:
40333
40544
  return { kind: "user-definable", operatorKind: 6 /* Divide */ };
40334
- case 60 /* Backslash */:
40545
+ case 61 /* Backslash */:
40335
40546
  return { kind: "user-definable", operatorKind: 7 /* IntegerDivide */ };
40336
- case 62 /* BackslashBackslash */:
40547
+ case 63 /* BackslashBackslash */:
40337
40548
  return { kind: "user-definable", operatorKind: 8 /* Modulo */ };
40338
- case 10 /* Ampersand */:
40549
+ case 11 /* Ampersand */:
40339
40550
  return { kind: "user-definable", operatorKind: 16 /* BitwiseAnd */ };
40340
- case 17 /* Bar */:
40551
+ case 18 /* Bar */:
40341
40552
  return { kind: "user-definable", operatorKind: 17 /* BitwiseOr */ };
40342
- case 18 /* BarBar */:
40553
+ case 19 /* BarBar */:
40343
40554
  return { kind: "user-definable", operatorKind: 18 /* BitwiseXor */ };
40344
40555
  default:
40345
40556
  Debug.never(operator);
@@ -40359,17 +40570,17 @@ var Analyzer = class _Analyzer {
40359
40570
  }
40360
40571
  getBinaryOperatorKindIfCompoundAssignmentOperator(operator) {
40361
40572
  switch (operator.tokenKind) {
40362
- case 57 /* Equals */:
40573
+ case 58 /* Equals */:
40363
40574
  return void 0;
40364
- case 48 /* PlusEquals */:
40575
+ case 49 /* PlusEquals */:
40365
40576
  return 3 /* Add */;
40366
- case 41 /* MinusEquals */:
40577
+ case 42 /* MinusEquals */:
40367
40578
  return 4 /* Subtract */;
40368
- case 15 /* AsteriskEquals */:
40579
+ case 16 /* AsteriskEquals */:
40369
40580
  return 5 /* Multiply */;
40370
- case 53 /* SlashEquals */:
40581
+ case 54 /* SlashEquals */:
40371
40582
  return 6 /* Divide */;
40372
- case 61 /* BackslashEquals */:
40583
+ case 62 /* BackslashEquals */:
40373
40584
  return 7 /* IntegerDivide */;
40374
40585
  default:
40375
40586
  Debug.never(operator);
@@ -40564,7 +40775,7 @@ var Analyzer = class _Analyzer {
40564
40775
  const localizationContext = this.semanticContext.containing(node).getLocalizationContext();
40565
40776
  result = type.getValueParameters().map(
40566
40777
  (p) => new IntrinsicParameterVariableEntity(
40567
- localizationContext.getEntityName(p.getEntity()),
40778
+ localizationContext.getEntityName(p.getEntity()).value,
40568
40779
  p.getType(),
40569
40780
  new ParameterVariableEntityContainer.FunctionLiteral(containingEntity),
40570
40781
  p.isOptional(),
@@ -41155,17 +41366,18 @@ var Analyzer = class _Analyzer {
41155
41366
  const type = this.instantiateTypeByIdentitySubstitution(typeEntity);
41156
41367
  const abstractMembers = new Array();
41157
41368
  const overriddenMembers = new Array();
41369
+ const isAbstractType = TypeEntity2.isAbstract(typeEntity);
41158
41370
  const ownMembers = typeEntity.getMembers().getAll();
41159
41371
  for (const ownMember of ownMembers) {
41160
41372
  ArrayUtils.pushElementsIfUniqueComparingWithEquals(
41161
41373
  overriddenMembers,
41162
41374
  TypeMemberEntity.getOverriddenMembers(ownMember)
41163
41375
  );
41164
- if (TypeMemberEntity.isAbstract(ownMember)) {
41376
+ if (isAbstractType && TypeMemberEntity.isAbstract(ownMember)) {
41165
41377
  abstractMembers.push(TypeMemberEntity.instantiate(this, ownMember, type.getSubstitutions()));
41166
41378
  }
41167
41379
  }
41168
- const baseTypes = this.typeUtils.getBaseTypes(type);
41380
+ const baseTypes = this.typeUtils.getBaseOrAliasedTypes(type);
41169
41381
  for (const baseType of baseTypes) {
41170
41382
  const unaliasedBaseType = unaliasType(baseType);
41171
41383
  const baseTypeEntity = unaliasedBaseType.getEntity();
@@ -42162,7 +42374,7 @@ var TargetType = class {
42162
42374
  return void 0;
42163
42375
  }
42164
42376
  Debug.assert(child === parent.right);
42165
- if (parent.operator.tokenKind === 57 /* Equals */) {
42377
+ if (parent.operator.tokenKind === 58 /* Equals */) {
42166
42378
  return this._analyzer.type.ofExpression(parent.left);
42167
42379
  }
42168
42380
  return void 0;
@@ -43572,6 +43784,34 @@ var OverriddenAndShadowedMembers = class {
43572
43784
  this.shadowedMembers = shadowedMembers;
43573
43785
  }
43574
43786
  };
43787
+ function isOverridableTypeMemberEntity(entity) {
43788
+ switch (entity.kind) {
43789
+ case 0 /* Variable */:
43790
+ case 1 /* Function */:
43791
+ case 5 /* Indexer */:
43792
+ case 6 /* DereferenceOperator */:
43793
+ case 9 /* Operator */:
43794
+ return true;
43795
+ default:
43796
+ Debug.typeIsAssignableTo();
43797
+ Debug.typeIsAssignableTo();
43798
+ return false;
43799
+ }
43800
+ }
43801
+ function isOverridableTypeMember(entity) {
43802
+ switch (entity.kind) {
43803
+ case "field":
43804
+ case "method":
43805
+ case "operator":
43806
+ case "indexer":
43807
+ case "dereference-operator":
43808
+ return true;
43809
+ default:
43810
+ Debug.typeIsAssignableTo();
43811
+ Debug.typeIsAssignableTo();
43812
+ return false;
43813
+ }
43814
+ }
43575
43815
  var Tags = class {
43576
43816
  constructor(_analyzer) {
43577
43817
  this._analyzer = _analyzer;
@@ -44672,8 +44912,7 @@ var TypeUtils = class {
44672
44912
  }
44673
44913
  return;
44674
44914
  }
44675
- getBaseTypes(type) {
44676
- type = unaliasType(type);
44915
+ getBaseOrAliasedTypes(type) {
44677
44916
  switch (type.kind) {
44678
44917
  case "function": {
44679
44918
  const baseType = type.getBaseType();
@@ -44690,6 +44929,7 @@ var TypeUtils = class {
44690
44929
  return baseType !== void 0 ? [baseType] : [];
44691
44930
  }
44692
44931
  case "alias":
44932
+ return [type.getAliasedType()];
44693
44933
  case "unresolved":
44694
44934
  case "parameter":
44695
44935
  case "union":
@@ -44699,12 +44939,12 @@ var TypeUtils = class {
44699
44939
  Debug.never(type);
44700
44940
  }
44701
44941
  }
44702
- getBaseTypesRecursively(type) {
44942
+ getBaseAndAliasedTypesRecursively(type) {
44703
44943
  const result = new Array();
44704
- this.collectBaseTypesRecursively(type, result);
44944
+ this.collectBaseAndAliasedTypesRecursively(type, result);
44705
44945
  return result;
44706
44946
  }
44707
- collectBaseTypesRecursively(type, result) {
44947
+ collectBaseAndAliasedTypesRecursively(type, result) {
44708
44948
  switch (type.kind) {
44709
44949
  case "function": {
44710
44950
  addTypeAndContinueIfUnique(this, type.getBaseType(), result);
@@ -44722,8 +44962,7 @@ var TypeUtils = class {
44722
44962
  break;
44723
44963
  }
44724
44964
  case "alias": {
44725
- const unaliased = unaliasType(type);
44726
- this.collectBaseTypesRecursively(unaliased, result);
44965
+ addTypeAndContinueIfUnique(this, type.getAliasedType(), result);
44727
44966
  break;
44728
44967
  }
44729
44968
  case "unresolved":
@@ -44737,7 +44976,7 @@ var TypeUtils = class {
44737
44976
  function addTypeAndContinueIfUnique(this_, type2, result2) {
44738
44977
  if (type2 !== void 0 && !result2.some((t) => t.equals(type2))) {
44739
44978
  result2.push(type2);
44740
- this_.collectBaseTypesRecursively(type2, result2);
44979
+ this_.collectBaseAndAliasedTypesRecursively(type2, result2);
44741
44980
  }
44742
44981
  }
44743
44982
  }
@@ -44899,6 +45138,31 @@ var ConflictsCheck = class {
44899
45138
  }
44900
45139
  return result;
44901
45140
  }
45141
+ /**
45142
+ * Метод аналогичен методу {@link doFunctionSignaturesConflict}.
45143
+ */
45144
+ doMethodSignaturesConflict(method1, method2) {
45145
+ const parameters1 = method1.getValueParameters();
45146
+ const parameters2 = method2.getValueParameters();
45147
+ if (parameters1.length !== parameters2.length) {
45148
+ return false;
45149
+ }
45150
+ const typeParameters1 = method1.getTypeParameters();
45151
+ let substitutionMap1;
45152
+ if (typeParameters1.length > 0) {
45153
+ substitutionMap1 = this.createSubstitutionMapWithStubTypes(typeParameters1);
45154
+ }
45155
+ const typeParameters2 = method2.getTypeParameters();
45156
+ let substitutionMap2;
45157
+ if (typeParameters2.length > 0) {
45158
+ substitutionMap2 = this.createSubstitutionMapWithStubTypes(typeParameters2);
45159
+ }
45160
+ let result = this.doTypeMemberParametersConflict(parameters1, parameters2, substitutionMap1, substitutionMap2);
45161
+ if (result && typeParameters1.length !== typeParameters2.length) {
45162
+ result = this.doTypeArgumentCountsIntersect(typeParameters1, typeParameters2);
45163
+ }
45164
+ return result;
45165
+ }
44902
45166
  /**
44903
45167
  * Проверяет, конфликтуют две сущности, имеющие параметры, но не имеющие параметры типа.
44904
45168
  *
@@ -44907,6 +45171,9 @@ var ConflictsCheck = class {
44907
45171
  doSignaturesWithoutTypeParametersConflict(entity1, entity2) {
44908
45172
  return this.doParametersConflict(entity1.getValueParameters(), entity2.getValueParameters());
44909
45173
  }
45174
+ doTypeMemberSignaturesWithoutTypeParametersConflict(member1, member2) {
45175
+ return this.doTypeMemberParametersConflict(member1.getValueParameters(), member2.getValueParameters());
45176
+ }
44910
45177
  /**
44911
45178
  * Проверяет, конфликтуют ли два типа, т.е. могут ли такие типы находиться в одном пакете. Метод не сравнивает имена.
44912
45179
  *
@@ -44940,6 +45207,25 @@ var ConflictsCheck = class {
44940
45207
  }
44941
45208
  return true;
44942
45209
  }
45210
+ doTypeMemberParametersConflict(parameters1, parameters2, substitutionMap1, substitutionMap2) {
45211
+ if (parameters1.length !== parameters2.length) {
45212
+ return false;
45213
+ }
45214
+ for (let i = 0; i < parameters1.length; i++) {
45215
+ let type1 = parameters1[i].getType();
45216
+ if (substitutionMap1 !== void 0) {
45217
+ type1 = type1.applySubstitutions(substitutionMap1);
45218
+ }
45219
+ let type2 = parameters2[i].getType();
45220
+ if (substitutionMap2 !== void 0) {
45221
+ type2 = type2.applySubstitutions(substitutionMap2);
45222
+ }
45223
+ if (!type1.equals(type2)) {
45224
+ return false;
45225
+ }
45226
+ }
45227
+ return true;
45228
+ }
44943
45229
  createSubstitutionMapWithStubTypes(typeParameters) {
44944
45230
  const count = typeParameters.length;
44945
45231
  if (this._stubParameterTypes.length < count) {
@@ -45128,6 +45414,247 @@ var AssignmentChecker = class {
45128
45414
  }
45129
45415
  };
45130
45416
 
45417
+ // source/analysis/BaseMemberConflictsValidator.ts
45418
+ var BaseMemberConflictsValidator = class {
45419
+ constructor(_analyzer, _typeEntity, _hidingMatcher, _localizationContext, _dialect, _diagnostics, _nodeForDiagnostic) {
45420
+ this._analyzer = _analyzer;
45421
+ this._typeEntity = _typeEntity;
45422
+ this._hidingMatcher = _hidingMatcher;
45423
+ this._localizationContext = _localizationContext;
45424
+ this._dialect = _dialect;
45425
+ this._diagnostics = _diagnostics;
45426
+ this._nodeForDiagnostic = _nodeForDiagnostic;
45427
+ }
45428
+ get displayService() {
45429
+ return this._displayService ??= new DisplayService(this._analyzer, this._localizationContext, this._dialect);
45430
+ }
45431
+ validate() {
45432
+ const type = this._analyzer.instantiateTypeByIdentitySubstitution(this._typeEntity);
45433
+ if (this._analyzer.typeUtils.getBaseOrAliasedTypes(type).length <= 1) {
45434
+ return;
45435
+ }
45436
+ const members = this.getAllNotShadowedNotOverriddenMembers(type);
45437
+ const namedMembers = new Array();
45438
+ const anonymousMembers = new Array();
45439
+ for (let i = members.length - 1; i >= 0; i--) {
45440
+ const member = members[i];
45441
+ if (TypeMemberEntity.isAbstract(member.value.getEntity())) {
45442
+ continue;
45443
+ }
45444
+ if (member.kind === "named") {
45445
+ namedMembers.push(member);
45446
+ } else {
45447
+ anonymousMembers.push(member);
45448
+ }
45449
+ }
45450
+ const diagnosticReporter = this.reportMembersConflictDiagnostic.bind(this);
45451
+ if (this.validateMemberConflictsMutatingMap(namedMembers, diagnosticReporter)) {
45452
+ this.validateNamedMemberConflictsUsingOriginalNames(namedMembers);
45453
+ }
45454
+ this.validateMemberConflictsMutatingMap(anonymousMembers, diagnosticReporter);
45455
+ }
45456
+ getAllNotShadowedNotOverriddenMembers(type) {
45457
+ const overriddenMembers = new Array();
45458
+ this._typeEntity.getMembers().getAll().forEach((m) => {
45459
+ const instantiated = TypeMemberEntity.instantiate(this._analyzer, m, type.getSubstitutions());
45460
+ this.addOverriddenMembersRecursively(instantiated, overriddenMembers);
45461
+ });
45462
+ const result = new Array();
45463
+ const allBaseTypes = this._analyzer.typeUtils.getBaseAndAliasedTypesRecursively(type);
45464
+ for (const baseType of allBaseTypes) {
45465
+ const baseTypeEntity = baseType.getEntity();
45466
+ if (baseTypeEntity === void 0 || !isTypeEntityWithMembers(baseTypeEntity)) {
45467
+ continue;
45468
+ }
45469
+ for (const baseTypeMemberEntity of baseTypeEntity.getMembers().getAll()) {
45470
+ if (!isOverridableTypeMemberEntity(baseTypeMemberEntity)) {
45471
+ continue;
45472
+ }
45473
+ const baseTypeMember = TypeMemberEntity.instantiate(
45474
+ this._analyzer,
45475
+ baseTypeMemberEntity,
45476
+ baseType.getSubstitutions()
45477
+ );
45478
+ let localizedBaseTypeMember;
45479
+ if (isNamedTypeMember(baseTypeMember)) {
45480
+ const name = this._localizationContext.getEntityName(baseTypeMember.getEntity());
45481
+ localizedBaseTypeMember = new LocalizedNamedTypeMember(baseTypeMember, name);
45482
+ } else {
45483
+ const translationPackage = this._localizationContext.getTranslatedTypeOrExtensionEntityMembers(this._typeEntity)?.translationPackage;
45484
+ const localization = translationPackage !== void 0 ? new Localization.Translated(new Translation(translationPackage)) : Localization.Original.ofEntity(baseTypeMemberEntity);
45485
+ localizedBaseTypeMember = new LocalizedAnonymousTypeMember(baseTypeMember, localization);
45486
+ }
45487
+ if (!result.some((m) => m.value.equals(localizedBaseTypeMember.value))) {
45488
+ result.push(localizedBaseTypeMember);
45489
+ this.addOverriddenMembersRecursively(baseTypeMember, overriddenMembers);
45490
+ }
45491
+ }
45492
+ }
45493
+ return result.filter((m) => this.typeMemberMatchesHiding(m.value) && !overriddenMembers.some((om) => om.equals(m.value)));
45494
+ }
45495
+ validateMemberConflictsMutatingMap(members, reportDiagnostic) {
45496
+ const membersByContainer = Query.from(members).groupByToMap((m) => m.value.getEntity().getContainer().getEntity());
45497
+ let hasConflicts = false;
45498
+ for (const [container, members2] of membersByContainer) {
45499
+ for (let i = members2.length - 1; i >= 0; i--) {
45500
+ const member = members2[i];
45501
+ let conflictingMembers;
45502
+ for (const [containerToCheckAgainst, membersToCheckAgainst] of membersByContainer) {
45503
+ if (containerToCheckAgainst === container) {
45504
+ continue;
45505
+ }
45506
+ for (let j = membersToCheckAgainst.length - 1; j >= 0; j--) {
45507
+ const memberToCheckAgainst = membersToCheckAgainst[j];
45508
+ if (this.doTypeMembersConflict(member, memberToCheckAgainst)) {
45509
+ if (conflictingMembers === void 0) {
45510
+ conflictingMembers = [];
45511
+ conflictingMembers.push(member);
45512
+ }
45513
+ conflictingMembers.push(memberToCheckAgainst);
45514
+ ArrayUtils.removeElement(membersToCheckAgainst, j);
45515
+ }
45516
+ }
45517
+ }
45518
+ if (conflictingMembers !== void 0) {
45519
+ reportDiagnostic(conflictingMembers);
45520
+ hasConflicts ||= true;
45521
+ }
45522
+ ArrayUtils.removeElement(members2, i);
45523
+ }
45524
+ }
45525
+ return !hasConflicts;
45526
+ }
45527
+ validateNamedMemberConflictsUsingOriginalNames(members) {
45528
+ let someNamesChanged = false;
45529
+ const membersWithOriginalNames = members.map((m) => {
45530
+ const nameOfLeastOverriddenMember = this.getOriginalNameOfLeastOverriddenMember(m.value.getEntity());
45531
+ if (nameOfLeastOverriddenMember !== void 0) {
45532
+ someNamesChanged ||= !nameOfLeastOverriddenMember.value.considerEqual(m.name.value);
45533
+ return new LocalizedNamedTypeMember(m.value, nameOfLeastOverriddenMember);
45534
+ }
45535
+ if (m.name.kind === "translated") {
45536
+ const entity = m.value.getEntity();
45537
+ someNamesChanged ||= !entity.getName().considerEqual(m.name.value);
45538
+ return new LocalizedNamedTypeMember(m.value, new LocalizedName.Original(
45539
+ entity.getName(),
45540
+ Localization.Original.ofEntity(entity)
45541
+ ));
45542
+ }
45543
+ return m;
45544
+ });
45545
+ if (someNamesChanged) {
45546
+ this.validateMemberConflictsMutatingMap(membersWithOriginalNames, (conflictingMembers) => {
45547
+ Debug.assert(conflictingMembers.length > 0 && conflictingMembers[0].kind === "named");
45548
+ this.reportMembersOriginalNameConflictConflictDiagnostic(conflictingMembers, conflictingMembers[0].name.value);
45549
+ });
45550
+ }
45551
+ }
45552
+ doTypeMembersConflict(member1, member2) {
45553
+ if (member1.kind === "named" && member2.kind === "named") {
45554
+ if (!member1.name.value.considerEqual(member2.name.value)) {
45555
+ return false;
45556
+ }
45557
+ if (member1.value.kind === "method" && member2.value.kind === "method") {
45558
+ return this._analyzer.conflictsCheck.doMethodSignaturesConflict(member1.value, member2.value);
45559
+ }
45560
+ return true;
45561
+ }
45562
+ switch (member1.value.kind) {
45563
+ case "operator":
45564
+ return member2.value.kind === "operator" && member1.value.getOperatorKind() === member2.value.getOperatorKind();
45565
+ case "constructor":
45566
+ return member2.value.kind === "constructor" && this._analyzer.conflictsCheck.doTypeMemberSignaturesWithoutTypeParametersConflict(
45567
+ member1.value,
45568
+ member2.value
45569
+ );
45570
+ case "destructor":
45571
+ return member2.value.kind === "destructor" && this._analyzer.conflictsCheck.doTypeMemberSignaturesWithoutTypeParametersConflict(
45572
+ member1.value,
45573
+ member2.value
45574
+ );
45575
+ case "indexer":
45576
+ return member2.value.kind === "indexer" && this._analyzer.conflictsCheck.doTypeMemberSignaturesWithoutTypeParametersConflict(
45577
+ member1.value,
45578
+ member2.value
45579
+ );
45580
+ case "dereference-operator":
45581
+ return member2.value.kind === "dereference-operator";
45582
+ case "field":
45583
+ case "method":
45584
+ return false;
45585
+ default:
45586
+ Debug.never(member1.value);
45587
+ }
45588
+ }
45589
+ reportMembersConflictDiagnostic(conflictingMembers) {
45590
+ if (conflictingMembers.length === 0) {
45591
+ return;
45592
+ }
45593
+ const membersText = "\n" + conflictingMembers.map((m) => `'${this.displayService.displayTypeMember(m.value, m.localization)}'`).join("\n");
45594
+ this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
45595
+ 349 /* TheFollowingBaseTypeMembersConflictAndMustBeOverridden0 */,
45596
+ this._nodeForDiagnostic,
45597
+ [membersText]
45598
+ ));
45599
+ }
45600
+ reportMembersOriginalNameConflictConflictDiagnostic(conflictingMembers, originalName) {
45601
+ if (conflictingMembers.length === 0) {
45602
+ return;
45603
+ }
45604
+ const membersText = "\n" + conflictingMembers.map((m) => `'${this.displayService.displayTypeMember(m.value, m.localization)}'`).join("\n");
45605
+ this._diagnostics.addDiagnostic(this._analyzer.createNodeDiagnostic(
45606
+ 350 /* TheFollowingBaseTypeMembersConflictBecauseTheyHaveTheSameOriginalName0AndMustBeOverridden1 */,
45607
+ this._nodeForDiagnostic,
45608
+ [originalName.unescapedOriginal, membersText]
45609
+ ));
45610
+ }
45611
+ addOverriddenMembersRecursively(member, result) {
45612
+ const overriddenMemberEntities = TypeMemberEntity.getOverriddenMembers(member.getEntity());
45613
+ for (const overriddenMember of overriddenMemberEntities) {
45614
+ const substitutedOverriddenMember = overriddenMember.applySubstitutions(member.getSubstitutions());
45615
+ if (ArrayUtils.pushElementIfUniqueComparingWithEquals(result, substitutedOverriddenMember)) {
45616
+ this.addOverriddenMembersRecursively(substitutedOverriddenMember, result);
45617
+ }
45618
+ }
45619
+ }
45620
+ typeMemberMatchesHiding(member) {
45621
+ const hiding = member.isHidden();
45622
+ return hiding === void 0 || this._hidingMatcher.matches(hiding);
45623
+ }
45624
+ getOriginalNameOfLeastOverriddenMember(entity) {
45625
+ let leastOverriddenMember = void 0;
45626
+ let currentOverriddenMembers = entity.getOverriddenMembers();
45627
+ while (currentOverriddenMembers !== void 0 && currentOverriddenMembers.length > 0) {
45628
+ leastOverriddenMember = currentOverriddenMembers[0].getEntity();
45629
+ currentOverriddenMembers = leastOverriddenMember.getOverriddenMembers();
45630
+ }
45631
+ if (leastOverriddenMember === void 0) {
45632
+ return void 0;
45633
+ }
45634
+ return new LocalizedName.Original(
45635
+ leastOverriddenMember.getName(),
45636
+ Localization.Original.ofEntity(leastOverriddenMember)
45637
+ );
45638
+ }
45639
+ };
45640
+ var LocalizedNamedTypeMember = class {
45641
+ constructor(value, name) {
45642
+ this.value = value;
45643
+ this.name = name;
45644
+ this.kind = "named";
45645
+ }
45646
+ get localization() {
45647
+ return this.name.localization;
45648
+ }
45649
+ };
45650
+ var LocalizedAnonymousTypeMember = class {
45651
+ constructor(value, localization) {
45652
+ this.value = value;
45653
+ this.localization = localization;
45654
+ this.kind = "anonymous";
45655
+ }
45656
+ };
45657
+
45131
45658
  // source/analysis/TypeMemberConflictsValidator.ts
45132
45659
  var TypeMemberConflictsValidator = class {
45133
45660
  constructor(_analyzer, _members, _diagnostics) {
@@ -45391,12 +45918,7 @@ var DiagnosticCollector = class _DiagnosticCollector {
45391
45918
  analyzer.createLocalizationContext(sourceFile),
45392
45919
  sourceFile.package.dialect
45393
45920
  );
45394
- this._modifierValidator = new ModifierValidator(
45395
- analyzer,
45396
- this._diagnosticAcceptor,
45397
- sourceFile.package.locale,
45398
- sourceFile.package.dialect
45399
- );
45921
+ this._modifierValidator = new ModifierValidator(analyzer, this._diagnosticAcceptor);
45400
45922
  }
45401
45923
  static {
45402
45924
  this.CancellationTokenThrottleTime = 50;
@@ -45594,6 +46116,16 @@ var DiagnosticCollector = class _DiagnosticCollector {
45594
46116
  this._analyzer.semanticContext.ofTypeDeclarationTypeParameters(node, node.typeParameterClause).validateNameConflicts(this._diagnosticAcceptor);
45595
46117
  }
45596
46118
  new TypeMemberConflictsValidator(this._analyzer, entity.getMembers(), this._diagnosticAcceptor).validate();
46119
+ const semanticContext = this._analyzer.semanticContext.outermostSemanticContextOfTypeDeclaration(node);
46120
+ new BaseMemberConflictsValidator(
46121
+ this._analyzer,
46122
+ entity,
46123
+ semanticContext.getHidingMatcher(),
46124
+ semanticContext.getLocalizationContext(),
46125
+ this._sourceFile.package.dialect,
46126
+ this._diagnosticAcceptor,
46127
+ node.name
46128
+ ).validate();
45597
46129
  new TypeMemberImplementationValidator(this._analyzer, entity, this._displayService, this._diagnosticAcceptor).validate();
45598
46130
  break;
45599
46131
  }
@@ -45603,6 +46135,16 @@ var DiagnosticCollector = class _DiagnosticCollector {
45603
46135
  }
45604
46136
  const entity = this._analyzer.entity.ofPackageVariantTypeDeclaration(node);
45605
46137
  new TypeMemberConflictsValidator(this._analyzer, entity.getMembers(), this._diagnosticAcceptor).validate();
46138
+ const semanticContext = this._analyzer.semanticContext.outermostSemanticContextOfTypeDeclaration(node);
46139
+ new BaseMemberConflictsValidator(
46140
+ this._analyzer,
46141
+ entity,
46142
+ semanticContext.getHidingMatcher(),
46143
+ semanticContext.getLocalizationContext(),
46144
+ this._sourceFile.package.dialect,
46145
+ this._diagnosticAcceptor,
46146
+ node.name
46147
+ ).validate();
45606
46148
  new TypeMemberImplementationValidator(this._analyzer, entity, this._displayService, this._diagnosticAcceptor).validate();
45607
46149
  break;
45608
46150
  }
@@ -45870,6 +46412,16 @@ var DiagnosticCollector = class _DiagnosticCollector {
45870
46412
  this._analyzer.semanticContext.ofTypeDeclarationTypeParameters(node, node.typeParameterClause).validateNameConflicts(this._diagnosticAcceptor);
45871
46413
  }
45872
46414
  new TypeMemberConflictsValidator(this._analyzer, entity.getMembers(), this._diagnosticAcceptor).validate();
46415
+ const semanticContext = this._analyzer.semanticContext.outermostSemanticContextOfTypeDeclaration(node);
46416
+ new BaseMemberConflictsValidator(
46417
+ this._analyzer,
46418
+ entity,
46419
+ semanticContext.getHidingMatcher(),
46420
+ semanticContext.getLocalizationContext(),
46421
+ this._sourceFile.package.dialect,
46422
+ this._diagnosticAcceptor,
46423
+ node.name
46424
+ ).validate();
45873
46425
  break;
45874
46426
  }
45875
46427
  case 143 /* TypeParameterDeclaration */: {
@@ -45930,12 +46482,32 @@ var DiagnosticCollector = class _DiagnosticCollector {
45930
46482
  case 18 /* AnonymousStructuredTypeDeclaration */: {
45931
46483
  const entity = this._analyzer.entity.ofAnonymousStructuredTypeDeclaration(node);
45932
46484
  new TypeMemberConflictsValidator(this._analyzer, entity.getMembers(), this._diagnosticAcceptor).validate();
46485
+ const semanticContext = this._analyzer.semanticContext.outermostSemanticContextOfTypeDeclaration(node);
46486
+ new BaseMemberConflictsValidator(
46487
+ this._analyzer,
46488
+ entity,
46489
+ semanticContext.getHidingMatcher(),
46490
+ semanticContext.getLocalizationContext(),
46491
+ this._sourceFile.package.dialect,
46492
+ this._diagnosticAcceptor,
46493
+ node.body.structuredTypeKindKeyword
46494
+ ).validate();
45933
46495
  new TypeMemberImplementationValidator(this._analyzer, entity, this._displayService, this._diagnosticAcceptor).validate();
45934
46496
  break;
45935
46497
  }
45936
46498
  case 19 /* AnonymousVariantTypeDeclaration */: {
45937
46499
  const entity = this._analyzer.entity.ofAnonymousVariantTypeDeclaration(node);
45938
46500
  new TypeMemberConflictsValidator(this._analyzer, entity.getMembers(), this._diagnosticAcceptor).validate();
46501
+ const semanticContext = this._analyzer.semanticContext.outermostSemanticContextOfTypeDeclaration(node);
46502
+ new BaseMemberConflictsValidator(
46503
+ this._analyzer,
46504
+ entity,
46505
+ semanticContext.getHidingMatcher(),
46506
+ semanticContext.getLocalizationContext(),
46507
+ this._sourceFile.package.dialect,
46508
+ this._diagnosticAcceptor,
46509
+ node.body.variantKeyword
46510
+ ).validate();
45939
46511
  new TypeMemberImplementationValidator(this._analyzer, entity, this._displayService, this._diagnosticAcceptor).validate();
45940
46512
  break;
45941
46513
  }
@@ -49204,16 +49776,7 @@ var SourcePackageEntity = class {
49204
49776
  return this._package.name;
49205
49777
  }
49206
49778
  getLocale() {
49207
- switch (this._package.kind) {
49208
- case "program":
49209
- return this._package.configuration.locale;
49210
- case "translation": {
49211
- const analyzedPackage = this._analyzer.getAnalyzedTranslationPackageIfTargetResolved(this._package);
49212
- return analyzedPackage?.getTranslatedPackage().getLocale() ?? DefaultLocale;
49213
- }
49214
- default:
49215
- Debug.never(this._package);
49216
- }
49779
+ return this._package.configuration.locale;
49217
49780
  }
49218
49781
  getMembers() {
49219
49782
  return this._members.getOrInsertWith(() => this._analyzer.createPackageMembers(this._package));
@@ -59612,22 +60175,22 @@ var IrBuilder = class {
59612
60175
  }
59613
60176
  let operatorKind;
59614
60177
  switch (statement.operator.tokenKind) {
59615
- case 15 /* AsteriskEquals */:
60178
+ case 16 /* AsteriskEquals */:
59616
60179
  operatorKind = 3 /* MultiplyEquals */;
59617
60180
  break;
59618
- case 57 /* Equals */:
60181
+ case 58 /* Equals */:
59619
60182
  operatorKind = 0 /* Equals */;
59620
60183
  break;
59621
- case 41 /* MinusEquals */:
60184
+ case 42 /* MinusEquals */:
59622
60185
  operatorKind = 2 /* SubtractEquals */;
59623
60186
  break;
59624
- case 48 /* PlusEquals */:
60187
+ case 49 /* PlusEquals */:
59625
60188
  operatorKind = 1 /* AddEquals */;
59626
60189
  break;
59627
- case 53 /* SlashEquals */:
60190
+ case 54 /* SlashEquals */:
59628
60191
  operatorKind = 4 /* DivideEquals */;
59629
60192
  break;
59630
- case 61 /* BackslashEquals */:
60193
+ case 62 /* BackslashEquals */:
59631
60194
  operatorKind = 5 /* IntegerDivideEquals */;
59632
60195
  break;
59633
60196
  default:
@@ -60634,52 +61197,52 @@ var IrBuilder = class {
60634
61197
  let operatorKind;
60635
61198
  if (expression.operator.kind === 0 /* Token */) {
60636
61199
  switch (expression.operator.tokenKind) {
60637
- case 13 /* Asterisk */:
61200
+ case 14 /* Asterisk */:
60638
61201
  operatorKind = 2 /* Multiply */;
60639
61202
  break;
60640
- case 29 /* EqualsEquals */:
61203
+ case 30 /* EqualsEquals */:
60641
61204
  operatorKind = 5 /* Equals */;
60642
61205
  break;
60643
- case 32 /* ExclamationEquals */:
61206
+ case 33 /* ExclamationEquals */:
60644
61207
  operatorKind = 6 /* NotEquals */;
60645
61208
  break;
60646
- case 33 /* GreaterThan */:
61209
+ case 34 /* GreaterThan */:
60647
61210
  operatorKind = 8 /* GreaterThan */;
60648
61211
  break;
60649
- case 34 /* GreaterThanOrEqual */:
61212
+ case 35 /* GreaterThanOrEqual */:
60650
61213
  operatorKind = 10 /* GreaterThanOrEqual */;
60651
61214
  break;
60652
- case 36 /* LessThan */:
61215
+ case 37 /* LessThan */:
60653
61216
  operatorKind = 7 /* LessThan */;
60654
61217
  break;
60655
- case 37 /* LessThanOrEqual */:
61218
+ case 38 /* LessThanOrEqual */:
60656
61219
  operatorKind = 9 /* LessThanOrEqual */;
60657
61220
  break;
60658
- case 39 /* Minus */:
61221
+ case 40 /* Minus */:
60659
61222
  operatorKind = 1 /* Subtract */;
60660
61223
  break;
60661
- case 46 /* Plus */:
61224
+ case 47 /* Plus */:
60662
61225
  operatorKind = 0 /* Add */;
60663
61226
  break;
60664
- case 50 /* QuestionQuestion */:
61227
+ case 51 /* QuestionQuestion */:
60665
61228
  operatorKind = 14 /* QuestionQuestion */;
60666
61229
  break;
60667
- case 52 /* Slash */:
61230
+ case 53 /* Slash */:
60668
61231
  operatorKind = 3 /* Divide */;
60669
61232
  break;
60670
- case 60 /* Backslash */:
61233
+ case 61 /* Backslash */:
60671
61234
  operatorKind = 4 /* IntegerDivide */;
60672
61235
  break;
60673
- case 62 /* BackslashBackslash */:
61236
+ case 63 /* BackslashBackslash */:
60674
61237
  operatorKind = 15 /* Modulo */;
60675
61238
  break;
60676
- case 10 /* Ampersand */:
61239
+ case 11 /* Ampersand */:
60677
61240
  operatorKind = 16 /* BitwiseAnd */;
60678
61241
  break;
60679
- case 17 /* Bar */:
61242
+ case 18 /* Bar */:
60680
61243
  operatorKind = 17 /* BitwiseOr */;
60681
61244
  break;
60682
- case 18 /* BarBar */:
61245
+ case 19 /* BarBar */:
60683
61246
  operatorKind = 18 /* BitwiseXor */;
60684
61247
  break;
60685
61248
  default:
@@ -60965,10 +61528,10 @@ var IrBuilder = class {
60965
61528
  let operatorKind;
60966
61529
  if (expression.operator.kind === 0 /* Token */) {
60967
61530
  switch (expression.operator.tokenKind) {
60968
- case 46 /* Plus */:
61531
+ case 47 /* Plus */:
60969
61532
  operatorKind = 0 /* Plus */;
60970
61533
  break;
60971
- case 39 /* Minus */:
61534
+ case 40 /* Minus */:
60972
61535
  operatorKind = 1 /* Minus */;
60973
61536
  break;
60974
61537
  default:
@@ -64205,6 +64768,7 @@ export {
64205
64768
  NamedType_alias,
64206
64769
  OperatorDeclaration_typeMember,
64207
64770
  types_exports,
64771
+ TypeEntity2 as TypeEntity,
64208
64772
  TypeEntityKind,
64209
64773
  AliasedType,
64210
64774
  PackageAliasTypeDeclarationEntity,
@@ -64372,6 +64936,8 @@ export {
64372
64936
  ShadowReason,
64373
64937
  ShadowedMemberInfo,
64374
64938
  OverriddenAndShadowedMembers,
64939
+ isOverridableTypeMemberEntity,
64940
+ isOverridableTypeMember,
64375
64941
  LinkedMultiPlatformPackage,
64376
64942
  LinkedTypeWithMembers,
64377
64943
  TypeAssignabilityFlags,