@artel/artc 0.6.25217 → 0.6.25219

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 (104) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +16 -66
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +930 -888
  5. package/build/{chunk-HN3XZZQX.js → chunk-AIY75NR5.js} +5 -4
  6. package/build/{chunk-TXAEJ2GI.js → chunk-IYSH7MAQ.js} +10562 -10629
  7. package/build/{chunk-CMPXXHBQ.js → chunk-QLTGS2V2.js} +13 -5
  8. package/build/types/analysis/AnalyzedTranslationPackage.d.ts +4 -26
  9. package/build/types/analysis/Analyzer.d.ts +27 -69
  10. package/build/types/analysis/{CallArgumentToParameterMatchResult.d.ts → ArgumentToParameterMatchResult.d.ts} +7 -7
  11. package/build/types/analysis/{CallArgumentsToParametersMatcher.d.ts → ArgumentsToParametersMatcher.d.ts} +14 -14
  12. package/build/types/analysis/ConstructorOverloadResolver.d.ts +1 -1
  13. package/build/types/analysis/DereferenceExpressionMeaning.d.ts +3 -3
  14. package/build/types/analysis/DiagnosticCollector.d.ts +2 -0
  15. package/build/types/analysis/FindModifier.d.ts +2 -0
  16. package/build/types/analysis/IdentifierExpressionMeaning.d.ts +14 -12
  17. package/build/types/analysis/LocalizationContext.d.ts +4 -5
  18. package/build/types/analysis/Lookup.d.ts +8 -7
  19. package/build/types/analysis/ModifierFlags.d.ts +16 -0
  20. package/build/types/analysis/NamedTypeSpecifierResolver.d.ts +0 -1
  21. package/build/types/analysis/NodeTypeUtils.d.ts +1 -0
  22. package/build/types/analysis/OperationOverloadResolver.d.ts +2 -2
  23. package/build/types/analysis/OverloadResolver.d.ts +4 -4
  24. package/build/types/analysis/PackageMemberLookup.d.ts +5 -6
  25. package/build/types/analysis/PropertyAccessExpressionMeaning.d.ts +18 -16
  26. package/build/types/analysis/Scope.d.ts +21 -116
  27. package/build/types/analysis/SemanticContext.d.ts +23 -13
  28. package/build/types/analysis/SemanticContextBuilder.d.ts +1 -1
  29. package/build/types/analysis/SourceFileMembers.d.ts +12 -99
  30. package/build/types/analysis/TagMeaning.d.ts +57 -9
  31. package/build/types/analysis/Tags.d.ts +18 -6
  32. package/build/types/analysis/TypeMemberLookup.d.ts +15 -15
  33. package/build/types/analysis/TypeOverloadResolver.d.ts +1 -1
  34. package/build/types/analysis/Utils.d.ts +4 -3
  35. package/build/types/analysis/WellKnownDeclarations.d.ts +1 -0
  36. package/build/types/analysis/index.d.ts +1 -1
  37. package/build/types/api/Api.d.ts +2 -6
  38. package/build/types/diagnostic/DiagnosticCode.d.ts +21 -17
  39. package/build/types/emitter/{EmitterGeneratedDeclarationKind.d.ts → EmitPhaseName.d.ts} +1 -44
  40. package/build/types/emitter/EmitterContext.d.ts +4 -1
  41. package/build/types/emitter/Entities.d.ts +52 -16
  42. package/build/types/emitter/EntityMap.d.ts +1 -3
  43. package/build/types/emitter/IrBuilder.d.ts +6 -2
  44. package/build/types/emitter/IrToJs.d.ts +6 -5
  45. package/build/types/emitter/Transformer.d.ts +20 -12
  46. package/build/types/emitter/ir/EmitOptions.d.ts +163 -0
  47. package/build/types/emitter/ir/Nodes.d.ts +215 -179
  48. package/build/types/emitter/ir/index.d.ts +1 -2
  49. package/build/types/emitter/ir/types.d.ts +4 -4
  50. package/build/types/entities/AliasTypeEntity.d.ts +8 -4
  51. package/build/types/entities/ConstructorEntity.d.ts +2 -0
  52. package/build/types/entities/DereferenceOperatorEntity.d.ts +5 -3
  53. package/build/types/entities/DestructorEntity.d.ts +2 -0
  54. package/build/types/entities/GetterEntity.d.ts +8 -0
  55. package/build/types/entities/IndexerEntity.d.ts +5 -3
  56. package/build/types/entities/MethodEntity.d.ts +9 -5
  57. package/build/types/entities/MethodTypeEntity.d.ts +10 -5
  58. package/build/types/entities/OperatorEntity.d.ts +5 -3
  59. package/build/types/entities/PackageEntity.d.ts +3 -3
  60. package/build/types/entities/PackageMembers.d.ts +4 -90
  61. package/build/types/entities/SetterEntity.d.ts +8 -0
  62. package/build/types/entities/StructuredTypeEntity.d.ts +11 -6
  63. package/build/types/entities/TypeEntity.d.ts +15 -0
  64. package/build/types/entities/TypeExtensionEntity.d.ts +2 -0
  65. package/build/types/entities/TypeParameterEntity.d.ts +11 -6
  66. package/build/types/entities/VariableEntity.d.ts +50 -41
  67. package/build/types/entities/VariantTypeEntity.d.ts +10 -11
  68. package/build/types/entities/index.d.ts +17 -25
  69. package/build/types/executor/Compiler.d.ts +1 -0
  70. package/build/types/executor/NodeCompiler.d.ts +1 -0
  71. package/build/types/parser/CharacterCodes.d.ts +8 -0
  72. package/build/types/parser/ReservedIdentifierDictionary.d.ts +1 -2
  73. package/build/types/project/FileSystemTree.d.ts +2 -2
  74. package/build/types/services/CompletionService.d.ts +4 -1
  75. package/build/types/services/DisplayService.d.ts +18 -2
  76. package/build/types/services/NodeSemanticInfo.d.ts +7 -5
  77. package/build/types/services/signature-help/SignatureWithValueParameters.d.ts +7 -21
  78. package/build/types/services/signature-help/TypeParameterSignatureHelpProvider.d.ts +1 -0
  79. package/build/types/services/source-generation/EntityToSyntax.d.ts +1 -1
  80. package/build/types/services/source-generation/SourceGenerationService.d.ts +2 -2
  81. package/build/types/services/workspace/ClientTrackedSourceFiles.d.ts +5 -5
  82. package/build/types/services/workspace/CompilationController.d.ts +3 -3
  83. package/build/types/services/workspace/FileSystemTreeProviderBasedOnWatchedFileSystem.d.ts +4 -4
  84. package/build/types/services/workspace/ManuallyUpdatedFileSystemTreeProvider.d.ts +4 -4
  85. package/build/types/services/workspace/Workspace.d.ts +3 -3
  86. package/build/types/services/workspace/WorkspaceFiles.d.ts +7 -7
  87. package/build/types/tree/KeywordKind.d.ts +37 -37
  88. package/build/types/tree/NodeKind.d.ts +10 -12
  89. package/build/types/tree/green/Nodes.d.ts +57 -84
  90. package/build/types/tree/green/SyntaxFactory.d.ts +4 -5
  91. package/build/types/tree/green/SyntaxToCode.d.ts +1 -2
  92. package/build/types/tree/red/Nodes.d.ts +67 -97
  93. package/build/types/ts-interop/Entities.d.ts +51 -28
  94. package/build/types/ts-interop/TsPackageMembersCreator.d.ts +0 -1
  95. package/build/types/types/TypeMembers.d.ts +9 -0
  96. package/package.json +2 -2
  97. package/build/types/analysis/DereferencedVariableAccess.d.ts +0 -14
  98. package/build/types/analysis/IndexedAccess.d.ts +0 -14
  99. package/build/types/analysis/VariableAccess.d.ts +0 -14
  100. package/build/types/analysis/VariantLookup.d.ts +0 -20
  101. package/build/types/emitter/ir/LoweringOptions.d.ts +0 -36
  102. package/build/types/emitter/ir/LoweringState.d.ts +0 -49
  103. package/build/types/entities/VariantEntity.d.ts +0 -31
  104. package/build/types/entities/Variants.d.ts +0 -10
