@artel/artc 0.6.25221 → 0.6.25223

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.
Files changed (34) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +10 -2
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +281 -261
  5. package/build/{chunk-XMV7LOUY.js → chunk-AX3LQ2CF.js} +2 -2
  6. package/build/{chunk-X7TMUZ4C.js → chunk-DZNNWICP.js} +2738 -1794
  7. package/build/{chunk-5F65ZJE3.js → chunk-LG4Z4SWO.js} +1 -1
  8. package/build/types/analysis/Analyzer.d.ts +13 -10
  9. package/build/types/analysis/ControlFlowGraphBuilder.d.ts +12 -4
  10. package/build/types/analysis/LocalizationContext.d.ts +2 -2
  11. package/build/types/analysis/Lookup.d.ts +4 -4
  12. package/build/types/analysis/NodeTypeUtils.d.ts +1 -6
  13. package/build/types/analysis/PropertyAccessExpressionMeaning.d.ts +1 -1
  14. package/build/types/analysis/Scope.d.ts +21 -44
  15. package/build/types/analysis/SemanticContext.d.ts +21 -1
  16. package/build/types/analysis/SemanticContextBuilder.d.ts +3 -0
  17. package/build/types/analysis/StatementBlockScopeBuilder.d.ts +20 -17
  18. package/build/types/analysis/TypeMemberLookup.d.ts +39 -11
  19. package/build/types/analysis/TypeNarrower.d.ts +48 -8
  20. package/build/types/emitter/IrBuilder.d.ts +3 -1
  21. package/build/types/emitter/IrToJs.d.ts +1 -0
  22. package/build/types/emitter/Transformer.d.ts +2 -0
  23. package/build/types/emitter/ir/Nodes.d.ts +86 -78
  24. package/build/types/emitter/ir/types.d.ts +2 -2
  25. package/build/types/entities/index.d.ts +3 -0
  26. package/build/types/parser/Scanner.d.ts +1 -2
  27. package/build/types/tree/KeywordKind.d.ts +41 -40
  28. package/build/types/tree/NodeKind.d.ts +63 -61
  29. package/build/types/tree/green/Nodes.d.ts +83 -56
  30. package/build/types/tree/green/SyntaxFactory.d.ts +12 -10
  31. package/build/types/tree/green/SyntaxToCode.d.ts +1 -0
  32. package/build/types/tree/red/Nodes.d.ts +69 -41
  33. package/build/types/types/TypeMembers.d.ts +5 -0
  34. package/package.json +1 -1
@@ -27,6 +27,7 @@ import {
27
27
  Emitter,
28
28
  EntityLocalizationHelper,
29
29
  FileSystemTree,
30
+ FunctionBlock,
30
31
  GeneratedSourceFileScheme,
31
32
  GenericCancellationToken,
32
33
  InMemoryPackageScheme,
@@ -181,7 +182,7 @@ import {
181
182
  unwrapParenthesizedExpressions,
182
183
  visitChildren,
183
184
  yieldExecution
184
- } from "../chunk-X7TMUZ4C.js";
185
+ } from "../chunk-DZNNWICP.js";
185
186
 
186
187
  // source/services/CustomCommand.ts
187
188
  import * as ls from "vscode-languageserver";