@@ -6,9 +6,9 @@ import {
6
6
  AnonymousStructuredTypeDeclaration,
7
7
  AnonymousTypeSpecifier,
8
8
  AnonymousVariantTypeDeclaration,
9
+ ArgumentList,
9
10
  BaseTypeList,
10
11
  Cached,
11
- CallArgumentList,
12
12
  CancelledError,
13
13
  CompilationLoader,
14
14
  ConfigurationConverter,
@@ -44,6 +44,7 @@ import {
44
44
  LocalizationContext,
45
45
  LocalizationHelper,
46
46
  Logger,
47
+ MethodDeclaration_accessedMethod,
47
48
  MethodDeclaration_entity,
48
49
  MethodDeclaration_substitutedMethod,
49
50
  MethodDeclaration_typeMember,
@@ -88,8 +89,6 @@ import {
88
89
  Query,
89
90
  Range,
90
91
  Scanner,
91
- SetterParameterClause,
92
- SetterParameterDeclaration,
93
92
  SinglePackageImportDirective,
94
93
  SourceFile,
95
94
  SourcePackageDependencyGraph,
@@ -153,7 +152,6 @@ import {
153
152
  VariableDeclaration_entity,
154
153
  VariableDeclaration_typeMember,
155
154
  VariantDeclaration,
156
- VariantLookup,
157
155
  VariantTypeDeclarationBody,
158
156
  WellKnownDeclarationsLoadError,
159
157
  __async,
@@ -182,7 +180,7 @@ import {
182
180
  unwrapParenthesizedExpressions,
183
181
  visitChildren,
184
182
  yieldExecution
185
- } from "../chunk-TXAEJ2GI.js";
183
+ } from "../chunk-IYSH7MAQ.js";
186
184
 
187
185
  // source/services/CustomCommand.ts
188
186
  import * as ls from "vscode-languageserver";
@@ -267,7 +265,7 @@ function cast(value) {
267
265
  }
268
266
 
269
267
  // source/services/LanguageServer.ts
270
- import { atomic as atomic6, atomicRun as atomicRun3 } from "reactronic";
268
+ import { atomicBlock as atomicBlock6, atomicRun as atomicRun3 } from "reactronic";
271
269
  import * as ls3 from "vscode-languageserver";
272
270
  import { TextDocument } from "vscode-languageserver-textdocument";
273
271
  import { URI as URI2 } from "vscode-uri";
@@ -370,9 +368,10 @@ var AddPropertyAssignmentService = class {
370
368
  case 74 /* MethodLiteral */:
371
369
  case 53 /* OperatorDeclaration */:
372
370
  return void 0;
373
- case 98 /* RunStatement */:
371
+ case 97 /* RunStatement */:
374
372
  return this.ifShouldBeAssignedAtTheEndOfSubprogramThenBody(parent);
375
- case 99 /* OnErrorClause */:
373
+ case 98 /* TryStatement */:
374
+ case 99 /* CatchClause */:
376
375
  case 101 /* FinallyClause */:
377
376
  case 106 /* ForStatement */:
378
377
  case 107 /* IfStatement */:
@@ -440,7 +439,7 @@ var SyntaxFactory = class {
440
439
  }
441
440
  const packagePath = this.packagePath(pathSegments);
442
441
  const packageImport = new PackageImport(aliasIdentifier, equalsToken, packagePath);
443
- const importKeyword = this.keyword(17 /* Import */);
442
+ const importKeyword = this.keyword(18 /* Import */);
444
443
  return new SinglePackageImportDirective(importKeyword, packageImport);
445
444
  }
446
445
  static packagePath(segments) {
@@ -451,7 +450,7 @@ var SyntaxFactory = class {
451
450
  static packageAliasTypeDeclaration(tags, modifiers, name, typeParameters, body) {
452
451
  const tagList = new TagList(tags);
453
452
  const modifierList = new ModifierList(modifiers);
454
- const typeKeyword = this.keyword(15 /* Type */);
453
+ const typeKeyword = this.keyword(16 /* Type */);
455
454
  const nameIdentifier = this.createIdentifier(name);
456
455
  const typeParameterClause = this.createTypeParameterClause(typeParameters);
457
456
  const equalsToken = this.token(57 /* Equals */);
@@ -484,7 +483,7 @@ var SyntaxFactory = class {
484
483
  static packageMethodDeclaration(tags, modifiers, name, typeParameters, parameters, returnTypeSpecifier, body) {
485
484
  const tagList = new TagList(tags);
486
485
  const modifierList = new ModifierList(modifiers);
487
- const functionKeyword = this.keyword(11 /* Function */);
486
+ const functionKeyword = this.keyword(12 /* Function */);
488
487
  const nameIdentifier = this.createIdentifier(name);
489
488
  const typeParameterClause = this.createTypeParameterClause(typeParameters);
490
489
  const parameterClause = this.parameterClause(parameters);
@@ -503,7 +502,7 @@ var SyntaxFactory = class {
503
502
  static packageMethodTypeDeclaration(tags, modifiers, name, typeParameters, body) {
504
503
  const tagList = new TagList(tags);
505
504
  const modifierList = new ModifierList(modifiers);
506
- const typeKeyword = this.keyword(15 /* Type */);
505
+ const typeKeyword = this.keyword(16 /* Type */);
507
506
  const nameIdentifier = this.createIdentifier(name);
508
507
  const typeParameterClause = this.createTypeParameterClause(typeParameters);
509
508
  const equalsToken = this.token(57 /* Equals */);
@@ -518,7 +517,7 @@ var SyntaxFactory = class {
518
517
  );
519
518
  }
520
519
  static methodTypeDeclarationBody(parameters, returnTypeSpecifier) {
521
- const functionKeyword = this.keyword(11 /* Function */);
520
+ const functionKeyword = this.keyword(12 /* Function */);
522
521
  const parameterClause = this.parameterClause(parameters);
523
522
  const returnTypeAnnotation = this.createTypeAnnotation(returnTypeSpecifier);
524
523
  return new MethodTypeDeclarationBody(void 0, functionKeyword, parameterClause, returnTypeAnnotation);
@@ -526,7 +525,7 @@ var SyntaxFactory = class {
526
525
  static packageStructuredTypeDeclaration(tags, modifiers, name, typeParameters, body) {
527
526
  const tagList = new TagList(tags);
528
527
  const modifierList = new ModifierList(modifiers);
529
- const typeKeyword = this.keyword(15 /* Type */);
528
+ const typeKeyword = this.keyword(16 /* Type */);
530
529
  const nameIdentifier = this.createIdentifier(name);
531
530
  const typeParameterClause = this.createTypeParameterClause(typeParameters);
532
531
  const equalsToken = this.token(57 /* Equals */);
@@ -583,24 +582,17 @@ var SyntaxFactory = class {
583
582
  body
584
583
  );
585
584
  }
586
- static packageVariableSetterDeclaration(tags, modifiers, name, setterParameterClause, body) {
585
+ static packageVariableSetterDeclaration(tags, modifiers, name, body) {
587
586
  const tagList = new TagList(tags);
588
587
  const modifierList = new ModifierList(modifiers);
589
588
  const setKeyword = this.keyword(58 /* Set */);
590
589
  const nameIdentifier = this.createIdentifier(name);
591
- return new PackageVariableSetterDeclaration(
592
- tagList,
593
- modifierList,
594
- setKeyword,
595
- nameIdentifier,
596
- setterParameterClause,
597
- body
598
- );
590
+ return new PackageVariableSetterDeclaration(tagList, modifierList, setKeyword, nameIdentifier, body);
599
591
  }
600
592
  static packageVariantTypeDeclaration(tags, modifiers, name, typeParameters, body) {
601
593
  const tagList = new TagList(tags);
602
594
  const modifierList = new ModifierList(modifiers);
603
- const typeKeyword = this.keyword(15 /* Type */);
595
+ const typeKeyword = this.keyword(16 /* Type */);
604
596
  const nameIdentifier = this.createIdentifier(name);
605
597
  const typeParameterClause = this.createTypeParameterClause(typeParameters);
606
598
  const equalsToken = this.token(57 /* Equals */);
@@ -652,24 +644,17 @@ var SyntaxFactory = class {
652
644
  body
653
645
  );
654
646
  }
655
- static typeVariableSetterDeclaration(tags, modifiers, name, setterParameterClause, body) {
647
+ static typeVariableSetterDeclaration(tags, modifiers, name, body) {
656
648
  const tagList = new TagList(tags);
657
649
  const modifierList = new ModifierList(modifiers);
658
650
  const setKeyword = this.keyword(58 /* Set */);
659
651
  const nameIdentifier = this.createIdentifier(name);
660
- return new TypeVariableSetterDeclaration(
661
- tagList,
662
- modifierList,
663
- setKeyword,
664
- nameIdentifier,
665
- setterParameterClause,
666
- body
667
- );
652
+ return new TypeVariableSetterDeclaration(tagList, modifierList, setKeyword, nameIdentifier, body);
668
653
  }
669
654
  static typeMethodDeclaration(tags, modifiers, name, typeParameters, parameters, returnTypeSpecifier, body) {
670
655
  const tagList = new TagList(tags);
671
656
  const modifierList = new ModifierList(modifiers);
672
- const functionKeyword = this.keyword(11 /* Function */);
657
+ const functionKeyword = this.keyword(12 /* Function */);
673
658
  const nameIdentifier = this.createIdentifier(name);
674
659
  const typeParameterClause = this.createTypeParameterClause(typeParameters);
675
660
  const parameterClause = this.parameterClause(parameters);
@@ -688,7 +673,7 @@ var SyntaxFactory = class {
688
673
  static typeConstructorDeclaration(tags, modifiers, parameters, body) {
689
674
  const tagList = new TagList(tags);
690
675
  const modifierList = new ModifierList(modifiers);
691
- const creationKeyword = this.keyword(28 /* Creation */);
676
+ const creationKeyword = this.keyword(29 /* Creation */);
692
677
  const parameterClause = this.parameterClause(parameters);
693
678
  return new TypeConstructorDeclaration(tagList, modifierList, creationKeyword, parameterClause, body);
694
679
  }
@@ -714,19 +699,12 @@ var SyntaxFactory = class {
714
699
  body
715
700
  );
716
701
  }
717
- static typeIndexedSetterDeclaration(tags, modifiers, parameters, setterParameterClause, body) {
702
+ static typeIndexedSetterDeclaration(tags, modifiers, parameters, body) {
718
703
  const tagList = new TagList(tags);
719
704
  const modifierList = new ModifierList(modifiers);
720
705
  const getKeyword = this.keyword(58 /* Set */);
721
706
  const parameterClause = this.indexerParameterClause(parameters);
722
- return new TypeIndexedSetterDeclaration(
723
- tagList,
724
- modifierList,
725
- getKeyword,
726
- parameterClause,
727
- setterParameterClause,
728
- body
729
- );
707
+ return new TypeIndexedSetterDeclaration(tagList, modifierList, getKeyword, parameterClause, body);
730
708
  }
731
709
  static typeMemberGroupDeclaration(tags, modifiers, members) {
732
710
  const tagList = new TagList(tags);
@@ -821,27 +799,31 @@ var SyntaxFactory = class {
821
799
  }
822
800
  return new ParameterDeclaration(tagList, nameIdentifier, typeAnnotation, equalsToken, defaultValue);
823
801
  }
824
- static setterParameterClause(name, typeSpecifier) {
825
- const openParenthesisToken = this.token(44 /* OpenParenthesis */);
826
- const nameIdentifier = this.createIdentifier(name);
827
- const typeAnnotation = this.typeAnnotation(typeSpecifier);
828
- const parameterDeclaration = new SetterParameterDeclaration(nameIdentifier, typeAnnotation);
829
- const closeParenthesisToken = this.token(21 /* CloseParenthesis */);
830
- return new SetterParameterClause(openParenthesisToken, parameterDeclaration, closeParenthesisToken);
831
- }
832
- static tag(typeSpecifier, callArguments) {
802
+ static tag(name, typeArguments, args) {
833
803
  const hashSignToken = this.token(35 /* HashSign */);
804
+ const qualifiedNameIdentifiers = typeof name === "string" ? [this.createIdentifier(name)] : name.map((s) => this.createIdentifier(s));
805
+ const qualifiedName = new QualifiedName(
806
+ this.createTokenSeparatedElements(qualifiedNameIdentifiers, 26 /* Dot */)
807
+ );
808
+ const typeArgumentClause = typeArguments !== void 0 ? this.typeArgumentClause(typeArguments) : void 0;
834
809
  let openParenthesisToken;
835
- let callArgumentList;
810
+ let argumentList;
836
811
  let closeParenthesisToken;
837
- if (callArguments !== void 0) {
812
+ if (args !== void 0) {
838
813
  openParenthesisToken = this.token(44 /* OpenParenthesis */);
839
- callArgumentList = new CallArgumentList(
840
- this.createTokenSeparatedElements(callArguments, 24 /* Comma */)
814
+ argumentList = new ArgumentList(
815
+ this.createTokenSeparatedElements(args, 24 /* Comma */)
841
816
  );
842
817
  closeParenthesisToken = this.token(21 /* CloseParenthesis */);
843
818
  }
844
- return new Tag(hashSignToken, typeSpecifier, openParenthesisToken, callArgumentList, closeParenthesisToken);
819
+ return new Tag(
820
+ hashSignToken,
821
+ qualifiedName,
822
+ typeArgumentClause,
823
+ openParenthesisToken,
824
+ argumentList,
825
+ closeParenthesisToken
826
+ );
845
827
  }
846
828
  static modifier(value, level) {
847
829
  const valueKeyword = this.keyword(value);
@@ -901,7 +883,7 @@ var SyntaxFactory = class {
901
883
  return new PackageVariableTranslation(sourceNameIdentifier, minusGreaterThanToken, translatedNameIdentifier);
902
884
  }
903
885
  static packageMethodTranslation(sourceName, sourceTypeParameters, sourceParameters, translatedName, translatedTypeParameters, translatedParameters) {
904
- const functionKeyword = this.keyword(11 /* Function */);
886
+ const functionKeyword = this.keyword(12 /* Function */);
905
887
  const sourceNameIdentifier = this.createIdentifier(sourceName);
906
888
  const sourceTypeParameterClause = this.createTranslationTypeParameterClause(sourceTypeParameters);
907
889
  const sourceParameterClause = this.translationParameterClause(sourceParameters);
@@ -921,7 +903,7 @@ var SyntaxFactory = class {
921
903
  );
922
904
  }
923
905
  static typeTranslation(sourceName, sourceTypeParameters, translatedName, translatedTypeParameters, members) {
924
- const typeKeyword = this.keyword(15 /* Type */);
906
+ const typeKeyword = this.keyword(16 /* Type */);
925
907
  const sourceNameIdentifier = this.createIdentifier(sourceName);
926
908
  const sourceTypeParameterClause = this.createTranslationTypeParameterClause(sourceTypeParameters);
927
909
  const minusGreaterThanToken = this.token(42 /* MinusGreaterThan */);
@@ -948,7 +930,7 @@ var SyntaxFactory = class {
948
930
  );
949
931
  }
950
932
  static methodTypeTranslation(sourceName, sourceTypeParameters, sourceParameters, translatedName, translatedTypeParameters, translatedParameters) {
951
- const typeKeyword = this.keyword(15 /* Type */);
933
+ const typeKeyword = this.keyword(16 /* Type */);
952
934
  const sourceNameIdentifier = this.createIdentifier(sourceName);
953
935
  const sourceTypeParameterClause = this.createTranslationTypeParameterClause(sourceTypeParameters);
954
936
  const sourceParameterClause = this.translationParameterClause(sourceParameters);
@@ -978,7 +960,7 @@ var SyntaxFactory = class {
978
960
  );
979
961
  }
980
962
  static typeMethodTranslation(sourceName, sourceTypeParameters, sourceParameters, translatedName, translatedTypeParameters, translatedParameters) {
981
- const functionKeyword = this.keyword(11 /* Function */);
963
+ const functionKeyword = this.keyword(12 /* Function */);
982
964
  const sourceNameIdentifier = this.createIdentifier(sourceName);
983
965
  const sourceTypeParameterClause = this.createTranslationTypeParameterClause(sourceTypeParameters);
984
966
  const sourceParameterClause = this.translationParameterClause(sourceParameters);
@@ -998,7 +980,7 @@ var SyntaxFactory = class {
998
980
  );
999
981
  }
1000
982
  static constructorTranslation(sourceParameters, translatedParameters) {
1001
- const creationKeyword = this.keyword(28 /* Creation */);
983
+ const creationKeyword = this.keyword(29 /* Creation */);
1002
984
  const sourceParameterClause = this.translationParameterClause(sourceParameters);
1003
985
  const minusGreaterThanToken = this.token(42 /* MinusGreaterThan */);
1004
986
  const translatedParameterClause = this.translationParameterClause(translatedParameters);
@@ -1179,10 +1161,6 @@ var SyntaxToCode = class _SyntaxToCode {
1179
1161
  this.writeKeyword(node.setKeyword);
1180
1162
  this.writeWhitespace();
1181
1163
  this.writeToken(node.name);
1182
- if (node.setterParameterClause !== void 0) {
1183
- this.writeWhitespace();
1184
- this.writeSetterParameterClause(node.setterParameterClause);
1185
- }
1186
1164
  if (node.body !== void 0) {
1187
1165
  this.writeDeclarationBody(node.body);
1188
1166
  }
@@ -1360,10 +1338,6 @@ var SyntaxToCode = class _SyntaxToCode {
1360
1338
  this.writeKeyword(node.setKeyword);
1361
1339
  this.writeWhitespace();
1362
1340
  this.writeToken(node.name);
1363
- if (node.setterParameterClause !== void 0) {
1364
- this.writeWhitespace();
1365
- this.writeSetterParameterClause(node.setterParameterClause);
1366
- }
1367
1341
  if (node.body !== void 0) {
1368
1342
  this.writeDeclarationBody(node.body);
1369
1343
  }
@@ -1438,10 +1412,6 @@ var SyntaxToCode = class _SyntaxToCode {
1438
1412
  this.writeToken(node.parameterClause.openSquareBracketToken);
1439
1413
  this.writeParameterList(node.parameterClause.parameterList);
1440
1414
  this.writeToken(node.parameterClause.closeSquareBracketToken);
1441
- if (node.setterParameterClause !== void 0) {
1442
- this.writeWhitespace();
1443
- this.writeSetterParameterClause(node.setterParameterClause);
1444
- }
1445
1415
  if (node.body !== void 0) {
1446
1416
  this.writeDeclarationBody(node.body);
1447
1417
  }
@@ -1463,10 +1433,6 @@ var SyntaxToCode = class _SyntaxToCode {
1463
1433
  this.writeKeyword(node.setKeyword);
1464
1434
  this.writeWhitespace();
1465
1435
  this.writeToken(node.caretToken);
1466
- if (node.setterParameterClause !== void 0) {
1467
- this.writeWhitespace();
1468
- this.writeSetterParameterClause(node.setterParameterClause);
1469
- }
1470
1436
  if (node.body !== void 0) {
1471
1437
  this.writeDeclarationBody(node.body);
1472
1438
  }
@@ -1532,12 +1498,6 @@ var SyntaxToCode = class _SyntaxToCode {
1532
1498
  this.writeExpression(node.defaultValue);
1533
1499
  }
1534
1500
  }
1535
- writeSetterParameterClause(node) {
1536
- this.writeToken(node.openParenthesisToken);
1537
- this.writeToken(node.parameterDeclaration.name);
1538
- this.writeTypeAnnotation(node.parameterDeclaration.typeAnnotation, true);
1539
- this.writeToken(node.closeParenthesisToken);
1540
- }
1541
1501
  writeDeclarationTags(tagList) {
1542
1502
  if (tagList.tags.length > 0) {
1543
1503
  this.writeWhitespaceSeparatedList(tagList.tags, (t) => this.writeTag(t));
@@ -1546,10 +1506,13 @@ var SyntaxToCode = class _SyntaxToCode {
1546
1506
  }
1547
1507
  writeTag(node) {
1548
1508
  this.writeToken(node.hashSignToken);
1549
- this.writeNamedTypeSpecifier(node.typeSpecifier);
1550
- if (node.openParenthesisToken !== void 0 && node.callArgumentList !== void 0 && node.closeParenthesisToken !== void 0) {
1509
+ this.writeQualifiedName(node.name);
1510
+ if (node.typeArgumentClause !== void 0) {
1511
+ this.writeTypeArgumentClause(node.typeArgumentClause);
1512
+ }
1513
+ if (node.openParenthesisToken !== void 0 && node.argumentList !== void 0 && node.closeParenthesisToken !== void 0) {
1551
1514
  this.writeToken(node.openParenthesisToken);
1552
- this.writeCommaSeparatedList(node.callArgumentList.elements, (n) => this.writeCallArgument(n));
1515
+ this.writeCommaSeparatedList(node.argumentList.elements, (n) => this.writeArgument(n));
1553
1516
  this.writeToken(node.closeParenthesisToken);
1554
1517
  }
1555
1518
  }
@@ -1564,7 +1527,6 @@ var SyntaxToCode = class _SyntaxToCode {
1564
1527
  writeModifier(node) {
1565
1528
  this.writeKeyword(node.value);
1566
1529
  if (node.openParenthesisToken !== void 0 && node.level !== void 0 && node.closeParenthesisToken !== void 0) {
1567
- this.writeWhitespace();
1568
1530
  this.writeToken(node.openParenthesisToken);
1569
1531
  this.writeKeyword(node.level);
1570
1532
  this.writeToken(node.closeParenthesisToken);
@@ -1690,7 +1652,7 @@ var SyntaxToCode = class _SyntaxToCode {
1690
1652
  this.writeToken(node.greaterThanToken);
1691
1653
  }
1692
1654
  }
1693
- writeCallArgument(node) {
1655
+ writeArgument(node) {
1694
1656
  this.writeNodeDefault(node);
1695
1657
  }
1696
1658
  writeExpression(node) {
@@ -2037,14 +1999,13 @@ var SyntaxToCode = class _SyntaxToCode {
2037
1999
  [139 /* VariantDeclaration */]: this.prototype.writeVariantDeclaration,
2038
2000
  [140 /* TypeParameterDeclaration */]: this.prototype.writeTypeParameterDeclaration,
2039
2001
  [141 /* ParameterDeclaration */]: this.prototype.writeParameterDeclaration,
2040
- [142 /* CallArgument */]: this.prototype.writeCallArgument,
2002
+ [142 /* Argument */]: this.prototype.writeArgument,
2041
2003
  [144 /* Tag */]: this.prototype.writeTag,
2042
2004
  [146 /* Modifier */]: this.prototype.writeModifier,
2043
2005
  [147 /* ParameterClause */]: this.prototype.writeParameterClause,
2044
2006
  [148 /* ParameterList */]: this.prototype.writeParameterList,
2045
- [149 /* SetterParameterClause */]: this.prototype.writeSetterParameterClause,
2046
- [151 /* TypeArgumentClause */]: this.prototype.writeTypeArgumentClause,
2047
- [153 /* TypeParameterClause */]: this.prototype.writeTypeParameterClause,
2007
+ [149 /* TypeArgumentClause */]: this.prototype.writeTypeArgumentClause,
2008
+ [151 /* TypeParameterClause */]: this.prototype.writeTypeParameterClause,
2048
2009
  [17 /* AnonymousMethodTypeDeclaration */]: this.prototype.writeAnonymousMethodTypeDeclaration,
2049
2010
  [18 /* AnonymousStructuredTypeDeclaration */]: this.prototype.writeAnonymousStructuredTypeDeclaration,
2050
2011
  [19 /* AnonymousVariantTypeDeclaration */]: this.prototype.writeAnonymousVariantTypeDeclaration,
@@ -2072,7 +2033,7 @@ var SyntaxToCode = class _SyntaxToCode {
2072
2033
  [65 /* AsExpression */]: this.prototype.writeNodeDefault,
2073
2034
  [66 /* BinaryExpression */]: this.prototype.writeNodeDefault,
2074
2035
  [67 /* MethodBlockLiteral */]: this.prototype.writeNodeDefault,
2075
- [68 /* CallArgumentList */]: this.prototype.writeNodeDefault,
2036
+ [68 /* ArgumentList */]: this.prototype.writeNodeDefault,
2076
2037
  [69 /* CallExpression */]: this.prototype.writeNodeDefault,
2077
2038
  [70 /* AutotypeCallExpression */]: this.prototype.writeNodeDefault,
2078
2039
  [71 /* IndexedAccessExpression */]: this.prototype.writeNodeDefault,
@@ -2100,9 +2061,9 @@ var SyntaxToCode = class _SyntaxToCode {
2100
2061
  [94 /* BreakLoopStatement */]: this.prototype.writeNodeDefault,
2101
2062
  [95 /* ContinueLoopStatement */]: this.prototype.writeNodeDefault,
2102
2063
  [96 /* DisposeStatement */]: this.prototype.writeNodeDefault,
2103
- [97 /* RunStatementClauseList */]: this.prototype.writeNodeDefault,
2104
- [98 /* RunStatement */]: this.prototype.writeNodeDefault,
2105
- [99 /* OnErrorClause */]: this.prototype.writeNodeDefault,
2064
+ [97 /* RunStatement */]: this.prototype.writeNodeDefault,
2065
+ [98 /* TryStatement */]: this.prototype.writeNodeDefault,
2066
+ [99 /* CatchClause */]: this.prototype.writeNodeDefault,
2106
2067
  [100 /* ErrorVariableDeclaration */]: this.prototype.writeNodeDefault,
2107
2068
  [101 /* FinallyClause */]: this.prototype.writeNodeDefault,
2108
2069
  [102 /* EmptyStatement */]: this.prototype.writeNodeDefault,
@@ -2143,10 +2104,9 @@ var SyntaxToCode = class _SyntaxToCode {
2143
2104
  [138 /* TextTemplateLiteralTranslation */]: this.prototype.writeNodeDefault,
2144
2105
  [143 /* TagList */]: this.prototype.writeNodeDefault,
2145
2106
  [145 /* ModifierList */]: this.prototype.writeNodeDefault,
2146
- [150 /* SetterParameterDeclaration */]: this.prototype.writeNodeDefault,
2147
- [152 /* TypeArgumentList */]: this.prototype.writeNodeDefault,
2148
- [154 /* TypeParameterList */]: this.prototype.writeNodeDefault,
2149
- [155 /* TypeAnnotation */]: this.prototype.writeNodeDefault
2107
+ [150 /* TypeArgumentList */]: this.prototype.writeNodeDefault,
2108
+ [152 /* TypeParameterList */]: this.prototype.writeNodeDefault,
2109
+ [153 /* TypeAnnotation */]: this.prototype.writeNodeDefault
2150
2110
  };
2151
2111
  return writeFunctions;
2152
2112
  }
@@ -2157,14 +2117,14 @@ var SyntaxToCode = class _SyntaxToCode {
2157
2117
  }
2158
2118
  };
2159
2119
  var modifierSortOrder = {
2160
- [34 /* Hidden */]: 0,
2161
- [39 /* Static */]: 1,
2162
- [16 /* Basic */]: 2,
2163
- [36 /* Redefinable */]: 3,
2164
- [35 /* Abstract */]: 4,
2165
- [37 /* Redefined */]: 5,
2166
- [38 /* Async */]: 6,
2167
- [33 /* Const */]: 7
2120
+ [35 /* Hidden */]: 0,
2121
+ [40 /* Static */]: 1,
2122
+ [17 /* Basic */]: 2,
2123
+ [37 /* Redefinable */]: 3,
2124
+ [36 /* Abstract */]: 4,
2125
+ [38 /* Redefined */]: 5,
2126
+ [39 /* Async */]: 6,
2127
+ [34 /* Const */]: 7
2168
2128
  };
2169
2129
 
2170
2130
  // source/services/TreeUtils.ts
@@ -2520,17 +2480,6 @@ var TranslationsGenerator = class _TranslationsGenerator {
2520
2480
  result.push(indexer);
2521
2481
  }
2522
2482
  }
2523
- if (entity.kind === 2 /* VariantType */) {
2524
- const translatedVariants = new Set(this._translationPackage.getVariants(entity)?.get().map((m) => m.value));
2525
- for (const variant of entity.getVariants().get()) {
2526
- if (variant.isHidden() !== void 0) {
2527
- continue;
2528
- }
2529
- if (!translatedVariants.has(variant)) {
2530
- result.push(variant);
2531
- }
2532
- }
2533
- }
2534
2483
  return result;
2535
2484
  }
2536
2485
  detectIndentationForPackageMemberTranslations(translationsDeclaration) {
@@ -2586,14 +2535,14 @@ var TranslationsGenerator = class _TranslationsGenerator {
2586
2535
  }
2587
2536
  collectNotTranslatedPackageMembers() {
2588
2537
  const result = new Array();
2589
- const translatedPackageMembers = new Set(this._translationPackage.getMembers().getNamedMembers().map((m) => m.value.getEntity()));
2538
+ const translatedPackageMembers = new Set(this._translationPackage.getMembers().getNamedMembers().map((m) => m.value));
2590
2539
  const membersOfTargetPackage = this._translationPackage.getTranslatedPackage().getMembers();
2591
2540
  for (const member of membersOfTargetPackage.getNamedMembers()) {
2592
2541
  if (member.isHidden() !== void 0) {
2593
2542
  continue;
2594
2543
  }
2595
- if (!translatedPackageMembers.has(member.getEntity())) {
2596
- result.push(member.getEntity());
2544
+ if (!translatedPackageMembers.has(member)) {
2545
+ result.push(member);
2597
2546
  }
2598
2547
  }
2599
2548
  return result;
@@ -2602,15 +2551,15 @@ var TranslationsGenerator = class _TranslationsGenerator {
2602
2551
  switch (entity.kind) {
2603
2552
  case 0 /* Variable */:
2604
2553
  return this.createPackageVariableTranslation(entity);
2605
- case 5 /* Method */:
2554
+ case 1 /* Method */:
2606
2555
  return this.createPackageMethodTranslation(entity);
2607
- case 2 /* VariantType */:
2608
- case 12 /* StructuredType */:
2609
- case 14 /* AliasType */:
2610
- return this.createPackageTypeWithMembersTranslation(entity);
2611
- case 11 /* MethodType */:
2612
- return this.createPackageMethodTypeTranslation(entity);
2613
- case 17 /* TypeExtension */:
2556
+ case 2 /* Type */:
2557
+ if (entity.typeEntityKind === 0 /* Method */) {
2558
+ return this.createPackageMethodTypeTranslation(entity);
2559
+ } else {
2560
+ return this.createPackageTypeWithMembersTranslation(entity);
2561
+ }
2562
+ case 11 /* TypeExtension */:
2614
2563
  return void 0;
2615
2564
  default:
2616
2565
  Debug.never(entity);
@@ -2642,17 +2591,15 @@ var TranslationsGenerator = class _TranslationsGenerator {
2642
2591
  switch (entity.kind) {
2643
2592
  case 0 /* Variable */:
2644
2593
  return this.createTypeVariableTranslation(entity);
2645
- case 5 /* Method */:
2594
+ case 1 /* Method */:
2646
2595
  return this.createTypeMethodTranslation(entity);
2647
- case 9 /* Constructor */:
2596
+ case 7 /* Constructor */:
2648
2597
  return this.createConstructorTranslation(entity);
2649
- case 7 /* Indexer */:
2598
+ case 5 /* Indexer */:
2650
2599
  return this.createIndexerTranslation(entity);
2651
- case 1 /* Variant */:
2652
- return this.createVariantTranslation(entity);
2653
- case 8 /* DereferenceOperator */:
2654
- case 10 /* Destructor */:
2655
- case 15 /* Operator */:
2600
+ case 6 /* DereferenceOperator */:
2601
+ case 8 /* Destructor */:
2602
+ case 9 /* Operator */:
2656
2603
  return void 0;
2657
2604
  default:
2658
2605
  Debug.never(entity);
@@ -2676,10 +2623,6 @@ var TranslationsGenerator = class _TranslationsGenerator {
2676
2623
  const parameters = entity.getValueParameters().map((p) => this.getNameText(p.getName()));
2677
2624
  return SyntaxFactory.indexerTranslation(parameters, parameters);
2678
2625
  }
2679
- createVariantTranslation(entity) {
2680
- const name = this.getNameText(entity.getName());
2681
- return SyntaxFactory.typeVariableOrVariantTranslation(name, name);
2682
- }
2683
2626
  getNameText(name) {
2684
2627
  const flags = name.flags & ~16 /* ConflictResolvingParameterName */;
2685
2628
  return name.getPreferredUnescapedOriginal(flags);
@@ -2799,17 +2742,17 @@ function isGenerateMissingTranslationsCodeActionData(value) {
2799
2742
  // source/services/signature-help/SignatureWithValueParameters.ts
2800
2743
  var ValueArgumentFactory = class _ValueArgumentFactory {
2801
2744
  static createValueArgumentsOfCallExpression(node) {
2802
- return _ValueArgumentFactory.createValueArgumentsFromList(node.callArgumentList);
2745
+ return _ValueArgumentFactory.createValueArgumentsFromList(node.argumentList);
2803
2746
  }
2804
2747
  static createValueArgumentsOfAutotypeCallExpression(node) {
2805
- return _ValueArgumentFactory.createValueArgumentsFromList(node.callArgumentList);
2748
+ return _ValueArgumentFactory.createValueArgumentsFromList(node.argumentList);
2806
2749
  }
2807
2750
  static createValueArgumentsOfIndexedAccessExpression(node) {
2808
- return _ValueArgumentFactory.createValueArgumentsFromList(node.argumentsList);
2751
+ return _ValueArgumentFactory.createValueArgumentsFromList(node.argumentList);
2809
2752
  }
2810
2753
  static createValueArgumentsOfTag(node) {
2811
- if (node.callArgumentList !== void 0) {
2812
- return _ValueArgumentFactory.createValueArgumentsFromList(node.callArgumentList);
2754
+ if (node.argumentList !== void 0) {
2755
+ return _ValueArgumentFactory.createValueArgumentsFromList(node.argumentList);
2813
2756
  }
2814
2757
  return [];
2815
2758
  }
@@ -2866,16 +2809,7 @@ var SignatureForNode = class _SignatureForNode {
2866
2809
  if (info.suitableMethods.length === 1) {
2867
2810
  suitableSignatureIndex = info.candidates.indexOf(info.suitableMethods[0]);
2868
2811
  }
2869
- const signatures = info.candidates.map((c) => {
2870
- switch (c.value.kind) {
2871
- case "entity":
2872
- return new MethodEntitySignature({ value: c.value.value, localization: c.localization });
2873
- case "type-member":
2874
- return new TypeMethodSignature({ value: c.value.value, localization: c.localization });
2875
- case "substituted-method":
2876
- return new SubstitutedMethodSignature({ value: c.value.value, localization: c.localization });
2877
- }
2878
- });
2812
+ const signatures = info.candidates.map((c) => new AccessedMethodSignature(c));
2879
2813
  return new SignaturesWithSingleSuitable(signatures, suitableSignatureIndex);
2880
2814
  }
2881
2815
  if (meaning.kind === "object-method-call") {
@@ -2914,8 +2848,8 @@ var SignatureForNode = class _SignatureForNode {
2914
2848
  }
2915
2849
  }
2916
2850
  static getSignaturesForTag(analyzer, node) {
2917
- const meaning = analyzer.getTagMeaning(node);
2918
- if (meaning.kind === "resolved") {
2851
+ const meaning = analyzer.resolveTag(node).meaning;
2852
+ if (meaning.kind === "tag-type") {
2919
2853
  let suitableSignatureIndex;
2920
2854
  if (meaning.suitableConstructors.length === 1) {
2921
2855
  suitableSignatureIndex = meaning.candidates.indexOf(meaning.suitableConstructors[0]);
@@ -2923,6 +2857,14 @@ var SignatureForNode = class _SignatureForNode {
2923
2857
  const signatures = meaning.candidates.map((c) => new ConstructorSignature(c));
2924
2858
  return new SignaturesWithSingleSuitable(signatures, suitableSignatureIndex);
2925
2859
  }
2860
+ if (meaning.kind === "tag-method") {
2861
+ let suitableSignatureIndex;
2862
+ if (meaning.suitableMethods.length === 1) {
2863
+ suitableSignatureIndex = meaning.candidates.indexOf(meaning.suitableMethods[0]);
2864
+ }
2865
+ const signatures = meaning.candidates.map((c) => new AccessedMethodSignature(c));
2866
+ return new SignaturesWithSingleSuitable(signatures, suitableSignatureIndex);
2867
+ }
2926
2868
  if (meaning.kind === "unresolved") {
2927
2869
  return void 0;
2928
2870
  }
@@ -3031,47 +2973,9 @@ var MatchedSignature = class {
3031
2973
  this.matchResult = matchResult;
3032
2974
  }
3033
2975
  };
3034
- var MethodEntitySignature = class {
2976
+ var AccessedMethodSignature = class {
3035
2977
  constructor(method) {
3036
- this.kind = "method-entity";
3037
- this._valueParameters = new Cached();
3038
- this.method = method;
3039
- }
3040
- getValueParameters() {
3041
- return this._valueParameters.getOrInsertWith(() => {
3042
- const localizedSignature = EntityLocalizationHelper.getLocalizedMethodSignature(
3043
- this.method.value,
3044
- this.method.localization
3045
- );
3046
- return Query.from(this.method.value.getValueParameters()).zip(
3047
- localizedSignature.getValueParameterNames(),
3048
- (p, n) => new UniversalValueParameter(n.value, p.getType(), p, n.localization)
3049
- ).toArray();
3050
- });
3051
- }
3052
- };
3053
- var TypeMethodSignature = class {
3054
- constructor(method) {
3055
- this.kind = "type-method";
3056
- this._valueParameters = new Cached();
3057
- this.method = method;
3058
- }
3059
- getValueParameters() {
3060
- return this._valueParameters.getOrInsertWith(() => {
3061
- const localizedSignature = EntityLocalizationHelper.getLocalizedMethodSignature(
3062
- this.method.value.getEntity(),
3063
- this.method.localization
3064
- );
3065
- return Query.from(this.method.value.getValueParameters()).zip(
3066
- localizedSignature.getValueParameterNames(),
3067
- (p, n) => new UniversalValueParameter(n.value, p.getType(), p.getEntity(), n.localization)
3068
- ).toArray();
3069
- });
3070
- }
3071
- };
3072
- var SubstitutedMethodSignature = class {
3073
- constructor(method) {
3074
- this.kind = "substituted-method";
2978
+ this.kind = "accessed-method";
3075
2979
  this._valueParameters = new Cached();
3076
2980
  this.method = method;
3077
2981
  }
@@ -3263,7 +3167,7 @@ var CompletionService = class {
3263
3167
  return new OperatorNameCompletionContext(syntaxContext.isInQuotedIdentifier);
3264
3168
  }
3265
3169
  const tokenOrKeyword = positionDescription.tokenOrKeyword;
3266
- if (tokenOrKeyword.isKeyword(17 /* Import */) && tokenOrKeyword.parent.kind === 5 /* SinglePackageImportDirective */) {
3170
+ if (tokenOrKeyword.isKeyword(18 /* Import */) && tokenOrKeyword.parent.kind === 5 /* SinglePackageImportDirective */) {
3267
3171
  return new PackageImportCompletionContext([], void 0);
3268
3172
  }
3269
3173
  if (tokenOrKeyword.isToken(57 /* Equals */) && tokenOrKeyword.parent.kind === 8 /* PackageImport */) {
@@ -3360,6 +3264,42 @@ var CompletionService = class {
3360
3264
  }
3361
3265
  return { kind: "none" };
3362
3266
  }
3267
+ if (tokenOrKeyword.isToken(26 /* Dot */) && tokenOrKeyword.parent.kind === 132 /* QualifiedName */ && tokenOrKeyword.parent.parent.kind === 144 /* Tag */) {
3268
+ const tag = tokenOrKeyword.parent.parent;
3269
+ const resolutionResult = this._analyzer.resolveTag(tag);
3270
+ const segmentIndex = Math.floor(
3271
+ tag.name.parts.indexOf(tokenOrKeyword.value) / 2
3272
+ );
3273
+ if (segmentIndex < resolutionResult.resolvedQualifiers.length) {
3274
+ const resolvedQualifier = resolutionResult.resolvedQualifiers[segmentIndex];
3275
+ if (resolvedQualifier.kind === "package-name-segment") {
3276
+ let lookup;
3277
+ if (resolvedQualifier.packageTreeNode.package !== void 0) {
3278
+ lookup = new PackageMemberLookup(
3279
+ resolvedQualifier.packageTreeNode.package.value,
3280
+ semanticContext.getLocalizationContext()
3281
+ );
3282
+ }
3283
+ const hidingMatcher = semanticContext.getHidingMatcher();
3284
+ const typeSearchLocation = new PackageNameSegmentTypeSearchLocation(
3285
+ resolvedQualifier.packageTreeNode,
3286
+ lookup,
3287
+ hidingMatcher
3288
+ );
3289
+ return new TagCompletionContext(typeSearchLocation);
3290
+ }
3291
+ if (resolvedQualifier.kind === "package-alias") {
3292
+ const package_ = resolvedQualifier.packageAlias.getPackage();
3293
+ if (package_ !== void 0) {
3294
+ const lookup = new PackageMemberLookup(package_, semanticContext.getLocalizationContext());
3295
+ const hidingMatcher = semanticContext.getHidingMatcher();
3296
+ const typeSearchLocation = new PackageAliasTypeSearchLocation(lookup, hidingMatcher);
3297
+ return new TagCompletionContext(typeSearchLocation);
3298
+ }
3299
+ }
3300
+ }
3301
+ return { kind: "none" };
3302
+ }
3363
3303
  if (syntaxContext.isUnqualifiedTypeContext !== void 0) {
3364
3304
  let completionInIsOrAsExpressionInfo;
3365
3305
  if (tokenOrKeyword.parent.kind === 73 /* IsExpression */ || tokenOrKeyword.parent.kind === 65 /* AsExpression */) {
@@ -3371,6 +3311,11 @@ var CompletionService = class {
3371
3311
  const typeSearchLocation = new ScopeTypeSearchLocation(lookup);
3372
3312
  return new TypeCompletionContext(typeSearchLocation, completionInIsOrAsExpressionInfo);
3373
3313
  }
3314
+ if (syntaxContext.isUnqualifiedTagNameCompletionContext) {
3315
+ const lookup = semanticContext.getScopeLookup();
3316
+ const typeSearchLocation = new ScopeTypeSearchLocation(lookup);
3317
+ return new TagCompletionContext(typeSearchLocation);
3318
+ }
3374
3319
  if (syntaxContext.isExpressionContext !== void 0) {
3375
3320
  const lookup = semanticContext.getScopeLookup();
3376
3321
  const { targetTypes, targetSignaturesParameters } = this.getTargetTypesAndTargetSignaturesParameters(syntaxContext.isExpressionContext.expressionRole, semanticContext);
@@ -3412,17 +3357,17 @@ var CompletionService = class {
3412
3357
  translationKind = 0 /* Any */;
3413
3358
  hasPrecedingKeyword = false;
3414
3359
  }
3415
- if (tokenOrKeyword.isKeyword(17 /* Import */) && tokenOrKeyword.parent.kind === 131 /* PackageImportTranslation */) {
3360
+ if (tokenOrKeyword.isKeyword(18 /* Import */) && tokenOrKeyword.parent.kind === 131 /* PackageImportTranslation */) {
3416
3361
  translationsDeclaration = tokenOrKeyword.parent.parent.parent;
3417
3362
  translationKind = 1 /* PackageImport */;
3418
3363
  hasPrecedingKeyword = true;
3419
3364
  }
3420
- if (tokenOrKeyword.isKeyword(15 /* Type */) && (tokenOrKeyword.parent.kind === 136 /* TypeTranslation */ || tokenOrKeyword.parent.kind === 130 /* MethodTypeTranslation */)) {
3365
+ if (tokenOrKeyword.isKeyword(16 /* Type */) && (tokenOrKeyword.parent.kind === 136 /* TypeTranslation */ || tokenOrKeyword.parent.kind === 130 /* MethodTypeTranslation */)) {
3421
3366
  translationsDeclaration = tokenOrKeyword.parent.parent.parent;
3422
3367
  translationKind = 3 /* Type */;
3423
3368
  hasPrecedingKeyword = true;
3424
3369
  }
3425
- if (tokenOrKeyword.isKeyword(11 /* Function */) && tokenOrKeyword.parent.kind === 128 /* PackageMethodTranslation */) {
3370
+ if (tokenOrKeyword.isKeyword(12 /* Function */) && tokenOrKeyword.parent.kind === 128 /* PackageMethodTranslation */) {
3426
3371
  translationsDeclaration = tokenOrKeyword.parent.parent.parent;
3427
3372
  translationKind = 2 /* Method */;
3428
3373
  hasPrecedingKeyword = true;
@@ -3469,12 +3414,12 @@ var CompletionService = class {
3469
3414
  translationKind = 0 /* Any */;
3470
3415
  hasPrecedingKeyword = false;
3471
3416
  }
3472
- if (tokenOrKeyword.isKeyword(11 /* Function */) && tokenOrKeyword.parent.kind === 129 /* TypeMethodTranslation */) {
3417
+ if (tokenOrKeyword.isKeyword(12 /* Function */) && tokenOrKeyword.parent.kind === 129 /* TypeMethodTranslation */) {
3473
3418
  typeTranslation = tokenOrKeyword.parent.parent.parent;
3474
3419
  translationKind = 1 /* Method */;
3475
3420
  hasPrecedingKeyword = true;
3476
3421
  }
3477
- if (tokenOrKeyword.isKeyword(28 /* Creation */) && tokenOrKeyword.parent.kind === 123 /* ConstructorTranslation */) {
3422
+ if (tokenOrKeyword.isKeyword(29 /* Creation */) && tokenOrKeyword.parent.kind === 123 /* ConstructorTranslation */) {
3478
3423
  typeTranslation = tokenOrKeyword.parent.parent.parent;
3479
3424
  translationKind = 3 /* Constructor */;
3480
3425
  hasPrecedingKeyword = true;
@@ -3612,6 +3557,9 @@ var CompletionService = class {
3612
3557
  case "type":
3613
3558
  result = this.getTypeCompletionItemInfos(completionContext);
3614
3559
  break;
3560
+ case "tag":
3561
+ result = this.getTagCompletionItemInfos(completionContext);
3562
+ break;
3615
3563
  case "expression":
3616
3564
  result = this.getExpressionCompletionItemInfos(completionContext);
3617
3565
  break;
@@ -3644,29 +3592,29 @@ var CompletionService = class {
3644
3592
  }
3645
3593
  const kinds = /* @__PURE__ */ new Set();
3646
3594
  if (syntaxContext.isPackageMemberDeclarationListContext) {
3647
- kinds.add(17 /* Import */).add(7 /* Run */).add(28 /* Creation */).add(11 /* Function */).add(16 /* Basic */).add(15 /* Type */).add(57 /* Get */).add(58 /* Set */).add(54 /* Translations */);
3595
+ 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 */);
3648
3596
  }
3649
3597
  if (syntaxContext.isPackageMemberDeclarationListContext || syntaxContext.isTypeMemberDeclarationListContext) {
3650
- kinds.add(34 /* Hidden */).add(39 /* Static */).add(36 /* Redefinable */).add(35 /* Abstract */).add(37 /* Redefined */).add(38 /* Async */).add(33 /* Const */);
3598
+ kinds.add(35 /* Hidden */).add(40 /* Static */).add(37 /* Redefinable */).add(36 /* Abstract */).add(38 /* Redefined */).add(39 /* Async */).add(34 /* Const */);
3651
3599
  }
3652
3600
  if (syntaxContext.isTypeMemberDeclarationListContext) {
3653
- kinds.add(28 /* Creation */).add(11 /* Function */).add(46 /* Destruction */).add(57 /* Get */).add(58 /* Set */);
3601
+ kinds.add(29 /* Creation */).add(12 /* Function */).add(46 /* Destruction */).add(57 /* Get */).add(58 /* Set */);
3654
3602
  }
3655
3603
  if (syntaxContext.isStatementContext) {
3656
- kinds.add(7 /* Run */).add(32 /* For */).add(23 /* While */).add(24 /* Loop */).add(14 /* Return */).add(18 /* Error */).add(26 /* Yield */).add(44 /* Await */).add(30 /* BreakLoop */).add(31 /* ContinueLoop */).add(12 /* If */).add(42 /* Switch */).add(1 /* Let */).add(33 /* Const */).add(45 /* Dispose */).add(11 /* Function */).add(38 /* Async */);
3604
+ 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(12 /* Function */).add(39 /* Async */);
3657
3605
  }
3658
3606
  if (this.isFromKeywordContext(positionDescription)) {
3659
- kinds.add(8 /* From */);
3607
+ kinds.add(9 /* From */);
3660
3608
  }
3661
3609
  if (syntaxContext.isExpressionContext !== void 0) {
3662
- kinds.add(41 /* Not */).add(51 /* Yes */).add(52 /* No */).add(56 /* None */).add(38 /* Async */).add(11 /* Function */).add(53 /* Reference */).add(2 /* Autotype */);
3610
+ 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 */);
3663
3611
  if (positionDescription.kind === "after-token-or-keyword") {
3664
3612
  const container = semanticContext.getContainingTypeOrTypeExtension();
3665
3613
  if (container !== void 0) {
3666
3614
  kinds.add(4 /* Object */);
3667
3615
  if (container.kind === "type") {
3668
3616
  const typeEntity = container.value;
3669
- if (typeEntity?.kind === 12 /* StructuredType */ && typeEntity.getBaseObjectType() !== void 0 || typeEntity?.kind === 2 /* VariantType */ || typeEntity?.kind === 14 /* AliasType */) {
3617
+ if (typeEntity?.typeEntityKind === 1 /* Structured */ && typeEntity.getBaseObjectType() !== void 0 || typeEntity?.typeEntityKind === 3 /* Variant */ || typeEntity?.typeEntityKind === 4 /* Alias */) {
3670
3618
  kinds.add(55 /* Base */);
3671
3619
  }
3672
3620
  }
@@ -3674,31 +3622,31 @@ var CompletionService = class {
3674
3622
  }
3675
3623
  }
3676
3624
  if (this.isTypeKindCompletionContext(positionDescription)) {
3677
- kinds.add(4 /* Object */).add(5 /* PlainObject */).add(3 /* Aspect */).add(6 /* Variant */).add(11 /* Function */).add(38 /* Async */);
3625
+ kinds.add(4 /* Object */).add(5 /* PlainObject */).add(3 /* Aspect */).add(6 /* Variant */).add(12 /* Function */).add(39 /* Async */);
3678
3626
  }
3679
3627
  if (this.isCaseKeywordContext(positionDescription, syntaxContext)) {
3680
- kinds.add(43 /* Case */);
3628
+ kinds.add(44 /* Case */);
3681
3629
  }
3682
3630
  if (this.isRunStatementAccessorListContext(positionDescription)) {
3683
- kinds.add(29 /* OnError */).add(19 /* Finally */);
3631
+ kinds.add(30 /* Catch */).add(20 /* Finally */);
3684
3632
  }
3685
3633
  if (this.isElseOrElseIfKeywordContext(positionDescription)) {
3686
- kinds.add(9 /* Else */).add(10 /* ElseIf */);
3634
+ kinds.add(10 /* Else */).add(11 /* ElseIf */);
3687
3635
  }
3688
3636
  if (syntaxContext.precedingExpression !== void 0) {
3689
- kinds.add(40 /* As */).add(13 /* Is */).add(20 /* And */).add(21 /* Or */).add(22 /* Xor */).add(27 /* When */);
3637
+ kinds.add(41 /* As */).add(14 /* Is */).add(21 /* And */).add(22 /* Or */).add(23 /* Xor */).add(28 /* When */);
3690
3638
  }
3691
3639
  if (this.isModifierLevelContext(positionDescription)) {
3692
3640
  kinds.add(50 /* InType */).add(47 /* InHierarchy */).add(48 /* InFile */).add(49 /* InPackage */);
3693
3641
  }
3694
3642
  if (this.isRepeatWhileKeywordContext(positionDescription)) {
3695
- kinds.add(25 /* RepeatWhile */);
3643
+ kinds.add(26 /* RepeatWhile */);
3696
3644
  }
3697
3645
  if (syntaxContext.isUnqualifiedTypeContext?.allowsAnonymousTypes === true) {
3698
- kinds.add(5 /* PlainObject */).add(4 /* Object */).add(6 /* Variant */).add(3 /* Aspect */).add(11 /* Function */).add(38 /* Async */);
3646
+ kinds.add(5 /* PlainObject */).add(4 /* Object */).add(6 /* Variant */).add(3 /* Aspect */).add(12 /* Function */).add(39 /* Async */);
3699
3647
  }
3700
- if (positionDescription.kind === "after-token-or-keyword" && positionDescription.tokenOrKeyword.isKeyword(38 /* Async */) && (positionDescription.tokenOrKeyword.parent.kind === 58 /* NestedMethodDeclaration */ || positionDescription.tokenOrKeyword.parent.kind === 74 /* MethodLiteral */ || positionDescription.tokenOrKeyword.parent.kind === 29 /* MethodTypeDeclarationBody */)) {
3701
- kinds.add(11 /* Function */);
3648
+ 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 */)) {
3649
+ kinds.add(12 /* Function */);
3702
3650
  }
3703
3651
  return Query.from(kinds.values()).map(
3704
3652
  (k) => LocalizationHelper.localizeKeyword(k, this._locale, this._dialect).map((v) => new KeywordCompletionItemInfo(this.completionItemInfoContext, k, v))
@@ -3730,7 +3678,7 @@ var CompletionService = class {
3730
3678
  return false;
3731
3679
  }
3732
3680
  const tokenOrKeyword = positionDescription.tokenOrKeyword;
3733
- return tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && (tokenOrKeyword.parent.parent.kind === 98 /* RunStatement */ || tokenOrKeyword.parent.parent.kind === 99 /* OnErrorClause */ || tokenOrKeyword.parent.parent.kind === 101 /* FinallyClause */);
3681
+ return tokenOrKeyword.isToken(20 /* CloseBrace */) && tokenOrKeyword.parent.kind === 93 /* StatementBlock */ && (tokenOrKeyword.parent.parent.kind === 97 /* RunStatement */ || tokenOrKeyword.parent.parent.kind === 99 /* CatchClause */ || tokenOrKeyword.parent.parent.kind === 101 /* FinallyClause */);
3734
3682
  }
3735
3683
  isTypeKindCompletionContext(positionDescription) {
3736
3684
  return positionDescription.kind === "after-token-or-keyword" && positionDescription.tokenOrKeyword.isToken(57 /* Equals */) && NodeTypeUtils.isPackageTypeDeclaration(positionDescription.tokenOrKeyword.parent);
@@ -3756,22 +3704,7 @@ var CompletionService = class {
3756
3704
  return false;
3757
3705
  }
3758
3706
  getExpressionCompletionItemInfos(ctx) {
3759
- let query = Query.empty();
3760
- if (ctx.targetTypes !== void 0) {
3761
- const variantType = this.getTargetVariantType(ctx.targetTypes);
3762
- if (variantType !== void 0) {
3763
- const variantLookup = new VariantLookup(variantType.getEntity(), ctx.localizationContext);
3764
- query = query.chain(variantLookup.get().map(
3765
- (v) => new VariantCompletionItemInfo(
3766
- this.completionItemInfoContext,
3767
- v.value,
3768
- v.name,
3769
- v.requiresExplicitOriginalName
3770
- )
3771
- ).toArray());
3772
- }
3773
- }
3774
- query = query.chain(this.getScopeCompletionItemInfos(ctx.lookup));
3707
+ let query = this.getScopeCompletionItemInfos(ctx.lookup);
3775
3708
  if (ctx.targetSignaturesValueParameters !== void 0) {
3776
3709
  query = query.chain(this.getCompletionItemInfosForTargetSignaturesValueParameters(ctx.targetSignaturesValueParameters));
3777
3710
  }
@@ -3793,19 +3726,6 @@ var CompletionService = class {
3793
3726
  }
3794
3727
  }
3795
3728
  }
3796
- getTargetVariantType(targetTypes) {
3797
- let variantType;
3798
- for (const targetType of targetTypes) {
3799
- const type = this._analyzer.getUnambiguousTargetVariantType(targetType);
3800
- if (variantType === void 0) {
3801
- variantType = type;
3802
- } else {
3803
- variantType = void 0;
3804
- break;
3805
- }
3806
- }
3807
- return variantType;
3808
- }
3809
3729
  getCompletionItemInfosForTargetSignaturesValueParameters(valueParameters) {
3810
3730
  return valueParameters.map((p) => new TargetSignatureValueParameterCompletionItemInfo(this.completionItemInfoContext, p));
3811
3731
  }
@@ -3847,19 +3767,7 @@ var CompletionService = class {
3847
3767
  }
3848
3768
  }
3849
3769
  case "type": {
3850
- return this.createTypeEntityCompletionItemInfo(
3851
- d.value.value.getEntity(),
3852
- d.name,
3853
- d.requiresExplicitOriginalName
3854
- );
3855
- }
3856
- case "variant": {
3857
- return new VariantCompletionItemInfo(
3858
- this.completionItemInfoContext,
3859
- d.value.value,
3860
- d.name,
3861
- d.requiresExplicitOriginalName
3862
- );
3770
+ return this.createTypeEntityCompletionItemInfo(d.value.value, d.name, d.requiresExplicitOriginalName);
3863
3771
  }
3864
3772
  case "package-alias":
3865
3773
  return new PackageAliasEntityCompletionItemInfo(this.completionItemInfoContext, d.value.value);
@@ -3913,34 +3821,34 @@ var CompletionService = class {
3913
3821
  }
3914
3822
  }
3915
3823
  getTypeCompletionItemInfosFromPackage(searchLocation) {
3916
- return searchLocation.packageMemberLookup.getNamedMembers(searchLocation.hidingMatcher).mapAndFilter((m) => {
3917
- if (m.value.kind === "type") {
3824
+ return searchLocation.packageMemberLookup.getNamedMembers(searchLocation.hidingMatcher).map((m) => {
3825
+ if (m.value.kind === 2 /* Type */) {
3918
3826
  return new NamedTypeCompletionItemInfo(
3919
3827
  this.completionItemInfoContext,
3920
- m.value.getEntity(),
3828
+ m.value,
3921
3829
  m.name,
3922
3830
  m.requiresExplicitOriginalName
3923
3831
  );
3924
3832
  }
3925
3833
  return void 0;
3926
- }).toArray();
3834
+ }).filter((i) => i !== void 0);
3927
3835
  }
3928
3836
  getTypeCompletionItemInfosFromPackageNameSegment(searchLocation) {
3929
3837
  let query = Query.from(searchLocation.packageTreeNode.getChildren()).map((c) => new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, c.name));
3930
3838
  if (searchLocation.packageMemberLookup !== void 0) {
3931
3839
  const lookup = searchLocation.packageMemberLookup;
3932
3840
  query = query.chain(
3933
- lookup.getNamedMembers(searchLocation.hidingMatcher).mapAndFilter((m) => {
3934
- if (m.value.kind === "type") {
3841
+ lookup.getNamedMembers(searchLocation.hidingMatcher).map((m) => {
3842
+ if (m.value.kind === 2 /* Type */) {
3935
3843
  return new NamedTypeCompletionItemInfo(
3936
3844
  this.completionItemInfoContext,
3937
- m.value.getEntity(),
3845
+ m.value,
3938
3846
  m.name,
3939
3847
  m.requiresExplicitOriginalName
3940
3848
  );
3941
3849
  }
3942
3850
  return void 0;
3943
- })
3851
+ }).filter((i) => i !== void 0)
3944
3852
  );
3945
3853
  }
3946
3854
  return query.toArray();
@@ -3951,7 +3859,7 @@ var CompletionService = class {
3951
3859
  case "type": {
3952
3860
  return new NamedTypeCompletionItemInfo(
3953
3861
  this.completionItemInfoContext,
3954
- d.value.value.getEntity(),
3862
+ d.value.value,
3955
3863
  d.name,
3956
3864
  d.requiresExplicitOriginalName
3957
3865
  );
@@ -3965,8 +3873,98 @@ var CompletionService = class {
3965
3873
  }
3966
3874
  });
3967
3875
  }
3876
+ getTagCompletionItemInfos(ctx) {
3877
+ let result;
3878
+ switch (ctx.searchLocation.kind) {
3879
+ case "scope":
3880
+ result = this.getTagCompletionItemInfosFromScope(ctx.searchLocation);
3881
+ break;
3882
+ case "package-alias":
3883
+ result = this.getTagCompletionItemInfosFromPackage(ctx.searchLocation);
3884
+ break;
3885
+ case "package-name-segment":
3886
+ result = this.getTagCompletionItemInfosFromPackageNameSegment(ctx.searchLocation);
3887
+ break;
3888
+ }
3889
+ return result;
3890
+ }
3891
+ getTagCompletionItemInfosFromPackage(searchLocation) {
3892
+ return searchLocation.packageMemberLookup.getNamedMembers(searchLocation.hidingMatcher).map((m) => {
3893
+ if (m.value.kind === 2 /* Type */) {
3894
+ return new NamedTypeCompletionItemInfo(
3895
+ this.completionItemInfoContext,
3896
+ m.value,
3897
+ m.name,
3898
+ m.requiresExplicitOriginalName
3899
+ );
3900
+ } else if (m.value.kind === 1 /* Method */) {
3901
+ return new MethodEntityCompletionItemInfo(
3902
+ this.completionItemInfoContext,
3903
+ m.value,
3904
+ m.name,
3905
+ m.requiresExplicitOriginalName
3906
+ );
3907
+ }
3908
+ return void 0;
3909
+ }).filter((i) => i !== void 0);
3910
+ }
3911
+ getTagCompletionItemInfosFromPackageNameSegment(searchLocation) {
3912
+ let query = Query.from(searchLocation.packageTreeNode.getChildren()).map((c) => new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, c.name));
3913
+ if (searchLocation.packageMemberLookup !== void 0) {
3914
+ const lookup = searchLocation.packageMemberLookup;
3915
+ query = query.chain(
3916
+ lookup.getNamedMembers(searchLocation.hidingMatcher).map((m) => {
3917
+ if (m.value.kind === 2 /* Type */) {
3918
+ return new NamedTypeCompletionItemInfo(
3919
+ this.completionItemInfoContext,
3920
+ m.value,
3921
+ m.name,
3922
+ m.requiresExplicitOriginalName
3923
+ );
3924
+ } else if (m.value.kind === 1 /* Method */) {
3925
+ return new MethodEntityCompletionItemInfo(
3926
+ this.completionItemInfoContext,
3927
+ m.value,
3928
+ m.name,
3929
+ m.requiresExplicitOriginalName
3930
+ );
3931
+ }
3932
+ return void 0;
3933
+ }).filter((i) => i !== void 0)
3934
+ );
3935
+ }
3936
+ return query.toArray();
3937
+ }
3938
+ getTagCompletionItemInfosFromScope(searchLocation) {
3939
+ return searchLocation.lookup.getNamedDeclarations().map((d) => {
3940
+ switch (d.value.kind) {
3941
+ case "type":
3942
+ return new NamedTypeCompletionItemInfo(
3943
+ this.completionItemInfoContext,
3944
+ d.value.value,
3945
+ d.name,
3946
+ d.requiresExplicitOriginalName
3947
+ );
3948
+ case "method":
3949
+ return new MethodEntityCompletionItemInfo(
3950
+ this.completionItemInfoContext,
3951
+ d.value.value.getEntity(),
3952
+ d.name,
3953
+ d.requiresExplicitOriginalName
3954
+ );
3955
+ case "package-name-segment":
3956
+ return new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, d.name.value);
3957
+ case "package-alias":
3958
+ return new PackageAliasEntityCompletionItemInfo(this.completionItemInfoContext, d.value.value);
3959
+ case "variable":
3960
+ return void 0;
3961
+ default:
3962
+ Debug.never(d.value);
3963
+ }
3964
+ }).filter((i) => i !== void 0);
3965
+ }
3968
3966
  getPackageAliasMemberCompletionItemInfos(ctx) {
3969
- return ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher).map((m) => this.packageMemberToCompletionItemInfo(m.value, m.name, m.requiresExplicitOriginalName)).toArray();
3967
+ return ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher).map((m) => this.packageMemberToCompletionItemInfo(m.value, m.name, m.requiresExplicitOriginalName));
3970
3968
  }
3971
3969
  getPackageNameSegmentCompletionItemInfos(ctx) {
3972
3970
  let query = Query.from(ctx.packageTreeNode.getChildren()).map((c) => new PackageNameSegmentCompletionItemInfo(this.completionItemInfoContext, c.name));
@@ -3980,22 +3978,22 @@ var CompletionService = class {
3980
3978
  }
3981
3979
  packageMemberToCompletionItemInfo(member, name, isNameExplicitlyOriginal) {
3982
3980
  switch (member.kind) {
3983
- case "variable":
3981
+ case 0 /* Variable */:
3984
3982
  return new VariableEntityCompletionItemInfo(
3985
3983
  this.completionItemInfoContext,
3986
- member.value,
3984
+ member,
3987
3985
  name,
3988
3986
  isNameExplicitlyOriginal
3989
3987
  );
3990
- case "method":
3988
+ case 1 /* Method */:
3991
3989
  return new MethodEntityCompletionItemInfo(
3992
3990
  this.completionItemInfoContext,
3993
- member.value,
3991
+ member,
3994
3992
  name,
3995
3993
  isNameExplicitlyOriginal
3996
3994
  );
3997
- case "type":
3998
- return this.createTypeEntityCompletionItemInfo(member.value.getEntity(), name, isNameExplicitlyOriginal);
3995
+ case 2 /* Type */:
3996
+ return this.createTypeEntityCompletionItemInfo(member, name, isNameExplicitlyOriginal);
3999
3997
  default:
4000
3998
  Debug.never(member);
4001
3999
  }
@@ -4012,37 +4010,27 @@ var CompletionService = class {
4012
4010
  }
4013
4011
  getTypeMemberCompletionItemInfos(ctx) {
4014
4012
  const type = this._analyzer.excludeNoneFromType(ctx.type);
4015
- if (type.kind === "variant" && ctx.isStaticAccess) {
4016
- const variantLookup = new VariantLookup(type.getEntity(), ctx.localizationContext);
4017
- return variantLookup.get().map((v) => new VariantCompletionItemInfo(
4018
- this.completionItemInfoContext,
4019
- v.value,
4020
- v.name,
4021
- v.requiresExplicitOriginalName
4022
- )).toArray();
4023
- } else {
4024
- const memberLookup = new TypeMemberLookup(this._analyzer, type, ctx.localizationContext);
4025
- return memberLookup.getNamedMembers(ctx.hidingMatcher, ctx.typeExtensionsLookup).filter((m) => m.value.isStatic() === ctx.isStaticAccess).map((m) => {
4026
- switch (m.value.kind) {
4027
- case "method":
4028
- return new TypeMethodCompletionItemInfo(
4029
- this.completionItemInfoContext,
4030
- m.value,
4031
- m.name,
4032
- m.requiresExplicitOriginalName
4033
- );
4034
- case "variable":
4035
- return new TypeVariableCompletionItemInfo(
4036
- this.completionItemInfoContext,
4037
- m.value,
4038
- m.name,
4039
- m.requiresExplicitOriginalName
4040
- );
4041
- default:
4042
- Debug.never(m.value);
4043
- }
4044
- }).chain(Query.from(memberLookup.getOperators(ctx.hidingMatcher, ctx.typeExtensionsLookup)).filter((m) => m.value.isStatic() === ctx.isStaticAccess).map((o) => new OperatorCompletionItemInfo(this.completionItemInfoContext, o.value, o.localization))).toArray();
4045
- }
4013
+ const memberLookup = new TypeMemberLookup(this._analyzer, type, ctx.localizationContext);
4014
+ return memberLookup.getNamedMembers(ctx.hidingMatcher, ctx.typeExtensionsLookup).filter((m) => m.value.isStatic() === ctx.isStaticAccess).map((m) => {
4015
+ switch (m.value.kind) {
4016
+ case "method":
4017
+ return new TypeMethodCompletionItemInfo(
4018
+ this.completionItemInfoContext,
4019
+ m.value,
4020
+ m.name,
4021
+ m.requiresExplicitOriginalName
4022
+ );
4023
+ case "variable":
4024
+ return new TypeVariableCompletionItemInfo(
4025
+ this.completionItemInfoContext,
4026
+ m.value,
4027
+ m.name,
4028
+ m.requiresExplicitOriginalName
4029
+ );
4030
+ default:
4031
+ Debug.never(m.value);
4032
+ }
4033
+ }).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
4034
  }
4047
4035
  getPackageImportCompletionItemInfos(ctx) {
4048
4036
  const result = this._analyzer.packageImports.getPackagesAvailableForImport(this._sourceFile.package).map((p) => p.getImportName()).filter((n) => {
@@ -4076,10 +4064,10 @@ var CompletionService = class {
4076
4064
  result = items ?? Query.empty();
4077
4065
  } else if (ctx.translationKind === 2 /* Method */) {
4078
4066
  result = Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher)).mapAndFilter((d) => {
4079
- if (d.value.kind === "method") {
4067
+ if (d.value.kind === 1 /* Method */) {
4080
4068
  return new AliasesSourceMethodCompletionItemInfo(
4081
4069
  this.completionItemInfoContext,
4082
- d.value.value,
4070
+ d.value,
4083
4071
  !ctx.hasPrecedingKeyword,
4084
4072
  displayService_
4085
4073
  );
@@ -4088,10 +4076,10 @@ var CompletionService = class {
4088
4076
  });
4089
4077
  } else if (ctx.translationKind === 3 /* Type */) {
4090
4078
  result = Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher)).mapAndFilter((d) => {
4091
- if (d.value.kind === "type") {
4079
+ if (d.value.kind === 2 /* Type */) {
4092
4080
  return new AliasesSourcePackageTypeCompletionItemInfo(
4093
4081
  this.completionItemInfoContext,
4094
- d.value.value.getEntity(),
4082
+ d.value,
4095
4083
  !ctx.hasPrecedingKeyword,
4096
4084
  displayService_
4097
4085
  );
@@ -4110,31 +4098,31 @@ var CompletionService = class {
4110
4098
  }
4111
4099
  }
4112
4100
  result = Query.from(packageNameItems ?? []).chain(
4113
- Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher)).mapAndFilter((d) => {
4114
- if (d.value.kind === "variable") {
4115
- return new AliasesSourceVariableCompletionItemInfo(
4116
- this.completionItemInfoContext,
4117
- d.value.value,
4118
- displayService_
4119
- );
4120
- }
4121
- if (d.value.kind === "method") {
4122
- return new AliasesSourceMethodCompletionItemInfo(
4123
- this.completionItemInfoContext,
4124
- d.value.value,
4125
- !ctx.hasPrecedingKeyword,
4126
- displayService_
4127
- );
4128
- }
4129
- if (d.value.kind === "type") {
4130
- return new AliasesSourcePackageTypeCompletionItemInfo(
4131
- this.completionItemInfoContext,
4132
- d.value.value.getEntity(),
4133
- !ctx.hasPrecedingKeyword,
4134
- displayService_
4135
- );
4101
+ Query.from(ctx.packageMemberLookup.getNamedMembers(ctx.hidingMatcher)).map((d) => {
4102
+ switch (d.value.kind) {
4103
+ case 0 /* Variable */:
4104
+ return new AliasesSourceVariableCompletionItemInfo(
4105
+ this.completionItemInfoContext,
4106
+ d.value,
4107
+ displayService_
4108
+ );
4109
+ case 1 /* Method */:
4110
+ return new AliasesSourceMethodCompletionItemInfo(
4111
+ this.completionItemInfoContext,
4112
+ d.value,
4113
+ !ctx.hasPrecedingKeyword,
4114
+ displayService_
4115
+ );
4116
+ case 2 /* Type */:
4117
+ return new AliasesSourcePackageTypeCompletionItemInfo(
4118
+ this.completionItemInfoContext,
4119
+ d.value,
4120
+ !ctx.hasPrecedingKeyword,
4121
+ displayService_
4122
+ );
4123
+ default:
4124
+ Debug.never(d.value);
4136
4125
  }
4137
- return void 0;
4138
4126
  })
4139
4127
  );
4140
4128
  } else {
@@ -4142,9 +4130,9 @@ var CompletionService = class {
4142
4130
  }
4143
4131
  if (!ctx.hasPrecedingKeyword) {
4144
4132
  const keywords = [
4145
- 17 /* Import */,
4146
- 15 /* Type */,
4147
- 11 /* Function */
4133
+ 18 /* Import */,
4134
+ 16 /* Type */,
4135
+ 12 /* Function */
4148
4136
  ];
4149
4137
  result = result.chain(
4150
4138
  Query.from(keywords).map(
@@ -4160,7 +4148,7 @@ var CompletionService = class {
4160
4148
  const displayService_ = new DisplayService(this._analyzer, ctx.sourceLocale, this._dialect);
4161
4149
  if (ctx.translationKind === 1 /* Method */) {
4162
4150
  result = Query.from(ctx.typeEntity.getMembers().getNamedMembers()).mapAndFilter((m) => {
4163
- if (m.kind === 5 /* Method */) {
4151
+ if (m.kind === 1 /* Method */) {
4164
4152
  return new AliasesSourceMethodCompletionItemInfo(
4165
4153
  this.completionItemInfoContext,
4166
4154
  m,
@@ -4185,7 +4173,7 @@ var CompletionService = class {
4185
4173
  result = Query.from(ctx.typeEntity.getMembers().getNamedMembers()).mapAndFilter((m) => {
4186
4174
  if (m.kind === 0 /* Variable */) {
4187
4175
  return new AliasesSourceVariableCompletionItemInfo(this.completionItemInfoContext, m, displayService_);
4188
- } else if (m.kind === 5 /* Method */) {
4176
+ } else if (m.kind === 1 /* Method */) {
4189
4177
  return new AliasesSourceMethodCompletionItemInfo(
4190
4178
  this.completionItemInfoContext,
4191
4179
  m,
@@ -4214,8 +4202,8 @@ var CompletionService = class {
4214
4202
  }
4215
4203
  if (!ctx.hasPrecedingKeyword) {
4216
4204
  const keywords = [
4217
- 11 /* Function */,
4218
- 28 /* Creation */
4205
+ 12 /* Function */,
4206
+ 29 /* Creation */
4219
4207
  ];
4220
4208
  result = result.chain(
4221
4209
  Query.from(keywords).map(
@@ -4429,6 +4417,12 @@ var TypeCompletionContext = class {
4429
4417
  this.kind = "type";
4430
4418
  }
4431
4419
  };
4420
+ var TagCompletionContext = class {
4421
+ constructor(searchLocation) {
4422
+ this.searchLocation = searchLocation;
4423
+ this.kind = "tag";
4424
+ }
4425
+ };
4432
4426
  var OperatorNameCompletionContext = class {
4433
4427
  constructor(nameToken) {
4434
4428
  this.nameToken = nameToken;
@@ -4572,7 +4566,7 @@ var TypeVariableCompletionItemInfo = class {
4572
4566
  return `${this.isNameExplicitlyOriginal ? "~" : ""}${this.ctx.getInsertTextForName(this.name.value)}`;
4573
4567
  }
4574
4568
  getCompletionItemKind() {
4575
- return 2 /* TypeVariable */;
4569
+ return this.variable.isVariant() ? 12 /* Variant */ : 2 /* TypeVariable */;
4576
4570
  }
4577
4571
  getDetails() {
4578
4572
  return this.ctx.displayService.displayVariableDeclaration(
@@ -4646,33 +4640,6 @@ var OperatorCompletionItemInfo = class {
4646
4640
  return void 0;
4647
4641
  }
4648
4642
  };
4649
- var VariantCompletionItemInfo = class {
4650
- constructor(ctx, variant, name, isNameExplicitlyOriginal) {
4651
- this.ctx = ctx;
4652
- this.variant = variant;
4653
- this.name = name;
4654
- this.isNameExplicitlyOriginal = isNameExplicitlyOriginal;
4655
- this.kind = "variant";
4656
- }
4657
- getLabel() {
4658
- return `${this.isNameExplicitlyOriginal ? "~" : ""}${this.ctx.getInsertTextForName(this.name.value)}`;
4659
- }
4660
- getCompletionItemKind() {
4661
- return 12 /* Variant */;
4662
- }
4663
- getDetails() {
4664
- return this.ctx.displayService.displayVariantEntity(this.variant, this.name.localization);
4665
- }
4666
- getInsertText() {
4667
- return void 0;
4668
- }
4669
- getSortText() {
4670
- return void 0;
4671
- }
4672
- getEditRange() {
4673
- return void 0;
4674
- }
4675
- };
4676
4643
  var VariableEntityCompletionItemInfo = class {
4677
4644
  constructor(ctx, entity, name, isNameExplicitlyOriginal) {
4678
4645
  this.ctx = ctx;
@@ -4689,7 +4656,7 @@ var VariableEntityCompletionItemInfo = class {
4689
4656
  case "package":
4690
4657
  return 7 /* PackageVariable */;
4691
4658
  case "type":
4692
- return 2 /* TypeVariable */;
4659
+ return this.entity.isVariant() ? 12 /* Variant */ : 2 /* TypeVariable */;
4693
4660
  case "parameter":
4694
4661
  return 10 /* ParameterVariable */;
4695
4662
  case "local":
@@ -4765,14 +4732,14 @@ var NamedTypeCompletionItemInfo = class {
4765
4732
  return `${this.prefix}${this.isNameExplicitlyOriginal ? "~" : ""}${this.ctx.getInsertTextForName(this.name.value)}`;
4766
4733
  }
4767
4734
  getCompletionItemKind() {
4768
- switch (this.entity.kind) {
4769
- case 2 /* VariantType */:
4735
+ switch (this.entity.typeEntityKind) {
4736
+ case 3 /* Variant */:
4770
4737
  return 16 /* VariantType */;
4771
- case 6 /* TypeParameter */:
4738
+ case 2 /* Parameter */:
4772
4739
  return 17 /* TypeParameter */;
4773
- case 11 /* MethodType */:
4740
+ case 0 /* Method */:
4774
4741
  return 18 /* MethodType */;
4775
- case 12 /* StructuredType */:
4742
+ case 1 /* Structured */:
4776
4743
  if (this.entity.isRefObject()) {
4777
4744
  return 13 /* RefObjectType */;
4778
4745
  } else if (this.entity.isPlainObject()) {
@@ -4782,7 +4749,7 @@ var NamedTypeCompletionItemInfo = class {
4782
4749
  } else {
4783
4750
  return 20 /* InvalidType */;
4784
4751
  }
4785
- case 14 /* AliasType */:
4752
+ case 4 /* Alias */:
4786
4753
  return 19 /* AliasType */;
4787
4754
  default:
4788
4755
  Debug.never(this.entity);
@@ -4981,12 +4948,12 @@ var AliasesSourcePackageTypeCompletionItemInfo = class {
4981
4948
  return this.ctx.getInsertTextForName(this.typeEntity.getName());
4982
4949
  }
4983
4950
  getCompletionItemKind() {
4984
- switch (this.typeEntity.kind) {
4985
- case 2 /* VariantType */:
4951
+ switch (this.typeEntity.typeEntityKind) {
4952
+ case 3 /* Variant */:
4986
4953
  return 16 /* VariantType */;
4987
- case 11 /* MethodType */:
4954
+ case 0 /* Method */:
4988
4955
  return 18 /* MethodType */;
4989
- case 12 /* StructuredType */: {
4956
+ case 1 /* Structured */: {
4990
4957
  if (this.typeEntity.isRefObject()) {
4991
4958
  return 13 /* RefObjectType */;
4992
4959
  } else if (this.typeEntity.isPlainObject()) {
@@ -4996,7 +4963,7 @@ var AliasesSourcePackageTypeCompletionItemInfo = class {
4996
4963
  }
4997
4964
  return 20 /* InvalidType */;
4998
4965
  }
4999
- case 14 /* AliasType */:
4966
+ case 4 /* Alias */:
5000
4967
  return 19 /* AliasType */;
5001
4968
  }
5002
4969
  }
@@ -5015,20 +4982,20 @@ var AliasesSourcePackageTypeCompletionItemInfo = class {
5015
4982
  }
5016
4983
  getDisplayServiceTypeDeclaration() {
5017
4984
  const localization = Localization.Original.ofEntity(this.typeEntity);
5018
- switch (this.typeEntity.kind) {
5019
- case 2 /* VariantType */:
4985
+ switch (this.typeEntity.typeEntityKind) {
4986
+ case 3 /* Variant */:
5020
4987
  return new TypeDeclaration_variant(
5021
4988
  new TypeDeclarationVariant_entity(this.typeEntity, localization)
5022
4989
  );
5023
- case 11 /* MethodType */:
4990
+ case 0 /* Method */:
5024
4991
  return new TypeDeclaration_method(
5025
4992
  new TypeDeclarationMethod_entity(this.typeEntity, localization)
5026
4993
  );
5027
- case 12 /* StructuredType */:
4994
+ case 1 /* Structured */:
5028
4995
  return new TypeDeclaration_structured(
5029
4996
  new TypeDeclarationStructured_entity(this.typeEntity, localization)
5030
4997
  );
5031
- case 14 /* AliasType */:
4998
+ case 4 /* Alias */:
5032
4999
  return new TypeDeclaration_alias(
5033
5000
  new TypeDeclarationAlias_entity(this.typeEntity, localization)
5034
5001
  );
@@ -5091,7 +5058,7 @@ var AliasesSourceTypeConstructorCompletionItemInfo = class {
5091
5058
  Localization.Original.ofEntity(this.constructor_)
5092
5059
  );
5093
5060
  const displayParts = this.displayService.getConstructorDeclarationDisplayParts(constructorDeclaration);
5094
- const creationKeyword = this.displayService.displayKeyword(28 /* Creation */);
5061
+ const creationKeyword = this.displayService.displayKeyword(29 /* Creation */);
5095
5062
  return creationKeyword + displayParts.valueParametersStart + displayParts.valueParameters.map((p) => p.toString()).join(displayParts.valueParameterSeparator) + displayParts.valueParametersEnd;
5096
5063
  });
5097
5064
  }
@@ -5105,7 +5072,7 @@ var AliasesSourceTypeConstructorCompletionItemInfo = class {
5105
5072
  return this.label;
5106
5073
  }
5107
5074
  getInsertText() {
5108
- const creationKeyword = this.includeOnCreateKeyword ? this.displayService.displayKeyword(28 /* Creation */) : "";
5075
+ const creationKeyword = this.includeOnCreateKeyword ? this.displayService.displayKeyword(29 /* Creation */) : "";
5109
5076
  const parameters = this.constructor_.getValueParameters().map((p) => this.ctx.getInsertTextForName(p.getName(), true)).join(", ");
5110
5077
  return `${creationKeyword}(${parameters})`;
5111
5078
  }
@@ -5143,7 +5110,7 @@ var OperatorNameCompletionItemInfo = class {
5143
5110
  }
5144
5111
  };
5145
5112
  var SyntaxContext = class {
5146
- constructor(isInComment, isInStringOrChar, isInQuotedIdentifier, isPackageMemberDeclarationListContext, isTypeMemberDeclarationListContext, isStatementContext, isExpressionContext, precedingExpression, isUnqualifiedTypeContext, isTopLevelTranslationListContext, isTypeMemberTranslationListContext) {
5113
+ constructor(isInComment, isInStringOrChar, isInQuotedIdentifier, isPackageMemberDeclarationListContext, isTypeMemberDeclarationListContext, isStatementContext, isExpressionContext, precedingExpression, isUnqualifiedTypeContext, isUnqualifiedTagNameCompletionContext, isTopLevelTranslationListContext, isTypeMemberTranslationListContext) {
5147
5114
  this.isInComment = isInComment;
5148
5115
  this.isInStringOrChar = isInStringOrChar;
5149
5116
  this.isInQuotedIdentifier = isInQuotedIdentifier;
@@ -5153,11 +5120,12 @@ var SyntaxContext = class {
5153
5120
  this.isExpressionContext = isExpressionContext;
5154
5121
  this.precedingExpression = precedingExpression;
5155
5122
  this.isUnqualifiedTypeContext = isUnqualifiedTypeContext;
5123
+ this.isUnqualifiedTagNameCompletionContext = isUnqualifiedTagNameCompletionContext;
5156
5124
  this.isTopLevelTranslationListContext = isTopLevelTranslationListContext;
5157
5125
  this.isTypeMemberTranslationListContext = isTypeMemberTranslationListContext;
5158
5126
  }
5159
5127
  };
5160
- var ExpressionRole_callArgument = class {
5128
+ var ExpressionRole_argument = class {
5161
5129
  constructor(argumentList, index) {
5162
5130
  this.argumentList = argumentList;
5163
5131
  this.index = index;
@@ -5218,6 +5186,7 @@ var SyntaxContextFactory = class {
5218
5186
  if (positionDescription.kind === "after-token-or-keyword") {
5219
5187
  isUnqualifiedTypeContext = this.isUnqualifiedTypeContext(positionDescription.tokenOrKeyword);
5220
5188
  }
5189
+ const isUnqualifiedTagNameCompletionContext = positionDescription.kind === "after-token-or-keyword" && positionDescription.tokenOrKeyword.isToken(35 /* HashSign */) && positionDescription.tokenOrKeyword.parent.kind === 144 /* Tag */;
5221
5190
  let isTopLevelTranslationListContext;
5222
5191
  if (positionDescription.kind === "after-token-or-keyword") {
5223
5192
  isTopLevelTranslationListContext = this.isTopLevelTranslationListContext(positionDescription.tokenOrKeyword);
@@ -5236,6 +5205,7 @@ var SyntaxContextFactory = class {
5236
5205
  isExpressionContext,
5237
5206
  precedingExpression,
5238
5207
  isUnqualifiedTypeContext,
5208
+ isUnqualifiedTagNameCompletionContext,
5239
5209
  isTopLevelTranslationListContext,
5240
5210
  isTypeMemberTranslationListContext
5241
5211
  );
@@ -5262,7 +5232,7 @@ var SyntaxContextFactory = class {
5262
5232
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.defaultValue);
5263
5233
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5264
5234
  }
5265
- if (tokenOrKeyword.parent.kind === 142 /* CallArgument */) {
5235
+ if (tokenOrKeyword.parent.kind === 142 /* Argument */) {
5266
5236
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.value);
5267
5237
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5268
5238
  }
@@ -5315,23 +5285,23 @@ var SyntaxContextFactory = class {
5315
5285
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5316
5286
  }
5317
5287
  if (tokenOrKeyword.parent.kind === 69 /* CallExpression */) {
5318
- const expressionRole = new ExpressionRole_callArgument(tokenOrKeyword.parent.callArgumentList, 0);
5288
+ const expressionRole = new ExpressionRole_argument(tokenOrKeyword.parent.argumentList, 0);
5319
5289
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5320
5290
  }
5321
5291
  if (tokenOrKeyword.parent.kind === 70 /* AutotypeCallExpression */) {
5322
- const expressionRole = new ExpressionRole_callArgument(tokenOrKeyword.parent.callArgumentList, 0);
5292
+ const expressionRole = new ExpressionRole_argument(tokenOrKeyword.parent.argumentList, 0);
5323
5293
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5324
5294
  }
5325
5295
  if (tokenOrKeyword.parent.kind === 144 /* Tag */) {
5326
- const callArgumentList = tokenOrKeyword.parent.callArgumentList;
5327
- if (callArgumentList !== void 0) {
5328
- const expressionRole = new ExpressionRole_callArgument(callArgumentList, 0);
5296
+ const argumentList = tokenOrKeyword.parent.argumentList;
5297
+ if (argumentList !== void 0) {
5298
+ const expressionRole = new ExpressionRole_argument(argumentList, 0);
5329
5299
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5330
5300
  }
5331
5301
  }
5332
5302
  }
5333
5303
  if (tokenOrKeyword.isToken(45 /* OpenSquareBracket */) && tokenOrKeyword.parent.kind === 71 /* IndexedAccessExpression */) {
5334
- const expressionRole = new ExpressionRole_callArgument(tokenOrKeyword.parent.argumentsList, 0);
5304
+ const expressionRole = new ExpressionRole_argument(tokenOrKeyword.parent.argumentList, 0);
5335
5305
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5336
5306
  }
5337
5307
  if (tokenOrKeyword.isToken(45 /* OpenSquareBracket */) && tokenOrKeyword.parent.kind === 61 /* ArrayLiteral */) {
@@ -5339,7 +5309,7 @@ var SyntaxContextFactory = class {
5339
5309
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5340
5310
  }
5341
5311
  if (tokenOrKeyword.isToken(24 /* Comma */)) {
5342
- if (tokenOrKeyword.parent.kind === 68 /* CallArgumentList */) {
5312
+ if (tokenOrKeyword.parent.kind === 68 /* ArgumentList */) {
5343
5313
  const argumentList = tokenOrKeyword.parent;
5344
5314
  let index = 0;
5345
5315
  for (const element of argumentList.elements) {
@@ -5350,7 +5320,7 @@ var SyntaxContextFactory = class {
5350
5320
  }
5351
5321
  }
5352
5322
  }
5353
- const expressionRole = new ExpressionRole_callArgument(argumentList, index);
5323
+ const expressionRole = new ExpressionRole_argument(argumentList, index);
5354
5324
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5355
5325
  }
5356
5326
  if (tokenOrKeyword.parent.kind === 117 /* MatchExpressionList */) {
@@ -5362,43 +5332,43 @@ var SyntaxContextFactory = class {
5362
5332
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5363
5333
  }
5364
5334
  }
5365
- if (tokenOrKeyword.isKeyword(43 /* Case */) && tokenOrKeyword.parent.kind === 118 /* SwitchStatementCaseClause */) {
5335
+ if (tokenOrKeyword.isKeyword(44 /* Case */) && tokenOrKeyword.parent.kind === 118 /* SwitchStatementCaseClause */) {
5366
5336
  const expressionRole = new ExpressionRole_matchListElement(tokenOrKeyword.parent.parent.parent);
5367
5337
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5368
5338
  }
5369
- if (tokenOrKeyword.isKeyword(14 /* Return */) && tokenOrKeyword.parent.kind === 114 /* ReturnStatement */) {
5339
+ if (tokenOrKeyword.isKeyword(15 /* Return */) && tokenOrKeyword.parent.kind === 114 /* ReturnStatement */) {
5370
5340
  const expressionRole = new ExpressionRole_returnedValue(tokenOrKeyword.parent);
5371
5341
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5372
5342
  }
5373
- if (tokenOrKeyword.isKeyword(42 /* Switch */) && tokenOrKeyword.parent.kind === 116 /* SwitchStatement */) {
5343
+ if (tokenOrKeyword.isKeyword(43 /* Switch */) && tokenOrKeyword.parent.kind === 116 /* SwitchStatement */) {
5374
5344
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.expression);
5375
5345
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5376
5346
  }
5377
- if (tokenOrKeyword.isKeyword(12 /* If */) && tokenOrKeyword.parent.kind === 107 /* IfStatement */) {
5347
+ if (tokenOrKeyword.isKeyword(13 /* If */) && tokenOrKeyword.parent.kind === 107 /* IfStatement */) {
5378
5348
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.condition);
5379
5349
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5380
5350
  }
5381
- if (tokenOrKeyword.isKeyword(10 /* ElseIf */) && tokenOrKeyword.parent.kind === 109 /* ElseIfClause */) {
5351
+ if (tokenOrKeyword.isKeyword(11 /* ElseIf */) && tokenOrKeyword.parent.kind === 109 /* ElseIfClause */) {
5382
5352
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.condition);
5383
5353
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5384
5354
  }
5385
- if (tokenOrKeyword.isKeyword(8 /* From */) && tokenOrKeyword.parent.kind === 106 /* ForStatement */) {
5355
+ if (tokenOrKeyword.isKeyword(9 /* From */) && tokenOrKeyword.parent.kind === 106 /* ForStatement */) {
5386
5356
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.enumeratedExpression);
5387
5357
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5388
5358
  }
5389
- if (tokenOrKeyword.isKeyword(23 /* While */) && tokenOrKeyword.parent.kind === 119 /* WhileStatement */) {
5359
+ if (tokenOrKeyword.isKeyword(24 /* While */) && tokenOrKeyword.parent.kind === 119 /* WhileStatement */) {
5390
5360
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.condition);
5391
5361
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5392
5362
  }
5393
- if (tokenOrKeyword.isKeyword(25 /* RepeatWhile */) && tokenOrKeyword.parent.kind === 113 /* LoopStatement */) {
5363
+ if (tokenOrKeyword.isKeyword(26 /* RepeatWhile */) && tokenOrKeyword.parent.kind === 113 /* LoopStatement */) {
5394
5364
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.condition);
5395
5365
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5396
5366
  }
5397
- if (tokenOrKeyword.isKeyword(26 /* Yield */) && tokenOrKeyword.parent.kind === 120 /* YieldStatement */) {
5367
+ if (tokenOrKeyword.isKeyword(27 /* Yield */) && tokenOrKeyword.parent.kind === 120 /* YieldStatement */) {
5398
5368
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.expression);
5399
5369
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5400
5370
  }
5401
- if (tokenOrKeyword.isKeyword(27 /* When */) && tokenOrKeyword.parent.kind === 76 /* WhenTernaryExpression */) {
5371
+ if (tokenOrKeyword.isKeyword(28 /* When */) && tokenOrKeyword.parent.kind === 76 /* WhenTernaryExpression */) {
5402
5372
  const expressionRole = new ExpressionRole_other(tokenOrKeyword.parent.condition);
5403
5373
  return { isExpressionContext: { expressionRole }, isStatementContext: false };
5404
5374
  }
@@ -5503,20 +5473,20 @@ var SyntaxContextFactory = class {
5503
5473
  return result;
5504
5474
  }
5505
5475
  static isUnqualifiedTypeContext(tokenOrKeyword) {
5506
- if (tokenOrKeyword.isToken(23 /* Colon */) && tokenOrKeyword.parent.kind === 155 /* TypeAnnotation */) {
5476
+ if (tokenOrKeyword.isToken(23 /* Colon */) && tokenOrKeyword.parent.kind === 153 /* TypeAnnotation */) {
5507
5477
  return { allowsAnonymousTypes: true };
5508
5478
  }
5509
5479
  if ((tokenOrKeyword.isKeyword(4 /* Object */) || tokenOrKeyword.isKeyword(5 /* PlainObject */) || tokenOrKeyword.isKeyword(3 /* Aspect */)) && tokenOrKeyword.parent.kind === 34 /* StructuredTypeDeclarationBody */) {
5510
5480
  return { allowsAnonymousTypes: false };
5511
5481
  }
5512
- if (tokenOrKeyword.isKeyword(15 /* Type */) && (NodeTypeUtils.isPackageTypeDeclaration(tokenOrKeyword.parent) || tokenOrKeyword.parent.kind === 40 /* TypeExtensionDeclaration */)) {
5482
+ if (tokenOrKeyword.isKeyword(16 /* Type */) && (NodeTypeUtils.isPackageTypeDeclaration(tokenOrKeyword.parent) || tokenOrKeyword.parent.kind === 40 /* TypeExtensionDeclaration */)) {
5513
5483
  return { allowsAnonymousTypes: false };
5514
5484
  }
5515
- if (tokenOrKeyword.isToken(36 /* LessThan */) && tokenOrKeyword.parent.kind === 151 /* TypeArgumentClause */) {
5485
+ if (tokenOrKeyword.isToken(36 /* LessThan */) && tokenOrKeyword.parent.kind === 149 /* TypeArgumentClause */) {
5516
5486
  return { allowsAnonymousTypes: true };
5517
5487
  }
5518
- if (tokenOrKeyword.isToken(24 /* Comma */) && (tokenOrKeyword.parent.kind === 30 /* BaseTypeList */ || tokenOrKeyword.parent.kind === 152 /* TypeArgumentList */)) {
5519
- return { allowsAnonymousTypes: tokenOrKeyword.parent.kind === 152 /* TypeArgumentList */ };
5488
+ if (tokenOrKeyword.isToken(24 /* Comma */) && (tokenOrKeyword.parent.kind === 30 /* BaseTypeList */ || tokenOrKeyword.parent.kind === 150 /* TypeArgumentList */)) {
5489
+ return { allowsAnonymousTypes: tokenOrKeyword.parent.kind === 150 /* TypeArgumentList */ };
5520
5490
  }
5521
5491
  if (tokenOrKeyword.isToken(35 /* HashSign */) && tokenOrKeyword.parent.kind === 144 /* Tag */) {
5522
5492
  return { allowsAnonymousTypes: false };
@@ -5527,10 +5497,10 @@ var SyntaxContextFactory = class {
5527
5497
  if (tokenOrKeyword.isToken(57 /* Equals */) && tokenOrKeyword.parent.kind === 22 /* PackageAliasTypeDeclaration */) {
5528
5498
  return { allowsAnonymousTypes: false };
5529
5499
  }
5530
- if (tokenOrKeyword.isKeyword(13 /* Is */) && tokenOrKeyword.parent.kind === 73 /* IsExpression */) {
5500
+ if (tokenOrKeyword.isKeyword(14 /* Is */) && tokenOrKeyword.parent.kind === 73 /* IsExpression */) {
5531
5501
  return { allowsAnonymousTypes: true };
5532
5502
  }
5533
- if (tokenOrKeyword.isKeyword(40 /* As */) && tokenOrKeyword.parent.kind === 65 /* AsExpression */) {
5503
+ if (tokenOrKeyword.isKeyword(41 /* As */) && tokenOrKeyword.parent.kind === 65 /* AsExpression */) {
5534
5504
  return { allowsAnonymousTypes: true };
5535
5505
  }
5536
5506
  if (tokenOrKeyword.isToken(17 /* Bar */) && tokenOrKeyword.parent.kind === 12 /* UnionTypeSpecifierTypeList */) {
@@ -5731,7 +5701,7 @@ var NodeSemanticInfoService = class {
5731
5701
  return this.ofDereferenceExpressionOperator(analyzer, tokenOrKeyword.parent, options6);
5732
5702
  } else if (tokenOrKeyword.parent.kind === 91 /* AssignmentStatement */) {
5733
5703
  return this.ofAssignmentStatementOperator(analyzer, tokenOrKeyword.parent, options6);
5734
- } else if (tokenOrKeyword.isKeyword(28 /* Creation */) && tokenOrKeyword.parent.kind === 45 /* TypeConstructorDeclaration */) {
5704
+ } else if (tokenOrKeyword.isKeyword(29 /* Creation */) && tokenOrKeyword.parent.kind === 45 /* TypeConstructorDeclaration */) {
5735
5705
  return this.ofTypeConstructorDeclaration(analyzer, tokenOrKeyword.parent);
5736
5706
  } else if (tokenOrKeyword.isToken(13 /* Asterisk */) && tokenOrKeyword.parent.kind === 90 /* DefaultMatchExpression */) {
5737
5707
  return this.ofDefaultMatchExpression(analyzer, tokenOrKeyword.parent);
@@ -5758,7 +5728,7 @@ var NodeSemanticInfoService = class {
5758
5728
  break;
5759
5729
  case 121 /* TranslationParameterList */:
5760
5730
  break;
5761
- case 142 /* CallArgument */: {
5731
+ case 142 /* Argument */: {
5762
5732
  const respectiveParameter = analyzer.getRespectiveParameter(parent);
5763
5733
  if (respectiveParameter !== void 0) {
5764
5734
  const target = new SimpleWithLocalization(
@@ -5975,9 +5945,6 @@ var NodeSemanticInfoService = class {
5975
5945
  case 56 /* TypeVariableSetterDeclaration */:
5976
5946
  result = new DefinitionNodeSemanticInfo(analyzer.entity.ofComputedTypeVariableDeclaration(parent));
5977
5947
  break;
5978
- case 150 /* SetterParameterDeclaration */:
5979
- result = new DefinitionNodeSemanticInfo(analyzer.entity.ofSetterParameterDeclaration(parent));
5980
- break;
5981
5948
  case 3 /* Keyword */:
5982
5949
  break;
5983
5950
  default:
@@ -5990,18 +5957,10 @@ var NodeSemanticInfoService = class {
5990
5957
  let result;
5991
5958
  const meaning = analyzer.resolvePropertyAccessExpression(node).meaning;
5992
5959
  switch (meaning.kind) {
5993
- case "variant-access": {
5994
- const target = new SimpleWithLocalization(
5995
- new EntityReferenceTarget(meaning.variant.value, 0 /* Get */),
5996
- meaning.variant.localization
5997
- );
5998
- result = new ReferenceNodeSemanticInfo([target], false);
5999
- break;
6000
- }
6001
5960
  case "instance-variable-access": {
6002
5961
  const target = new SimpleWithLocalization(new TypeVariableReferenceTarget(
6003
5962
  meaning.variable.value,
6004
- meaning.access.kind
5963
+ meaning.accessKind
6005
5964
  ), meaning.variable.localization);
6006
5965
  result = new ReferenceNodeSemanticInfo([target], false);
6007
5966
  break;
@@ -6009,7 +5968,7 @@ var NodeSemanticInfoService = class {
6009
5968
  case "static-variable-access": {
6010
5969
  const target = new SimpleWithLocalization(new TypeVariableReferenceTarget(
6011
5970
  meaning.variable.value,
6012
- meaning.access.kind
5971
+ meaning.accessKind
6013
5972
  ), meaning.variable.localization);
6014
5973
  result = new ReferenceNodeSemanticInfo([target], false);
6015
5974
  break;
@@ -6017,7 +5976,7 @@ var NodeSemanticInfoService = class {
6017
5976
  case "package-variable-access": {
6018
5977
  const target = new SimpleWithLocalization(new EntityReferenceTarget(
6019
5978
  meaning.variable.value,
6020
- meaning.access.kind
5979
+ meaning.accessKind
6021
5980
  ), meaning.variable.localization);
6022
5981
  result = new ReferenceNodeSemanticInfo([target], false);
6023
5982
  break;
@@ -6058,7 +6017,7 @@ var NodeSemanticInfoService = class {
6058
6017
  );
6059
6018
  result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
6060
6019
  } else {
6061
- result = this.ofMaybeConstructorCall(analyzer, meaning.suitableTypes, node, options6);
6020
+ result = this.ofMaybeConstructorCallExpression(analyzer, meaning.suitableTypes, node, options6);
6062
6021
  }
6063
6022
  break;
6064
6023
  case "package-name-segment-access":
@@ -6084,19 +6043,70 @@ var NodeSemanticInfoService = class {
6084
6043
  }
6085
6044
  static ofQualifiedNameQualifier(analyzer, node, qualifier, options6) {
6086
6045
  switch (node.parent.kind) {
6087
- case 10 /* NamedTypeSpecifier */: {
6088
- let result;
6089
- const resolutionResult = analyzer.resolveNamedTypeSpecifier(node.parent);
6090
- const qualifierIndex = node.qualifiers.toArray().indexOf(qualifier);
6091
- if (qualifierIndex >= 0 && qualifierIndex < resolutionResult.resolvedQualifiers.length) {
6092
- const resolvedQualifier = resolutionResult.resolvedQualifiers[qualifierIndex];
6093
- if (resolvedQualifier.kind === "package-alias") {
6094
- const target = new SimpleWithLocalization(
6095
- new EntityReferenceTarget(resolvedQualifier.packageAlias, 0 /* Get */),
6096
- new Localization.Original(resolvedQualifier.packageAlias.getContainingPackage().getLocale())
6097
- );
6098
- result = new ReferenceNodeSemanticInfo([target], false);
6099
- } else if (resolvedQualifier.kind === "type") {
6046
+ case 10 /* NamedTypeSpecifier */:
6047
+ return this.ofNamedTypeSpecifierNameQualifier(analyzer, node.parent, qualifier, options6);
6048
+ case 144 /* Tag */:
6049
+ return this.ofTagNameQualifier(analyzer, node.parent, qualifier, options6);
6050
+ case 42 /* ExtendedTypeClause */:
6051
+ case 131 /* PackageImportTranslation */:
6052
+ return void 0;
6053
+ default:
6054
+ Debug.never(node.parent);
6055
+ }
6056
+ }
6057
+ static ofNamedTypeSpecifierNameQualifier(analyzer, node, qualifier, options6) {
6058
+ let result;
6059
+ const resolutionResult = analyzer.resolveNamedTypeSpecifier(node);
6060
+ const qualifierIndex = node.qualifiedName.qualifiers.toArray().indexOf(qualifier);
6061
+ if (qualifierIndex >= 0 && qualifierIndex < resolutionResult.resolvedQualifiers.length) {
6062
+ const resolvedQualifier = resolutionResult.resolvedQualifiers[qualifierIndex];
6063
+ if (resolvedQualifier.kind === "package-alias") {
6064
+ const target = new SimpleWithLocalization(
6065
+ new EntityReferenceTarget(resolvedQualifier.packageAlias, 0 /* Get */),
6066
+ new Localization.Original(resolvedQualifier.packageAlias.getContainingPackage().getLocale())
6067
+ );
6068
+ result = new ReferenceNodeSemanticInfo([target], false);
6069
+ } else if (resolvedQualifier.kind === "type") {
6070
+ if (resolvedQualifier.suitableTypes.length > 0) {
6071
+ const targets = resolvedQualifier.suitableTypes.map((t) => new SimpleWithLocalization(new EntityReferenceTarget(t.value, 0 /* Get */), t.localization));
6072
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
6073
+ } else if (resolvedQualifier.candidates.length > 0) {
6074
+ const targets = resolvedQualifier.candidates.map((t) => new SimpleWithLocalization(new EntityReferenceTarget(t.value, 0 /* Get */), t.localization));
6075
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
6076
+ }
6077
+ } else if (resolvedQualifier.kind === "package-name-segment") {
6078
+ let currentIndex = qualifierIndex;
6079
+ while (currentIndex + 1 < resolutionResult.resolvedQualifiers.length && resolutionResult.resolvedQualifiers[currentIndex + 1].kind === "package-name-segment") {
6080
+ currentIndex++;
6081
+ }
6082
+ const qualifier2 = resolutionResult.resolvedQualifiers[currentIndex];
6083
+ if (qualifier2.kind === "package-name-segment" && qualifier2.packageTreeNode.package !== void 0) {
6084
+ const target = new SimpleWithLocalization(
6085
+ new PackageReferenceTarget(qualifier2.packageTreeNode.package.value),
6086
+ new Localization.Original(qualifier2.packageTreeNode.package.value.getLocale())
6087
+ );
6088
+ result = new ReferenceNodeSemanticInfo([target], false);
6089
+ } else {
6090
+ result = void 0;
6091
+ }
6092
+ } else {
6093
+ Debug.never(resolvedQualifier);
6094
+ }
6095
+ }
6096
+ if (result !== void 0 && options6.includeBetterReferenceTargets) {
6097
+ result = this.getBetterReferenceTargetsOrPreserve(result);
6098
+ }
6099
+ return result;
6100
+ }
6101
+ static ofTagNameQualifier(analyzer, node, qualifier, options6) {
6102
+ let result;
6103
+ const resolutionResult = analyzer.resolveTag(node);
6104
+ const qualifierIndex = node.name.qualifiers.toArray().indexOf(qualifier);
6105
+ if (qualifierIndex >= 0 && qualifierIndex < resolutionResult.resolvedQualifiers.length) {
6106
+ const resolvedQualifier = resolutionResult.resolvedQualifiers[qualifierIndex];
6107
+ switch (resolvedQualifier.kind) {
6108
+ case "type": {
6109
+ if (options6.preferredTargetOfExplicitConstructorCall === "type-declaration") {
6100
6110
  if (resolvedQualifier.suitableTypes.length > 0) {
6101
6111
  const targets = resolvedQualifier.suitableTypes.map((t) => new SimpleWithLocalization(new EntityReferenceTarget(t.value, 0 /* Get */), t.localization));
6102
6112
  result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
@@ -6104,55 +6114,72 @@ var NodeSemanticInfoService = class {
6104
6114
  const targets = resolvedQualifier.candidates.map((t) => new SimpleWithLocalization(new EntityReferenceTarget(t.value, 0 /* Get */), t.localization));
6105
6115
  result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
6106
6116
  }
6107
- } else if (resolvedQualifier.kind === "package-name-segment") {
6108
- let currentIndex = qualifierIndex;
6109
- while (currentIndex + 1 < resolutionResult.resolvedQualifiers.length && resolutionResult.resolvedQualifiers[currentIndex + 1].kind === "package-name-segment") {
6110
- currentIndex++;
6111
- }
6112
- const qualifier2 = resolutionResult.resolvedQualifiers[currentIndex];
6113
- if (qualifier2.kind === "package-name-segment" && qualifier2.packageTreeNode.package !== void 0) {
6114
- const target = new SimpleWithLocalization(
6115
- new PackageReferenceTarget(qualifier2.packageTreeNode.package.value),
6116
- new Localization.Original(qualifier2.packageTreeNode.package.value.getLocale())
6117
- );
6118
- result = new ReferenceNodeSemanticInfo([target], false);
6119
- } else {
6120
- result = void 0;
6117
+ } else {
6118
+ if (resolutionResult.meaning.kind === "tag-type") {
6119
+ if (resolutionResult.meaning.suitableConstructors.length > 0) {
6120
+ const targets = resolutionResult.meaning.suitableConstructors.map((t) => new SimpleWithLocalization(new TypeConstructorReferenceTarget(t.value), t.localization));
6121
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
6122
+ } else if (resolutionResult.meaning.candidates.length > 0) {
6123
+ const targets = resolutionResult.meaning.candidates.map((t) => new SimpleWithLocalization(new TypeConstructorReferenceTarget(t.value), t.localization));
6124
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
6125
+ }
6121
6126
  }
6127
+ }
6128
+ break;
6129
+ }
6130
+ case "method":
6131
+ if (resolvedQualifier.suitableMethods.length > 0) {
6132
+ const targets = resolvedQualifier.suitableMethods.map((t) => new SimpleWithLocalization(new EntityReferenceTarget(t.value, 0 /* Get */), t.localization));
6133
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
6134
+ } else if (resolvedQualifier.candidates.length > 0) {
6135
+ const targets = resolvedQualifier.candidates.map((t) => new SimpleWithLocalization(new EntityReferenceTarget(t.value, 0 /* Get */), t.localization));
6136
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
6137
+ }
6138
+ break;
6139
+ case "package-name-segment": {
6140
+ let currentIndex = qualifierIndex;
6141
+ while (currentIndex + 1 < resolutionResult.resolvedQualifiers.length && resolutionResult.resolvedQualifiers[currentIndex + 1].kind === "package-name-segment") {
6142
+ currentIndex++;
6143
+ }
6144
+ const qualifier2 = resolutionResult.resolvedQualifiers[currentIndex];
6145
+ if (qualifier2.kind === "package-name-segment" && qualifier2.packageTreeNode.package !== void 0) {
6146
+ const target = new SimpleWithLocalization(
6147
+ new PackageReferenceTarget(qualifier2.packageTreeNode.package.value),
6148
+ new Localization.Original(qualifier2.packageTreeNode.package.value.getLocale())
6149
+ );
6150
+ result = new ReferenceNodeSemanticInfo([target], false);
6122
6151
  } else {
6123
- Debug.never(resolvedQualifier);
6152
+ result = void 0;
6124
6153
  }
6154
+ break;
6125
6155
  }
6126
- if (result !== void 0 && options6.includeBetterReferenceTargets) {
6127
- result = this.getBetterReferenceTargetsOrPreserve(result);
6156
+ case "package-alias": {
6157
+ const target = new SimpleWithLocalization(
6158
+ new EntityReferenceTarget(resolvedQualifier.packageAlias, 0 /* Get */),
6159
+ new Localization.Original(resolvedQualifier.packageAlias.getContainingPackage().getLocale())
6160
+ );
6161
+ result = new ReferenceNodeSemanticInfo([target], false);
6162
+ break;
6128
6163
  }
6129
- return result;
6164
+ default:
6165
+ Debug.never(resolvedQualifier);
6130
6166
  }
6131
- case 42 /* ExtendedTypeClause */:
6132
- case 131 /* PackageImportTranslation */:
6133
- return void 0;
6134
- default:
6135
- Debug.never(node.parent);
6136
6167
  }
6168
+ if (result !== void 0 && options6.includeBetterReferenceTargets) {
6169
+ result = this.getBetterReferenceTargetsOrPreserve(result);
6170
+ }
6171
+ return result;
6137
6172
  }
6138
6173
  static ofIdentifierExpression(analyzer, node, options6) {
6139
6174
  let result;
6140
6175
  const meaning = analyzer.resolveIdentifierExpression(node).meaning;
6141
6176
  switch (meaning.kind) {
6142
- case "variant-access": {
6143
- const target = new SimpleWithLocalization(
6144
- new EntityReferenceTarget(meaning.variant.value, 0 /* Get */),
6145
- meaning.variant.localization
6146
- );
6147
- result = new ReferenceNodeSemanticInfo([target], false);
6148
- break;
6149
- }
6150
6177
  case "type-access":
6151
6178
  if (meaning.suitableTypes.length === 0 && meaning.candidates.length > 0) {
6152
6179
  const targets = meaning.candidates.map((c) => new SimpleWithLocalization(new EntityReferenceTarget(c.value, 0 /* Get */), c.localization));
6153
6180
  result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
6154
6181
  } else {
6155
- result = this.ofMaybeConstructorCall(analyzer, meaning.suitableTypes, node, options6);
6182
+ result = this.ofMaybeConstructorCallExpression(analyzer, meaning.suitableTypes, node, options6);
6156
6183
  }
6157
6184
  break;
6158
6185
  case "method-access":
@@ -6174,13 +6201,13 @@ var NodeSemanticInfoService = class {
6174
6201
  const variable = meaning.variable;
6175
6202
  if (variable.value.kind === "entity") {
6176
6203
  const target = new SimpleWithLocalization(
6177
- new EntityReferenceTarget(variable.value.value, meaning.access.kind),
6204
+ new EntityReferenceTarget(variable.value.value, meaning.accessKind),
6178
6205
  variable.localization
6179
6206
  );
6180
6207
  result = new ReferenceNodeSemanticInfo([target], false);
6181
6208
  } else if (variable.value.kind === "type-member") {
6182
6209
  const target = new SimpleWithLocalization(
6183
- new TypeVariableReferenceTarget(variable.value.value, meaning.access.kind),
6210
+ new TypeVariableReferenceTarget(variable.value.value, meaning.accessKind),
6184
6211
  variable.localization
6185
6212
  );
6186
6213
  result = new ReferenceNodeSemanticInfo([target], false);
@@ -6206,11 +6233,14 @@ var NodeSemanticInfoService = class {
6206
6233
  let target;
6207
6234
  switch (d.value.kind) {
6208
6235
  case "method":
6236
+ target = new EntityReferenceTarget(d.value.value.getEntity(), 0 /* Get */);
6237
+ break;
6209
6238
  case "variable":
6210
- case "type":
6211
6239
  target = new EntityReferenceTarget(d.value.value.getEntity(), 0 /* Get */);
6212
6240
  break;
6213
- case "variant":
6241
+ case "type":
6242
+ target = new EntityReferenceTarget(d.value.value, 0 /* Get */);
6243
+ break;
6214
6244
  case "package-alias":
6215
6245
  target = new EntityReferenceTarget(d.value.value, 0 /* Get */);
6216
6246
  break;
@@ -6338,7 +6368,7 @@ var NodeSemanticInfoService = class {
6338
6368
  const meaning = analyzer.getDereferenceExpressionMeaning(node);
6339
6369
  if (meaning.kind === "resolved") {
6340
6370
  const target = new SimpleWithLocalization(
6341
- new TypeDereferenceOperatorReferenceTarget(meaning.operator.value, meaning.access.kind),
6371
+ new TypeDereferenceOperatorReferenceTarget(meaning.operator.value, meaning.accessKind),
6342
6372
  meaning.operator.localization
6343
6373
  );
6344
6374
  let result = new ReferenceNodeSemanticInfo([target], false);
@@ -6474,7 +6504,7 @@ var NodeSemanticInfoService = class {
6474
6504
  false
6475
6505
  );
6476
6506
  }
6477
- static ofMaybeConstructorCall(analyzer, types, typeAccessExpression, options6) {
6507
+ static ofMaybeConstructorCallExpression(analyzer, types, typeAccessExpression, options6) {
6478
6508
  if (types.length === 0) {
6479
6509
  return void 0;
6480
6510
  }
@@ -6501,17 +6531,14 @@ var NodeSemanticInfoService = class {
6501
6531
  }
6502
6532
  if (parentCallExpression !== void 0) {
6503
6533
  const meaning = analyzer.getCallExpressionMeaning(parentCallExpression);
6504
- if (meaning.kind === "constructor-call" && meaning.suitableConstructors.length > 0) {
6505
- const targets = meaning.suitableConstructors.map((c) => new SimpleWithLocalization(new TypeConstructorReferenceTarget(c.value), c.localization));
6506
- let betterTargets;
6507
- if (options6.includeBetterReferenceTargets && typeEntities.length > 0 && meaning.suitableConstructors.some((c) => c.value.getEntity().getDefinition().kind !== 0 /* Source */)) {
6508
- betterTargets = typeEntities.map((t) => new SimpleWithLocalization(new EntityReferenceTarget(t.value, 0 /* Get */), t.localization));
6509
- }
6510
- return new ReferenceNodeSemanticInfo(
6511
- createNonEmptyArray(targets),
6512
- targets.length > 1,
6513
- createNonEmptyArray(betterTargets)
6514
- );
6534
+ if (meaning.kind === "constructor-call") {
6535
+ if (meaning.suitableConstructors.length > 0) {
6536
+ const targets = meaning.suitableConstructors.map((c) => new SimpleWithLocalization(new TypeConstructorReferenceTarget(c.value), c.localization));
6537
+ return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), meaning.suitableConstructors.length > 1);
6538
+ } else if (meaning.candidates.length > 0) {
6539
+ const targets = meaning.candidates.map((c) => new SimpleWithLocalization(new TypeConstructorReferenceTarget(c.value), c.localization));
6540
+ return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
6541
+ }
6515
6542
  }
6516
6543
  }
6517
6544
  if (typeEntities.length > 0) {
@@ -6560,7 +6587,7 @@ var NodeSemanticInfoService = class {
6560
6587
  );
6561
6588
  }
6562
6589
  }
6563
- } else if (currentTarget.value.kind === "entity" && currentTarget.value.entity.kind === 5 /* Method */) {
6590
+ } else if (currentTarget.value.kind === "entity" && currentTarget.value.entity.kind === 1 /* Method */) {
6564
6591
  }
6565
6592
  if (betterTarget !== void 0) {
6566
6593
  result = betterTarget;
@@ -6696,7 +6723,7 @@ var SimpleWithLocalization = class {
6696
6723
 
6697
6724
  // source/services/Utils.ts
6698
6725
  function getEntitySourceLocations(analyzer, entity) {
6699
- if (entity.kind === 16 /* Package */) {
6726
+ if (entity.kind === 12 /* Package */) {
6700
6727
  return void 0;
6701
6728
  }
6702
6729
  let result;
@@ -6717,7 +6744,7 @@ function getEntitySourceLocations(analyzer, entity) {
6717
6744
  Debug.never(definition.value);
6718
6745
  }
6719
6746
  }
6720
- } else if (entity.kind === 7 /* Indexer */) {
6747
+ } else if (entity.kind === 5 /* Indexer */) {
6721
6748
  const definition = entity.getDefinition();
6722
6749
  if (definition.kind === 0 /* Source */) {
6723
6750
  result = definition.nodes.map((d) => {
@@ -6726,7 +6753,7 @@ function getEntitySourceLocations(analyzer, entity) {
6726
6753
  return new SourceLocation(sourceFile, range);
6727
6754
  });
6728
6755
  }
6729
- } else if (entity.kind === 8 /* DereferenceOperator */) {
6756
+ } else if (entity.kind === 6 /* DereferenceOperator */) {
6730
6757
  const definition = entity.getDefinition();
6731
6758
  if (definition.kind === 0 /* Source */) {
6732
6759
  result = definition.nodes.map((d) => {
@@ -6756,7 +6783,6 @@ function getEntitySourceLocations(analyzer, entity) {
6756
6783
  case 58 /* NestedMethodDeclaration */:
6757
6784
  case 52 /* TypeMethodDeclaration */:
6758
6785
  case 140 /* TypeParameterDeclaration */:
6759
- case 139 /* VariantDeclaration */:
6760
6786
  case 53 /* OperatorDeclaration */:
6761
6787
  range = node.name.rangeWithoutTrivia;
6762
6788
  break;
@@ -7003,7 +7029,7 @@ var ReferencesService = class {
7003
7029
  const result = [];
7004
7030
  const restrictions = this.getReferenceRestrictions(definition, options6);
7005
7031
  let semanticInfoOptions;
7006
- if (definition.value.kind === 9 /* Constructor */) {
7032
+ if (definition.value.kind === 7 /* Constructor */) {
7007
7033
  semanticInfoOptions = {
7008
7034
  preferredTargetOfExplicitConstructorCall: "constructor-declaration",
7009
7035
  includeBetterReferenceTargets: true
@@ -7323,7 +7349,7 @@ var ReferencesService = class {
7323
7349
  getReferenceRestrictions(definition, _options) {
7324
7350
  const result = new ReferenceRestrictions();
7325
7351
  let namedDefinitionInfo;
7326
- if (definition.value.kind === 9 /* Constructor */) {
7352
+ if (definition.value.kind === 7 /* Constructor */) {
7327
7353
  const type = definition.value.getContainer().getContextualType();
7328
7354
  if (type !== void 0) {
7329
7355
  namedDefinitionInfo = this.isEntityWithRegularName(type);
@@ -7334,11 +7360,11 @@ var ReferencesService = class {
7334
7360
  if (namedDefinitionInfo !== void 0) {
7335
7361
  result.canBeIdentifier = true;
7336
7362
  }
7337
- if (definition.value.kind === 9 /* Constructor */) {
7363
+ if (definition.value.kind === 7 /* Constructor */) {
7338
7364
  result.canBeAutotypeCall = true;
7339
7365
  result.canBeConstructorDeclaration = true;
7340
7366
  }
7341
- if (definition.value.kind === 15 /* Operator */) {
7367
+ if (definition.value.kind === 9 /* Operator */) {
7342
7368
  const operatorKind = definition.value.getOperatorKind();
7343
7369
  if (isUnaryOperator(operatorKind)) {
7344
7370
  result.canBePrefixUnaryOperator = true;
@@ -7347,17 +7373,17 @@ var ReferencesService = class {
7347
7373
  result.canBeAssignmentStatementOperator = true;
7348
7374
  }
7349
7375
  }
7350
- if (definition.value.kind === 8 /* DereferenceOperator */) {
7376
+ if (definition.value.kind === 6 /* DereferenceOperator */) {
7351
7377
  result.canBeDereferenceOperator = true;
7352
7378
  }
7353
- if (isTypeEntity(definition.value) || definition.value.kind === 9 /* Constructor */) {
7379
+ if (isTypeEntity(definition.value) || definition.value.kind === 7 /* Constructor */) {
7354
7380
  result.canBeObjectExpression = true;
7355
7381
  result.canBeBaseExpression = true;
7356
7382
  }
7357
- if (definition.value.kind === 5 /* Method */) {
7383
+ if (definition.value.kind === 1 /* Method */) {
7358
7384
  result.canBeBaseExpression = true;
7359
7385
  }
7360
- if (definition.value.kind === 7 /* Indexer */) {
7386
+ if (definition.value.kind === 5 /* Indexer */) {
7361
7387
  result.canBeIndexer = true;
7362
7388
  }
7363
7389
  return result;
@@ -7391,46 +7417,50 @@ var ReferencesService = class {
7391
7417
  switch (entity.kind) {
7392
7418
  case 0 /* Variable */:
7393
7419
  return { name: entity.getName() };
7394
- case 1 /* Variant */:
7395
- return { name: entity.getName() };
7396
- case 2 /* VariantType */: {
7397
- const naming = entity.getNaming();
7398
- if (naming.kind === "named") {
7399
- return { name: naming.value };
7400
- }
7401
- return void 0;
7402
- }
7403
- case 5 /* Method */:
7404
- return { name: entity.getName() };
7405
- case 6 /* TypeParameter */:
7406
- return { name: entity.getName() };
7407
- case 11 /* MethodType */: {
7408
- const naming = entity.getNaming();
7409
- if (naming.kind === "named") {
7410
- return { name: naming.value };
7411
- }
7412
- return void 0;
7413
- }
7414
- case 12 /* StructuredType */: {
7415
- const naming = entity.getNaming();
7416
- if (naming.kind === "named") {
7417
- return { name: naming.value };
7420
+ case 2 /* Type */: {
7421
+ switch (entity.typeEntityKind) {
7422
+ case 0 /* Method */: {
7423
+ const naming = entity.getNaming();
7424
+ if (naming.kind === "named") {
7425
+ return { name: naming.value };
7426
+ }
7427
+ return void 0;
7428
+ }
7429
+ case 1 /* Structured */: {
7430
+ const naming = entity.getNaming();
7431
+ if (naming.kind === "named") {
7432
+ return { name: naming.value };
7433
+ }
7434
+ return void 0;
7435
+ }
7436
+ case 2 /* Parameter */:
7437
+ return { name: entity.getName() };
7438
+ case 3 /* Variant */: {
7439
+ const naming = entity.getNaming();
7440
+ if (naming.kind === "named") {
7441
+ return { name: naming.value };
7442
+ }
7443
+ return void 0;
7444
+ }
7445
+ case 4 /* Alias */:
7446
+ return { name: entity.getName() };
7447
+ default:
7448
+ Debug.never(entity);
7418
7449
  }
7419
- return void 0;
7420
7450
  }
7421
- case 13 /* PackageAlias */:
7451
+ case 1 /* Method */:
7422
7452
  return { name: entity.getName() };
7423
- case 14 /* AliasType */:
7453
+ case 10 /* PackageAlias */:
7424
7454
  return { name: entity.getName() };
7425
7455
  case 3 /* Getter */:
7426
7456
  case 4 /* Setter */:
7427
- case 9 /* Constructor */:
7428
- case 10 /* Destructor */:
7429
- case 7 /* Indexer */:
7430
- case 8 /* DereferenceOperator */:
7431
- case 16 /* Package */:
7432
- case 17 /* TypeExtension */:
7433
- case 15 /* Operator */:
7457
+ case 7 /* Constructor */:
7458
+ case 8 /* Destructor */:
7459
+ case 5 /* Indexer */:
7460
+ case 6 /* DereferenceOperator */:
7461
+ case 12 /* Package */:
7462
+ case 11 /* TypeExtension */:
7463
+ case 9 /* Operator */:
7434
7464
  return void 0;
7435
7465
  default:
7436
7466
  Debug.never(entity);
@@ -8077,14 +8107,14 @@ var SourceFileItemsService = class {
8077
8107
  case 4 /* PackageMethod */:
8078
8108
  case 15 /* TypeMethod */:
8079
8109
  case 19 /* NestedMethod */:
8080
- return name ?? `<${LocalizationHelper.localizeKeywordAndTakeFirst(11 /* Function */, this.locale, this.dialect)}>`;
8110
+ return name ?? `<${LocalizationHelper.localizeKeywordAndTakeFirst(12 /* Function */, this.locale, this.dialect)}>`;
8081
8111
  case 5 /* StructuredType */:
8082
8112
  case 6 /* MethodType */:
8083
8113
  case 7 /* VariantType */:
8084
8114
  case 8 /* InvalidType */:
8085
- return name ?? `<${LocalizationHelper.localizeKeywordAndTakeFirst(15 /* Type */, this.locale, this.dialect)}>`;
8115
+ return name ?? `<${LocalizationHelper.localizeKeywordAndTakeFirst(16 /* Type */, this.locale, this.dialect)}>`;
8086
8116
  case 10 /* TypeConstructor */:
8087
- return name ?? LocalizationHelper.localizeKeywordAndTakeFirst(28 /* Creation */, this.locale, this.dialect);
8117
+ return name ?? LocalizationHelper.localizeKeywordAndTakeFirst(29 /* Creation */, this.locale, this.dialect);
8088
8118
  case 11 /* TypeDestructor */:
8089
8119
  return name ?? LocalizationHelper.localizeKeywordAndTakeFirst(46 /* Destruction */, this.locale, this.dialect);
8090
8120
  case 9 /* Variant */:
@@ -8291,7 +8321,7 @@ var SelectionRangeService = class {
8291
8321
  }
8292
8322
  }
8293
8323
  switch (node.kind) {
8294
- case 155 /* TypeAnnotation */:
8324
+ case 153 /* TypeAnnotation */:
8295
8325
  case 34 /* StructuredTypeDeclarationBody */:
8296
8326
  case 39 /* VariantTypeDeclarationBody */:
8297
8327
  case 23 /* AliasTypeDeclarationBody */:
@@ -8339,29 +8369,37 @@ var SemanticTokensService = class {
8339
8369
  const meaning = analyzer.resolveIdentifierExpression(node).meaning;
8340
8370
  if (meaning.kind === "variable-access") {
8341
8371
  const variable = meaning.variable.value.getEntity();
8342
- const specialVariableInfo = variable.isSpecial();
8343
- if (specialVariableInfo !== void 0) {
8344
- let semanticTokenKind;
8345
- switch (specialVariableInfo.kind) {
8346
- case "result":
8347
- case "param":
8348
- case "value":
8349
- semanticTokenKind = 1 /* SpecialVariable */;
8350
- break;
8351
- case "implicit-method-block-parameter":
8352
- semanticTokenKind = 0 /* MethodBlockLiteralParameter */;
8353
- break;
8354
- case "backing":
8355
- case "param-object-member":
8356
- semanticTokenKind = void 0;
8357
- break;
8358
- default:
8359
- Debug.never(specialVariableInfo);
8360
- }
8361
- if (semanticTokenKind !== void 0) {
8362
- result.push(
8363
- new SemanticToken(node.rangeWithoutTrivia, semanticTokenKind, new SemanticTokenModifiers())
8364
- );
8372
+ if (variable.subkind === "type" && variable.isVariant()) {
8373
+ result.push(
8374
+ new SemanticToken(
8375
+ node.rangeWithoutTrivia,
8376
+ 3 /* Variant */,
8377
+ new SemanticTokenModifiers().makeConst()
8378
+ )
8379
+ );
8380
+ } else {
8381
+ const specialVariableInfo = variable.isSpecial();
8382
+ if (specialVariableInfo !== void 0) {
8383
+ let semanticTokenKind;
8384
+ switch (specialVariableInfo.kind) {
8385
+ case "result":
8386
+ case "value":
8387
+ semanticTokenKind = 1 /* SpecialVariable */;
8388
+ break;
8389
+ case "implicit-method-block-parameter":
8390
+ semanticTokenKind = 0 /* MethodBlockLiteralParameter */;
8391
+ break;
8392
+ case "backing":
8393
+ semanticTokenKind = void 0;
8394
+ break;
8395
+ default:
8396
+ Debug.never(specialVariableInfo);
8397
+ }
8398
+ if (semanticTokenKind !== void 0) {
8399
+ result.push(
8400
+ new SemanticToken(node.rangeWithoutTrivia, semanticTokenKind, new SemanticTokenModifiers())
8401
+ );
8402
+ }
8365
8403
  }
8366
8404
  }
8367
8405
  }
@@ -8375,15 +8413,6 @@ var SemanticTokensService = class {
8375
8413
  )
8376
8414
  );
8377
8415
  }
8378
- if (meaning.kind === "variant-access") {
8379
- result.push(
8380
- new SemanticToken(
8381
- node.rangeWithoutTrivia,
8382
- 3 /* Variant */,
8383
- new SemanticTokenModifiers().makeConst()
8384
- )
8385
- );
8386
- }
8387
8416
  if (meaning.kind === "operator-access") {
8388
8417
  result.push(new SemanticToken(
8389
8418
  node.rangeWithoutTrivia,
@@ -8394,14 +8423,17 @@ var SemanticTokensService = class {
8394
8423
  }
8395
8424
  if (node.kind === 78 /* PropertyAccessExpression */) {
8396
8425
  const meaning = analyzer.resolvePropertyAccessExpression(node).meaning;
8397
- if (meaning.kind === "variant-access") {
8398
- result.push(
8399
- new SemanticToken(
8400
- node.propertyName.rangeWithoutTrivia,
8401
- 3 /* Variant */,
8402
- new SemanticTokenModifiers().makeConst()
8403
- )
8404
- );
8426
+ if (meaning.kind === "static-variable-access") {
8427
+ const entity = meaning.variable.value.getEntity();
8428
+ if (entity.subkind === "type" && entity.isVariant()) {
8429
+ result.push(
8430
+ new SemanticToken(
8431
+ node.propertyName.rangeWithoutTrivia,
8432
+ 3 /* Variant */,
8433
+ new SemanticTokenModifiers().makeConst()
8434
+ )
8435
+ );
8436
+ }
8405
8437
  }
8406
8438
  let suitableMethods;
8407
8439
  switch (meaning.kind) {
@@ -8601,7 +8633,7 @@ var TypeParameterSignatureHelpProvider = class {
8601
8633
  const infos = signatures.map(
8602
8634
  (s) => convertSignatureDisplayPartsToSignatureInfo(s.getDisplayParts(), argumentIndex)
8603
8635
  );
8604
- const activeSignature = Query.from(signatures).filter((s) => s.getArity() >= argumentCount).first() ?? Query.from(signatures).maxByValue((s) => s.getArity());
8636
+ const activeSignature = Query.from(signatures).first((s) => s.getArity() >= argumentCount) ?? Query.from(signatures).maxByValue((s) => s.getArity());
8605
8637
  if (activeSignature !== void 0) {
8606
8638
  const activeSignatureIndex = signatures.indexOf(activeSignature);
8607
8639
  result = new SignatureHelp(infos, activeSignatureIndex);
@@ -8617,7 +8649,7 @@ var TypeParameterSignatureHelpProvider = class {
8617
8649
  }
8618
8650
  let node = token.parent;
8619
8651
  while (node !== void 0) {
8620
- if (node.kind === 151 /* TypeArgumentClause */ && this._offset >= node.lessThanToken.rangeWithoutTrivia.end && (node.greaterThanToken.rangeWithoutTrivia.isEmpty || this._offset <= node.greaterThanToken.rangeWithoutTrivia.start)) {
8652
+ if (node.kind === 149 /* TypeArgumentClause */ && this._offset >= node.lessThanToken.rangeWithoutTrivia.end && (node.greaterThanToken.rangeWithoutTrivia.isEmpty || this._offset <= node.greaterThanToken.rangeWithoutTrivia.start)) {
8621
8653
  const argumentIndex = this.getArgumentIndex(node.typeArgumentList, this._offset);
8622
8654
  const argumentCount = this.countArguments(node.typeArgumentList);
8623
8655
  return new NodeWithTypeArgumentsInfo(node.parent, argumentIndex, argumentCount);
@@ -8664,6 +8696,8 @@ var TypeParameterSignatureHelpProvider = class {
8664
8696
  return this.getSignaturesForNamedTypeSpecifier(node);
8665
8697
  case 89 /* GenericSpecializationExpression */:
8666
8698
  return this.getSignaturesForGenericSpecializationExpression(node);
8699
+ case 144 /* Tag */:
8700
+ return this.getSignaturesForTag(node);
8667
8701
  default:
8668
8702
  Debug.never(node);
8669
8703
  }
@@ -8678,6 +8712,27 @@ var TypeParameterSignatureHelpProvider = class {
8678
8712
  }
8679
8713
  return void 0;
8680
8714
  }
8715
+ getSignaturesForTag(node) {
8716
+ const resolutionResult = this._analyzer.resolveTag(node);
8717
+ if (resolutionResult.resolvedQualifiers.length > 0) {
8718
+ const lastQualifier = resolutionResult.resolvedQualifiers[resolutionResult.resolvedQualifiers.length - 1];
8719
+ if (lastQualifier.kind === "type") {
8720
+ return Query.from(lastQualifier.candidates).mapAndFilter((t) => this.getSignatureForNamedType(t.value)).toArray();
8721
+ } else if (lastQualifier.kind === "method") {
8722
+ if (resolutionResult.meaning.kind === "tag-method") {
8723
+ return Query.from(resolutionResult.meaning.candidates).mapAndFilter((d) => {
8724
+ if (d.value.kind === "substituted-method") {
8725
+ return this.getSignatureForSubstitutedMethod(d.value.value, d.localization);
8726
+ }
8727
+ return void 0;
8728
+ }).toArray();
8729
+ } else {
8730
+ return void 0;
8731
+ }
8732
+ }
8733
+ }
8734
+ return void 0;
8735
+ }
8681
8736
  getSignaturesForGenericSpecializationExpression(node) {
8682
8737
  const expression = unwrapParenthesizedExpressions(node.expression);
8683
8738
  if (expression.kind === 88 /* IdentifierExpression */) {
@@ -8725,12 +8780,12 @@ var TypeParameterSignatureHelpProvider = class {
8725
8780
  switch (method.kind) {
8726
8781
  case "entity":
8727
8782
  if (method.entity.getTypeParametersArity() > 0) {
8728
- result = new MethodEntitySignature2(this.signatureContext, method.entity, localization);
8783
+ result = new MethodEntitySignature(this.signatureContext, method.entity, localization);
8729
8784
  }
8730
8785
  break;
8731
8786
  case "type-member":
8732
8787
  if (method.method.getTypeParametersArity() > 0) {
8733
- result = new TypeMethodSignature2(this.signatureContext, method.method, localization);
8788
+ result = new TypeMethodSignature(this.signatureContext, method.method, localization);
8734
8789
  }
8735
8790
  break;
8736
8791
  default:
@@ -8740,28 +8795,28 @@ var TypeParameterSignatureHelpProvider = class {
8740
8795
  }
8741
8796
  getSignatureForNamedType(type) {
8742
8797
  let result = void 0;
8743
- switch (type.kind) {
8744
- case 12 /* StructuredType */:
8798
+ switch (type.typeEntityKind) {
8799
+ case 1 /* Structured */:
8745
8800
  if (type.getArity() > 0) {
8746
8801
  result = new StructuredTypeSignature(this.signatureContext, type);
8747
8802
  }
8748
8803
  break;
8749
- case 11 /* MethodType */:
8804
+ case 0 /* Method */:
8750
8805
  if (type.getArity() > 0) {
8751
8806
  result = new MethodTypeSignature2(this.signatureContext, type);
8752
8807
  }
8753
8808
  break;
8754
- case 2 /* VariantType */:
8809
+ case 3 /* Variant */:
8755
8810
  if (type.getArity() > 0) {
8756
8811
  result = new VariantTypeSignature(this.signatureContext, type);
8757
8812
  }
8758
8813
  break;
8759
- case 14 /* AliasType */:
8814
+ case 4 /* Alias */:
8760
8815
  if (type.getArity() > 0) {
8761
8816
  result = new AliasTypeSignature(this.signatureContext, type);
8762
8817
  }
8763
8818
  break;
8764
- case 6 /* TypeParameter */:
8819
+ case 2 /* Parameter */:
8765
8820
  break;
8766
8821
  default:
8767
8822
  Debug.never(type);
@@ -8776,7 +8831,7 @@ var NodeWithTypeArgumentsInfo = class {
8776
8831
  this.argumentCount = argumentCount;
8777
8832
  }
8778
8833
  };
8779
- var MethodEntitySignature2 = class {
8834
+ var MethodEntitySignature = class {
8780
8835
  constructor(ctx, method, localization) {
8781
8836
  this.ctx = ctx;
8782
8837
  this.method = method;
@@ -8792,7 +8847,7 @@ var MethodEntitySignature2 = class {
8792
8847
  return this.ctx.convertMethodDisplayParts(displayParts);
8793
8848
  }
8794
8849
  };
8795
- var TypeMethodSignature2 = class {
8850
+ var TypeMethodSignature = class {
8796
8851
  constructor(ctx, method, localization) {
8797
8852
  this.ctx = ctx;
8798
8853
  this.method = method;
@@ -8951,7 +9006,7 @@ var ValueParametersSignatureHelpProvider = class {
8951
9006
  case 69 /* CallExpression */: {
8952
9007
  if (this._offset >= node.openParenthesisToken.rangeWithoutTrivia.end && (node.closeParenthesisToken.rangeWithoutTrivia.isEmpty || this._offset <= node.closeParenthesisToken.rangeWithoutTrivia.start)) {
8953
9008
  const valueArguments = ValueArgumentFactory.createValueArgumentsOfCallExpression(node);
8954
- const argumentIndex = this.getArgumentIndexInList(node.callArgumentList.elements, this._offset);
9009
+ const argumentIndex = this.getArgumentIndexInList(node.argumentList.elements, this._offset);
8955
9010
  return new NodeWithValueArgumentsInfo(node, valueArguments, argumentIndex);
8956
9011
  }
8957
9012
  break;
@@ -8959,7 +9014,7 @@ var ValueParametersSignatureHelpProvider = class {
8959
9014
  case 70 /* AutotypeCallExpression */: {
8960
9015
  if (this._offset >= node.openParenthesisToken.rangeWithoutTrivia.end && (node.closeParenthesisToken.rangeWithoutTrivia.isEmpty || this._offset <= node.closeParenthesisToken.rangeWithoutTrivia.start)) {
8961
9016
  const valueArguments = ValueArgumentFactory.createValueArgumentsOfAutotypeCallExpression(node);
8962
- const argumentIndex = this.getArgumentIndexInList(node.callArgumentList.elements, this._offset);
9017
+ const argumentIndex = this.getArgumentIndexInList(node.argumentList.elements, this._offset);
8963
9018
  return new NodeWithValueArgumentsInfo(node, valueArguments, argumentIndex);
8964
9019
  }
8965
9020
  break;
@@ -8967,14 +9022,14 @@ var ValueParametersSignatureHelpProvider = class {
8967
9022
  case 71 /* IndexedAccessExpression */: {
8968
9023
  if (this._offset >= node.openSquareBracketToken.rangeWithoutTrivia.end && (node.closeSquareBracketToken.rangeWithoutTrivia.isEmpty || this._offset <= node.closeSquareBracketToken.rangeWithoutTrivia.start)) {
8969
9024
  const valueArguments = ValueArgumentFactory.createValueArgumentsOfIndexedAccessExpression(node);
8970
- const argumentIndex = this.getArgumentIndexInList(node.argumentsList.elements, this._offset);
9025
+ const argumentIndex = this.getArgumentIndexInList(node.argumentList.elements, this._offset);
8971
9026
  return new NodeWithValueArgumentsInfo(node, valueArguments, argumentIndex);
8972
9027
  }
8973
9028
  break;
8974
9029
  }
8975
9030
  case 144 /* Tag */: {
8976
- if (node.openParenthesisToken !== void 0 && this._offset >= node.openParenthesisToken.rangeWithoutTrivia.end && node.callArgumentList !== void 0 && (node.closeParenthesisToken === void 0 || node.closeParenthesisToken.rangeWithoutTrivia.isEmpty || this._offset <= node.closeParenthesisToken.rangeWithoutTrivia.start)) {
8977
- const argumentIndex = this.getArgumentIndexInList(node.callArgumentList.elements, this._offset);
9031
+ 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)) {
9032
+ const argumentIndex = this.getArgumentIndexInList(node.argumentList.elements, this._offset);
8978
9033
  const valueArguments = ValueArgumentFactory.createValueArgumentsOfTag(node);
8979
9034
  return new NodeWithValueArgumentsInfo(node, valueArguments, argumentIndex);
8980
9035
  }
@@ -9000,24 +9055,8 @@ var ValueParametersSignatureHelpProvider = class {
9000
9055
  }
9001
9056
  getSignatureDisplayParts(signature) {
9002
9057
  switch (signature.kind) {
9003
- case "method-entity": {
9004
- const method = new MethodDeclaration_entity(
9005
- signature.method.value,
9006
- signature.method.localization
9007
- );
9008
- const displayParts = this.signatureContext.displayService.getMethodDeclarationDisplayParts(method);
9009
- return this.signatureContext.convertMethodDisplayParts(displayParts);
9010
- }
9011
- case "type-method": {
9012
- const method = new MethodDeclaration_typeMember(
9013
- signature.method.value,
9014
- signature.method.localization
9015
- );
9016
- const displayParts = this.signatureContext.displayService.getMethodDeclarationDisplayParts(method);
9017
- return this.signatureContext.convertMethodDisplayParts(displayParts);
9018
- }
9019
- case "substituted-method": {
9020
- const method = new MethodDeclaration_substitutedMethod(
9058
+ case "accessed-method": {
9059
+ const method = new MethodDeclaration_accessedMethod(
9021
9060
  signature.method.value,
9022
9061
  signature.method.localization
9023
9062
  );
@@ -9114,16 +9153,16 @@ var SignatureInfo = class {
9114
9153
  };
9115
9154
 
9116
9155
  // source/services/source-generation/SourceGenerationService.ts
9117
- import { atomicRun as atomicRun2, ObservableMap as ObservableMap6, ObservableObject as ObservableObject7, reactive as reactive6, Transaction as Transaction4 } from "reactronic";
9156
+ import { atomicRun as atomicRun2, TriggeringMap as TriggeringMap6, TriggeringObject as TriggeringObject7, reaction as reaction6, Transaction as Transaction4 } from "reactronic";
9118
9157
 
9119
9158
  // source/services/workspace/ClientTrackedSourceFiles.ts
9120
- import { ObservableMap, ObservableObject, unobservable, ReactiveSystem, atomic } from "reactronic";
9121
- var ClientTrackedSourceFiles = class extends ObservableObject {
9159
+ import { TriggeringMap, TriggeringObject, trigger, ReactiveSystem, atomicBlock } from "reactronic";
9160
+ var ClientTrackedSourceFiles = class extends TriggeringObject {
9122
9161
  constructor() {
9123
9162
  super(...arguments);
9124
- this.items = new ObservableMap();
9163
+ this.items = new TriggeringMap();
9125
9164
  }
9126
- // @cached
9165
+ // @cache
9127
9166
  get unsaved() {
9128
9167
  return Query.from(this.items.entries()).filter((e) => !e[1].isSaved).toMap((e) => e[0], (e) => e[1]);
9129
9168
  }
@@ -9174,18 +9213,18 @@ var ClientTrackedSourceFiles = class extends ObservableObject {
9174
9213
  }
9175
9214
  };
9176
9215
  __decorateClass([
9177
- atomic
9216
+ atomicBlock
9178
9217
  ], ClientTrackedSourceFiles.prototype, "track", 1);
9179
9218
  __decorateClass([
9180
- atomic
9219
+ atomicBlock
9181
9220
  ], ClientTrackedSourceFiles.prototype, "update", 1);
9182
9221
  __decorateClass([
9183
- atomic
9222
+ atomicBlock
9184
9223
  ], ClientTrackedSourceFiles.prototype, "save", 1);
9185
9224
  __decorateClass([
9186
- atomic
9225
+ atomicBlock
9187
9226
  ], ClientTrackedSourceFiles.prototype, "close", 1);
9188
- var ClientTrackedSourceFile = class extends ObservableObject {
9227
+ var ClientTrackedSourceFile = class extends TriggeringObject {
9189
9228
  constructor(uri, text, version, isSaved) {
9190
9229
  super();
9191
9230
  this.uri = uri;
@@ -9201,7 +9240,7 @@ var ClientTrackedSourceFile = class extends ObservableObject {
9201
9240
  }
9202
9241
  };
9203
9242
  __decorateClass([
9204
- unobservable
9243
+ trigger(false)
9205
9244
  ], ClientTrackedSourceFile.prototype, "uri", 2);
9206
9245
  var ClientTrackedSourceFileSnapshot = class {
9207
9246
  constructor(uri, text, version, isSaved) {
@@ -9215,15 +9254,15 @@ var ClientTrackedSourceFileSnapshot = class {
9215
9254
  // source/services/workspace/CompilationController.ts
9216
9255
  import {
9217
9256
  Indicator,
9218
- ObservableObject as ObservableObject2,
9257
+ TriggeringObject as TriggeringObject2,
9219
9258
  ReactiveSystem as ReactiveSystem2,
9220
9259
  Reentrance,
9221
9260
  Transaction,
9222
- atomic as atomic2,
9261
+ atomicBlock as atomicBlock2,
9223
9262
  nonReactiveRun,
9224
9263
  options,
9225
- reactive,
9226
- unobservable as unobservable2
9264
+ reaction,
9265
+ trigger as trigger2
9227
9266
  } from "reactronic";
9228
9267
  var highPriorityDiagnosticsCollectionIndicator = Indicator.create(
9229
9268
  "HighPriorityDiagnosticsCollectionIndicator",
@@ -9232,7 +9271,7 @@ var highPriorityDiagnosticsCollectionIndicator = Indicator.create(
9232
9271
  100
9233
9272
  );
9234
9273
  var backgroundDiagnosticsCollectionThrottleTimeMs = 3e3;
9235
- var CompilationController = class extends ObservableObject2 {
9274
+ var CompilationController = class extends TriggeringObject2 {
9236
9275
  constructor(config) {
9237
9276
  super();
9238
9277
  this.isConfigurationsProcessingEnabled = false;
@@ -9714,72 +9753,72 @@ var CompilationController = class extends ObservableObject2 {
9714
9753
  }
9715
9754
  };
9716
9755
  __decorateClass([
9717
- unobservable2
9756
+ trigger2(false)
9718
9757
  ], CompilationController.prototype, "mainCompilationReloadIndicator", 2);
9719
9758
  __decorateClass([
9720
- unobservable2
9759
+ trigger2(false)
9721
9760
  ], CompilationController.prototype, "configurationControllersUpdateIndictor", 2);
9722
9761
  __decorateClass([
9723
- unobservable2
9762
+ trigger2(false)
9724
9763
  ], CompilationController.prototype, "_mainAnalyzerChangedIndicator", 2);
9725
9764
  __decorateClass([
9726
- unobservable2
9765
+ trigger2(false)
9727
9766
  ], CompilationController.prototype, "_fileSystemTree", 2);
9728
9767
  __decorateClass([
9729
- unobservable2
9768
+ trigger2(false)
9730
9769
  ], CompilationController.prototype, "config", 2);
9731
9770
  __decorateClass([
9732
- unobservable2
9771
+ trigger2(false)
9733
9772
  ], CompilationController.prototype, "_rootDirectory", 2);
9734
9773
  __decorateClass([
9735
- unobservable2
9774
+ trigger2(false)
9736
9775
  ], CompilationController.prototype, "_previousCompilationLoadResult", 2);
9737
9776
  __decorateClass([
9738
- unobservable2
9777
+ trigger2(false)
9739
9778
  ], CompilationController.prototype, "_sourceFilesForWhichDiagnosticsWereReported", 2);
9740
9779
  __decorateClass([
9741
- unobservable2
9780
+ trigger2(false)
9742
9781
  ], CompilationController.prototype, "_checkedConfigurationVersionByPackageUri", 2);
9743
9782
  __decorateClass([
9744
- unobservable2
9783
+ trigger2(false)
9745
9784
  ], CompilationController.prototype, "_tsInteropInputs", 2);
9746
9785
  __decorateClass([
9747
- unobservable2
9786
+ trigger2(false)
9748
9787
  ], CompilationController.prototype, "_tsInteropInputsKey", 2);
9749
9788
  __decorateClass([
9750
- unobservable2
9789
+ trigger2(false)
9751
9790
  ], CompilationController.prototype, "_tsProgramLoaderInputs", 2);
9752
9791
  __decorateClass([
9753
- unobservable2
9792
+ trigger2(false)
9754
9793
  ], CompilationController.prototype, "_configurationsOfPackagesOutsideProject", 2);
9755
9794
  __decorateClass([
9756
- atomic2
9795
+ atomicBlock2
9757
9796
  ], CompilationController.prototype, "notifyReportedSourceFileDiagnostics", 1);
9758
9797
  __decorateClass([
9759
- reactive,
9798
+ reaction,
9760
9799
  options({ reentrance: Reentrance.cancelPrevious, order: 24 })
9761
9800
  ], CompilationController.prototype, "reloadMainCompilation", 1);
9762
9801
  __decorateClass([
9763
- reactive,
9802
+ reaction,
9764
9803
  options({ order: 25 })
9765
9804
  ], CompilationController.prototype, "updateState", 1);
9766
9805
  __decorateClass([
9767
- reactive,
9806
+ reaction,
9768
9807
  options({ order: 20 })
9769
9808
  ], CompilationController.prototype, "updateConfigurationControllers", 1);
9770
9809
  __decorateClass([
9771
- reactive,
9810
+ reaction,
9772
9811
  options({ order: 21 })
9773
9812
  ], CompilationController.prototype, "onConfigurationsUpdated", 1);
9774
9813
  __decorateClass([
9775
- reactive
9814
+ reaction
9776
9815
  ], CompilationController.prototype, "onMainAnalyzerChanged", 1);
9777
9816
  __decorateClass([
9778
- reactive,
9817
+ reaction,
9779
9818
  options({ reentrance: Reentrance.cancelAndWaitPrevious })
9780
9819
  ], CompilationController.prototype, "collectDiagnosticsInBackground", 1);
9781
9820
  __decorateClass([
9782
- reactive,
9821
+ reaction,
9783
9822
  options({ reentrance: Reentrance.waitAndRestart })
9784
9823
  ], CompilationController.prototype, "onRawPackageConfigurationsUpdated", 1);
9785
9824
  var TsProgramLoaderInputs = class {
@@ -9841,11 +9880,11 @@ var ReadonlyCompilationState = class {
9841
9880
  }
9842
9881
  };
9843
9882
  __decorateClass([
9844
- atomic2,
9883
+ atomicBlock2,
9845
9884
  options({ reentrance: Reentrance.runSideBySide, indicator: highPriorityDiagnosticsCollectionIndicator })
9846
9885
  ], ReadonlyCompilationState.prototype, "collectSourceFileDiagnosticsWithHighPriority", 1);
9847
9886
  __decorateClass([
9848
- atomic2,
9887
+ atomicBlock2,
9849
9888
  options({ reentrance: Reentrance.runSideBySide })
9850
9889
  ], ReadonlyCompilationState.prototype, "collectSourceFileDiagnosticsWithLowPriority", 1);
9851
9890
  var DiagnosticsCollectionSummary = class {
@@ -9853,7 +9892,7 @@ var DiagnosticsCollectionSummary = class {
9853
9892
  this.hasErrors = hasErrors;
9854
9893
  }
9855
9894
  };
9856
- var ConfigurationController = class extends ObservableObject2 {
9895
+ var ConfigurationController = class extends TriggeringObject2 {
9857
9896
  constructor(rootDirectory, packageUri, mainCompilationController) {
9858
9897
  super();
9859
9898
  // private _compilationState: ReadonlyCompilationState | undefined = undefined
@@ -9934,7 +9973,7 @@ var ConfigurationController = class extends ObservableObject2 {
9934
9973
  this._convertedConfigurationVersion++;
9935
9974
  });
9936
9975
  }
9937
- // @reactive
9976
+ // @reaction
9938
9977
  // @options({ reentrance: Reentrance.cancelPrevious, order: 21 })
9939
9978
  // private async reloadCompilation(): Promise<void> {
9940
9979
  // if (!this._mainCompilationController.isConfigurationsProcessingEnabled) {
@@ -9981,7 +10020,7 @@ var ConfigurationController = class extends ObservableObject2 {
9981
10020
  // }
9982
10021
  // }
9983
10022
  // }
9984
- // @reactive
10023
+ // @reaction
9985
10024
  // @options({ reentrance: Reentrance.cancelPrevious, order: 22 })
9986
10025
  // private async analyze(): Promise<void> {
9987
10026
  // if (!this._mainCompilationController.isConfigurationsProcessingEnabled) {
@@ -10015,11 +10054,11 @@ var ConfigurationController = class extends ObservableObject2 {
10015
10054
  // }
10016
10055
  // }
10017
10056
  // }
10018
- // @reactive
10057
+ // @reaction
10019
10058
  // private diagnosticsChanged(): void {
10020
10059
  // this._configurationDiagnostics // подписка
10021
10060
  // }
10022
- // @reactive
10061
+ // @reaction
10023
10062
  // @options({ reentrance: Reentrance.cancelAndWaitPrevious })
10024
10063
  // private async reportDiagnostics(): Promise<void> {
10025
10064
  // if (!this._mainCompilationController.isConfigurationsProcessingEnabled) {
@@ -10045,7 +10084,7 @@ var ConfigurationController = class extends ObservableObject2 {
10045
10084
  // }
10046
10085
  // }
10047
10086
  // }
10048
- // @reactive
10087
+ // @reaction
10049
10088
  // @options({ reentrance: Reentrance.cancelPrevious, order: 23 })
10050
10089
  // private async interpretConfiguration(): Promise<void> {
10051
10090
  // if (!this._mainCompilationController.isConfigurationsProcessingEnabled) {
@@ -10087,23 +10126,23 @@ var ConfigurationController = class extends ObservableObject2 {
10087
10126
  // }
10088
10127
  };
10089
10128
  __decorateClass([
10090
- unobservable2
10129
+ trigger2(false)
10091
10130
  ], ConfigurationController.prototype, "packageUri", 2);
10092
10131
  __decorateClass([
10093
- unobservable2
10132
+ trigger2(false)
10094
10133
  ], ConfigurationController.prototype, "processingIndicator", 2);
10095
10134
  __decorateClass([
10096
- unobservable2
10135
+ trigger2(false)
10097
10136
  ], ConfigurationController.prototype, "rootDirectory", 2);
10098
10137
  __decorateClass([
10099
- unobservable2
10138
+ trigger2(false)
10100
10139
  ], ConfigurationController.prototype, "_mainCompilationController", 2);
10101
10140
  __decorateClass([
10102
- reactive,
10141
+ reaction,
10103
10142
  options({ reentrance: Reentrance.cancelPrevious, order: 21 })
10104
10143
  ], ConfigurationController.prototype, "updateJsonConfigurationFile", 1);
10105
10144
  __decorateClass([
10106
- reactive,
10145
+ reaction,
10107
10146
  options({ reentrance: Reentrance.cancelPrevious, order: 22 })
10108
10147
  ], ConfigurationController.prototype, "processConfiguration", 1);
10109
10148
  var ConfigurationDirectory = class {
@@ -10165,31 +10204,31 @@ var TsInteropInputsCache = class {
10165
10204
 
10166
10205
  // source/services/workspace/FileSystemTreeProviderBasedOnWatchedFileSystem.ts
10167
10206
  import {
10168
- atomic as atomic3,
10207
+ atomicBlock as atomicBlock3,
10169
10208
  Indicator as Indicator2,
10170
10209
  nonReactiveRun as nonReactiveRun2,
10171
- ObservableArray,
10172
- ObservableMap as ObservableMap2,
10173
- ObservableObject as ObservableObject3,
10210
+ TriggeringArray,
10211
+ TriggeringMap as TriggeringMap2,
10212
+ TriggeringObject as TriggeringObject3,
10174
10213
  options as options2,
10175
- reactive as reactive2,
10214
+ reaction as reaction2,
10176
10215
  ReactiveSystem as ReactiveSystem3,
10177
10216
  Transaction as Transaction2,
10178
- unobservable as unobservable3
10217
+ trigger as trigger3
10179
10218
  } from "reactronic";
10180
- var FileSystemTreeProviderBasedOnWatchedFileSystem = class extends ObservableObject3 {
10219
+ var FileSystemTreeProviderBasedOnWatchedFileSystem = class extends TriggeringObject3 {
10181
10220
  // Используется в качестве множества.
10182
10221
  constructor(fileSystem, notificationsPublisher, namesOfDirectoriesToIgnore, additionalUrisOfDirectoriesToLoad) {
10183
10222
  super();
10184
10223
  this.fileSystemTree = new FileSystemTree(true);
10185
- this.loadedWorkspaceFolderByUri = new ObservableMap2();
10224
+ this.loadedWorkspaceFolderByUri = new TriggeringMap2();
10186
10225
  this._workspaceFolderUris = void 0;
10187
10226
  this._trackedSourceFiles = void 0;
10188
10227
  this._isInitialized = false;
10189
10228
  this._lastCheckedWorkspaceFolderUris = new Array();
10190
10229
  this._taskQueue = new TaskQueue();
10191
10230
  this._lastCheckedTrackedSourceFileInfoVersionByUri = /* @__PURE__ */ new Map();
10192
- this._loadedDirectoryUris = new ObservableMap2();
10231
+ this._loadedDirectoryUris = new TriggeringMap2();
10193
10232
  this._fileSystem = fileSystem;
10194
10233
  this._notificationsPublisher = notificationsPublisher;
10195
10234
  this._listener = this.onFileSystemUpdated.bind(this);
@@ -10557,7 +10596,7 @@ var FileSystemTreeProviderBasedOnWatchedFileSystem = class extends ObservableObj
10557
10596
  this.fileSystemTree.deleteFileOrDirectory(uri);
10558
10597
  }
10559
10598
  }
10560
- // @reactive
10599
+ // @reaction
10561
10600
  // @options({ order: 0 })
10562
10601
  // protected unloadWorkspaceFoldersThatNoLongerContainArtelProject(): void {
10563
10602
  // if (this.isMissingConfigurationDirectoryAllowed) {
@@ -10682,65 +10721,65 @@ var FileSystemTreeProviderBasedOnWatchedFileSystem = class extends ObservableObj
10682
10721
  // }
10683
10722
  };
10684
10723
  __decorateClass([
10685
- unobservable3
10724
+ trigger3(false)
10686
10725
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "fileSystemTree", 2);
10687
10726
  __decorateClass([
10688
- unobservable3
10727
+ trigger3(false)
10689
10728
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "loadedWorkspaceFolderByUri", 2);
10690
10729
  __decorateClass([
10691
- unobservable3
10730
+ trigger3(false)
10692
10731
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "_fileSystem", 2);
10693
10732
  __decorateClass([
10694
- unobservable3
10733
+ trigger3(false)
10695
10734
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "_notificationsPublisher", 2);
10696
10735
  __decorateClass([
10697
- unobservable3
10736
+ trigger3(false)
10698
10737
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "_listener", 2);
10699
10738
  __decorateClass([
10700
- unobservable3
10739
+ trigger3(false)
10701
10740
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "_lastCheckedWorkspaceFolderUris", 2);
10702
10741
  __decorateClass([
10703
- unobservable3
10742
+ trigger3(false)
10704
10743
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "_taskQueue", 2);
10705
10744
  __decorateClass([
10706
- unobservable3
10745
+ trigger3(false)
10707
10746
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "_namesOfDirectoriesToIgnore", 2);
10708
10747
  __decorateClass([
10709
- unobservable3
10748
+ trigger3(false)
10710
10749
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "_additionalUrisOfDirectoriesToLoad", 2);
10711
10750
  __decorateClass([
10712
- unobservable3
10751
+ trigger3(false)
10713
10752
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "_lastCheckedTrackedSourceFileInfoVersionByUri", 2);
10714
10753
  __decorateClass([
10715
- unobservable3
10754
+ trigger3(false)
10716
10755
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "_loadedDirectoryUris", 2);
10717
10756
  __decorateClass([
10718
- reactive2
10757
+ reaction2
10719
10758
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "onTrackedSourceFilesUpdated", 1);
10720
10759
  __decorateClass([
10721
- reactive2
10760
+ reaction2
10722
10761
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "onWorkspaceFolderUrisUpdated", 1);
10723
10762
  __decorateClass([
10724
- reactive2,
10763
+ reaction2,
10725
10764
  options2({ order: 0 })
10726
10765
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "updateLoadedWorkspaceFolders", 1);
10727
10766
  __decorateClass([
10728
- reactive2
10767
+ reaction2
10729
10768
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "loadAdditionalDirectories", 1);
10730
10769
  __decorateClass([
10731
- atomic3
10770
+ atomicBlock3
10732
10771
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "addWorkspaceFoldersWorker", 1);
10733
10772
  __decorateClass([
10734
- atomic3
10773
+ atomicBlock3
10735
10774
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "removeWorkspaceFoldersWorker", 1);
10736
10775
  __decorateClass([
10737
- atomic3
10776
+ atomicBlock3
10738
10777
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "onFileSystemTreeUpdatedWorker", 1);
10739
10778
  __decorateClass([
10740
- atomic3
10779
+ atomicBlock3
10741
10780
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "stopTrackingSourceFile", 1);
10742
10781
  __decorateClass([
10743
- atomic3
10782
+ atomicBlock3
10744
10783
  ], FileSystemTreeProviderBasedOnWatchedFileSystem.prototype, "updateFileSystemTree", 1);
10745
10784
  var SimpleFileSystemUpdateNotificationsPublisher = class {
10746
10785
  constructor() {
@@ -10816,10 +10855,10 @@ var FileSystemTreeUpdate_deleteDirectory = class {
10816
10855
  return this.uri;
10817
10856
  }
10818
10857
  };
10819
- var TaskQueue = class extends ObservableObject3 {
10858
+ var TaskQueue = class extends TriggeringObject3 {
10820
10859
  constructor() {
10821
10860
  super();
10822
- this._tasks = new ObservableArray();
10861
+ this._tasks = new TriggeringArray();
10823
10862
  this._currentTask = void 0;
10824
10863
  this._processTasksIndicator = Indicator2.create("ProcessTasks", -1, -1, 1e3);
10825
10864
  ReactiveSystem3.getOperation(this.processTasks).configure({ indicator: this._processTasksIndicator });
@@ -10875,25 +10914,25 @@ var TaskQueue = class extends ObservableObject3 {
10875
10914
  }
10876
10915
  };
10877
10916
  __decorateClass([
10878
- unobservable3
10917
+ trigger3(false)
10879
10918
  ], TaskQueue.prototype, "_tasks", 2);
10880
10919
  __decorateClass([
10881
- atomic3
10920
+ atomicBlock3
10882
10921
  ], TaskQueue.prototype, "addTask", 1);
10883
10922
  __decorateClass([
10884
- reactive2
10923
+ reaction2
10885
10924
  ], TaskQueue.prototype, "processTasks", 1);
10886
10925
  __decorateClass([
10887
- reactive2
10926
+ reaction2
10888
10927
  ], TaskQueue.prototype, "executeTask", 1);
10889
10928
 
10890
10929
  // source/services/workspace/ManuallyUpdatedFileSystemTreeProvider.ts
10891
- import { ObservableMap as ObservableMap3, ObservableObject as ObservableObject4, options as options3, reactive as reactive3, ReactiveSystem as ReactiveSystem4, unobservable as unobservable4 } from "reactronic";
10892
- var ManuallyUpdatedFileSystemTreeProvider = class extends ObservableObject4 {
10930
+ import { TriggeringMap as TriggeringMap3, TriggeringObject as TriggeringObject4, options as options3, reaction as reaction3, ReactiveSystem as ReactiveSystem4, trigger as trigger4 } from "reactronic";
10931
+ var ManuallyUpdatedFileSystemTreeProvider = class extends TriggeringObject4 {
10893
10932
  constructor() {
10894
10933
  super(...arguments);
10895
10934
  this.fileSystemTree = new FileSystemTree(true, true);
10896
- this.loadedWorkspaceFolderByUri = new ObservableMap3();
10935
+ this.loadedWorkspaceFolderByUri = new TriggeringMap3();
10897
10936
  this._workspaceFolderUris = void 0;
10898
10937
  this._trackedSourceFiles = void 0;
10899
10938
  this._lastCheckedTrackedSourceFileInfoByUri = /* @__PURE__ */ new Map();
@@ -10992,59 +11031,59 @@ var ManuallyUpdatedFileSystemTreeProvider = class extends ObservableObject4 {
10992
11031
  }
10993
11032
  };
10994
11033
  __decorateClass([
10995
- unobservable4
11034
+ trigger4(false)
10996
11035
  ], ManuallyUpdatedFileSystemTreeProvider.prototype, "fileSystemTree", 2);
10997
11036
  __decorateClass([
10998
- unobservable4
11037
+ trigger4(false)
10999
11038
  ], ManuallyUpdatedFileSystemTreeProvider.prototype, "loadedWorkspaceFolderByUri", 2);
11000
11039
  __decorateClass([
11001
- unobservable4
11040
+ trigger4(false)
11002
11041
  ], ManuallyUpdatedFileSystemTreeProvider.prototype, "_lastCheckedTrackedSourceFileInfoByUri", 2);
11003
11042
  __decorateClass([
11004
- unobservable4
11043
+ trigger4(false)
11005
11044
  ], ManuallyUpdatedFileSystemTreeProvider.prototype, "_manuallyCreatedSourceFileTextByUri", 2);
11006
11045
  __decorateClass([
11007
- reactive3
11046
+ reaction3
11008
11047
  ], ManuallyUpdatedFileSystemTreeProvider.prototype, "onTrackedSourceFilesUpdated", 1);
11009
11048
  __decorateClass([
11010
- reactive3,
11049
+ reaction3,
11011
11050
  options3({ order: 0 })
11012
11051
  ], ManuallyUpdatedFileSystemTreeProvider.prototype, "updateLoadedWorkspaceFolderByUri", 1);
11013
11052
 
11014
11053
  // source/services/workspace/Workspace.ts
11015
11054
  import {
11016
- ObservableArray as ObservableArray4,
11017
- ObservableMap as ObservableMap5,
11018
- ObservableObject as ObservableObject6,
11055
+ TriggeringArray as TriggeringArray4,
11056
+ TriggeringMap as TriggeringMap5,
11057
+ TriggeringObject as TriggeringObject6,
11019
11058
  ReactiveSystem as ReactiveSystem6,
11020
11059
  Reentrance as Reentrance2,
11021
11060
  Transaction as Transaction3,
11022
- atomic as atomic5,
11061
+ atomicBlock as atomicBlock5,
11023
11062
  atomicRun,
11024
- cached,
11063
+ cache,
11025
11064
  nonReactiveRun as nonReactiveRun3,
11026
11065
  options as options5,
11027
- reactive as reactive5,
11028
- unobservable as unobservable6
11066
+ reaction as reaction5,
11067
+ trigger as trigger6
11029
11068
  } from "reactronic";
11030
11069
 
11031
11070
  // source/services/workspace/WorkspaceFiles.ts
11032
11071
  import {
11033
- ObservableArray as ObservableArray3,
11034
- ObservableMap as ObservableMap4,
11035
- ObservableObject as ObservableObject5,
11072
+ TriggeringArray as TriggeringArray3,
11073
+ TriggeringMap as TriggeringMap4,
11074
+ TriggeringObject as TriggeringObject5,
11036
11075
  options as options4,
11037
- unobservable as unobservable5,
11038
- reactive as reactive4,
11076
+ trigger as trigger5,
11077
+ reaction as reaction4,
11039
11078
  ReactiveSystem as ReactiveSystem5,
11040
- atomic as atomic4
11079
+ atomicBlock as atomicBlock4
11041
11080
  } from "reactronic";
11042
- var WorkspaceFiles = class extends ObservableObject5 {
11081
+ var WorkspaceFiles = class extends TriggeringObject5 {
11043
11082
  constructor(fileSystemTreeProvider) {
11044
11083
  super();
11045
11084
  this.trackedSourceFiles = new ClientTrackedSourceFiles();
11046
- this.workspaceFolderUris = new ObservableArray3();
11047
- this.workspaceFolderWithArtelProjectByUri = new ObservableMap4();
11085
+ this.workspaceFolderUris = new TriggeringArray3();
11086
+ this.workspaceFolderWithArtelProjectByUri = new TriggeringMap4();
11048
11087
  this._fileSystemTreeProvider = fileSystemTreeProvider;
11049
11088
  this._fileSystemTreeProvider.initialize(this.workspaceFolderUris, this.trackedSourceFiles);
11050
11089
  }
@@ -11143,39 +11182,39 @@ var WorkspaceFiles = class extends ObservableObject5 {
11143
11182
  }
11144
11183
  };
11145
11184
  __decorateClass([
11146
- unobservable5
11185
+ trigger5(false)
11147
11186
  ], WorkspaceFiles.prototype, "workspaceFolderUris", 2);
11148
11187
  __decorateClass([
11149
- unobservable5
11188
+ trigger5(false)
11150
11189
  ], WorkspaceFiles.prototype, "workspaceFolderWithArtelProjectByUri", 2);
11151
11190
  __decorateClass([
11152
- unobservable5
11191
+ trigger5(false)
11153
11192
  ], WorkspaceFiles.prototype, "_fileSystemTreeProvider", 2);
11154
11193
  __decorateClass([
11155
- atomic4
11194
+ atomicBlock4
11156
11195
  ], WorkspaceFiles.prototype, "addWorkspaceFolders", 1);
11157
11196
  __decorateClass([
11158
- atomic4
11197
+ atomicBlock4
11159
11198
  ], WorkspaceFiles.prototype, "removeWorkspaceFolders", 1);
11160
11199
  __decorateClass([
11161
- atomic4
11200
+ atomicBlock4
11162
11201
  ], WorkspaceFiles.prototype, "trackSourceFile", 1);
11163
11202
  __decorateClass([
11164
- atomic4
11203
+ atomicBlock4
11165
11204
  ], WorkspaceFiles.prototype, "updateTrackedSourceFile", 1);
11166
11205
  __decorateClass([
11167
- reactive4,
11206
+ reaction4,
11168
11207
  options4({ order: 1 })
11169
11208
  ], WorkspaceFiles.prototype, "updateWorkspaceFolderWithArtelProjectByUri", 1);
11170
11209
 
11171
11210
  // source/services/workspace/Workspace.ts
11172
- var _Workspace = class _Workspace extends ObservableObject6 {
11211
+ var _Workspace = class _Workspace extends TriggeringObject6 {
11173
11212
  constructor(config) {
11174
11213
  super();
11175
11214
  this.isReadyToAcceptWorkspaceDiagnostics = false;
11176
- this._compilationControllers = new ObservableArray4();
11177
- // ObservableMap используется в качестве Set'а.
11178
- this._controllersWithOpenedFiles = new ObservableMap5();
11215
+ this._compilationControllers = new TriggeringArray4();
11216
+ // TriggeringMap используется в качестве Set'а.
11217
+ this._controllersWithOpenedFiles = new TriggeringMap5();
11179
11218
  this._atLeastOneFileOfCompilationHasBeenOpened = false;
11180
11219
  this._standardPackageContents = new Cached();
11181
11220
  this._tsInteropInputsCache = new TsInteropInputsCache();
@@ -11445,39 +11484,39 @@ var _Workspace = class _Workspace extends ObservableObject6 {
11445
11484
  }
11446
11485
  };
11447
11486
  __decorateClass([
11448
- unobservable6
11487
+ trigger6(false)
11449
11488
  ], _Workspace.prototype, "_config", 2);
11450
11489
  __decorateClass([
11451
- unobservable6
11490
+ trigger6(false)
11452
11491
  ], _Workspace.prototype, "_atLeastOneFileOfCompilationHasBeenOpened", 2);
11453
11492
  __decorateClass([
11454
- unobservable6
11493
+ trigger6(false)
11455
11494
  ], _Workspace.prototype, "_files", 2);
11456
11495
  __decorateClass([
11457
- unobservable6
11496
+ trigger6(false)
11458
11497
  ], _Workspace.prototype, "_standardPackageContents", 2);
11459
11498
  __decorateClass([
11460
- unobservable6
11499
+ trigger6(false)
11461
11500
  ], _Workspace.prototype, "_tsInteropInputsCache", 2);
11462
11501
  __decorateClass([
11463
- cached
11502
+ cache
11464
11503
  ], _Workspace.prototype, "compilationControllerByUri", 1);
11465
11504
  __decorateClass([
11466
- atomic5
11505
+ atomicBlock5
11467
11506
  ], _Workspace.prototype, "notifyClosedTextDocument", 1);
11468
11507
  __decorateClass([
11469
- reactive5,
11508
+ reaction5,
11470
11509
  options5({ order: 10 })
11471
11510
  ], _Workspace.prototype, "updateCompilationControllers", 1);
11472
11511
  __decorateClass([
11473
- reactive5,
11512
+ reaction5,
11474
11513
  options5({ reentrance: Reentrance2.cancelPrevious })
11475
11514
  ], _Workspace.prototype, "processControllersWithUnprocessedConfigs", 1);
11476
11515
  __decorateClass([
11477
- reactive5
11516
+ reaction5
11478
11517
  ], _Workspace.prototype, "updateIsDiagnosticsCollectionInBackgroundEnabled", 1);
11479
11518
  __decorateClass([
11480
- reactive5,
11519
+ reaction5,
11481
11520
  options5({ reentrance: Reentrance2.cancelPrevious })
11482
11521
  ], _Workspace.prototype, "updateControllersWithOpenedFiles", 1);
11483
11522
  var Workspace = _Workspace;
@@ -11493,22 +11532,30 @@ var EntityToSyntax = class {
11493
11532
  return this.convertPackage(this._entity);
11494
11533
  }
11495
11534
  convertPackage(entity) {
11496
- const namedPackageMembers = entity.getMembers().getNamedMembers().flatMap((m) => this.convertNamedPackageMember(m.getEntity()));
11535
+ const namedPackageMembers = entity.getMembers().getNamedMembers().flatMap((m) => this.convertNamedPackageMember(m));
11497
11536
  return SyntaxFactory.sourceFile([], namedPackageMembers);
11498
11537
  }
11499
11538
  convertNamedPackageMember(entity) {
11500
11539
  switch (entity.kind) {
11501
11540
  case 0 /* Variable */:
11502
11541
  return this.convertPackageVariable(entity);
11503
- case 2 /* VariantType */:
11504
- return this.convertPackageVariantType(entity);
11505
- case 5 /* Method */:
11542
+ case 1 /* Method */:
11506
11543
  return this.convertPackageMethod(entity);
11507
- case 11 /* MethodType */:
11544
+ case 2 /* Type */:
11545
+ return this.convertPackageType(entity);
11546
+ default:
11547
+ Debug.never(entity);
11548
+ }
11549
+ }
11550
+ convertPackageType(entity) {
11551
+ switch (entity.typeEntityKind) {
11552
+ case 0 /* Method */:
11508
11553
  return this.convertPackageMethodType(entity);
11509
- case 12 /* StructuredType */:
11554
+ case 1 /* Structured */:
11510
11555
  return this.convertPackageStructuredType(entity);
11511
- case 14 /* AliasType */:
11556
+ case 3 /* Variant */:
11557
+ return this.convertPackageVariantType(entity);
11558
+ case 4 /* Alias */:
11512
11559
  return this.convertPackageAliasType(entity);
11513
11560
  default:
11514
11561
  Debug.never(entity);
@@ -11517,7 +11564,7 @@ var EntityToSyntax = class {
11517
11564
  convertPackageVariable(entity) {
11518
11565
  const commonModifiers = new Array();
11519
11566
  if (entity.isConstant()) {
11520
- commonModifiers.push(SyntaxFactory.modifier(33 /* Const */));
11567
+ commonModifiers.push(SyntaxFactory.modifier(34 /* Const */));
11521
11568
  }
11522
11569
  const name = this.getEntityName(entity);
11523
11570
  const type = this.convertType(entity.getType());
@@ -11542,7 +11589,7 @@ var EntityToSyntax = class {
11542
11589
  if (isHidden !== void 0) {
11543
11590
  modifiers.push(this.createHidingModifier(isHidden));
11544
11591
  }
11545
- result.push(SyntaxFactory.packageVariableSetterDeclaration(tags, modifiers, name, void 0, void 0));
11592
+ result.push(SyntaxFactory.packageVariableSetterDeclaration(tags, modifiers, name, void 0));
11546
11593
  }
11547
11594
  } else {
11548
11595
  const tags = this.convertTags(entity.getTags());
@@ -11559,7 +11606,7 @@ var EntityToSyntax = class {
11559
11606
  const tags = this.convertTags(entity.getTags());
11560
11607
  const modifiers = new Array();
11561
11608
  if (entity.isAsync()) {
11562
- modifiers.push(SyntaxFactory.modifier(38 /* Async */));
11609
+ modifiers.push(SyntaxFactory.modifier(39 /* Async */));
11563
11610
  }
11564
11611
  const isHidden = entity.isHidden();
11565
11612
  if (isHidden !== void 0) {
@@ -11636,21 +11683,24 @@ var EntityToSyntax = class {
11636
11683
  return variables.concat(indexers, constructors, methods, destructors);
11637
11684
  }
11638
11685
  convertTypeVariable(entity) {
11686
+ if (entity.isVariant()) {
11687
+ return this.convertVariant(entity);
11688
+ }
11639
11689
  const commonModifiers = new Array();
11640
11690
  if (entity.isConstant()) {
11641
- commonModifiers.push(SyntaxFactory.modifier(33 /* Const */));
11691
+ commonModifiers.push(SyntaxFactory.modifier(34 /* Const */));
11642
11692
  }
11643
11693
  if (entity.isStatic()) {
11644
- commonModifiers.push(SyntaxFactory.modifier(39 /* Static */));
11694
+ commonModifiers.push(SyntaxFactory.modifier(40 /* Static */));
11645
11695
  }
11646
11696
  if (entity.isAbstract()) {
11647
- commonModifiers.push(SyntaxFactory.modifier(35 /* Abstract */));
11697
+ commonModifiers.push(SyntaxFactory.modifier(36 /* Abstract */));
11648
11698
  }
11649
11699
  if (entity.isRedefinable()) {
11650
- commonModifiers.push(SyntaxFactory.modifier(36 /* Redefinable */));
11700
+ commonModifiers.push(SyntaxFactory.modifier(37 /* Redefinable */));
11651
11701
  }
11652
11702
  if (entity.isRedefined()) {
11653
- commonModifiers.push(SyntaxFactory.modifier(37 /* Redefined */));
11703
+ commonModifiers.push(SyntaxFactory.modifier(38 /* Redefined */));
11654
11704
  }
11655
11705
  const name = this.getEntityName(entity);
11656
11706
  const type = this.convertType(entity.getType());
@@ -11675,7 +11725,7 @@ var EntityToSyntax = class {
11675
11725
  if (isHidden !== void 0) {
11676
11726
  modifiers.push(this.createHidingModifier(isHidden));
11677
11727
  }
11678
- result.push(SyntaxFactory.typeVariableSetterDeclaration(tags, modifiers, name, void 0, void 0));
11728
+ result.push(SyntaxFactory.typeVariableSetterDeclaration(tags, modifiers, name, void 0));
11679
11729
  }
11680
11730
  } else {
11681
11731
  const tags = this.convertTags(entity.getTags());
@@ -11696,16 +11746,16 @@ var EntityToSyntax = class {
11696
11746
  modifiers.push(this.createHidingModifier(isHidden));
11697
11747
  }
11698
11748
  if (entity.isStatic()) {
11699
- modifiers.push(SyntaxFactory.modifier(39 /* Static */));
11749
+ modifiers.push(SyntaxFactory.modifier(40 /* Static */));
11700
11750
  }
11701
11751
  if (entity.isAbstract()) {
11702
- modifiers.push(SyntaxFactory.modifier(35 /* Abstract */));
11752
+ modifiers.push(SyntaxFactory.modifier(36 /* Abstract */));
11703
11753
  }
11704
11754
  if (entity.isRedefinable()) {
11705
- modifiers.push(SyntaxFactory.modifier(36 /* Redefinable */));
11755
+ modifiers.push(SyntaxFactory.modifier(37 /* Redefinable */));
11706
11756
  }
11707
11757
  if (entity.isRedefined()) {
11708
- modifiers.push(SyntaxFactory.modifier(37 /* Redefined */));
11758
+ modifiers.push(SyntaxFactory.modifier(38 /* Redefined */));
11709
11759
  }
11710
11760
  const name = this.getEntityName(entity);
11711
11761
  const typeParameters = this.convertTypeParameters(entity.getTypeParameters());
@@ -11721,7 +11771,7 @@ var EntityToSyntax = class {
11721
11771
  modifiers.push(this.createHidingModifier(isHidden));
11722
11772
  }
11723
11773
  if (entity.isAbstract()) {
11724
- modifiers.push(SyntaxFactory.modifier(35 /* Abstract */));
11774
+ modifiers.push(SyntaxFactory.modifier(36 /* Abstract */));
11725
11775
  }
11726
11776
  const parameters = this.convertValueParameters(entity.getValueParameters());
11727
11777
  return SyntaxFactory.typeConstructorDeclaration(tags, modifiers, parameters, void 0);
@@ -11734,7 +11784,7 @@ var EntityToSyntax = class {
11734
11784
  modifiers.push(this.createHidingModifier(isHidden));
11735
11785
  }
11736
11786
  if (entity.isAbstract()) {
11737
- modifiers.push(SyntaxFactory.modifier(35 /* Abstract */));
11787
+ modifiers.push(SyntaxFactory.modifier(36 /* Abstract */));
11738
11788
  }
11739
11789
  const parameters = this.convertValueParameters(entity.getValueParameters());
11740
11790
  return SyntaxFactory.typeDestructorDeclaration(tags, modifiers, parameters, void 0);
@@ -11742,10 +11792,10 @@ var EntityToSyntax = class {
11742
11792
  convertTypeIndexer(entity) {
11743
11793
  const commonModifiers = new Array();
11744
11794
  if (entity.isStatic()) {
11745
- commonModifiers.push(SyntaxFactory.modifier(39 /* Static */));
11795
+ commonModifiers.push(SyntaxFactory.modifier(40 /* Static */));
11746
11796
  }
11747
11797
  if (entity.isAbstract()) {
11748
- commonModifiers.push(SyntaxFactory.modifier(35 /* Abstract */));
11798
+ commonModifiers.push(SyntaxFactory.modifier(36 /* Abstract */));
11749
11799
  }
11750
11800
  const parameters = this.convertValueParameters(entity.getValueParameters());
11751
11801
  const result = new Array();
@@ -11765,14 +11815,11 @@ var EntityToSyntax = class {
11765
11815
  if (setterEntity !== void 0) {
11766
11816
  const tags = this.convertTags(setterEntity.getTags());
11767
11817
  const modifiers = Array.from(commonModifiers);
11768
- const declaration = SyntaxFactory.typeIndexedSetterDeclaration(tags, modifiers, parameters, void 0, void 0);
11818
+ const declaration = SyntaxFactory.typeIndexedSetterDeclaration(tags, modifiers, parameters, void 0);
11769
11819
  result.push(declaration);
11770
11820
  }
11771
11821
  return result;
11772
11822
  }
11773
- convertVariants(variants) {
11774
- return variants.get().map((v) => this.convertVariant(v));
11775
- }
11776
11823
  convertVariant(entity) {
11777
11824
  const tags = this.convertTags(entity.getTags());
11778
11825
  const name = this.getEntityName(entity);
@@ -11817,8 +11864,8 @@ var EntityToSyntax = class {
11817
11864
  return SyntaxFactory.aliasTypeDeclarationBody(aliasedType, members);
11818
11865
  }
11819
11866
  createVariantTypeDeclarationBody(entity) {
11820
- const variants = this.convertVariants(entity.getVariants());
11821
- return SyntaxFactory.variantTypeDeclarationBody(variants);
11867
+ const members = this.convertTypeEntityMembers(entity.getMembers());
11868
+ return SyntaxFactory.variantTypeDeclarationBody(members);
11822
11869
  }
11823
11870
  createMethodTypeDeclarationBody(entity) {
11824
11871
  const parameters = this.convertValueParameters(entity.getValueParameters());
@@ -11876,7 +11923,7 @@ var EntityToSyntax = class {
11876
11923
  default:
11877
11924
  Debug.never(hiding);
11878
11925
  }
11879
- return SyntaxFactory.modifier(34 /* Hidden */, levelKeyword);
11926
+ return SyntaxFactory.modifier(35 /* Hidden */, levelKeyword);
11880
11927
  }
11881
11928
  convertTags(_entityTags) {
11882
11929
  return [];
@@ -11964,13 +12011,13 @@ var EntityToSyntax = class {
11964
12011
  };
11965
12012
 
11966
12013
  // source/services/source-generation/SourceGenerationService.ts
11967
- var SourceGenerationService = class extends ObservableObject7 {
12014
+ var SourceGenerationService = class extends TriggeringObject7 {
11968
12015
  constructor(_trackedSourceFiles, _tsLibrariesProvider, _standardPackageContentsProviders) {
11969
12016
  super();
11970
12017
  this._trackedSourceFiles = _trackedSourceFiles;
11971
12018
  this._tsLibrariesProvider = _tsLibrariesProvider;
11972
12019
  this._standardPackageContentsProviders = _standardPackageContentsProviders;
11973
- this._generatedPackageStates = new ObservableMap6();
12020
+ this._generatedPackageStates = new TriggeringMap6();
11974
12021
  }
11975
12022
  get compilationControllers() {
11976
12023
  return Array.from(this._generatedPackageStates.values()).map((s) => s.compilationController);
@@ -12126,7 +12173,7 @@ var SourceGenerationService = class extends ObservableObject7 {
12126
12173
  } else {
12127
12174
  return false;
12128
12175
  }
12129
- case 5 /* Method */:
12176
+ case 1 /* Method */:
12130
12177
  if (entity.subkind === "package") {
12131
12178
  return true;
12132
12179
  } else if (entity.subkind === "type") {
@@ -12134,33 +12181,37 @@ var SourceGenerationService = class extends ObservableObject7 {
12134
12181
  } else {
12135
12182
  return false;
12136
12183
  }
12137
- case 1 /* Variant */:
12138
- return this.checkIfEntityOfKindIsPresentInGeneratedCode(entity.getContainingEntity());
12139
- case 12 /* StructuredType */:
12140
- case 2 /* VariantType */:
12141
- case 11 /* MethodType */:
12142
- if (entity.subkind === "package") {
12143
- return true;
12184
+ case 2 /* Type */:
12185
+ switch (entity.typeEntityKind) {
12186
+ case 1 /* Structured */:
12187
+ case 3 /* Variant */:
12188
+ case 0 /* Method */: {
12189
+ if (entity.subkind === "package") {
12190
+ return true;
12191
+ }
12192
+ return true;
12193
+ }
12194
+ case 4 /* Alias */:
12195
+ return true;
12196
+ case 2 /* Parameter */:
12197
+ return this.checkIfEntityOfKindIsPresentInGeneratedCode(entity.getContainingEntity());
12198
+ default:
12199
+ Debug.never(entity);
12144
12200
  }
12145
- return true;
12146
- case 14 /* AliasType */:
12147
- return true;
12148
12201
  case 3 /* Getter */:
12149
12202
  case 4 /* Setter */:
12150
12203
  return this.checkIfEntityOfKindIsPresentInGeneratedCode(entity.getOwningEntity());
12151
- case 6 /* TypeParameter */:
12152
- return this.checkIfEntityOfKindIsPresentInGeneratedCode(entity.getContainingEntity());
12153
- case 7 /* Indexer */:
12154
- case 8 /* DereferenceOperator */:
12155
- case 9 /* Constructor */:
12156
- case 10 /* Destructor */:
12157
- case 15 /* Operator */:
12204
+ case 5 /* Indexer */:
12205
+ case 6 /* DereferenceOperator */:
12206
+ case 7 /* Constructor */:
12207
+ case 8 /* Destructor */:
12208
+ case 9 /* Operator */:
12158
12209
  return this.checkIfEntityOfKindIsPresentInGeneratedCode(entity.getContainer().getEntity());
12159
- case 13 /* PackageAlias */:
12210
+ case 10 /* PackageAlias */:
12160
12211
  return false;
12161
- case 16 /* Package */:
12212
+ case 12 /* Package */:
12162
12213
  return false;
12163
- case 17 /* TypeExtension */:
12214
+ case 11 /* TypeExtension */:
12164
12215
  return true;
12165
12216
  default:
12166
12217
  Debug.never(entity);
@@ -12180,7 +12231,7 @@ var SourceGenerationService = class extends ObservableObject7 {
12180
12231
  }
12181
12232
  };
12182
12233
  __decorateClass([
12183
- reactive6
12234
+ reaction6
12184
12235
  ], SourceGenerationService.prototype, "onOpenedSourceFilesChanged", 1);
12185
12236
  var deleteGeneratedPackageTimeoutMs = 1e4;
12186
12237
  var GeneratedPackageState = class {
@@ -12203,37 +12254,40 @@ var EntityFinder = class {
12203
12254
  switch (entity.kind) {
12204
12255
  case 0 /* Variable */:
12205
12256
  return this.findVariableEntity(entity);
12206
- case 5 /* Method */:
12257
+ case 1 /* Method */:
12207
12258
  return this.findMethodEntity(entity);
12208
- case 2 /* VariantType */:
12209
- case 12 /* StructuredType */:
12210
- case 11 /* MethodType */: {
12211
- if (entity.subkind === "package") {
12212
- return this.findPackageTypeEntityByNameAndArity(this.getEntityName(entity), entity.getArity());
12259
+ case 2 /* Type */:
12260
+ switch (entity.typeEntityKind) {
12261
+ case 3 /* Variant */:
12262
+ case 1 /* Structured */:
12263
+ case 0 /* Method */: {
12264
+ if (entity.subkind === "package") {
12265
+ return this.findPackageTypeEntityByNameAndArity(this.getEntityName(entity), entity.getArity());
12266
+ }
12267
+ return void 0;
12268
+ }
12269
+ case 4 /* Alias */:
12270
+ return this.findPackageTypeEntityByNameAndArity(this.getEntityName(entity), entity.getArity());
12271
+ case 2 /* Parameter */:
12272
+ return this.findTypeParameterEntity(entity);
12273
+ default:
12274
+ Debug.never(entity);
12213
12275
  }
12214
- return void 0;
12215
- }
12216
- case 14 /* AliasType */:
12217
- return this.findPackageTypeEntityByNameAndArity(this.getEntityName(entity), entity.getArity());
12218
- case 9 /* Constructor */:
12276
+ case 7 /* Constructor */:
12219
12277
  return this.findConstructorEntity(entity);
12220
- case 10 /* Destructor */:
12278
+ case 8 /* Destructor */:
12221
12279
  return this.findDestructorEntity(entity);
12222
- case 15 /* Operator */:
12280
+ case 9 /* Operator */:
12223
12281
  return this.findOperatorEntity(entity);
12224
- case 7 /* Indexer */:
12282
+ case 5 /* Indexer */:
12225
12283
  return this.findIndexerEntity(entity);
12226
- case 8 /* DereferenceOperator */:
12284
+ case 6 /* DereferenceOperator */:
12227
12285
  return this.findDereferenceOperatorEntity(entity);
12228
- case 1 /* Variant */:
12229
- return this.findVariantEntity(entity);
12230
- case 6 /* TypeParameter */:
12231
- return this.findTypeParameterEntity(entity);
12232
- case 13 /* PackageAlias */:
12286
+ case 10 /* PackageAlias */:
12233
12287
  case 3 /* Getter */:
12234
12288
  case 4 /* Setter */:
12235
- case 16 /* Package */:
12236
- case 17 /* TypeExtension */:
12289
+ case 12 /* Package */:
12290
+ case 11 /* TypeExtension */:
12237
12291
  return void 0;
12238
12292
  default:
12239
12293
  Debug.never(entity);
@@ -12241,7 +12295,7 @@ var EntityFinder = class {
12241
12295
  }
12242
12296
  findVariableEntity(entity) {
12243
12297
  if (entity.subkind === "package") {
12244
- return this._packageEntity.getMembers().getNamedMembersByName(this.getEntityName(entity)).at(0)?.getEntity();
12298
+ return this._packageEntity.getMembers().getNamedMembersByName(this.getEntityName(entity)).at(0);
12245
12299
  } else if (entity.subkind === "type") {
12246
12300
  const containingType = this.findEntity(entity.getContainer().getEntity());
12247
12301
  if (containingType !== void 0 && isTypeEntity(containingType) && isTypeEntityWithMembers(containingType)) {
@@ -12262,7 +12316,7 @@ var EntityFinder = class {
12262
12316
  findMethodEntity(entity) {
12263
12317
  switch (entity.subkind) {
12264
12318
  case "package": {
12265
- const members = this._packageEntity.getMembers().getNamedMembersByName(this.getEntityName(entity)).filter((m) => m.kind === "method").map((m) => m.value);
12319
+ const members = this._packageEntity.getMembers().getNamedMembersByName(this.getEntityName(entity)).filter((m) => m.kind === 1 /* Method */);
12266
12320
  if (members.length === 0) {
12267
12321
  return void 0;
12268
12322
  } else if (members.length === 1) {
@@ -12282,7 +12336,7 @@ var EntityFinder = class {
12282
12336
  if (!(containingType !== void 0 && isTypeEntity(containingType) && isTypeEntityWithMembers(containingType))) {
12283
12337
  return void 0;
12284
12338
  }
12285
- const members = containingType.getMembers().getNamedMembersByName(this.getEntityName(entity)).filter((m) => m.kind === 5 /* Method */);
12339
+ const members = containingType.getMembers().getNamedMembersByName(this.getEntityName(entity)).filter((m) => m.kind === 1 /* Method */);
12286
12340
  if (members.length === 0) {
12287
12341
  return void 0;
12288
12342
  } else if (members.length === 1) {
@@ -12385,13 +12439,6 @@ var EntityFinder = class {
12385
12439
  return void 0;
12386
12440
  }
12387
12441
  }
12388
- findVariantEntity(entity) {
12389
- const containingType = this.findEntity(entity.getContainingEntity());
12390
- if (!(containingType !== void 0 && containingType.kind === 2 /* VariantType */)) {
12391
- return void 0;
12392
- }
12393
- return containingType.getVariants().getByName(this.getEntityName(entity))[0];
12394
- }
12395
12442
  findTypeParameterEntity(entity) {
12396
12443
  const containingEntity = this.findEntity(entity.getContainingEntity());
12397
12444
  const index = entity.getContainingEntity().getTypeParameters().indexOf(entity);
@@ -12402,34 +12449,33 @@ var EntityFinder = class {
12402
12449
  }
12403
12450
  }
12404
12451
  findPackageTypeEntityByNameAndArity(name, arity) {
12405
- return this._packageEntity.getMembers().getNamedMembersByName(name).filter((m) => m.kind === "type").find((m) => m.value.getArity() === arity)?.getEntity();
12452
+ return this._packageEntity.getMembers().getNamedMembersByName(name).filter((m) => m.kind === 2 /* Type */).find((m) => m.getArity() === arity);
12406
12453
  }
12407
12454
  ifEntityWithParametersThenParameters(entity) {
12408
12455
  switch (entity.kind) {
12409
- case 5 /* Method */:
12456
+ case 1 /* Method */:
12410
12457
  return entity.getValueParameters();
12411
- case 7 /* Indexer */:
12458
+ case 5 /* Indexer */:
12412
12459
  return entity.getValueParameters();
12413
- case 9 /* Constructor */:
12460
+ case 7 /* Constructor */:
12414
12461
  return entity.getValueParameters();
12415
- case 10 /* Destructor */:
12462
+ case 8 /* Destructor */:
12416
12463
  return entity.getValueParameters();
12417
- case 11 /* MethodType */:
12418
- return entity.getValueParameters();
12419
- case 15 /* Operator */:
12464
+ case 2 /* Type */: {
12465
+ if (entity.typeEntityKind === 0 /* Method */) {
12466
+ return entity.getValueParameters();
12467
+ }
12468
+ return void 0;
12469
+ }
12470
+ case 9 /* Operator */:
12420
12471
  return entity.getValueParameters();
12421
12472
  case 0 /* Variable */:
12422
- case 1 /* Variant */:
12423
- case 2 /* VariantType */:
12424
12473
  case 3 /* Getter */:
12425
12474
  case 4 /* Setter */:
12426
- case 6 /* TypeParameter */:
12427
- case 12 /* StructuredType */:
12428
- case 13 /* PackageAlias */:
12429
- case 14 /* AliasType */:
12430
- case 16 /* Package */:
12431
- case 17 /* TypeExtension */:
12432
- case 8 /* DereferenceOperator */:
12475
+ case 10 /* PackageAlias */:
12476
+ case 12 /* Package */:
12477
+ case 11 /* TypeExtension */:
12478
+ case 6 /* DereferenceOperator */:
12433
12479
  return void 0;
12434
12480
  default:
12435
12481
  Debug.never(entity);
@@ -12437,29 +12483,25 @@ var EntityFinder = class {
12437
12483
  }
12438
12484
  ifEntityWithTypeParametersThenParameters(entity) {
12439
12485
  switch (entity.kind) {
12440
- case 5 /* Method */:
12486
+ case 1 /* Method */:
12441
12487
  return entity.getTypeParameters();
12442
- case 11 /* MethodType */:
12443
- return entity.getTypeParameters();
12444
- case 2 /* VariantType */:
12445
- return entity.getTypeParameters();
12446
- case 12 /* StructuredType */:
12447
- return entity.getTypeParameters();
12448
- case 14 /* AliasType */:
12449
- return entity.getTypeParameters();
12450
- case 10 /* Destructor */:
12451
- case 9 /* Constructor */:
12452
- case 7 /* Indexer */:
12453
- case 8 /* DereferenceOperator */:
12488
+ case 2 /* Type */: {
12489
+ if (entity.typeEntityKind !== 2 /* Parameter */) {
12490
+ return entity.getTypeParameters();
12491
+ }
12492
+ return void 0;
12493
+ }
12494
+ case 8 /* Destructor */:
12495
+ case 7 /* Constructor */:
12496
+ case 5 /* Indexer */:
12497
+ case 6 /* DereferenceOperator */:
12454
12498
  case 0 /* Variable */:
12455
- case 1 /* Variant */:
12456
12499
  case 3 /* Getter */:
12457
12500
  case 4 /* Setter */:
12458
- case 6 /* TypeParameter */:
12459
- case 13 /* PackageAlias */:
12460
- case 16 /* Package */:
12461
- case 17 /* TypeExtension */:
12462
- case 15 /* Operator */:
12501
+ case 10 /* PackageAlias */:
12502
+ case 12 /* Package */:
12503
+ case 11 /* TypeExtension */:
12504
+ case 9 /* Operator */:
12463
12505
  return void 0;
12464
12506
  default:
12465
12507
  Debug.never(entity);
@@ -12586,7 +12628,7 @@ var LanguageServer = class {
12586
12628
  Logger.info("\u041D\u0430\u0447\u0430\u0442\u0430 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0432.");
12587
12629
  const initializeStartTime = performance.now();
12588
12630
  this._clientCapabilities = params.capabilities;
12589
- setUserLocale("ru");
12631
+ setUserLocale(params.initializationOptions?.localeOverride ?? params.locale ?? "en");
12590
12632
  let workspaceFolderUris;
12591
12633
  if (params.initializationOptions?.workspaceFoldersOverride !== void 0) {
12592
12634
  workspaceFolderUris = params.initializationOptions.workspaceFoldersOverride.map((f) => this.convertVscodeUriToUri(URI2.parse(f.uri)));
@@ -13726,7 +13768,7 @@ ${e}`);
13726
13768
  }
13727
13769
  };
13728
13770
  __decorateClass([
13729
- atomic6
13771
+ atomicBlock6
13730
13772
  ], LanguageServer.prototype, "onDidChangeWorkspaceFolders", 1);
13731
13773
  var FileSystemSynchronizationMode;
13732
13774
  ((FileSystemSynchronizationMode2) => {