@@ -318,7 +319,7 @@ var AddPropertyAssignmentService = class {
318
319
  const reassignmentText = `${leftValueText} = ${value}`;
319
320
  const subprogramBody = this.ifShouldBeAssignedAtTheEndOfSubprogramThenBody(assignmentNode);
320
321
  if (subprogramBody !== void 0) {
321
- const lastStatement = subprogramBody.statementList.statements.last();
322
+ const lastStatement = subprogramBody.expressionOrStatementList.kind === 92 /* StatementList */ ? subprogramBody.expressionOrStatementList?.statements.last() : subprogramBody.expressionOrStatementList;
322
323
  let editRangeStart;
323
324
  let indentationText;
324
325
  if (lastStatement !== void 0) {
@@ -348,40 +349,12 @@ var AddPropertyAssignmentService = class {
348
349
  * расположить сразу после. Иначе присваивание необходимо расположить в конце подпрограммы (после всех ветвлений).
349
350
  */
350
351
  ifShouldBeAssignedAtTheEndOfSubprogramThenBody(node) {
351
- const parent = node.parent.parent.parent;
352
+ const parent = node.parent.parent;
352
353
  switch (parent.kind) {
353
- case 25 /* PackageConstructorDeclaration */:
354
- case 26 /* PackageEntryPointDeclaration */:
355
- case 27 /* PackageMethodDeclaration */:
356
- case 36 /* PackageVariableGetterDeclaration */:
357
- case 37 /* PackageVariableSetterDeclaration */:
358
- case 45 /* TypeConstructorDeclaration */:
359
- case 46 /* TypeDestructorDeclaration */:
360
- case 47 /* TypeIndexedGetterDeclaration */:
361
- case 48 /* TypeIndexedSetterDeclaration */:
362
- case 50 /* TypeDereferencedVariableGetterDeclaration */:
363
- case 51 /* TypeDereferencedVariableSetterDeclaration */:
364
- case 52 /* TypeMethodDeclaration */:
365
- case 55 /* TypeVariableGetterDeclaration */:
366
- case 56 /* TypeVariableSetterDeclaration */:
367
- case 58 /* NestedMethodDeclaration */:
368
- case 67 /* MethodBlockLiteral */:
369
- case 74 /* MethodLiteral */:
370
- case 53 /* OperatorDeclaration */:
371
- return void 0;
372
- case 97 /* RunStatement */:
373
- return this.ifShouldBeAssignedAtTheEndOfSubprogramThenBody(parent);
374
- case 98 /* TryStatement */:
375
- case 99 /* CatchClause */:
376
- case 101 /* FinallyClause */:
377
- case 106 /* ForStatement */:
378
- case 107 /* IfStatement */:
379
- case 109 /* ElseIfClause */:
380
- case 110 /* ElseClause */:
381
- case 114 /* LoopStatement */:
382
- case 119 /* CaseClause */:
383
- case 120 /* WhileStatement */:
354
+ case 93 /* StatementBlock */:
384
355
  return this.getContainingSubprogram(parent)?.block;
356
+ case 94 /* FunctionBlock */:
357
+ return void 0;
385
358
  default:
386
359
  Debug.never(parent);
387
360
  }
@@ -572,7 +545,7 @@ var SyntaxFactory = class {
572
545
  static packageVariableGetterDeclaration(tags, modifiers, name, typeSpecifier, body) {
573
546
  const tagList = new TagList(tags);
574
547
  const modifierList = new ModifierList(modifiers);
575
- const getKeyword = this.keyword(57 /* Get */);
548
+ const getKeyword = this.keyword(58 /* Get */);
576
549
  const nameIdentifier = this.createIdentifier(name);
577
550
  const typeAnnotation = this.typeAnnotation(typeSpecifier);
578
551
  return new PackageVariableGetterDeclaration(
@@ -587,7 +560,7 @@ var SyntaxFactory = class {
587
560
  static packageVariableSetterDeclaration(tags, modifiers, name, body) {
588
561
  const tagList = new TagList(tags);
589
562
  const modifierList = new ModifierList(modifiers);
590
- const setKeyword = this.keyword(58 /* Set */);
563
+ const setKeyword = this.keyword(59 /* Set */);
591
564
  const nameIdentifier = this.createIdentifier(name);
592
565
  return new PackageVariableSetterDeclaration(tagList, modifierList, setKeyword, nameIdentifier, body);
593
566
  }
@@ -634,7 +607,7 @@ var SyntaxFactory = class {
634
607
  static typeVariableGetterDeclaration(tags, modifiers, name, typeSpecifier, body) {
635
608
  const tagList = new TagList(tags);
636
609
  const modifierList = new ModifierList(modifiers);
637
- const getKeyword = this.keyword(57 /* Get */);
610
+ const getKeyword = this.keyword(58 /* Get */);
638
611
  const nameIdentifier = this.createIdentifier(name);
639
612
  const typeAnnotation = this.typeAnnotation(typeSpecifier);
640
613
  return new TypeVariableGetterDeclaration(
@@ -649,7 +622,7 @@ var SyntaxFactory = class {
649
622
  static typeVariableSetterDeclaration(tags, modifiers, name, body) {
650
623
  const tagList = new TagList(tags);
651
624
  const modifierList = new ModifierList(modifiers);
652
- const setKeyword = this.keyword(58 /* Set */);
625
+ const setKeyword = this.keyword(59 /* Set */);
653
626
  const nameIdentifier = this.createIdentifier(name);
654
627
  return new TypeVariableSetterDeclaration(tagList, modifierList, setKeyword, nameIdentifier, body);
655
628
  }
@@ -675,21 +648,21 @@ var SyntaxFactory = class {
675
648
  static typeConstructorDeclaration(tags, modifiers, parameters, body) {
676
649
  const tagList = new TagList(tags);
677
650
  const modifierList = new ModifierList(modifiers);
678
- const creationKeyword = this.keyword(29 /* Creation */);
651
+ const creationKeyword = this.keyword(30 /* Creation */);
679
652
  const parameterClause = this.parameterClause(parameters);
680
653
  return new TypeConstructorDeclaration(tagList, modifierList, creationKeyword, parameterClause, body);
681
654
  }
682
655
  static typeDestructorDeclaration(tags, modifiers, parameters, body) {
683
656
  const tagList = new TagList(tags);
684
657
  const modifierList = new ModifierList(modifiers);
685
- const destructionKeyword = this.keyword(46 /* Destruction */);
658
+ const destructionKeyword = this.keyword(47 /* Destruction */);
686
659
  const parameterClause = this.parameterClause(parameters);
687
660
  return new TypeDestructorDeclaration(tagList, modifierList, destructionKeyword, parameterClause, body);
688
661
  }
689
662
  static typeIndexedGetterDeclaration(tags, modifiers, parameters, typeSpecifier, body) {
690
663
  const tagList = new TagList(tags);
691
664
  const modifierList = new ModifierList(modifiers);
692
- const getKeyword = this.keyword(57 /* Get */);
665
+ const getKeyword = this.keyword(58 /* Get */);
693
666
  const parameterClause = this.indexerParameterClause(parameters);
694
667
  const typeAnnotation = this.typeAnnotation(typeSpecifier);
695
668
  return new TypeIndexedGetterDeclaration(
@@ -704,7 +677,7 @@ var SyntaxFactory = class {
704
677
  static typeIndexedSetterDeclaration(tags, modifiers, parameters, body) {
705
678
  const tagList = new TagList(tags);
706
679
  const modifierList = new ModifierList(modifiers);
707
- const getKeyword = this.keyword(58 /* Set */);
680
+ const getKeyword = this.keyword(59 /* Set */);
708
681
  const parameterClause = this.indexerParameterClause(parameters);
709
682
  return new TypeIndexedSetterDeclaration(tagList, modifierList, getKeyword, parameterClause, body);
710
683
  }
@@ -856,8 +829,19 @@ var SyntaxFactory = class {
856
829
  const closeBraceToken = this.token(20 /* CloseBrace */);
857
830
  return new StatementBlock(openBraceToken, statementList, closeBraceToken);
858
831
  }
832
+ static functionExpressionBlock(expression) {
833
+ const openBraceToken = this.token(43 /* OpenBrace */);
834
+ const closeBraceToken = this.token(20 /* CloseBrace */);
835
+ return new FunctionBlock(openBraceToken, expression, closeBraceToken);
836
+ }
837
+ static functionStatementBlock(statements) {
838
+ const openBraceToken = this.token(43 /* OpenBrace */);
839
+ const statementList = new StatementList(statements);
840
+ const closeBraceToken = this.token(20 /* CloseBrace */);
841
+ return new FunctionBlock(openBraceToken, statementList, closeBraceToken);
842
+ }
859
843
  static noneLiteral() {
860
- return new KeywordExpression(this.keyword(56 /* None */));
844
+ return new KeywordExpression(this.keyword(57 /* None */));
861
845
  }
862
846
  static integerLiteral(value) {
863
847
  return new TokenExpression(this.token(2 /* IntegerLiteral */, value.toString()));
@@ -865,7 +849,7 @@ var SyntaxFactory = class {
865
849
  static translationsDeclaration(translations) {
866
850
  const tagList = new TagList([]);
867
851
  const modifierList = new ModifierList([]);
868
- const translationsKeyword = this.keyword(54 /* Translations */);
852
+ const translationsKeyword = this.keyword(55 /* Translations */);
869
853
  const openBraceToken = this.token(43 /* OpenBrace */);
870
854
  const translationList = new TopLevelTranslationList(translations);
871
855
  const closeBraceToken = this.token(20 /* CloseBrace */);
@@ -982,7 +966,7 @@ var SyntaxFactory = class {
982
966
  );
983
967
  }
984
968
  static constructorTranslation(sourceParameters, translatedParameters) {
985
- const creationKeyword = this.keyword(29 /* Creation */);
969
+ const creationKeyword = this.keyword(30 /* Creation */);
986
970
  const sourceParameterClause = this.translationParameterClause(sourceParameters);
987
971
  const minusGreaterThanToken = this.token(42 /* MinusGreaterThan */);
988
972
  const translatedParameterClause = this.translationParameterClause(translatedParameters);
@@ -1661,11 +1645,11 @@ var SyntaxToCode = class _SyntaxToCode {
1661
1645
  this.writeNodeDefault(node);
1662
1646
  }
1663
1647
  writeDeclarationBody(node, addLeadingNewLineOrWhitespace = true) {
1664
- if (node.statementList.elements.length === 0) {
1648
+ if (node.expressionOrStatementList.kind !== 92 /* StatementList */ || node.expressionOrStatementList.elements.length === 0) {
1665
1649
  this.writeWhitespace();
1666
- this.writeStatementBlock(node, false);
1650
+ this.writeFunctionBlock(node, false);
1667
1651
  } else {
1668
- this.writeStatementBlock(node, true);
1652
+ this.writeFunctionBlock(node, true);
1669
1653
  }
1670
1654
  }
1671
1655
  writeStatementBlock(node, addLeadingNewLineOrWhitespace = true) {
@@ -1674,6 +1658,12 @@ var SyntaxToCode = class _SyntaxToCode {
1674
1658
  }
1675
1659
  this.writeNodeDefault(node);
1676
1660
  }
1661
+ writeFunctionBlock(node, addLeadingNewLineOrWhitespace = true) {
1662
+ if (addLeadingNewLineOrWhitespace) {
1663
+ this.writeNewLineOrWhitespace();
1664
+ }
1665
+ this.writeNodeDefault(node);
1666
+ }
1677
1667
  writeTranslationsDeclaration(node) {
1678
1668
  this.writeKeyword(node.translationsKeyword);
1679
1669
  this.writeNewLineOrWhitespace();
@@ -1997,17 +1987,18 @@ var SyntaxToCode = class _SyntaxToCode {
1997
1987
  [55 /* TypeVariableGetterDeclaration */]: this.prototype.writeTypeVariableGetterDeclaration,
1998
1988
  [56 /* TypeVariableSetterDeclaration */]: this.prototype.writeTypeVariableSetterDeclaration,
1999
1989
  [93 /* StatementBlock */]: this.prototype.writeStatementBlock,
2000
- [133 /* QualifiedName */]: this.prototype.writeQualifiedName,
2001
- [140 /* VariantDeclaration */]: this.prototype.writeVariantDeclaration,
2002
- [141 /* TypeParameterDeclaration */]: this.prototype.writeTypeParameterDeclaration,
2003
- [142 /* ParameterDeclaration */]: this.prototype.writeParameterDeclaration,
2004
- [143 /* Argument */]: this.prototype.writeArgument,
2005
- [145 /* Tag */]: this.prototype.writeTag,
2006
- [147 /* Modifier */]: this.prototype.writeModifier,
2007
- [148 /* ParameterClause */]: this.prototype.writeParameterClause,
2008
- [149 /* ParameterList */]: this.prototype.writeParameterList,
2009
- [150 /* TypeArgumentClause */]: this.prototype.writeTypeArgumentClause,
2010
- [152 /* TypeParameterClause */]: this.prototype.writeTypeParameterClause,
1990
+ [94 /* FunctionBlock */]: this.prototype.writeFunctionBlock,
1991
+ [135 /* QualifiedName */]: this.prototype.writeQualifiedName,
1992
+ [142 /* VariantDeclaration */]: this.prototype.writeVariantDeclaration,
1993
+ [143 /* TypeParameterDeclaration */]: this.prototype.writeTypeParameterDeclaration,
1994
+ [144 /* ParameterDeclaration */]: this.prototype.writeParameterDeclaration,
1995
+ [145 /* Argument */]: this.prototype.writeArgument,
1996
+ [147 /* Tag */]: this.prototype.writeTag,
1997
+ [149 /* Modifier */]: this.prototype.writeModifier,
1998
+ [150 /* ParameterClause */]: this.prototype.writeParameterClause,
1999
+ [151 /* ParameterList */]: this.prototype.writeParameterList,
2000
+ [152 /* TypeArgumentClause */]: this.prototype.writeTypeArgumentClause,
2001
+ [154 /* TypeParameterClause */]: this.prototype.writeTypeParameterClause,
2011
2002
  [17 /* AnonymousMethodTypeDeclaration */]: this.prototype.writeAnonymousMethodTypeDeclaration,
2012
2003
  [18 /* AnonymousStructuredTypeDeclaration */]: this.prototype.writeAnonymousStructuredTypeDeclaration,
2013
2004
  [19 /* AnonymousVariantTypeDeclaration */]: this.prototype.writeAnonymousVariantTypeDeclaration,
@@ -2060,56 +2051,57 @@ var SyntaxToCode = class _SyntaxToCode {
2060
2051
  [90 /* DefaultMatchExpression */]: this.prototype.writeNodeDefault,
2061
2052
  [91 /* AssignmentStatement */]: this.prototype.writeNodeDefault,
2062
2053
  [92 /* StatementList */]: this.prototype.writeNodeDefault,
2063
- [94 /* BreakLoopStatement */]: this.prototype.writeNodeDefault,
2064
- [95 /* ContinueLoopStatement */]: this.prototype.writeNodeDefault,
2065
- [96 /* DisposeStatement */]: this.prototype.writeNodeDefault,
2066
- [97 /* RunStatement */]: this.prototype.writeNodeDefault,
2067
- [98 /* TryStatement */]: this.prototype.writeNodeDefault,
2068
- [99 /* CatchClause */]: this.prototype.writeNodeDefault,
2069
- [100 /* ErrorVariableDeclaration */]: this.prototype.writeNodeDefault,
2070
- [101 /* FinallyClause */]: this.prototype.writeNodeDefault,
2071
- [102 /* EmptyStatement */]: this.prototype.writeNodeDefault,
2072
- [103 /* ErrorStatement */]: this.prototype.writeNodeDefault,
2073
- [104 /* ExpressionStatement */]: this.prototype.writeNodeDefault,
2074
- [105 /* EnumerationVariableList */]: this.prototype.writeNodeDefault,
2075
- [106 /* ForStatement */]: this.prototype.writeNodeDefault,
2076
- [107 /* IfStatement */]: this.prototype.writeNodeDefault,
2077
- [108 /* ElseIfClauseList */]: this.prototype.writeNodeDefault,
2078
- [109 /* ElseIfClause */]: this.prototype.writeNodeDefault,
2079
- [110 /* ElseClause */]: this.prototype.writeNodeDefault,
2080
- [111 /* InvalidStatement */]: this.prototype.writeNodeDefault,
2081
- [112 /* NestedMethodDeclarationStatement */]: this.prototype.writeNodeDefault,
2082
- [113 /* LocalVariableDeclarationStatement */]: this.prototype.writeNodeDefault,
2083
- [114 /* LoopStatement */]: this.prototype.writeNodeDefault,
2084
- [115 /* ReturnStatement */]: this.prototype.writeNodeDefault,
2085
- [116 /* CaseClauseList */]: this.prototype.writeNodeDefault,
2086
- [117 /* SwitchStatement */]: this.prototype.writeNodeDefault,
2087
- [118 /* MatchExpressionList */]: this.prototype.writeNodeDefault,
2088
- [119 /* CaseClause */]: this.prototype.writeNodeDefault,
2089
- [120 /* WhileStatement */]: this.prototype.writeNodeDefault,
2090
- [121 /* YieldStatement */]: this.prototype.writeNodeDefault,
2091
- [122 /* TranslationParameterList */]: this.prototype.writeNodeDefault,
2092
- [123 /* TranslationParameterClause */]: this.prototype.writeTranslationParameterClause,
2093
- [124 /* ConstructorTranslation */]: this.prototype.writeConstructorTranslation,
2094
- [125 /* IndexerTranslationParameterClause */]: this.prototype.writeIndexerTranslationParameterClause,
2095
- [126 /* IndexerTranslation */]: this.prototype.writeIndexerTranslation,
2096
- [127 /* TranslationTypeParameterList */]: this.prototype.writeNodeDefault,
2097
- [128 /* TranslationTypeParameterClause */]: this.prototype.writeTranslationTypeParameterClause,
2098
- [129 /* PackageMethodTranslation */]: this.prototype.writePackageMethodTranslation,
2099
- [130 /* TypeMethodTranslation */]: this.prototype.writeTypeMethodTranslation,
2100
- [131 /* MethodTypeTranslation */]: this.prototype.writeMethodTypeTranslation,
2101
- [132 /* PackageImportTranslation */]: this.prototype.writePackageImportTranslation,
2102
- [134 /* PackageVariableTranslation */]: this.prototype.writePackageVariableTranslation,
2103
- [135 /* TypeVariableOrVariantTranslation */]: this.prototype.writeTypeVariableOrVariantTranslation,
2104
- [136 /* TypeMemberTranslationList */]: this.prototype.writeNodeDefault,
2105
- [137 /* TypeTranslation */]: this.prototype.writeTypeTranslation,
2106
- [138 /* TextLiteralTranslation */]: this.prototype.writeNodeDefault,
2107
- [139 /* TextTemplateLiteralTranslation */]: this.prototype.writeNodeDefault,
2108
- [144 /* TagList */]: this.prototype.writeNodeDefault,
2109
- [146 /* ModifierList */]: this.prototype.writeNodeDefault,
2110
- [151 /* TypeArgumentList */]: this.prototype.writeNodeDefault,
2111
- [153 /* TypeParameterList */]: this.prototype.writeNodeDefault,
2112
- [154 /* TypeAnnotation */]: this.prototype.writeNodeDefault
2054
+ [95 /* BreakLoopStatement */]: this.prototype.writeNodeDefault,
2055
+ [96 /* ContinueLoopStatement */]: this.prototype.writeNodeDefault,
2056
+ [97 /* DisposeStatement */]: this.prototype.writeNodeDefault,
2057
+ [98 /* RunStatement */]: this.prototype.writeNodeDefault,
2058
+ [99 /* TryStatement */]: this.prototype.writeNodeDefault,
2059
+ [100 /* CatchClause */]: this.prototype.writeNodeDefault,
2060
+ [101 /* ErrorVariableDeclaration */]: this.prototype.writeNodeDefault,
2061
+ [102 /* FinallyClause */]: this.prototype.writeNodeDefault,
2062
+ [103 /* EmptyStatement */]: this.prototype.writeNodeDefault,
2063
+ [104 /* ErrorStatement */]: this.prototype.writeNodeDefault,
2064
+ [105 /* ImportantStatement */]: this.prototype.writeNodeDefault,
2065
+ [106 /* ExpressionStatement */]: this.prototype.writeNodeDefault,
2066
+ [107 /* EnumerationVariableList */]: this.prototype.writeNodeDefault,
2067
+ [108 /* ForStatement */]: this.prototype.writeNodeDefault,
2068
+ [109 /* IfStatement */]: this.prototype.writeNodeDefault,
2069
+ [110 /* ElseIfClauseList */]: this.prototype.writeNodeDefault,
2070
+ [111 /* ElseIfClause */]: this.prototype.writeNodeDefault,
2071
+ [112 /* ElseClause */]: this.prototype.writeNodeDefault,
2072
+ [113 /* InvalidStatement */]: this.prototype.writeNodeDefault,
2073
+ [114 /* NestedMethodDeclarationStatement */]: this.prototype.writeNodeDefault,
2074
+ [115 /* LocalVariableDeclarationStatement */]: this.prototype.writeNodeDefault,
2075
+ [116 /* LoopStatement */]: this.prototype.writeNodeDefault,
2076
+ [117 /* ReturnStatement */]: this.prototype.writeNodeDefault,
2077
+ [118 /* CaseClauseList */]: this.prototype.writeNodeDefault,
2078
+ [119 /* SwitchStatement */]: this.prototype.writeNodeDefault,
2079
+ [120 /* MatchExpressionList */]: this.prototype.writeNodeDefault,
2080
+ [121 /* CaseClause */]: this.prototype.writeNodeDefault,
2081
+ [122 /* WhileStatement */]: this.prototype.writeNodeDefault,
2082
+ [123 /* YieldStatement */]: this.prototype.writeNodeDefault,
2083
+ [124 /* TranslationParameterList */]: this.prototype.writeNodeDefault,
2084
+ [125 /* TranslationParameterClause */]: this.prototype.writeTranslationParameterClause,
2085
+ [126 /* ConstructorTranslation */]: this.prototype.writeConstructorTranslation,
2086
+ [127 /* IndexerTranslationParameterClause */]: this.prototype.writeIndexerTranslationParameterClause,
2087
+ [128 /* IndexerTranslation */]: this.prototype.writeIndexerTranslation,
2088
+ [129 /* TranslationTypeParameterList */]: this.prototype.writeNodeDefault,
2089
+ [130 /* TranslationTypeParameterClause */]: this.prototype.writeTranslationTypeParameterClause,
2090
+ [131 /* PackageMethodTranslation */]: this.prototype.writePackageMethodTranslation,
2091
+ [132 /* TypeMethodTranslation */]: this.prototype.writeTypeMethodTranslation,
2092
+ [133 /* MethodTypeTranslation */]: this.prototype.writeMethodTypeTranslation,
2093
+ [134 /* PackageImportTranslation */]: this.prototype.writePackageImportTranslation,
2094
+ [136 /* PackageVariableTranslation */]: this.prototype.writePackageVariableTranslation,
2095
+ [137 /* TypeVariableOrVariantTranslation */]: this.prototype.writeTypeVariableOrVariantTranslation,
2096
+ [138 /* TypeMemberTranslationList */]: this.prototype.writeNodeDefault,
2097
+ [139 /* TypeTranslation */]: this.prototype.writeTypeTranslation,
2098
+ [140 /* TextLiteralTranslation */]: this.prototype.writeNodeDefault,
2099
+ [141 /* TextTemplateLiteralTranslation */]: this.prototype.writeNodeDefault,
2100
+ [146 /* TagList */]: this.prototype.writeNodeDefault,
2101
+ [148 /* ModifierList */]: this.prototype.writeNodeDefault,
2102
+ [153 /* TypeArgumentList */]: this.prototype.writeNodeDefault,
2103
+ [155 /* TypeParameterList */]: this.prototype.writeNodeDefault,
2104
+ [156 /* TypeAnnotation */]: this.prototype.writeNodeDefault
2113
2105
  };
2114
2106
  return writeFunctions;
2115
2107
  }
@@ -2120,14 +2112,14 @@ var SyntaxToCode = class _SyntaxToCode {
2120
2112
  }
2121
2113
  };
2122
2114
  var modifierSortOrder = {
2123
- [35 /* Hidden */]: 0,
2124
- [40 /* Static */]: 1,
2115
+ [36 /* Hidden */]: 0,
2116
+ [41 /* Static */]: 1,
2125
2117
  [17 /* Basic */]: 2,
2126
- [37 /* Redefinable */]: 3,
2127
- [36 /* Abstract */]: 4,
2128
- [38 /* Redefined */]: 5,
2129
- [39 /* Async */]: 6,
2130
- [34 /* Const */]: 7
2118
+ [38 /* Redefinable */]: 3,
2119
+ [37 /* Abstract */]: 4,
2120
+ [39 /* Redefined */]: 5,
2121
+ [40 /* Async */]: 6,
2122
+ [35 /* Const */]: 7
2131
2123
  };
2132
2124
 
2133
2125
  // source/services/TreeUtils.ts
@@ -2295,7 +2287,7 @@ var TranslationsGenerationService = class {
2295
2287
  return void 0;
2296
2288
  }
2297
2289
  let result;
2298
- if (tokenOrKeyword.isToken(63 /* Identifier */) && tokenOrKeyword.parent.kind === 137 /* TypeTranslation */ && tokenOrKeyword.value === tokenOrKeyword.parent.sourceName) {
2290
+ if (tokenOrKeyword.isToken(63 /* Identifier */) && tokenOrKeyword.parent.kind === 139 /* TypeTranslation */ && tokenOrKeyword.value === tokenOrKeyword.parent.sourceName) {
2299
2291
  const translationPackage = analyzer.getAnalyzedTranslationPackageIfTargetResolved(sourceFile.package);
2300
2292
  if (translationPackage !== void 0) {
2301
2293
  const generator = new TranslationsGenerator(
@@ -2307,7 +2299,7 @@ var TranslationsGenerationService = class {
2307
2299
  result = generator.generateMissingTypeMemberTranslations(tokenOrKeyword.parent);
2308
2300
  }
2309
2301
  }
2310
- if (result === void 0 && tokenOrKeyword.isKeyword(54 /* Translations */) && tokenOrKeyword.parent.kind === 21 /* TranslationsDeclaration */) {
2302
+ if (result === void 0 && tokenOrKeyword.isKeyword(55 /* Translations */) && tokenOrKeyword.parent.kind === 21 /* TranslationsDeclaration */) {
2311
2303
  const translationPackage = analyzer.getAnalyzedTranslationPackageIfTargetResolved(sourceFile.package);
2312
2304
  if (translationPackage !== void 0) {
2313
2305
  const generator = new TranslationsGenerator(
@@ -2333,7 +2325,7 @@ var TranslationsGenerationService = class {
2333
2325
  if (tokenOrKeyword === void 0) {
2334
2326
  return false;
2335
2327
  }
2336
- if (!(tokenOrKeyword.isKeyword(54 /* Translations */) && tokenOrKeyword.parent.kind === 21 /* TranslationsDeclaration */)) {
2328
+ if (!(tokenOrKeyword.isKeyword(55 /* Translations */) && tokenOrKeyword.parent.kind === 21 /* TranslationsDeclaration */)) {
2337
2329
  return false;
2338
2330
  }
2339
2331
  const translationPackage = analyzer.getAnalyzedTranslationPackageIfTargetResolved(sourceFile.package);
@@ -2341,7 +2333,7 @@ var TranslationsGenerationService = class {
2341
2333
  return false;
2342
2334
  }
2343
2335
  const generator = new TranslationsGenerator(analyzer, sourceFile, translationPackage, sourceFile.package.dialect);
2344
- return Query.from(tokenOrKeyword.parent.translationList.translationDeclarations).filter((t) => t.kind === 137 /* TypeTranslation */).mapAndFilter((t) => translationPackage.getTypeTranslationTarget(t).target).any((t) => generator.collectNotTranslatedTypeMembers(t).length > 0);
2336
+ return Query.from(tokenOrKeyword.parent.translationList.translationDeclarations).filter((t) => t.kind === 139 /* TypeTranslation */).mapAndFilter((t) => translationPackage.getTypeTranslationTarget(t).target).any((t) => generator.collectNotTranslatedTypeMembers(t).length > 0);
2345
2337
  }
2346
2338
  };
2347
2339
  var TranslationsGenerator = class _TranslationsGenerator {
@@ -2368,7 +2360,7 @@ var TranslationsGenerator = class _TranslationsGenerator {
2368
2360
  };
2369
2361
  const memberTranslationsCode = Query.from(memberEntities).mapAndFilter((m) => this.createPackageMemberTranslationNode(m)).uniqueWithComparator(compareNodes).map((n) => {
2370
2362
  const code = new SyntaxToCode(n, syntaxToCodeOptions).convert();
2371
- if (n.kind === 137 /* TypeTranslation */) {
2363
+ if (n.kind === 139 /* TypeTranslation */) {
2372
2364
  const startOffset = Math.max(code.indexOf(newLine), 0);
2373
2365
  return this.addNewLineBeforeArrowsInTranslation(
2374
2366
  code,
@@ -2400,7 +2392,7 @@ var TranslationsGenerator = class _TranslationsGenerator {
2400
2392
  generateMissingTranslationsForPartiallyTranslatedTypes(translationsDeclaration) {
2401
2393
  const result = new Array();
2402
2394
  for (const translation of translationsDeclaration.translationList.translationDeclarations) {
2403
- if (translation.kind === 137 /* TypeTranslation */) {
2395
+ if (translation.kind === 139 /* TypeTranslation */) {
2404
2396
  const edits = this.generateMissingTypeMemberTranslations(translation);
2405
2397
  if (edits !== void 0) {
2406
2398
  result.push(...edits);
@@ -2497,13 +2489,13 @@ var TranslationsGenerator = class _TranslationsGenerator {
2497
2489
  }
2498
2490
  detectIndentationStepForTypeMemberTranslations(node) {
2499
2491
  let indentationStepSize;
2500
- if (node.kind === 137 /* TypeTranslation */) {
2492
+ if (node.kind === 139 /* TypeTranslation */) {
2501
2493
  indentationStepSize = tryDetectIndentationStepSizeUsingTypeTranslation(node, this._sourceFile);
2502
2494
  }
2503
2495
  if (indentationStepSize === void 0) {
2504
2496
  const translationsDeclarations = node.kind === 21 /* TranslationsDeclaration */ ? node : node.parent.parent;
2505
2497
  for (const member of translationsDeclarations.translationList.translationDeclarations) {
2506
- if (member.kind === 137 /* TypeTranslation */) {
2498
+ if (member.kind === 139 /* TypeTranslation */) {
2507
2499
  indentationStepSize = tryDetectIndentationStepSizeUsingTypeTranslation(member, this._sourceFile);
2508
2500
  if (indentationStepSize !== void 0) {
2509
2501
  break;
@@ -2790,7 +2782,7 @@ var SignatureForNode = class _SignatureForNode {
2790
2782
  return _SignatureForNode.getSignaturesForAutotypeCallExpression(analyzer, node);
2791
2783
  case 71 /* IndexedAccessExpression */:
2792
2784
  return _SignatureForNode.getSignaturesForIndexedAccessExpression(analyzer, node);
2793
- case 145 /* Tag */:
2785
+ case 147 /* Tag */:
2794
2786
  return _SignatureForNode.getSignaturesForTag(analyzer, node);
2795
2787
  default:
2796
2788
  Debug.never(node);
@@ -3225,7 +3217,7 @@ var CompletionService = class {
3225
3217
  typeExtensionLookup
3226
3218
  );
3227
3219
  }
3228
- if (tokenOrKeyword.isToken(26 /* Dot */) && tokenOrKeyword.parent.kind === 133 /* QualifiedName */ && tokenOrKeyword.parent.parent.kind === 10 /* NamedTypeSpecifier */) {
3220
+ if (tokenOrKeyword.isToken(26 /* Dot */) && tokenOrKeyword.parent.kind === 135 /* QualifiedName */ && tokenOrKeyword.parent.parent.kind === 10 /* NamedTypeSpecifier */) {
3229
3221
  const namedTypeSpecifier = tokenOrKeyword.parent.parent;
3230
3222
  const resolutionResult = this._analyzer.resolveNamedTypeSpecifier(namedTypeSpecifier);
3231
3223
  const segmentIndex = Math.floor(
@@ -3267,7 +3259,7 @@ var CompletionService = class {
3267
3259
  }
3268
3260
  return { kind: "none" };
3269
3261
  }
3270
- if (tokenOrKeyword.isToken(26 /* Dot */) && tokenOrKeyword.parent.kind === 133 /* QualifiedName */ && tokenOrKeyword.parent.parent.kind === 145 /* Tag */) {
3262
+ if (tokenOrKeyword.isToken(26 /* Dot */) && tokenOrKeyword.parent.kind === 135 /* QualifiedName */ && tokenOrKeyword.parent.parent.kind === 147 /* Tag */) {
3271
3263
  const tag = tokenOrKeyword.parent.parent;
3272
3264
  const resolutionResult = this._analyzer.resolveTag(tag);
3273
3265
  const segmentIndex = Math.floor(
@@ -3360,17 +3352,17 @@ var CompletionService = class {
3360
3352
  translationKind = 0 /* Any */;
3361
3353
  hasPrecedingKeyword = false;
3362
3354
  }
3363
- if (tokenOrKeyword.isKeyword(18 /* Import */) && tokenOrKeyword.parent.kind === 132 /* PackageImportTranslation */) {
3355
+ if (tokenOrKeyword.isKeyword(18 /* Import */) && tokenOrKeyword.parent.kind === 134 /* PackageImportTranslation */) {
3364
3356
  translationsDeclaration = tokenOrKeyword.parent.parent.parent;
3365
3357
  translationKind = 1 /* PackageImport */;
3366
3358
  hasPrecedingKeyword = true;
3367
3359
  }
3368
- if (tokenOrKeyword.isKeyword(16 /* Type */) && (tokenOrKeyword.parent.kind === 137 /* TypeTranslation */ || tokenOrKeyword.parent.kind === 131 /* MethodTypeTranslation */)) {
3360
+ if (tokenOrKeyword.isKeyword(16 /* Type */) && (tokenOrKeyword.parent.kind === 139 /* TypeTranslation */ || tokenOrKeyword.parent.kind === 133 /* MethodTypeTranslation */)) {
3369
3361
  translationsDeclaration = tokenOrKeyword.parent.parent.parent;
3370
3362
  translationKind = 3 /* Type */;
3371
3363
  hasPrecedingKeyword = true;
3372
3364
  }
3373
- if (tokenOrKeyword.isKeyword(12 /* Function */) && tokenOrKeyword.parent.kind === 129 /* PackageMethodTranslation */) {
3365
+ if (tokenOrKeyword.isKeyword(12 /* Function */) && tokenOrKeyword.parent.kind === 131 /* PackageMethodTranslation */) {
3374
3366
  translationsDeclaration = tokenOrKeyword.parent.parent.parent;
3375
3367
  translationKind = 2 /* Method */;
3376
3368
  hasPrecedingKeyword = true;
@@ -3390,9 +3382,9 @@ var CompletionService = class {
3390
3382
  hasPrecedingKeyword
3391
3383
  );
3392
3384
  }
3393
- if (tokenOrKeyword.isToken(26 /* Dot */) && tokenOrKeyword.parent.kind === 133 /* QualifiedName */) {
3385
+ if (tokenOrKeyword.isToken(26 /* Dot */) && tokenOrKeyword.parent.kind === 135 /* QualifiedName */) {
3394
3386
  const qualifiedName = tokenOrKeyword.parent;
3395
- if (qualifiedName.parent.kind === 132 /* PackageImportTranslation */ && qualifiedName === qualifiedName.parent.sourceName) {
3387
+ if (qualifiedName.parent.kind === 134 /* PackageImportTranslation */ && qualifiedName === qualifiedName.parent.sourceName) {
3396
3388
  const precedingSegmentNames = qualifiedName.qualifiers.takeWhile((s) => s.rangeStart < tokenOrKeyword.value.rangeStart).map((p) => this._analyzer.createNameFromIdentifier(p)).toArray();
3397
3389
  const sourceLocale = translationPackage.getTranslatedPackage().getLocale();
3398
3390
  return new PackageImportCompletionContext(precedingSegmentNames, { sourceLocale });
@@ -3417,12 +3409,12 @@ var CompletionService = class {
3417
3409
  translationKind = 0 /* Any */;
3418
3410
  hasPrecedingKeyword = false;
3419
3411
  }
3420
- if (tokenOrKeyword.isKeyword(12 /* Function */) && tokenOrKeyword.parent.kind === 130 /* TypeMethodTranslation */) {
3412
+ if (tokenOrKeyword.isKeyword(12 /* Function */) && tokenOrKeyword.parent.kind === 132 /* TypeMethodTranslation */) {
3421
3413
  typeTranslation = tokenOrKeyword.parent.parent.parent;
3422
3414
  translationKind = 1 /* Method */;
3423
3415
  hasPrecedingKeyword = true;
3424
3416
  }
3425
- if (tokenOrKeyword.isKeyword(29 /* Creation */) && tokenOrKeyword.parent.kind === 124 /* ConstructorTranslation */) {
3417
+ if (tokenOrKeyword.isKeyword(30 /* Creation */) && tokenOrKeyword.parent.kind === 126 /* ConstructorTranslation */) {
3426
3418
  typeTranslation = tokenOrKeyword.parent.parent.parent;
3427
3419
  translationKind = 3 /* Constructor */;
3428
3420
  hasPrecedingKeyword = true;
@@ -3462,7 +3454,7 @@ var CompletionService = class {
3462
3454
  role.argumentList.parent
3463
3455
  );
3464
3456
  break;
3465
- case 145 /* Tag */:
3457
+ case 147 /* Tag */:
3466
3458
  signatures = SignatureForNode.getSignaturesForTag(this._analyzer, role.argumentList.parent);
3467
3459
  valueArguments = ValueArgumentFactory.createValueArgumentsOfTag(role.argumentList.parent);
3468
3460
  break;
@@ -3506,6 +3498,13 @@ var CompletionService = class {
3506
3498
  }
3507
3499
  return { targetTypes: void 0, targetSignaturesParameters: void 0 };
3508
3500
  }
3501
+ if (role.kind === "function-block-expression") {
3502
+ const targetType = semanticContext.getContainingSubprogram()?.getReturnType();
3503
+ if (targetType !== void 0 && !targetType.equals(this._analyzer.standardTypes.none)) {
3504
+ return { targetTypes: [targetType], targetSignaturesParameters: void 0 };
3505
+ }
3506
+ return { targetTypes: void 0, targetSignaturesParameters: void 0 };
3507
+ }
3509
3508
  if (role.kind === "other") {
3510
3509
  if (role.expressionForTargetType !== void 0) {
3511
3510
  const targetType = this._analyzer.getTargetTypeOfExpression(role.expressionForTargetType);
@@ -3595,22 +3594,22 @@ var CompletionService = class {
3595
3594
  }
3596
3595
  const kinds = /* @__PURE__ */ new Set();
3597
3596
  if (syntaxContext.isPackageMemberDeclarationListContext) {
3598
- kinds.add(18 /* Import */).add(7 /* Run */).add(29 /* Creation */).add(12 /* Function */).add(17 /* Basic */).add(16 /* Type */).add(57 /* Get */).add(58 /* Set */).add(54 /* Translations */);
3597
+ kinds.add(18 /* Import */).add(7 /* Run */).add(30 /* Creation */).add(12 /* Function */).add(17 /* Basic */).add(16 /* Type */).add(58 /* Get */).add(59 /* Set */).add(55 /* Translations */);
3599
3598
  }
3600
3599
  if (syntaxContext.isPackageMemberDeclarationListContext || syntaxContext.isTypeMemberDeclarationListContext) {
3601
- kinds.add(35 /* Hidden */).add(40 /* Static */).add(37 /* Redefinable */).add(36 /* Abstract */).add(38 /* Redefined */).add(39 /* Async */).add(34 /* Const */);
3600
+ kinds.add(36 /* Hidden */).add(41 /* Static */).add(38 /* Redefinable */).add(37 /* Abstract */).add(39 /* Redefined */).add(40 /* Async */).add(35 /* Const */);
3602
3601
  }
3603
3602
  if (syntaxContext.isTypeMemberDeclarationListContext) {
3604
- kinds.add(29 /* Creation */).add(12 /* Function */).add(46 /* Destruction */).add(57 /* Get */).add(58 /* Set */);
3603
+ kinds.add(30 /* Creation */).add(12 /* Function */).add(47 /* Destruction */).add(58 /* Get */).add(59 /* Set */);
3605
3604
  }
3606
3605
  if (syntaxContext.isStatementContext) {
3607
- kinds.add(7 /* Run */).add(33 /* For */).add(24 /* While */).add(25 /* Loop */).add(15 /* Return */).add(19 /* Error */).add(27 /* Yield */).add(31 /* BreakLoop */).add(32 /* ContinueLoop */).add(13 /* If */).add(43 /* Switch */).add(1 /* Let */).add(34 /* Const */).add(45 /* Dispose */).add(8 /* Try */).add(12 /* Function */).add(39 /* Async */);
3606
+ kinds.add(7 /* Run */).add(34 /* For */).add(25 /* While */).add(26 /* Loop */).add(15 /* Return */).add(20 /* Error */).add(28 /* Yield */).add(32 /* BreakLoop */).add(33 /* ContinueLoop */).add(13 /* If */).add(44 /* Switch */).add(1 /* Let */).add(35 /* Const */).add(46 /* Dispose */).add(8 /* Try */).add(12 /* Function */).add(40 /* Async */);
3608
3607
  }
3609
3608
  if (this.isFromKeywordContext(positionDescription)) {
3610
3609
  kinds.add(9 /* From */);
3611
3610
  }
3612
3611
  if (syntaxContext.isExpressionContext !== void 0) {
3613
- kinds.add(42 /* Not */).add(51 /* Yes */).add(52 /* No */).add(56 /* None */).add(39 /* Async */).add(12 /* Function */).add(53 /* Reference */).add(2 /* Autotype */);
3612
+ kinds.add(43 /* Not */).add(52 /* Yes */).add(53 /* No */).add(57 /* None */).add(40 /* Async */).add(12 /* Function */).add(54 /* Reference */).add(2 /* Autotype */);
3614
3613
  if (positionDescription.kind === "after-token-or-keyword") {
3615
3614
  const container = semanticContext.getContainingTypeOrTypeExtension();
3616
3615
  if (container !== void 0) {
@@ -3618,40 +3617,40 @@ var CompletionService = class {
3618
3617
  if (container.kind === "type") {
3619
3618
  const typeEntity = container.value;
3620
3619
  if (typeEntity?.typeEntityKind === 1 /* Structured */ && typeEntity.getBaseObjectType() !== void 0 || typeEntity?.typeEntityKind === 3 /* Variant */ || typeEntity?.typeEntityKind === 4 /* Alias */) {
3621
- kinds.add(55 /* Base */);
3620
+ kinds.add(56 /* Base */);
3622
3621
  }
3623
3622
  }
3624
3623
  }
3625
3624
  }
3626
3625
  }
3627
3626
  if (this.isTypeKindCompletionContext(positionDescription)) {
3628
- kinds.add(4 /* Object */).add(5 /* PlainObject */).add(3 /* Aspect */).add(6 /* Variant */).add(12 /* Function */).add(39 /* Async */);
3627
+ kinds.add(4 /* Object */).add(5 /* PlainObject */).add(3 /* Aspect */).add(6 /* Variant */).add(12 /* Function */).add(40 /* Async */);
3629
3628
  }
3630
3629
  if (this.isCaseKeywordContext(positionDescription, syntaxContext)) {
3631
- kinds.add(44 /* Case */);
3630
+ kinds.add(45 /* Case */);
3632
3631
  }
3633
3632
  if (this.isCatchKeywordContext(positionDescription)) {
3634
- kinds.add(30 /* Catch */);
3633
+ kinds.add(31 /* Catch */);
3635
3634
  }
3636
3635
  if (this.isFinallyKeywordContext(positionDescription)) {
3637
- kinds.add(20 /* Finally */);
3636
+ kinds.add(21 /* Finally */);
3638
3637
  }
3639
3638
  if (this.isElseOrElseIfKeywordContext(positionDescription)) {
3640
3639
  kinds.add(10 /* Else */).add(11 /* ElseIf */);
3641
3640
  }
3642
3641
  if (syntaxContext.precedingExpression !== void 0) {
3643
- kinds.add(41 /* As */).add(14 /* Is */).add(21 /* And */).add(22 /* Or */).add(23 /* Xor */).add(28 /* When */);
3642
+ kinds.add(42 /* As */).add(14 /* Is */).add(22 /* And */).add(23 /* Or */).add(24 /* Xor */).add(29 /* When */);
3644
3643
  }
3645
3644
  if (this.isModifierLevelContext(positionDescription)) {
3646
- kinds.add(50 /* InType */).add(47 /* InHierarchy */).add(48 /* InFile */).add(49 /* InPackage */);
3645
+ kinds.add(51 /* InType */).add(48 /* InHierarchy */).add(49 /* InFile */).add(50 /* InPackage */);
3647
3646
  }
3648
3647
  if (this.isRepeatWhileKeywordContext(positionDescription)) {
3649
- kinds.add(26 /* RepeatWhile */);
3648
+ kinds.add(27 /* RepeatWhile */);
3650
3649
  }
3651
3650
  if (syntaxContext.isUnqualifiedTypeContext?.allowsAnonymousTypes === true) {
3652
- kinds.add(5 /* PlainObject */).add(4 /* Object */).add(6 /* Variant */).add(3 /* Aspect */).add(12 /* Function */).add(39 /* Async */);
3651
+ kinds.add(5 /* PlainObject */).add(4 /* Object */).add(6 /* Variant */).add(3 /* Aspect */).add(12 /* Function */).add(40 /* Async */);
3653
3652
  }
3654
- if (positionDescription.kind === "after-token-or-keyword" && positionDescription.tokenOrKeyword.isKeyword(39 /* Async */) && (positionDescription.tokenOrKeyword.parent.kind === 58 /* NestedMethodDeclaration */ || positionDescription.tokenOrKeyword.parent.kind === 74 /* MethodLiteral */ || positionDescription.tokenOrKeyword.parent.kind === 29 /* MethodTypeDeclarationBody */)) {
3653
+ if (positionDescription.kind === "after-token-or-keyword" && positionDescription.tokenOrKeyword.isKeyword(40 /* Async */) && (positionDescription.tokenOrKeyword.parent.kind === 58 /* NestedMethodDeclaration */ || positionDescription.tokenOrKeyword.parent.kind === 74 /* MethodLiteral */ || positionDescription.tokenOrKeyword.parent.kind === 29 /* MethodTypeDeclarationBody */)) {
3655
3654
  kinds.add(12 /* Function */);
3656
3655
  }
3657
3656
  return Query.from(kinds.values()).map(
@@ -3663,35 +3662,35 @@ var CompletionService = class {
3663
3662
  return false;
3664
3663
  }
3665
3664
  const tokenOrKeyword = positionDescription.tokenOrKeyword;
3666
- return tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && tokenOrKeyword.parent.parent.kind === 114 /* LoopStatement */;
3665
+ return tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && tokenOrKeyword.parent.parent.kind === 116 /* LoopStatement */;
3667
3666
  }
3668
3667
  isModifierLevelContext(positionDescription) {
3669
3668
  if (positionDescription.kind !== "after-token-or-keyword") {
3670
3669
  return false;
3671
3670
  }
3672
3671
  const tokenOrKeyword = positionDescription.tokenOrKeyword;
3673
- return tokenOrKeyword.isToken(44 /* OpenParenthesis */) && tokenOrKeyword.parent.kind === 147 /* Modifier */;
3672
+ return tokenOrKeyword.isToken(44 /* OpenParenthesis */) && tokenOrKeyword.parent.kind === 149 /* Modifier */;
3674
3673
  }
3675
3674
  isElseOrElseIfKeywordContext(positionDescription) {
3676
3675
  if (positionDescription.kind !== "after-token-or-keyword") {
3677
3676
  return false;
3678
3677
  }
3679
3678
  const tokenOrKeyword = positionDescription.tokenOrKeyword;
3680
- return tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && (tokenOrKeyword.parent.parent.kind === 107 /* IfStatement */ && tokenOrKeyword.parent === tokenOrKeyword.parent.parent.block || tokenOrKeyword.parent.parent.kind === 109 /* ElseIfClause */);
3679
+ return tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && (tokenOrKeyword.parent.parent.kind === 109 /* IfStatement */ && tokenOrKeyword.parent === tokenOrKeyword.parent.parent.block || tokenOrKeyword.parent.parent.kind === 111 /* ElseIfClause */);
3681
3680
  }
3682
3681
  isCatchKeywordContext(positionDescription) {
3683
3682
  if (positionDescription.kind !== "after-token-or-keyword") {
3684
3683
  return false;
3685
3684
  }
3686
3685
  const tokenOrKeyword = positionDescription.tokenOrKeyword;
3687
- return tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && tokenOrKeyword.parent.parent.kind === 98 /* TryStatement */;
3686
+ return tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && tokenOrKeyword.parent.parent.kind === 99 /* TryStatement */;
3688
3687
  }
3689
3688
  isFinallyKeywordContext(positionDescription) {
3690
3689
  if (positionDescription.kind !== "after-token-or-keyword") {
3691
3690
  return false;
3692
3691
  }
3693
3692
  const tokenOrKeyword = positionDescription.tokenOrKeyword;
3694
- return tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && (tokenOrKeyword.parent.parent.kind === 98 /* TryStatement */ || tokenOrKeyword.parent.parent.kind === 99 /* CatchClause */);
3693
+ return tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && (tokenOrKeyword.parent.parent.kind === 99 /* TryStatement */ || tokenOrKeyword.parent.parent.kind === 100 /* CatchClause */);
3695
3694
  }
3696
3695
  isTypeKindCompletionContext(positionDescription) {
3697
3696
  return positionDescription.kind === "after-token-or-keyword" && positionDescription.tokenOrKeyword.isToken(57 /* Equals */) && NodeTypeUtils.isPackageTypeDeclaration(positionDescription.tokenOrKeyword.parent);
@@ -3708,10 +3707,10 @@ var CompletionService = class {
3708
3707
  return false;
3709
3708
  }
3710
3709
  const tokenOrKeyword = positionDescription.tokenOrKeyword;
3711
- if (tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && tokenOrKeyword.parent.parent.kind === 119 /* CaseClause */) {
3710
+ if (tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && tokenOrKeyword.parent.parent.kind === 121 /* CaseClause */) {
3712
3711
  return true;
3713
3712
  }
3714
- if (syntaxContext.precedingExpression !== void 0 && syntaxContext.precedingExpression.parent.kind === 117 /* SwitchStatement */) {
3713
+ if (syntaxContext.precedingExpression !== void 0 && syntaxContext.precedingExpression.parent.kind === 119 /* SwitchStatement */) {
3715
3714
  return true;
3716
3715
  }
3717
3716
  return false;
@@ -4023,8 +4022,9 @@ var CompletionService = class {
4023
4022
  }
4024
4023
  getTypeMemberCompletionItemInfos(ctx) {
4025
4024
  const type = this._analyzer.excludeNoneFromType(ctx.type);
4026
- const memberLookup = new TypeMemberLookup(this._analyzer, type, ctx.localizationContext);
4027
- return memberLookup.getNamedMembers(ctx.hidingMatcher, ctx.typeExtensionsLookup).filter((m) => m.value.isStatic() === ctx.isStaticAccess).map((m) => {
4025
+ const memberLookup = TypeMemberLookup.ofType(this._analyzer, type, ctx.localizationContext);
4026
+ const options6 = ctx.isStaticAccess ? 2 /* OnlyStaticMembers */ : 0 /* None */;
4027
+ return memberLookup.getNamedMembers(options6, ctx.hidingMatcher, ctx.typeExtensionsLookup).map((m) => {
4028
4028
  switch (m.value.kind) {
4029
4029
  case "method":
4030
4030
  return new TypeMethodCompletionItemInfo(
@@ -4043,7 +4043,7 @@ var CompletionService = class {
4043
4043
  default:
4044
4044
  Debug.never(m.value);
4045
4045
  }
4046
- }).concat(memberLookup.getOperators(ctx.hidingMatcher, ctx.typeExtensionsLookup).filter((m) => m.value.isStatic() === ctx.isStaticAccess).map((o) => new OperatorCompletionItemInfo(this.completionItemInfoContext, o.value, o.localization)));
4046
+ }).concat(memberLookup.getOperators(options6, ctx.hidingMatcher, ctx.typeExtensionsLookup).map((o) => new OperatorCompletionItemInfo(this.completionItemInfoContext, o.value, o.localization)));
4047
4047
  }
4048
4048
  getPackageImportCompletionItemInfos(ctx) {
4049
4049
  const result = this._analyzer.packageImports.getPackagesAvailableForImport(this._sourceFile.package).map((p) => p.getImportName()).filter((n) => {
@@ -4216,7 +4216,7 @@ var CompletionService = class {
4216
4216
  if (!ctx.hasPrecedingKeyword) {
4217
4217
  const keywords = [
4218
4218
  12 /* Function */,
4219
- 29 /* Creation */
4219
+ 30 /* Creation */
4220
4220
  ];
4221
4221
  result = result.chain(
4222
4222
  Query.from(keywords).map(
@@ -4379,7 +4379,7 @@ function isInvalidNode(node) {
4379
4379
  switch (node.kind) {
4380
4380
  case 72 /* InvalidExpression */:
4381
4381
  case 43 /* InvalidPackageMemberDeclaration */:
4382
- case 111 /* InvalidStatement */:
4382
+ case 113 /* InvalidStatement */:
4383
4383
  case 57 /* InvalidTypeMemberDeclaration */:
4384
4384
  case 16 /* InvalidTypeSpecifier */:
4385
4385
  return true;
@@ -5071,7 +5071,7 @@ var AliasesSourceTypeConstructorCompletionItemInfo = class {
5071
5071
  Localization.Original.ofEntity(this.constructor_)
5072
5072
  );
5073
5073
  const displayParts = this.displayService.getConstructorDeclarationDisplayParts(constructorDeclaration);
5074
- const creationKeyword = this.displayService.displayKeyword(29 /* Creation */);
5074
+ const creationKeyword = this.displayService.displayKeyword(30 /* Creation */);
5075
5075
  return creationKeyword + displayParts.valueParametersStart + displayParts.valueParameters.map((p) => p.toString()).join(displayParts.valueParameterSeparator) + displayParts.valueParametersEnd;
5076
5076
  });
5077
5077
  }
@@ -5085,7 +5085,7 @@ var AliasesSourceTypeConstructorCompletionItemInfo = class {
5085
5085
  return this.label;
5086
5086
  }
5087
5087
  getInsertText() {
5088
- const creationKeyword = this.includeOnCreateKeyword ? this.displayService.displayKeyword(29 /* Creation */) : "";
5088
+ const creationKeyword = this.includeOnCreateKeyword ? this.displayService.displayKeyword(30 /* Creation */) : "";
5089
5089
  const parameters = this.constructor_.getValueParameters().map((p) => this.ctx.getInsertTextForName(p.getName(), true)).join(", ");
5090
5090
  return `${creationKeyword}(${parameters})`;
5091
5091
  }
@@ -5163,6 +5163,12 @@ var ExpressionRole_returnedValue = class {
5163
5163
  this.kind = "returned-value";
5164
5164
  }
5165
5165
  };
5166
+ var ExpressionRole_functionBlockExpression = class {
5167
+ constructor(functionBlock) {
5168
+ this.functionBlock = functionBlock;
5169
+ this.kind = "function-block-expression";
5170
+ }
5171
+ };
5166
5172
  var ExpressionRole_other = class {
5167
5173
  constructor(expressionForTargetType) {
5168
5174
  this.expressionForTargetType = expressionForTargetType;
@@ -5199,7 +5205,7 @@ var SyntaxContextFactory = class {
5199
5205
  if (positionDescription.kind === "after-token-or-keyword") {
5200
5206
  isUnqualifiedTypeContext = this.isUnqualifiedTypeContext(positionDescription.tokenOrKeyword);
5201
5207
  }
5202
- const isUnqualifiedTagNameCompletionContext = positionDescription.kind === "after-token-or-keyword" && positionDescription.tokenOrKeyword.isToken(35 /* HashSign */) && positionDescription.tokenOrKeyword.parent.kind === 145 /* Tag */;
5208
+ const isUnqualifiedTagNameCompletionContext = positionDescription.kind === "after-token-or-keyword" && positionDescription.tokenOrKeyword.isToken(35 /* HashSign */) && positionDescription.tokenOrKeyword.parent.kind === 147 /* Tag */;
5203
5209
  let isTopLevelTranslationListContext;
5204
5210
  if (positionDescription.kind === "after-token-or-keyword") {
5205
5211
  isTopLevelTranslationListContext = this.isTopLevelTranslationListContext(positionDescription.tokenOrKeyword);
@@ -5241,15 +5247,15 @@ var SyntaxContextFactory = class {
5241
5247
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.initializer);
5242
5248
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5243
5249
  }
5244
- if (tokenOrKeyword.parent.kind === 142 /* ParameterDeclaration */) {
5250
+ if (tokenOrKeyword.parent.kind === 144 /* ParameterDeclaration */) {
5245
5251
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.defaultValue);
5246
5252
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5247
5253
  }
5248
- if (tokenOrKeyword.parent.kind === 143 /* Argument */) {
5254
+ if (tokenOrKeyword.parent.kind === 145 /* Argument */) {
5249
5255
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.value);
5250
5256
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5251
5257
  }
5252
- if (tokenOrKeyword.parent.kind === 140 /* VariantDeclaration */) {
5258
+ if (tokenOrKeyword.parent.kind === 142 /* VariantDeclaration */) {
5253
5259
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.value);
5254
5260
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5255
5261
  }
@@ -5285,6 +5291,20 @@ var SyntaxContextFactory = class {
5285
5291
  if (tokenOrKeyword.isToken(43 /* OpenBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */) {
5286
5292
  return { isExpressionContext: { expressionRole: new ExpressionRole_other(void 0) }, isStatementContext: true };
5287
5293
  }
5294
+ if (tokenOrKeyword.isToken(43 /* OpenBrace */) && tokenOrKeyword.parent.kind === 94 /* FunctionBlock */) {
5295
+ const block = tokenOrKeyword.parent;
5296
+ if (block.expressionOrStatementList.kind !== 92 /* StatementList */ || block.expressionOrStatementList.statements.count() === 0) {
5297
+ return {
5298
+ isExpressionContext: { expressionRole: new ExpressionRole_functionBlockExpression(block) },
5299
+ isStatementContext: true
5300
+ };
5301
+ } else {
5302
+ return {
5303
+ isExpressionContext: { expressionRole: new ExpressionRole_other(void 0) },
5304
+ isStatementContext: true
5305
+ };
5306
+ }
5307
+ }
5288
5308
  if (tokenOrKeyword.isToken(51 /* Semicolon */) && tokenOrKeyword.parent.kind === 92 /* StatementList */) {
5289
5309
  return { isExpressionContext: { expressionRole: new ExpressionRole_other(void 0) }, isStatementContext: true };
5290
5310
  }
@@ -5305,7 +5325,7 @@ var SyntaxContextFactory = class {
5305
5325
  const expressionRole = new ExpressionRole_argument(tokenOrKeyword.parent.argumentList, 0);
5306
5326
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5307
5327
  }
5308
- if (tokenOrKeyword.parent.kind === 145 /* Tag */) {
5328
+ if (tokenOrKeyword.parent.kind === 147 /* Tag */) {
5309
5329
  const argumentList = tokenOrKeyword.parent.argumentList;
5310
5330
  if (argumentList !== void 0) {
5311
5331
  const expressionRole = new ExpressionRole_argument(argumentList, 0);
@@ -5336,7 +5356,7 @@ var SyntaxContextFactory = class {
5336
5356
  const expressionRole = new ExpressionRole_argument(argumentList, index);
5337
5357
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5338
5358
  }
5339
- if (tokenOrKeyword.parent.kind === 118 /* MatchExpressionList */) {
5359
+ if (tokenOrKeyword.parent.kind === 120 /* MatchExpressionList */) {
5340
5360
  const expressionRole = new ExpressionRole_matchListElement(tokenOrKeyword.parent.parent.parent.parent);
5341
5361
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5342
5362
  }
@@ -5345,43 +5365,43 @@ var SyntaxContextFactory = class {
5345
5365
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5346
5366
  }
5347
5367
  }
5348
- if (tokenOrKeyword.isKeyword(44 /* Case */) && tokenOrKeyword.parent.kind === 119 /* CaseClause */) {
5368
+ if (tokenOrKeyword.isKeyword(45 /* Case */) && tokenOrKeyword.parent.kind === 121 /* CaseClause */) {
5349
5369
  const expressionRole = new ExpressionRole_matchListElement(tokenOrKeyword.parent.parent.parent);
5350
5370
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5351
5371
  }
5352
- if (tokenOrKeyword.isKeyword(15 /* Return */) && tokenOrKeyword.parent.kind === 115 /* ReturnStatement */) {
5372
+ if (tokenOrKeyword.isKeyword(15 /* Return */) && tokenOrKeyword.parent.kind === 117 /* ReturnStatement */) {
5353
5373
  const expressionRole = new ExpressionRole_returnedValue(tokenOrKeyword.parent);
5354
5374
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5355
5375
  }
5356
- if (tokenOrKeyword.isKeyword(43 /* Switch */) && tokenOrKeyword.parent.kind === 117 /* SwitchStatement */) {
5376
+ if (tokenOrKeyword.isKeyword(44 /* Switch */) && tokenOrKeyword.parent.kind === 119 /* SwitchStatement */) {
5357
5377
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.expression);
5358
5378
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5359
5379
  }
5360
- if (tokenOrKeyword.isKeyword(13 /* If */) && tokenOrKeyword.parent.kind === 107 /* IfStatement */) {
5380
+ if (tokenOrKeyword.isKeyword(13 /* If */) && tokenOrKeyword.parent.kind === 109 /* IfStatement */) {
5361
5381
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.condition);
5362
5382
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5363
5383
  }
5364
- if (tokenOrKeyword.isKeyword(11 /* ElseIf */) && tokenOrKeyword.parent.kind === 109 /* ElseIfClause */) {
5384
+ if (tokenOrKeyword.isKeyword(11 /* ElseIf */) && tokenOrKeyword.parent.kind === 111 /* ElseIfClause */) {
5365
5385
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.condition);
5366
5386
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5367
5387
  }
5368
- if (tokenOrKeyword.isKeyword(9 /* From */) && tokenOrKeyword.parent.kind === 106 /* ForStatement */) {
5388
+ if (tokenOrKeyword.isKeyword(9 /* From */) && tokenOrKeyword.parent.kind === 108 /* ForStatement */) {
5369
5389
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.enumeratedExpression);
5370
5390
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5371
5391
  }
5372
- if (tokenOrKeyword.isKeyword(24 /* While */) && tokenOrKeyword.parent.kind === 120 /* WhileStatement */) {
5392
+ if (tokenOrKeyword.isKeyword(25 /* While */) && tokenOrKeyword.parent.kind === 122 /* WhileStatement */) {
5373
5393
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.condition);
5374
5394
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5375
5395
  }
5376
- if (tokenOrKeyword.isKeyword(26 /* RepeatWhile */) && tokenOrKeyword.parent.kind === 114 /* LoopStatement */) {
5396
+ if (tokenOrKeyword.isKeyword(27 /* RepeatWhile */) && tokenOrKeyword.parent.kind === 116 /* LoopStatement */) {
5377
5397
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.condition);
5378
5398
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5379
5399
  }
5380
- if (tokenOrKeyword.isKeyword(27 /* Yield */) && tokenOrKeyword.parent.kind === 121 /* YieldStatement */) {
5400
+ if (tokenOrKeyword.isKeyword(28 /* Yield */) && tokenOrKeyword.parent.kind === 123 /* YieldStatement */) {
5381
5401
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.expression);
5382
5402
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5383
5403
  }
5384
- if (tokenOrKeyword.isKeyword(28 /* When */) && tokenOrKeyword.parent.kind === 76 /* WhenTernaryExpression */) {
5404
+ if (tokenOrKeyword.isKeyword(29 /* When */) && tokenOrKeyword.parent.kind === 76 /* WhenTernaryExpression */) {
5385
5405
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.condition);
5386
5406
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5387
5407
  }
@@ -5407,7 +5427,7 @@ var SyntaxContextFactory = class {
5407
5427
  if (tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 32 /* TypeMemberDeclarationBlock */ && (tokenOrKeyword.parent.parent.kind === 40 /* TypeExtensionDeclaration */ || tokenOrKeyword.parent.parent.parent.kind === 33 /* PackageStructuredTypeDeclaration */ || tokenOrKeyword.parent.parent.parent.kind === 38 /* PackageVariantTypeDeclaration */ || tokenOrKeyword.parent.parent.parent.kind === 22 /* PackageAliasTypeDeclaration */)) {
5408
5428
  return true;
5409
5429
  }
5410
- if (tokenOrKeyword.isToken(20 /* CloseBrace */) && (tokenOrKeyword.parent.kind === 21 /* TranslationsDeclaration */ || tokenOrKeyword.parent.kind === 24 /* PackageMemberGroupDeclaration */ || tokenOrKeyword.parent.kind === 6 /* PackageGroupImportDirective */ || tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && (tokenOrKeyword.parent.parent.kind === 25 /* PackageConstructorDeclaration */ || tokenOrKeyword.parent.parent.kind === 26 /* PackageEntryPointDeclaration */ || tokenOrKeyword.parent.parent.kind === 27 /* PackageMethodDeclaration */))) {
5430
+ if (tokenOrKeyword.isToken(20 /* CloseBrace */) && (tokenOrKeyword.parent.kind === 21 /* TranslationsDeclaration */ || tokenOrKeyword.parent.kind === 24 /* PackageMemberGroupDeclaration */ || tokenOrKeyword.parent.kind === 6 /* PackageGroupImportDirective */ || tokenOrKeyword.parent.kind === 94 /* FunctionBlock */ && (tokenOrKeyword.parent.parent.kind === 25 /* PackageConstructorDeclaration */ || tokenOrKeyword.parent.parent.kind === 26 /* PackageEntryPointDeclaration */ || tokenOrKeyword.parent.parent.kind === 27 /* PackageMethodDeclaration */))) {
5411
5431
  return true;
5412
5432
  }
5413
5433
  if (tokenOrKeyword.isToken(43 /* OpenBrace */) && tokenOrKeyword.parent.kind === 24 /* PackageMemberGroupDeclaration */) {
@@ -5419,10 +5439,10 @@ var SyntaxContextFactory = class {
5419
5439
  ) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 37 /* PackageVariableSetterDeclaration */)) {
5420
5440
  return true;
5421
5441
  }
5422
- if (tokenOrKeyword.isKeyword() && tokenOrKeyword.parent.kind === 147 /* Modifier */ && tokenOrKeyword.value === tokenOrKeyword.parent.value && tokenOrKeyword.parent.openParenthesisToken === void 0 && NodeTypeUtils.isPackageMemberDeclaration(tokenOrKeyword.parent.parent.parent)) {
5442
+ if (tokenOrKeyword.isKeyword() && tokenOrKeyword.parent.kind === 149 /* Modifier */ && tokenOrKeyword.value === tokenOrKeyword.parent.value && tokenOrKeyword.parent.openParenthesisToken === void 0 && NodeTypeUtils.isPackageMemberDeclaration(tokenOrKeyword.parent.parent.parent)) {
5423
5443
  return true;
5424
5444
  }
5425
- if (tokenOrKeyword.isToken(21 /* CloseParenthesis */) && tokenOrKeyword.parent.kind === 147 /* Modifier */ && NodeTypeUtils.isPackageMemberDeclaration(tokenOrKeyword.parent.parent.parent)) {
5445
+ if (tokenOrKeyword.isToken(21 /* CloseParenthesis */) && tokenOrKeyword.parent.kind === 149 /* Modifier */ && NodeTypeUtils.isPackageMemberDeclaration(tokenOrKeyword.parent.parent.parent)) {
5426
5446
  return true;
5427
5447
  }
5428
5448
  return false;
@@ -5443,13 +5463,13 @@ var SyntaxContextFactory = class {
5443
5463
  ) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(
5444
5464
  tokenOrKeyword,
5445
5465
  51 /* TypeDereferencedVariableSetterDeclaration */
5446
- ) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 52 /* TypeMethodDeclaration */) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 53 /* OperatorDeclaration */) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 45 /* TypeConstructorDeclaration */) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 46 /* TypeDestructorDeclaration */) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 140 /* VariantDeclaration */)) {
5466
+ ) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 52 /* TypeMethodDeclaration */) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 53 /* OperatorDeclaration */) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 45 /* TypeConstructorDeclaration */) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 46 /* TypeDestructorDeclaration */) || SyntaxContextUtils.tokenOrKeywordIsValidEndOfNode(tokenOrKeyword, 142 /* VariantDeclaration */)) {
5447
5467
  return true;
5448
5468
  }
5449
- if (tokenOrKeyword.isKeyword() && tokenOrKeyword.parent.kind === 147 /* Modifier */ && tokenOrKeyword.value === tokenOrKeyword.parent.value && tokenOrKeyword.parent.openParenthesisToken === void 0 && NodeTypeUtils.isTypeMemberDeclaration(tokenOrKeyword.parent.parent.parent)) {
5469
+ if (tokenOrKeyword.isKeyword() && tokenOrKeyword.parent.kind === 149 /* Modifier */ && tokenOrKeyword.value === tokenOrKeyword.parent.value && tokenOrKeyword.parent.openParenthesisToken === void 0 && NodeTypeUtils.isTypeMemberDeclaration(tokenOrKeyword.parent.parent.parent)) {
5450
5470
  return true;
5451
5471
  }
5452
- if (tokenOrKeyword.isToken(21 /* CloseParenthesis */) && tokenOrKeyword.parent.kind === 147 /* Modifier */ && NodeTypeUtils.isTypeMemberDeclaration(tokenOrKeyword.parent.parent.parent)) {
5472
+ if (tokenOrKeyword.isToken(21 /* CloseParenthesis */) && tokenOrKeyword.parent.kind === 149 /* Modifier */ && NodeTypeUtils.isTypeMemberDeclaration(tokenOrKeyword.parent.parent.parent)) {
5453
5473
  return true;
5454
5474
  }
5455
5475
  return false;
@@ -5486,7 +5506,7 @@ var SyntaxContextFactory = class {
5486
5506
  return result;
5487
5507
  }
5488
5508
  static isUnqualifiedTypeContext(tokenOrKeyword) {
5489
- if (tokenOrKeyword.isToken(23 /* Colon */) && tokenOrKeyword.parent.kind === 154 /* TypeAnnotation */) {
5509
+ if (tokenOrKeyword.isToken(23 /* Colon */) && tokenOrKeyword.parent.kind === 156 /* TypeAnnotation */) {
5490
5510
  return { allowsAnonymousTypes: true };
5491
5511
  }
5492
5512
  if ((tokenOrKeyword.isKeyword(4 /* Object */) || tokenOrKeyword.isKeyword(5 /* PlainObject */) || tokenOrKeyword.isKeyword(3 /* Aspect */)) && tokenOrKeyword.parent.kind === 34 /* StructuredTypeDeclarationBody */) {
@@ -5495,16 +5515,16 @@ var SyntaxContextFactory = class {
5495
5515
  if (tokenOrKeyword.isKeyword(16 /* Type */) && (NodeTypeUtils.isPackageTypeDeclaration(tokenOrKeyword.parent) || tokenOrKeyword.parent.kind === 40 /* TypeExtensionDeclaration */)) {
5496
5516
  return { allowsAnonymousTypes: false };
5497
5517
  }
5498
- if (tokenOrKeyword.isToken(36 /* LessThan */) && tokenOrKeyword.parent.kind === 150 /* TypeArgumentClause */) {
5518
+ if (tokenOrKeyword.isToken(36 /* LessThan */) && tokenOrKeyword.parent.kind === 152 /* TypeArgumentClause */) {
5499
5519
  return { allowsAnonymousTypes: true };
5500
5520
  }
5501
- if (tokenOrKeyword.isToken(24 /* Comma */) && (tokenOrKeyword.parent.kind === 30 /* BaseTypeList */ || tokenOrKeyword.parent.kind === 151 /* TypeArgumentList */)) {
5502
- return { allowsAnonymousTypes: tokenOrKeyword.parent.kind === 151 /* TypeArgumentList */ };
5521
+ if (tokenOrKeyword.isToken(24 /* Comma */) && (tokenOrKeyword.parent.kind === 30 /* BaseTypeList */ || tokenOrKeyword.parent.kind === 153 /* TypeArgumentList */)) {
5522
+ return { allowsAnonymousTypes: tokenOrKeyword.parent.kind === 153 /* TypeArgumentList */ };
5503
5523
  }
5504
- if (tokenOrKeyword.isToken(35 /* HashSign */) && tokenOrKeyword.parent.kind === 145 /* Tag */) {
5524
+ if (tokenOrKeyword.isToken(35 /* HashSign */) && tokenOrKeyword.parent.kind === 147 /* Tag */) {
5505
5525
  return { allowsAnonymousTypes: false };
5506
5526
  }
5507
- if ((tokenOrKeyword.isToken(23 /* Colon */) || tokenOrKeyword.isToken(57 /* Equals */)) && tokenOrKeyword.parent.kind === 141 /* TypeParameterDeclaration */) {
5527
+ if ((tokenOrKeyword.isToken(23 /* Colon */) || tokenOrKeyword.isToken(57 /* Equals */)) && tokenOrKeyword.parent.kind === 143 /* TypeParameterDeclaration */) {
5508
5528
  return { allowsAnonymousTypes: false };
5509
5529
  }
5510
5530
  if (tokenOrKeyword.isToken(57 /* Equals */) && tokenOrKeyword.parent.kind === 22 /* PackageAliasTypeDeclaration */) {
@@ -5513,7 +5533,7 @@ var SyntaxContextFactory = class {
5513
5533
  if (tokenOrKeyword.isKeyword(14 /* Is */) && tokenOrKeyword.parent.kind === 73 /* IsExpression */) {
5514
5534
  return { allowsAnonymousTypes: true };
5515
5535
  }
5516
- if (tokenOrKeyword.isKeyword(41 /* As */) && tokenOrKeyword.parent.kind === 65 /* AsExpression */) {
5536
+ if (tokenOrKeyword.isKeyword(42 /* As */) && tokenOrKeyword.parent.kind === 65 /* AsExpression */) {
5517
5537
  return { allowsAnonymousTypes: true };
5518
5538
  }
5519
5539
  if (tokenOrKeyword.isToken(17 /* Bar */) && tokenOrKeyword.parent.kind === 12 /* UnionTypeSpecifierTypeList */) {
@@ -5533,32 +5553,32 @@ var SyntaxContextFactory = class {
5533
5553
  }
5534
5554
  const packageImport = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(
5535
5555
  tokenOrKeyword,
5536
- 132 /* PackageImportTranslation */
5556
+ 134 /* PackageImportTranslation */
5537
5557
  );
5538
5558
  if (packageImport !== void 0) {
5539
5559
  return { translationsDeclaration: packageImport.parent.parent };
5540
5560
  }
5541
- const type = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(tokenOrKeyword, 137 /* TypeTranslation */);
5561
+ const type = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(tokenOrKeyword, 139 /* TypeTranslation */);
5542
5562
  if (type !== void 0) {
5543
5563
  return { translationsDeclaration: type.parent.parent };
5544
5564
  }
5545
5565
  const methodType = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(
5546
5566
  tokenOrKeyword,
5547
- 131 /* MethodTypeTranslation */
5567
+ 133 /* MethodTypeTranslation */
5548
5568
  );
5549
5569
  if (methodType !== void 0) {
5550
5570
  return { translationsDeclaration: methodType.parent.parent };
5551
5571
  }
5552
5572
  const variable = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(
5553
5573
  tokenOrKeyword,
5554
- 134 /* PackageVariableTranslation */
5574
+ 136 /* PackageVariableTranslation */
5555
5575
  );
5556
5576
  if (variable !== void 0) {
5557
5577
  return { translationsDeclaration: variable.parent.parent };
5558
5578
  }
5559
5579
  const method = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(
5560
5580
  tokenOrKeyword,
5561
- 129 /* PackageMethodTranslation */
5581
+ 131 /* PackageMethodTranslation */
5562
5582
  );
5563
5583
  if (method !== void 0) {
5564
5584
  return { translationsDeclaration: method.parent.parent };
@@ -5566,33 +5586,33 @@ var SyntaxContextFactory = class {
5566
5586
  return void 0;
5567
5587
  }
5568
5588
  static isTypeMemberTranslationListContext(tokenOrKeyword) {
5569
- if (tokenOrKeyword.isToken(51 /* Semicolon */) && tokenOrKeyword.parent.kind === 136 /* TypeMemberTranslationList */) {
5589
+ if (tokenOrKeyword.isToken(51 /* Semicolon */) && tokenOrKeyword.parent.kind === 138 /* TypeMemberTranslationList */) {
5570
5590
  return { typeTranslation: tokenOrKeyword.parent.parent };
5571
5591
  }
5572
- if (tokenOrKeyword.isToken(43 /* OpenBrace */) && tokenOrKeyword.parent.kind === 137 /* TypeTranslation */) {
5592
+ if (tokenOrKeyword.isToken(43 /* OpenBrace */) && tokenOrKeyword.parent.kind === 139 /* TypeTranslation */) {
5573
5593
  return { typeTranslation: tokenOrKeyword.parent };
5574
5594
  }
5575
- const indexer = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(tokenOrKeyword, 126 /* IndexerTranslation */);
5595
+ const indexer = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(tokenOrKeyword, 128 /* IndexerTranslation */);
5576
5596
  if (indexer !== void 0) {
5577
5597
  return { typeTranslation: indexer.parent.parent };
5578
5598
  }
5579
5599
  const constructor = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(
5580
5600
  tokenOrKeyword,
5581
- 124 /* ConstructorTranslation */
5601
+ 126 /* ConstructorTranslation */
5582
5602
  );
5583
5603
  if (constructor !== void 0) {
5584
5604
  return { typeTranslation: constructor.parent.parent };
5585
5605
  }
5586
5606
  const variableOrVariant = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(
5587
5607
  tokenOrKeyword,
5588
- 135 /* TypeVariableOrVariantTranslation */
5608
+ 137 /* TypeVariableOrVariantTranslation */
5589
5609
  );
5590
5610
  if (variableOrVariant !== void 0) {
5591
5611
  return { typeTranslation: variableOrVariant.parent.parent };
5592
5612
  }
5593
5613
  const method = SyntaxContextUtils.ifTokenIsValidEndOfNodeThenNode(
5594
5614
  tokenOrKeyword,
5595
- 130 /* TypeMethodTranslation */
5615
+ 132 /* TypeMethodTranslation */
5596
5616
  );
5597
5617
  if (method !== void 0) {
5598
5618
  return { typeTranslation: method.parent.parent };
@@ -5717,13 +5737,13 @@ var NodeSemanticInfoService = class {
5717
5737
  return this.ofDereferenceExpressionOperator(analyzer, tokenOrKeyword.parent, options6);
5718
5738
  } else if (tokenOrKeyword.parent.kind === 91 /* AssignmentStatement */) {
5719
5739
  return this.ofAssignmentStatementOperator(analyzer, tokenOrKeyword.parent, options6);
5720
- } else if (tokenOrKeyword.isKeyword(29 /* Creation */) && tokenOrKeyword.parent.kind === 45 /* TypeConstructorDeclaration */) {
5740
+ } else if (tokenOrKeyword.isKeyword(30 /* Creation */) && tokenOrKeyword.parent.kind === 45 /* TypeConstructorDeclaration */) {
5721
5741
  return this.ofTypeConstructorDeclaration(analyzer, tokenOrKeyword.parent);
5722
5742
  } else if (tokenOrKeyword.isToken(13 /* Asterisk */) && tokenOrKeyword.parent.kind === 90 /* DefaultMatchExpression */) {
5723
5743
  return this.ofDefaultMatchExpression(analyzer, tokenOrKeyword.parent);
5724
5744
  } else if (tokenOrKeyword.isKeyword(4 /* Object */) && tokenOrKeyword.parent.kind === 86 /* ObjectExpression */) {
5725
5745
  return this.ofObjectExpression(analyzer, tokenOrKeyword.parent, options6);
5726
- } else if (tokenOrKeyword.isKeyword(55 /* Base */) && tokenOrKeyword.parent.kind === 87 /* BaseExpression */) {
5746
+ } else if (tokenOrKeyword.isKeyword(56 /* Base */) && tokenOrKeyword.parent.kind === 87 /* BaseExpression */) {
5727
5747
  return this.ofBaseExpression(analyzer, tokenOrKeyword.parent, options6);
5728
5748
  } else if ((tokenOrKeyword.isToken(45 /* OpenSquareBracket */) || tokenOrKeyword.isToken(22 /* CloseSquareBracket */)) && tokenOrKeyword.parent.kind === 49 /* TypeIndexerParameterClause */) {
5729
5749
  return this.ofTypeIndexerDeclaration(analyzer, tokenOrKeyword.parent.parent);
@@ -5740,11 +5760,11 @@ var NodeSemanticInfoService = class {
5740
5760
  let result;
5741
5761
  const parent = node.parent;
5742
5762
  switch (parent.kind) {
5743
- case 127 /* TranslationTypeParameterList */:
5763
+ case 129 /* TranslationTypeParameterList */:
5744
5764
  break;
5745
- case 122 /* TranslationParameterList */:
5765
+ case 124 /* TranslationParameterList */:
5746
5766
  break;
5747
- case 143 /* Argument */: {
5767
+ case 145 /* Argument */: {
5748
5768
  const respectiveParameter = analyzer.getRespectiveParameter(parent);
5749
5769
  if (respectiveParameter !== void 0) {
5750
5770
  const target = new SimpleWithLocalization(
@@ -5761,7 +5781,7 @@ var NodeSemanticInfoService = class {
5761
5781
  case 60 /* EnumerationVariableDeclaration */:
5762
5782
  result = new DefinitionNodeSemanticInfo(analyzer.entity.ofEnumerationVariableDeclaration(parent));
5763
5783
  break;
5764
- case 100 /* ErrorVariableDeclaration */:
5784
+ case 101 /* ErrorVariableDeclaration */:
5765
5785
  result = new DefinitionNodeSemanticInfo(analyzer.entity.ofErrorVariableDeclaration(parent));
5766
5786
  break;
5767
5787
  case 22 /* PackageAliasTypeDeclaration */:
@@ -5791,10 +5811,10 @@ var NodeSemanticInfoService = class {
5791
5811
  case 59 /* LocalVariableDeclaration */:
5792
5812
  result = new DefinitionNodeSemanticInfo(analyzer.entity.ofLocalVariableDeclaration(parent));
5793
5813
  break;
5794
- case 133 /* QualifiedName */:
5814
+ case 135 /* QualifiedName */:
5795
5815
  result = this.ofQualifiedNameQualifier(analyzer, parent, node, options6);
5796
5816
  break;
5797
- case 134 /* PackageVariableTranslation */: {
5817
+ case 136 /* PackageVariableTranslation */: {
5798
5818
  const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5799
5819
  const getTargetResult = translationPackage?.getPackageVariableTranslationTarget(parent);
5800
5820
  if (translationPackage !== void 0 && getTargetResult?.target !== void 0) {
@@ -5814,7 +5834,7 @@ var NodeSemanticInfoService = class {
5814
5834
  }
5815
5835
  break;
5816
5836
  }
5817
- case 135 /* TypeVariableOrVariantTranslation */: {
5837
+ case 137 /* TypeVariableOrVariantTranslation */: {
5818
5838
  const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5819
5839
  const getTargetsResult = translationPackage?.getTypeVariableOrVariantTranslationTargets(parent);
5820
5840
  if (translationPackage !== void 0 && isNonEmptyArray(getTargetsResult?.targets)) {
@@ -5838,7 +5858,7 @@ var NodeSemanticInfoService = class {
5838
5858
  }
5839
5859
  break;
5840
5860
  }
5841
- case 129 /* PackageMethodTranslation */: {
5861
+ case 131 /* PackageMethodTranslation */: {
5842
5862
  const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5843
5863
  const getTargetsResult = translationPackage?.getPackageMethodTranslationTargets(parent);
5844
5864
  if (translationPackage !== void 0 && isNonEmptyArray(getTargetsResult?.targets)) {
@@ -5862,7 +5882,7 @@ var NodeSemanticInfoService = class {
5862
5882
  }
5863
5883
  break;
5864
5884
  }
5865
- case 130 /* TypeMethodTranslation */: {
5885
+ case 132 /* TypeMethodTranslation */: {
5866
5886
  const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5867
5887
  const getTargetsResult = translationPackage?.getTypeMethodTranslationTargets(parent);
5868
5888
  if (translationPackage !== void 0 && isNonEmptyArray(getTargetsResult?.targets)) {
@@ -5886,7 +5906,7 @@ var NodeSemanticInfoService = class {
5886
5906
  }
5887
5907
  break;
5888
5908
  }
5889
- case 137 /* TypeTranslation */: {
5909
+ case 139 /* TypeTranslation */: {
5890
5910
  const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5891
5911
  const getTargetResult = translationPackage?.getTypeTranslationTarget(parent);
5892
5912
  if (translationPackage !== void 0 && getTargetResult?.target !== void 0) {
@@ -5906,7 +5926,7 @@ var NodeSemanticInfoService = class {
5906
5926
  }
5907
5927
  break;
5908
5928
  }
5909
- case 131 /* MethodTypeTranslation */: {
5929
+ case 133 /* MethodTypeTranslation */: {
5910
5930
  const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5911
5931
  const getTargetResult = translationPackage?.getMethodTypeTranslationTarget(parent);
5912
5932
  if (translationPackage !== void 0 && getTargetResult?.target !== void 0) {
@@ -5926,7 +5946,7 @@ var NodeSemanticInfoService = class {
5926
5946
  }
5927
5947
  break;
5928
5948
  }
5929
- case 142 /* ParameterDeclaration */:
5949
+ case 144 /* ParameterDeclaration */:
5930
5950
  result = new DefinitionNodeSemanticInfo(analyzer.entity.ofParameterDeclaration(parent));
5931
5951
  break;
5932
5952
  case 8 /* PackageImport */:
@@ -5947,10 +5967,10 @@ var NodeSemanticInfoService = class {
5947
5967
  case 54 /* TypeVariableDeclaration */:
5948
5968
  result = new DefinitionNodeSemanticInfo(analyzer.entity.ofTypeVariableDeclaration(parent));
5949
5969
  break;
5950
- case 141 /* TypeParameterDeclaration */:
5970
+ case 143 /* TypeParameterDeclaration */:
5951
5971
  result = new DefinitionNodeSemanticInfo(analyzer.entity.ofTypeParameterDeclaration(parent));
5952
5972
  break;
5953
- case 140 /* VariantDeclaration */:
5973
+ case 142 /* VariantDeclaration */:
5954
5974
  result = new DefinitionNodeSemanticInfo(analyzer.entity.ofVariantDeclaration(parent));
5955
5975
  break;
5956
5976
  case 36 /* PackageVariableGetterDeclaration */:
@@ -6076,10 +6096,10 @@ var NodeSemanticInfoService = class {
6076
6096
  switch (node.parent.kind) {
6077
6097
  case 10 /* NamedTypeSpecifier */:
6078
6098
  return this.ofNamedTypeSpecifierNameQualifier(analyzer, node.parent, qualifier, options6);
6079
- case 145 /* Tag */:
6099
+ case 147 /* Tag */:
6080
6100
  return this.ofTagNameQualifier(analyzer, node.parent, qualifier, options6);
6081
6101
  case 42 /* ExtendedTypeClause */:
6082
- case 132 /* PackageImportTranslation */:
6102
+ case 134 /* PackageImportTranslation */:
6083
6103
  return void 0;
6084
6104
  default:
6085
6105
  Debug.never(node.parent);
@@ -6820,7 +6840,7 @@ function getEntitySourceLocations(analyzer, entity) {
6820
6840
  case 38 /* PackageVariantTypeDeclaration */:
6821
6841
  case 58 /* NestedMethodDeclaration */:
6822
6842
  case 52 /* TypeMethodDeclaration */:
6823
- case 141 /* TypeParameterDeclaration */:
6843
+ case 143 /* TypeParameterDeclaration */:
6824
6844
  case 53 /* OperatorDeclaration */:
6825
6845
  range = node.name.rangeWithoutTrivia;
6826
6846
  break;
@@ -7661,17 +7681,17 @@ var EvaluatableExpressionService = class {
7661
7681
  return { nameIdentifier: node.name };
7662
7682
  case 59 /* LocalVariableDeclaration */:
7663
7683
  return { nameIdentifier: node.name };
7664
- case 142 /* ParameterDeclaration */:
7684
+ case 144 /* ParameterDeclaration */:
7665
7685
  return { nameIdentifier: node.name };
7666
7686
  case 52 /* TypeMethodDeclaration */:
7667
7687
  return { nameIdentifier: node.name };
7668
7688
  case 54 /* TypeVariableDeclaration */:
7669
7689
  return { nameIdentifier: node.name };
7670
- case 141 /* TypeParameterDeclaration */:
7690
+ case 143 /* TypeParameterDeclaration */:
7671
7691
  return { nameIdentifier: node.name };
7672
- case 140 /* VariantDeclaration */:
7692
+ case 142 /* VariantDeclaration */:
7673
7693
  return { nameIdentifier: node.name };
7674
- case 100 /* ErrorVariableDeclaration */:
7694
+ case 101 /* ErrorVariableDeclaration */:
7675
7695
  return { nameIdentifier: node.name };
7676
7696
  default:
7677
7697
  return void 0;
@@ -7849,7 +7869,7 @@ var HoverService = class {
7849
7869
  const typeText = this._displayService.displayType(firstTarget.value.type);
7850
7870
  return new Hover(`${keywordText}: ${typeText}`, range);
7851
7871
  } else if (firstTarget.value.typeContextKind === "base") {
7852
- const keywordText = this._displayService.displayKeyword(55 /* Base */);
7872
+ const keywordText = this._displayService.displayKeyword(56 /* Base */);
7853
7873
  const typeText = this._displayService.displayType(firstTarget.value.type);
7854
7874
  return new Hover(`${keywordText}: ${typeText}`, range);
7855
7875
  } else {
@@ -8106,7 +8126,7 @@ var SourceFileItemsService = class {
8106
8126
  );
8107
8127
  break;
8108
8128
  }
8109
- case 140 /* VariantDeclaration */: {
8129
+ case 142 /* VariantDeclaration */: {
8110
8130
  result.push(
8111
8131
  this.createItem(
8112
8132
  9 /* Variant */,
@@ -8118,7 +8138,7 @@ var SourceFileItemsService = class {
8118
8138
  );
8119
8139
  break;
8120
8140
  }
8121
- case 141 /* TypeParameterDeclaration */: {
8141
+ case 143 /* TypeParameterDeclaration */: {
8122
8142
  result.push(
8123
8143
  this.createItem(
8124
8144
  18 /* TypeParameter */,
@@ -8174,23 +8194,23 @@ var SourceFileItemsService = class {
8174
8194
  case 8 /* InvalidType */:
8175
8195
  return name ?? `<${LocalizationHelper.localizeKeywordAndTakeFirst(16 /* Type */, this.locale, this.dialect)}>`;
8176
8196
  case 10 /* TypeConstructor */:
8177
- return name ?? LocalizationHelper.localizeKeywordAndTakeFirst(29 /* Creation */, this.locale, this.dialect);
8197
+ return name ?? LocalizationHelper.localizeKeywordAndTakeFirst(30 /* Creation */, this.locale, this.dialect);
8178
8198
  case 11 /* TypeDestructor */:
8179
- return name ?? LocalizationHelper.localizeKeywordAndTakeFirst(46 /* Destruction */, this.locale, this.dialect);
8199
+ return name ?? LocalizationHelper.localizeKeywordAndTakeFirst(47 /* Destruction */, this.locale, this.dialect);
8180
8200
  case 9 /* Variant */:
8181
8201
  return name ?? `<${LocalizationHelper.localizeKeywordAndTakeFirst(6 /* Variant */, this.locale, this.dialect)}>`;
8182
8202
  case 18 /* TypeParameter */:
8183
8203
  return name ?? `<${LocalizationHelper.localizeHelperPhrase(2 /* TypeParameter */, this.locale)}>`;
8184
8204
  case 2 /* PackageVariableGetter */:
8185
8205
  case 13 /* TypeVariableGetter */:
8186
- return `${LocalizationHelper.localizeKeywordAndTakeFirst(57 /* Get */, this.locale, this.dialect)} ${name ?? ""}`;
8206
+ return `${LocalizationHelper.localizeKeywordAndTakeFirst(58 /* Get */, this.locale, this.dialect)} ${name ?? ""}`;
8187
8207
  case 3 /* PackageVariableSetter */:
8188
8208
  case 14 /* TypeVariableSetter */:
8189
- return `${LocalizationHelper.localizeKeywordAndTakeFirst(58 /* Set */, this.locale, this.dialect)} ${name ?? ""}`;
8209
+ return `${LocalizationHelper.localizeKeywordAndTakeFirst(59 /* Set */, this.locale, this.dialect)} ${name ?? ""}`;
8190
8210
  case 16 /* TypeIndexedGetter */:
8191
- return `${LocalizationHelper.localizeKeywordAndTakeFirst(57 /* Get */, this.locale, this.dialect)} []`;
8211
+ return `${LocalizationHelper.localizeKeywordAndTakeFirst(58 /* Get */, this.locale, this.dialect)} []`;
8192
8212
  case 17 /* TypeIndexedSetter */:
8193
- return `${LocalizationHelper.localizeKeywordAndTakeFirst(58 /* Set */, this.locale, this.dialect)} []`;
8213
+ return `${LocalizationHelper.localizeKeywordAndTakeFirst(59 /* Set */, this.locale, this.dialect)} []`;
8194
8214
  default:
8195
8215
  Debug.never(kind);
8196
8216
  }
@@ -8385,7 +8405,7 @@ var SelectionRangeService = class {
8385
8405
  }
8386
8406
  }
8387
8407
  switch (node.kind) {
8388
- case 154 /* TypeAnnotation */:
8408
+ case 156 /* TypeAnnotation */:
8389
8409
  case 34 /* StructuredTypeDeclarationBody */:
8390
8410
  case 39 /* VariantTypeDeclarationBody */:
8391
8411
  case 23 /* AliasTypeDeclarationBody */:
@@ -8529,7 +8549,7 @@ var SemanticTokensService = class {
8529
8549
  ));
8530
8550
  }
8531
8551
  }
8532
- if (node.kind === 140 /* VariantDeclaration */) {
8552
+ if (node.kind === 142 /* VariantDeclaration */) {
8533
8553
  result.push(
8534
8554
  new SemanticToken(
8535
8555
  node.name.rangeWithoutTrivia,
@@ -8713,7 +8733,7 @@ var TypeParameterSignatureHelpProvider = class {
8713
8733
  }
8714
8734
  let node = token.parent;
8715
8735
  while (node !== void 0) {
8716
- if (node.kind === 150 /* TypeArgumentClause */ && this._offset >= node.lessThanToken.rangeWithoutTrivia.end && (node.greaterThanToken.rangeWithoutTrivia.isEmpty || this._offset <= node.greaterThanToken.rangeWithoutTrivia.start)) {
8736
+ if (node.kind === 152 /* TypeArgumentClause */ && this._offset >= node.lessThanToken.rangeWithoutTrivia.end && (node.greaterThanToken.rangeWithoutTrivia.isEmpty || this._offset <= node.greaterThanToken.rangeWithoutTrivia.start)) {
8717
8737
  const argumentIndex = this.getArgumentIndex(node.typeArgumentList, this._offset);
8718
8738
  const argumentCount = this.countArguments(node.typeArgumentList);
8719
8739
  return new NodeWithTypeArgumentsInfo(node.parent, argumentIndex, argumentCount);
@@ -8760,7 +8780,7 @@ var TypeParameterSignatureHelpProvider = class {
8760
8780
  return this.getSignaturesForNamedTypeSpecifier(node);
8761
8781
  case 89 /* GenericSpecializationExpression */:
8762
8782
  return this.getSignaturesForGenericSpecializationExpression(node);
8763
- case 145 /* Tag */:
8783
+ case 147 /* Tag */:
8764
8784
  return this.getSignaturesForTag(node);
8765
8785
  default:
8766
8786
  Debug.never(node);
@@ -9091,7 +9111,7 @@ var ValueParametersSignatureHelpProvider = class {
9091
9111
  }
9092
9112
  break;
9093
9113
  }
9094
- case 145 /* Tag */: {
9114
+ case 147 /* Tag */: {
9095
9115
  if (node.openParenthesisToken !== void 0 && this._offset >= node.openParenthesisToken.rangeWithoutTrivia.end && node.argumentList !== void 0 && (node.closeParenthesisToken === void 0 || node.closeParenthesisToken.rangeWithoutTrivia.isEmpty || this._offset <= node.closeParenthesisToken.rangeWithoutTrivia.start)) {
9096
9116
  const argumentIndex = this.getArgumentIndexInList(node.argumentList.elements, this._offset);
9097
9117
  const valueArguments = ValueArgumentFactory.createValueArgumentsOfTag(node);
@@ -11628,7 +11648,7 @@ var EntityToSyntax = class {
11628
11648
  convertPackageVariable(entity) {
11629
11649
  const commonModifiers = new Array();
11630
11650
  if (entity.isConstant()) {
11631
- commonModifiers.push(SyntaxFactory.modifier(34 /* Const */));
11651
+ commonModifiers.push(SyntaxFactory.modifier(35 /* Const */));
11632
11652
  }
11633
11653
  const name = this.getEntityName(entity);
11634
11654
  const type = this.convertType(entity.getType());
@@ -11670,7 +11690,7 @@ var EntityToSyntax = class {
11670
11690
  const tags = this.convertTags(entity.getTags());
11671
11691
  const modifiers = new Array();
11672
11692
  if (entity.isAsync()) {
11673
- modifiers.push(SyntaxFactory.modifier(39 /* Async */));
11693
+ modifiers.push(SyntaxFactory.modifier(40 /* Async */));
11674
11694
  }
11675
11695
  const isHidden = entity.isHidden();
11676
11696
  if (isHidden !== void 0) {
@@ -11752,19 +11772,19 @@ var EntityToSyntax = class {
11752
11772
  }
11753
11773
  const commonModifiers = new Array();
11754
11774
  if (entity.isConstant()) {
11755
- commonModifiers.push(SyntaxFactory.modifier(34 /* Const */));
11775
+ commonModifiers.push(SyntaxFactory.modifier(35 /* Const */));
11756
11776
  }
11757
11777
  if (entity.isStatic()) {
11758
- commonModifiers.push(SyntaxFactory.modifier(40 /* Static */));
11778
+ commonModifiers.push(SyntaxFactory.modifier(41 /* Static */));
11759
11779
  }
11760
11780
  if (entity.isAbstract()) {
11761
- commonModifiers.push(SyntaxFactory.modifier(36 /* Abstract */));
11781
+ commonModifiers.push(SyntaxFactory.modifier(37 /* Abstract */));
11762
11782
  }
11763
11783
  if (entity.isRedefinable()) {
11764
- commonModifiers.push(SyntaxFactory.modifier(37 /* Redefinable */));
11784
+ commonModifiers.push(SyntaxFactory.modifier(38 /* Redefinable */));
11765
11785
  }
11766
11786
  if (entity.isRedefined()) {
11767
- commonModifiers.push(SyntaxFactory.modifier(38 /* Redefined */));
11787
+ commonModifiers.push(SyntaxFactory.modifier(39 /* Redefined */));
11768
11788
  }
11769
11789
  const name = this.getEntityName(entity);
11770
11790
  const type = this.convertType(entity.getType());
@@ -11810,16 +11830,16 @@ var EntityToSyntax = class {
11810
11830
  modifiers.push(this.createHidingModifier(isHidden));
11811
11831
  }
11812
11832
  if (entity.isStatic()) {
11813
- modifiers.push(SyntaxFactory.modifier(40 /* Static */));
11833
+ modifiers.push(SyntaxFactory.modifier(41 /* Static */));
11814
11834
  }
11815
11835
  if (entity.isAbstract()) {
11816
- modifiers.push(SyntaxFactory.modifier(36 /* Abstract */));
11836
+ modifiers.push(SyntaxFactory.modifier(37 /* Abstract */));
11817
11837
  }
11818
11838
  if (entity.isRedefinable()) {
11819
- modifiers.push(SyntaxFactory.modifier(37 /* Redefinable */));
11839
+ modifiers.push(SyntaxFactory.modifier(38 /* Redefinable */));
11820
11840
  }
11821
11841
  if (entity.isRedefined()) {
11822
- modifiers.push(SyntaxFactory.modifier(38 /* Redefined */));
11842
+ modifiers.push(SyntaxFactory.modifier(39 /* Redefined */));
11823
11843
  }
11824
11844
  const name = this.getEntityName(entity);
11825
11845
  const typeParameters = this.convertTypeParameters(entity.getTypeParameters());
@@ -11835,7 +11855,7 @@ var EntityToSyntax = class {
11835
11855
  modifiers.push(this.createHidingModifier(isHidden));
11836
11856
  }
11837
11857
  if (entity.isAbstract()) {
11838
- modifiers.push(SyntaxFactory.modifier(36 /* Abstract */));
11858
+ modifiers.push(SyntaxFactory.modifier(37 /* Abstract */));
11839
11859
  }
11840
11860
  const parameters = this.convertValueParameters(entity.getValueParameters());
11841
11861
  return SyntaxFactory.typeConstructorDeclaration(tags, modifiers, parameters, void 0);
@@ -11848,7 +11868,7 @@ var EntityToSyntax = class {
11848
11868
  modifiers.push(this.createHidingModifier(isHidden));
11849
11869
  }
11850
11870
  if (entity.isAbstract()) {
11851
- modifiers.push(SyntaxFactory.modifier(36 /* Abstract */));
11871
+ modifiers.push(SyntaxFactory.modifier(37 /* Abstract */));
11852
11872
  }
11853
11873
  const parameters = this.convertValueParameters(entity.getValueParameters());
11854
11874
  return SyntaxFactory.typeDestructorDeclaration(tags, modifiers, parameters, void 0);
@@ -11856,10 +11876,10 @@ var EntityToSyntax = class {
11856
11876
  convertTypeIndexer(entity) {
11857
11877
  const commonModifiers = new Array();
11858
11878
  if (entity.isStatic()) {
11859
- commonModifiers.push(SyntaxFactory.modifier(40 /* Static */));
11879
+ commonModifiers.push(SyntaxFactory.modifier(41 /* Static */));
11860
11880
  }
11861
11881
  if (entity.isAbstract()) {
11862
- commonModifiers.push(SyntaxFactory.modifier(36 /* Abstract */));
11882
+ commonModifiers.push(SyntaxFactory.modifier(37 /* Abstract */));
11863
11883
  }
11864
11884
  const parameters = this.convertValueParameters(entity.getValueParameters());
11865
11885
  const result = new Array();
@@ -11973,21 +11993,21 @@ var EntityToSyntax = class {
11973
11993
  let levelKeyword;
11974
11994
  switch (hiding.kind) {
11975
11995
  case "type":
11976
- levelKeyword = 50 /* InType */;
11996
+ levelKeyword = 51 /* InType */;
11977
11997
  break;
11978
11998
  case "type-hierarchy":
11979
- levelKeyword = 47 /* InHierarchy */;
11999
+ levelKeyword = 48 /* InHierarchy */;
11980
12000
  break;
11981
12001
  case "file":
11982
- levelKeyword = 48 /* InFile */;
12002
+ levelKeyword = 49 /* InFile */;
11983
12003
  break;
11984
12004
  case "package":
11985
- levelKeyword = 49 /* InPackage */;
12005
+ levelKeyword = 50 /* InPackage */;
11986
12006
  break;
11987
12007
  default:
11988
12008
  Debug.never(hiding);
11989
12009
  }
11990
- return SyntaxFactory.modifier(35 /* Hidden */, levelKeyword);
12010
+ return SyntaxFactory.modifier(36 /* Hidden */, levelKeyword);
11991
12011
  }
11992
12012
  convertTags(_entityTags) {
11993
12013
  return [];