@artel/artc 0.6.26024 → 0.6.26026

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 (128) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +48 -28
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +254 -137
  5. package/build/{chunk-SVBA2GB7.js → chunk-35ZDOLQ3.js} +30 -7
  6. package/build/{chunk-W2Y4H3RW.js → chunk-TWDMG7M3.js} +1 -1
  7. package/build/{chunk-W3GP7NSM.js → chunk-UY7U6EAT.js} +12007 -9592
  8. package/build/types/analysis/AccessedFunction.d.ts +3 -0
  9. package/build/types/analysis/AccessibilityCheck.d.ts +3 -4
  10. package/build/types/analysis/Analyzer.d.ts +26 -17
  11. package/build/types/analysis/BaseMemberConflictsValidator.d.ts +1 -1
  12. package/build/types/analysis/ComputedAccess.d.ts +13 -0
  13. package/build/types/analysis/OverrideChecker.d.ts +17 -0
  14. package/build/types/analysis/SpecialNameKey.d.ts +4 -0
  15. package/build/types/analysis/TypeMemberImplementationChecker.d.ts +7 -1
  16. package/build/types/analysis/WellKnownDeclarations.d.ts +3 -0
  17. package/build/types/analysis/a/Analyzer.d.ts +34 -25
  18. package/build/types/analysis/a/DereferenceExpressionMeaning.d.ts +6 -4
  19. package/build/types/analysis/a/FindModifier.d.ts +1 -0
  20. package/build/types/analysis/a/IdentifierExpressionMeaning.d.ts +16 -7
  21. package/build/types/analysis/a/IndexedAccessExpressionMeaning.d.ts +7 -5
  22. package/build/types/analysis/a/MemberAccessExpressionMeaning.d.ts +14 -9
  23. package/build/types/analysis/a/ModifierValidator.d.ts +3 -10
  24. package/build/types/analysis/a/ReservedNameDictionary.d.ts +7 -1
  25. package/build/types/analysis/a/SourceFileAnalyzer.d.ts +1 -1
  26. package/build/types/analysis/a/TextIdentity.d.ts +3 -6
  27. package/build/types/analysis/a/semantic-context/Declarations.d.ts +3 -3
  28. package/build/types/analysis/a/semantic-context/SemanticContextBase.d.ts +5 -5
  29. package/build/types/analysis/a/semantic-context/SourceFileSemanticContext.d.ts +2 -2
  30. package/build/types/analysis/a/semantic-context/SpecialLocalDeclarationsBuilder.d.ts +2 -2
  31. package/build/types/analysis/a/semantic-context/SubprogramBodyAndParametersSemanticContext.d.ts +0 -4
  32. package/build/types/common/ArrayUtils.d.ts +1 -0
  33. package/build/types/diagnostic/DiagnosticCode.d.ts +145 -134
  34. package/build/types/diagnostic/DiagnosticFormatter.d.ts +3 -2
  35. package/build/types/emitter/EmitPhaseName.d.ts +3 -2
  36. package/build/types/emitter/EmitterContext.d.ts +2 -0
  37. package/build/types/emitter/Entities.d.ts +2 -0
  38. package/build/types/emitter/EntityMap.d.ts +0 -4
  39. package/build/types/emitter/IrBuilderA.d.ts +3 -3
  40. package/build/types/emitter/IrFactory.d.ts +14 -13
  41. package/build/types/emitter/IrToJs.d.ts +0 -1
  42. package/build/types/emitter/Transformer.d.ts +2 -3
  43. package/build/types/emitter/ir/EmitOptions.d.ts +4 -41
  44. package/build/types/emitter/ir/Nodes.d.ts +22 -36
  45. package/build/types/emitter/ir/VariableAccess.d.ts +18 -0
  46. package/build/types/emitter/ir/index.d.ts +1 -0
  47. package/build/types/emitter/ir/types.d.ts +2 -2
  48. package/build/types/entities/AccessorEntity.d.ts +8 -0
  49. package/build/types/entities/ComputedEntity.d.ts +12 -0
  50. package/build/types/entities/Entity.d.ts +1 -6
  51. package/build/types/entities/EntityKind.d.ts +6 -8
  52. package/build/types/entities/EntityLocalizationContext.d.ts +2 -5
  53. package/build/types/entities/PackageEntityMembers.d.ts +3 -3
  54. package/build/types/entities/TypeEntity.d.ts +6 -1
  55. package/build/types/entities/TypeEntityMembers.d.ts +5 -0
  56. package/build/types/entities/TypeMemberEntity.d.ts +12 -5
  57. package/build/types/entities/TypeMemberKindFlags.d.ts +4 -3
  58. package/build/types/entities/index.d.ts +2 -0
  59. package/build/types/entities/interfaces/{ConstructorEntity.d.ts → BaseConstructorEntity.d.ts} +5 -5
  60. package/build/types/entities/interfaces/{DestructorEntity.d.ts → BaseDestructorEntity.d.ts} +6 -6
  61. package/build/types/entities/interfaces/BaseOperatorEntity.d.ts +15 -0
  62. package/build/types/entities/interfaces/{OrdinaryMethodEntity.d.ts → BaseOrdinaryMethodEntity.d.ts} +6 -3
  63. package/build/types/entities/interfaces/BaseOrdinaryPackageFunctionEntity.d.ts +36 -0
  64. package/build/types/entities/interfaces/BasePackageMemberAccessorEntity.d.ts +36 -0
  65. package/build/types/entities/interfaces/BaseTypeMemberAccessorEntity.d.ts +19 -0
  66. package/build/types/entities/interfaces/DereferenceOperatorEntity.d.ts +34 -6
  67. package/build/types/entities/interfaces/FieldEntityWithImplicitAccessors.d.ts +15 -0
  68. package/build/types/entities/interfaces/FunctionEntity.d.ts +75 -8
  69. package/build/types/entities/interfaces/IndexerEntity.d.ts +35 -6
  70. package/build/types/entities/interfaces/TextTranslationEntity.d.ts +1 -2
  71. package/build/types/entities/interfaces/VariableEntity.d.ts +45 -12
  72. package/build/types/entities/interfaces/a/ConstructorEntityA.d.ts +2 -3
  73. package/build/types/entities/interfaces/a/DestructorEntityA.d.ts +2 -4
  74. package/build/types/entities/interfaces/index.d.ts +8 -6
  75. package/build/types/entities/intrinsic/IntrinsicConstructorEntity.d.ts +3 -1
  76. package/build/types/entities/intrinsic/IntrinsicFunctionEntity.d.ts +7 -14
  77. package/build/types/entities/intrinsic/IntrinsicTypeMemberAccessorEntity.d.ts +11 -0
  78. package/build/types/entities/intrinsic/IntrinsicVariableEntity.d.ts +20 -16
  79. package/build/types/entities/intrinsic/index.d.ts +1 -2
  80. package/build/types/entities/source/a/SourceConstructorEntity.d.ts +2 -1
  81. package/build/types/entities/source/a/SourceDereferenceOperatorEntity.d.ts +6 -9
  82. package/build/types/entities/source/a/SourceDestructorEntity.d.ts +2 -1
  83. package/build/types/entities/source/a/SourceFunctionEntity.d.ts +9 -17
  84. package/build/types/entities/source/a/SourceGetterEntity.d.ts +62 -24
  85. package/build/types/entities/source/a/SourceIndexerEntity.d.ts +6 -9
  86. package/build/types/entities/source/a/SourceSetterEntity.d.ts +68 -25
  87. package/build/types/entities/source/a/SourceTextTranslationEntity.d.ts +2 -2
  88. package/build/types/entities/source/a/SourceVariableEntity.d.ts +35 -42
  89. package/build/types/entities/translated/TranslatedDereferenceOperatorEntity.d.ts +12 -6
  90. package/build/types/entities/translated/TranslatedFunctionEntity.d.ts +27 -2
  91. package/build/types/entities/translated/TranslatedIndexerEntity.d.ts +14 -6
  92. package/build/types/entities/translated/TranslatedPackageMemberAccessorEntity.d.ts +38 -0
  93. package/build/types/entities/translated/TranslatedParameterEntity.d.ts +34 -0
  94. package/build/types/entities/translated/TranslatedTypeMemberAccessorEntity.d.ts +45 -0
  95. package/build/types/entities/translated/TranslatedVariableEntity.d.ts +19 -39
  96. package/build/types/entities/translated/index.d.ts +3 -2
  97. package/build/types/entities/translated/source/a/SourceTranslatedIndexerEntity.d.ts +2 -1
  98. package/build/types/executor/NodeCompiler.d.ts +1 -1
  99. package/build/types/services/a/DisplayService.d.ts +1 -3
  100. package/build/types/services/a/NodeSemanticInfo.d.ts +1 -1
  101. package/build/types/services/a/references/DefinitionInfoFinder.d.ts +1 -1
  102. package/build/types/services/common/display/BaseDisplayService.d.ts +0 -2
  103. package/build/types/services/common/display/DisplayService.d.ts +1 -3
  104. package/build/types/services/common/display/Types.d.ts +16 -7
  105. package/build/types/services/common/references/ReferencesSearchUtils.d.ts +1 -1
  106. package/build/types/services/common/references/ReferencesService.d.ts +1 -0
  107. package/build/types/services/common/source-generation/EntityToSyntax.d.ts +3 -1
  108. package/build/types/tree/a/Nodes.d.ts +24 -16
  109. package/build/types/tree/a/SyntaxFactory.d.ts +4 -4
  110. package/build/types/ts-interop/Entities.d.ts +65 -46
  111. package/build/types/types/ComputedTypeMember.d.ts +3 -0
  112. package/build/types/types/StandardTypes.d.ts +2 -0
  113. package/build/types/types/StructuredType.d.ts +2 -1
  114. package/build/types/types/TypeMembers.d.ts +31 -8
  115. package/build/types/types/collections/TypeDictionary.d.ts +32 -0
  116. package/build/types/types/collections/TypeMemberDictionary.d.ts +27 -0
  117. package/build/types/types/collections/TypeMemberSet.d.ts +24 -0
  118. package/build/types/types/collections/TypeSet.d.ts +29 -0
  119. package/build/types/types/index.d.ts +5 -0
  120. package/package.json +3 -2
  121. package/build/types/analysis/OverridableTypeMember.d.ts +0 -6
  122. package/build/types/entities/interfaces/GetterEntity.d.ts +0 -21
  123. package/build/types/entities/interfaces/OperatorEntity.d.ts +0 -12
  124. package/build/types/entities/interfaces/SetterEntity.d.ts +0 -19
  125. package/build/types/entities/intrinsic/IntrinsicGetterEntity.d.ts +0 -24
  126. package/build/types/entities/intrinsic/IntrinsicSetterEntity.d.ts +0 -21
  127. package/build/types/entities/translated/TranslatedGetterEntity.d.ts +0 -24
  128. package/build/types/entities/translated/TranslatedSetterEntity.d.ts +0 -21
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  AccessedFunction_entity,
3
3
  AccessedFunction_typeMember,
4
+ AccessorEntity,
4
5
  Analyzer2 as Analyzer,
5
6
  Cached,
6
7
  CancelledError,
@@ -19,7 +20,6 @@ import {
19
20
  FileSystemTree,
20
21
  FunctionDeclaration_accessedFunction,
21
22
  FunctionDeclaration_entity,
22
- FunctionDeclaration_substitutedFunction,
23
23
  FunctionDeclaration_typeMember,
24
24
  GeneratedSourceFileScheme,
25
25
  GenericCancellationToken,
@@ -78,7 +78,6 @@ import {
78
78
  getOrCreateKeywordDictionary,
79
79
  ifTypeEntityIsFunctionTypeAliasThenFunctionType,
80
80
  isAnonymousStructuredTypeDeclaration,
81
- isComputedVariableEntity,
82
81
  isEntityWithParameters,
83
82
  isEntityWithTypeParameters,
84
83
  isExpression,
@@ -101,6 +100,7 @@ import {
101
100
  isTypeMemberDeclaration,
102
101
  isTypeSpecifier,
103
102
  isUnaryOperator,
103
+ isVariableEntityWithExplicitAccessors,
104
104
  kebabCaseToCamelCase,
105
105
  localeToString,
106
106
  modifierKindsInSortOrder,
@@ -109,7 +109,7 @@ import {
109
109
  sortModifiers,
110
110
  traverseTreeAsync,
111
111
  yieldTask
112
- } from "../chunk-W3GP7NSM.js";
112
+ } from "../chunk-UY7U6EAT.js";
113
113
 
114
114
  // source/services/CustomRequests.ts
115
115
  import * as ls from "vscode-languageserver";
@@ -566,8 +566,8 @@ var TranslationsGenerator = class _TranslationsGenerator {
566
566
  }
567
567
  return this.createPackageTypeWithMembersTranslation(entity);
568
568
  }
569
- case 8 /* TypeExtension */:
570
- case 10 /* TextTranslation */:
569
+ case 6 /* TypeExtension */:
570
+ case 8 /* TextTranslation */:
571
571
  return void 0;
572
572
  default:
573
573
  Debug.never(entity);
@@ -601,9 +601,9 @@ var TranslationsGenerator = class _TranslationsGenerator {
601
601
  return this.createFieldTranslation(entity);
602
602
  case 1 /* Function */:
603
603
  return this.createMethodTranslation(entity);
604
- case 5 /* Indexer */:
604
+ case 3 /* Indexer */:
605
605
  return this.createIndexerTranslation(entity);
606
- case 6 /* DereferenceOperator */:
606
+ case 4 /* DereferenceOperator */:
607
607
  return void 0;
608
608
  default:
609
609
  Debug.never(entity);
@@ -640,6 +640,7 @@ var TranslationsGenerator = class _TranslationsGenerator {
640
640
  return SyntaxFactory.constructorTranslation(parameters, parameters);
641
641
  }
642
642
  case 2 /* Destructor */:
643
+ case 4 /* Accessor */:
643
644
  return void 0;
644
645
  default:
645
646
  Debug.never(entity.methodKind);
@@ -3872,7 +3873,7 @@ var NodeSemanticInfoServiceA = class {
3872
3873
  if (isNarrowableReferenceExpression(node)) {
3873
3874
  narrowedType = analyzer.type.ofExpression(node);
3874
3875
  }
3875
- const target = new FieldReferenceTarget(meaning.field, meaning.accessKind, narrowedType);
3876
+ const target = new FieldReferenceTarget(meaning.field, meaning.access.kind, narrowedType);
3876
3877
  result = new ReferenceNodeSemanticInfo([target], false);
3877
3878
  break;
3878
3879
  }
@@ -3881,7 +3882,7 @@ var NodeSemanticInfoServiceA = class {
3881
3882
  if (isNarrowableReferenceExpression(node)) {
3882
3883
  narrowedType = analyzer.type.ofExpression(node);
3883
3884
  }
3884
- const target = new FieldReferenceTarget(meaning.field, meaning.accessKind, narrowedType);
3885
+ const target = new FieldReferenceTarget(meaning.field, meaning.access.kind, narrowedType);
3885
3886
  result = new ReferenceNodeSemanticInfo([target], false);
3886
3887
  break;
3887
3888
  }
@@ -3890,7 +3891,7 @@ var NodeSemanticInfoServiceA = class {
3890
3891
  if (isNarrowableReferenceExpression(node)) {
3891
3892
  narrowedType = analyzer.type.ofExpression(node);
3892
3893
  }
3893
- const target = new EntityReferenceTarget(meaning.variable, meaning.accessKind, narrowedType);
3894
+ const target = new EntityReferenceTarget(meaning.variable, meaning.access.kind, narrowedType);
3894
3895
  result = new ReferenceNodeSemanticInfo([target], false);
3895
3896
  break;
3896
3897
  }
@@ -4176,10 +4177,10 @@ var NodeSemanticInfoServiceA = class {
4176
4177
  }
4177
4178
  const variable = meaning.variable;
4178
4179
  if (variable.kind === "entity") {
4179
- const target = new EntityReferenceTarget(variable.value, meaning.accessKind, narrowedType);
4180
+ const target = new EntityReferenceTarget(variable.value, meaning.access.kind, narrowedType);
4180
4181
  result = new ReferenceNodeSemanticInfo([target], false);
4181
4182
  } else if (variable.kind === "type-member") {
4182
- const target = new FieldReferenceTarget(variable.value, meaning.accessKind, narrowedType);
4183
+ const target = new FieldReferenceTarget(variable.value, meaning.access.kind, narrowedType);
4183
4184
  result = new ReferenceNodeSemanticInfo([target], false);
4184
4185
  } else {
4185
4186
  Debug.never(variable);
@@ -4242,11 +4243,11 @@ var NodeSemanticInfoServiceA = class {
4242
4243
  if (isNonEmptyArray(meaning.suitableIndexers)) {
4243
4244
  result = createIndexersReference(
4244
4245
  meaning.suitableIndexers,
4245
- meaning.accessKind,
4246
+ meaning.access.kind,
4246
4247
  meaning.suitableIndexers.length > 1
4247
4248
  );
4248
4249
  } else if (isNonEmptyArray(meaning.candidates)) {
4249
- result = createIndexersReference(meaning.candidates, meaning.accessKind, true);
4250
+ result = createIndexersReference(meaning.candidates, meaning.access.kind, true);
4250
4251
  }
4251
4252
  if (result !== void 0 && options7.includeBetterReferenceTargets) {
4252
4253
  result = this.getBetterReferenceTargetsOrPreserve(result);
@@ -4308,7 +4309,7 @@ var NodeSemanticInfoServiceA = class {
4308
4309
  static ofDereferenceExpressionOperator(analyzer, node, options7) {
4309
4310
  const meaning = analyzer.resolveDereferenceExpression(node);
4310
4311
  if (meaning.kind === "resolved") {
4311
- const target = new DereferenceOperatorReferenceTarget(meaning.operator, meaning.accessKind);
4312
+ const target = new DereferenceOperatorReferenceTarget(meaning.operator, meaning.access.kind);
4312
4313
  let result = new ReferenceNodeSemanticInfo([target], false);
4313
4314
  if (options7.includeBetterReferenceTargets) {
4314
4315
  result = this.getBetterReferenceTargetsOrPreserve(result);
@@ -4616,45 +4617,79 @@ var NodeSemanticInfoServiceA = class {
4616
4617
  }
4617
4618
  static getBetterReferenceTargetsOrPreserve(info) {
4618
4619
  const currentTargets = info.betterTargets ?? info.targets;
4619
- const betterTargets = Query.from(currentTargets).mapAndFilter((t) => this.getBetterReferenceTarget(t)).toArray();
4620
+ const betterTargets = currentTargets.map((t) => this.getBetterReferenceTargets(t)).filter((t) => t !== void 0).flat();
4620
4621
  if (isNonEmptyArray(betterTargets)) {
4621
4622
  return new ReferenceNodeSemanticInfo(info.targets, info.isAmbiguous, betterTargets);
4622
4623
  }
4623
4624
  return info;
4624
4625
  }
4625
- static getBetterReferenceTarget(original) {
4626
+ static getBetterReferenceTargets(original) {
4626
4627
  let result;
4627
- let currentTarget = original;
4628
- let betterTarget;
4628
+ let currentTargets = [original];
4629
+ let betterTargets;
4630
+ let foundBetterTarget;
4629
4631
  do {
4630
- betterTarget = void 0;
4631
- if (currentTarget.kind === "entity" && currentTarget.entity.kind === 0 /* Variable */) {
4632
- {
4633
- if (currentTarget.entity.subkind === "parameter") {
4634
- const specialVariableInfo = currentTarget.entity.isSpecial();
4635
- if (specialVariableInfo?.kind === "implicit-function-block-parameter") {
4636
- betterTarget = new TypeParameterReferenceTarget(
4637
- specialVariableInfo.targetTypeParameter,
4638
- currentTarget.accessKind
4639
- );
4632
+ betterTargets = [];
4633
+ foundBetterTarget = false;
4634
+ for (const currentTarget of currentTargets) {
4635
+ let foundBetterCurrentTarget = false;
4636
+ if (currentTarget.kind === "entity" && currentTarget.entity.kind === 0 /* Variable */) {
4637
+ {
4638
+ if (currentTarget.entity.subkind === "parameter") {
4639
+ const specialVariableInfo = currentTarget.entity.isSpecial();
4640
+ if (specialVariableInfo?.kind === "implicit-function-block-parameter") {
4641
+ const target = new TypeParameterReferenceTarget(
4642
+ specialVariableInfo.targetTypeParameter,
4643
+ currentTarget.accessKind
4644
+ );
4645
+ betterTargets.push(target);
4646
+ foundBetterCurrentTarget = true;
4647
+ }
4640
4648
  }
4641
4649
  }
4642
- }
4643
- } else if (currentTarget.kind === "accessed-function") {
4644
- const entity = currentTarget.func.getEntity();
4645
- if (entity.subkind === "method" && TypeMemberEntity.isConstructor(entity) && entity.getDefinition().kind === 1 /* Intrinsic */) {
4646
- const containingEntity = entity.getContainingEntity();
4647
- if (containingEntity.kind === 2 /* Type */ && containingEntity.getDefinition().kind === 0 /* Source */) {
4648
- betterTarget = new EntityReferenceTarget(containingEntity, 0 /* Get */);
4650
+ } else if (currentTarget.kind === "accessed-function") {
4651
+ const entity = currentTarget.func.getEntity();
4652
+ if (TypeMemberEntity.isConstructor(entity) && entity.getDefinition().kind === 1 /* Intrinsic */) {
4653
+ const containingEntity = entity.getContainingEntity();
4654
+ if (containingEntity.kind === 2 /* Type */ && containingEntity.getDefinition().kind === 0 /* Source */) {
4655
+ const target = new EntityReferenceTarget(containingEntity, 0 /* Get */);
4656
+ betterTargets.push(target);
4657
+ foundBetterCurrentTarget = true;
4658
+ }
4659
+ }
4660
+ } else if (currentTarget.kind === "entity" && currentTarget.entity.kind === 1 /* Function */) {
4661
+ } else if (currentTarget.kind === "match-result-value-parameter") {
4662
+ const containingEntity = currentTarget.parameter.entity.getContainingEntity();
4663
+ if (containingEntity.kind === 3 /* Indexer */ && containingEntity.getDefinition().kind === 0 /* Source */) {
4664
+ const indexerParameters = containingEntity.getParameters();
4665
+ const parameterIndex = indexerParameters.indexOf(currentTarget.parameter.entity);
4666
+ if (parameterIndex >= 0) {
4667
+ const getterParameter = containingEntity.getGetter()?.getParameters()[parameterIndex];
4668
+ const setterParameter = containingEntity.getSetter()?.getParameters()[parameterIndex];
4669
+ if (getterParameter !== void 0) {
4670
+ const target = new EntityReferenceTarget(getterParameter, currentTarget.accessKind);
4671
+ betterTargets.push(target);
4672
+ foundBetterCurrentTarget = true;
4673
+ }
4674
+ if (setterParameter !== void 0) {
4675
+ const target = new EntityReferenceTarget(setterParameter, currentTarget.accessKind);
4676
+ betterTargets.push(target);
4677
+ foundBetterCurrentTarget = true;
4678
+ }
4679
+ }
4649
4680
  }
4650
4681
  }
4651
- } else if (currentTarget.kind === "entity" && currentTarget.entity.kind === 1 /* Function */) {
4682
+ if (foundBetterCurrentTarget) {
4683
+ foundBetterTarget ||= true;
4684
+ } else {
4685
+ betterTargets.push(currentTarget);
4686
+ }
4652
4687
  }
4653
- if (betterTarget !== void 0) {
4654
- result = betterTarget;
4655
- currentTarget = betterTarget;
4688
+ if (foundBetterTarget) {
4689
+ result = betterTargets;
4690
+ currentTargets = betterTargets;
4656
4691
  }
4657
- } while (betterTarget !== void 0);
4692
+ } while (foundBetterTarget);
4658
4693
  return result;
4659
4694
  }
4660
4695
  static getResolvedContainingTranslationPackage(analyzer, node) {
@@ -4703,7 +4738,7 @@ var NodeSemanticInfoServiceA = class {
4703
4738
 
4704
4739
  // source/services/common/Utils.ts
4705
4740
  function getEntitySourceLocations(analyzer, entity) {
4706
- if (entity.kind === 9 /* Package */) {
4741
+ if (entity.kind === 7 /* Package */) {
4707
4742
  return void 0;
4708
4743
  }
4709
4744
  let result;
@@ -4724,7 +4759,7 @@ function getEntitySourceLocations(analyzer, entity) {
4724
4759
  Debug.never(definition.value);
4725
4760
  }
4726
4761
  }
4727
- } else if (entity.kind === 5 /* Indexer */) {
4762
+ } else if (entity.kind === 3 /* Indexer */) {
4728
4763
  const definition = entity.getDefinition();
4729
4764
  if (definition.kind === 0 /* Source */) {
4730
4765
  result = definition.nodes.map((d) => {
@@ -4733,7 +4768,7 @@ function getEntitySourceLocations(analyzer, entity) {
4733
4768
  return new SourceLocation(sourceFile, range);
4734
4769
  });
4735
4770
  }
4736
- } else if (entity.kind === 6 /* DereferenceOperator */) {
4771
+ } else if (entity.kind === 4 /* DereferenceOperator */) {
4737
4772
  const definition = entity.getDefinition();
4738
4773
  if (definition.kind === 0 /* Source */) {
4739
4774
  result = definition.nodes.map((d) => {
@@ -4742,7 +4777,7 @@ function getEntitySourceLocations(analyzer, entity) {
4742
4777
  return new SourceLocation(sourceFile, range);
4743
4778
  });
4744
4779
  }
4745
- } else if (entity.kind === 10 /* TextTranslation */) {
4780
+ } else if (entity.kind === 8 /* TextTranslation */) {
4746
4781
  const definition = entity.getDefinition();
4747
4782
  if (definition.kind === 0 /* Source */) {
4748
4783
  const range = definition.node.rangeWithoutTrivia;
@@ -5385,22 +5420,8 @@ var HoverService = class {
5385
5420
  }
5386
5421
  }
5387
5422
  createHoverAtAccessedFunction(func, range) {
5388
- switch (func.kind) {
5389
- case "entity": {
5390
- const declaration = new FunctionDeclaration_entity(func.value);
5391
- return new Hover(this.displayService.displayFunctionDeclaration(declaration), range);
5392
- }
5393
- case "type-member": {
5394
- const declaration = new FunctionDeclaration_typeMember(func.value);
5395
- return new Hover(this.displayService.displayFunctionDeclaration(declaration), range);
5396
- }
5397
- case "substituted-function": {
5398
- const declaration = new FunctionDeclaration_substitutedFunction(func.value);
5399
- return new Hover(this.displayService.displayFunctionDeclaration(declaration), range);
5400
- }
5401
- default:
5402
- Debug.never(func);
5403
- }
5423
+ const declaration = new FunctionDeclaration_accessedFunction(func);
5424
+ return new Hover(this.displayService.displayFunctionDeclaration(declaration), range);
5404
5425
  }
5405
5426
  };
5406
5427
 
@@ -5609,7 +5630,7 @@ var ReferencesFinder = class {
5609
5630
  return void 0;
5610
5631
  }
5611
5632
  } else if (this.definitions.length > 1 && potentialReferenceDefinitions.length > 1) {
5612
- if (this.definitions.length === potentialReferenceDefinitions.length && this.definitions.every((d) => potentialReferenceDefinitions.some((rd) => this.areEntitiesWithSameDefinition(rd.value, d.value)))) {
5633
+ if (potentialReferenceDefinitions.some((r) => this.definitions.some((d) => this.areEntitiesWithSameDefinition(r.value, d.value)))) {
5613
5634
  return potentialReferenceDefinitions[0].referenceKind;
5614
5635
  } else {
5615
5636
  return void 0;
@@ -5639,7 +5660,7 @@ var ReferencesFinderA = class extends ReferencesFinder {
5639
5660
  return __async(this, null, function* () {
5640
5661
  let semanticInfoOptions;
5641
5662
  const firstDefinition = this.definitions[0].value;
5642
- if (firstDefinition.kind === 1 /* Function */ && firstDefinition.subkind === "method" && TypeMemberEntity.isConstructor(firstDefinition)) {
5663
+ if (TypeMemberEntity.isConstructor(firstDefinition)) {
5643
5664
  semanticInfoOptions = {
5644
5665
  preferredTargetOfExplicitConstructorCall: "constructor-declaration",
5645
5666
  includeBetterReferenceTargets: true
@@ -5889,6 +5910,7 @@ var ReferencesService = class {
5889
5910
  if (definitions.length === 0) {
5890
5911
  return [];
5891
5912
  }
5913
+ this.expandDefinitionsArray(definitions);
5892
5914
  const result = [];
5893
5915
  const firstDefinition = definitions[0];
5894
5916
  const restrictions = this.getReferenceRestrictions(firstDefinition, options7);
@@ -5907,6 +5929,46 @@ var ReferencesService = class {
5907
5929
  return result;
5908
5930
  });
5909
5931
  }
5932
+ expandDefinitionsArray(definitions) {
5933
+ const length = definitions.length;
5934
+ for (let i = 0; i < length; i++) {
5935
+ const definition = definitions[i];
5936
+ if (definition.value.kind === 0 /* Variable */ && definition.value.subkind === "parameter") {
5937
+ const containingEntity = definition.value.getContainingEntity();
5938
+ if (containingEntity.kind === 3 /* Indexer */) {
5939
+ const parameterIndex = containingEntity.getParameters().indexOf(definition.value);
5940
+ if (parameterIndex >= 0) {
5941
+ const getterParameter = containingEntity.getGetter()?.getParameters()[parameterIndex];
5942
+ if (getterParameter !== void 0 && !definitions.some((d) => d.value === getterParameter)) {
5943
+ definitions.push(new DefinitionInfo(getterParameter, definition.referenceKind));
5944
+ }
5945
+ const setterParameter = containingEntity.getSetter()?.getParameters()[parameterIndex];
5946
+ if (setterParameter !== void 0 && !definitions.some((d) => d.value === setterParameter)) {
5947
+ definitions.push(new DefinitionInfo(setterParameter, definition.referenceKind));
5948
+ }
5949
+ }
5950
+ } else if (TypeMemberEntity.isAccessor(containingEntity)) {
5951
+ const accessorOwner = containingEntity.getAccessorOwner();
5952
+ if (accessorOwner?.kind === 3 /* Indexer */) {
5953
+ const parameterIndex = containingEntity.getParameters().indexOf(definition.value);
5954
+ if (parameterIndex >= 0) {
5955
+ const indexerParameter = accessorOwner.getParameters()[parameterIndex];
5956
+ if (indexerParameter !== void 0 && !definitions.some((d) => d.value === indexerParameter)) {
5957
+ definitions.push(new DefinitionInfo(indexerParameter, definition.referenceKind));
5958
+ }
5959
+ }
5960
+ const otherAccessor = AccessorEntity.isGetter(containingEntity) ? accessorOwner.getSetter() : accessorOwner.getGetter();
5961
+ if (otherAccessor !== void 0) {
5962
+ const otherAccessorParameter = otherAccessor.getParameters()[parameterIndex];
5963
+ if (otherAccessorParameter !== void 0 && !definitions.some((d) => d.value === otherAccessorParameter)) {
5964
+ definitions.push(new DefinitionInfo(otherAccessorParameter, definition.referenceKind));
5965
+ }
5966
+ }
5967
+ }
5968
+ }
5969
+ }
5970
+ }
5971
+ }
5910
5972
  getReferencedDefinitionInfosAtOffset(analyzer, sourceFile, offset, options7) {
5911
5973
  switch (sourceFile.dialect) {
5912
5974
  case 0 /* ArtelA */:
@@ -5920,7 +5982,7 @@ var ReferencesService = class {
5920
5982
  getReferenceRestrictions(definition, _options) {
5921
5983
  const result = new ReferenceRestrictions();
5922
5984
  let namedDefinitionInfo;
5923
- if (definition.value.kind === 1 /* Function */ && definition.value.subkind === "method" && TypeMemberEntity.isConstructor(definition.value)) {
5985
+ if (TypeMemberEntity.isConstructor(definition.value)) {
5924
5986
  const type = TypeWithMembersOrExtensionEntity.getContextualTypeEntity(definition.value.getContainingEntity());
5925
5987
  if (type !== void 0) {
5926
5988
  namedDefinitionInfo = this.isEntityWithRegularName(type);
@@ -5931,12 +5993,12 @@ var ReferencesService = class {
5931
5993
  if (namedDefinitionInfo !== void 0) {
5932
5994
  result.canBeIdentifier = true;
5933
5995
  }
5934
- const isConstructor = definition.value.kind === 1 /* Function */ && definition.value.subkind === "method" && TypeMemberEntity.isConstructor(definition.value);
5996
+ const isConstructor = TypeMemberEntity.isConstructor(definition.value);
5935
5997
  if (isConstructor) {
5936
5998
  result.canBeAutotypeCall = true;
5937
5999
  result.canBeConstructorDeclaration = true;
5938
6000
  }
5939
- if (definition.value.kind === 6 /* DereferenceOperator */) {
6001
+ if (definition.value.kind === 4 /* DereferenceOperator */) {
5940
6002
  result.canBeDereferenceOperator = true;
5941
6003
  }
5942
6004
  if (isTypeEntity(definition.value) || isConstructor) {
@@ -5945,7 +6007,7 @@ var ReferencesService = class {
5945
6007
  if (definition.value.kind === 1 /* Function */) {
5946
6008
  result.canBeBaseExpression = true;
5947
6009
  }
5948
- if (definition.value.kind === 5 /* Indexer */) {
6010
+ if (definition.value.kind === 3 /* Indexer */) {
5949
6011
  result.canBeIndexer = true;
5950
6012
  }
5951
6013
  if (definition.value.kind === 0 /* Variable */ && definition.value.subkind === "parameter" && definition.value.isObjectParameter()) {
@@ -6010,15 +6072,13 @@ var ReferencesService = class {
6010
6072
  }
6011
6073
  return void 0;
6012
6074
  }
6013
- case 7 /* PackageAlias */:
6075
+ case 5 /* PackageAlias */:
6014
6076
  return { name: entity.getName() };
6015
- case 3 /* Getter */:
6016
- case 4 /* Setter */:
6017
- case 5 /* Indexer */:
6018
- case 6 /* DereferenceOperator */:
6019
- case 9 /* Package */:
6020
- case 8 /* TypeExtension */:
6021
- case 10 /* TextTranslation */:
6077
+ case 3 /* Indexer */:
6078
+ case 4 /* DereferenceOperator */:
6079
+ case 7 /* Package */:
6080
+ case 6 /* TypeExtension */:
6081
+ case 8 /* TextTranslation */:
6022
6082
  return void 0;
6023
6083
  default:
6024
6084
  Debug.never(entity);
@@ -9798,7 +9858,7 @@ var EntityToSyntax = class {
9798
9858
  const tags = this.convertTags(entity.getTags());
9799
9859
  const modifiers = this.convertPackageVariableModifiers(entity);
9800
9860
  let result;
9801
- if (isComputedVariableEntity(entity)) {
9861
+ if (isVariableEntityWithExplicitAccessors(entity)) {
9802
9862
  result = [];
9803
9863
  const getterEntity = entity.getGetter();
9804
9864
  if (getterEntity !== void 0) {
@@ -9806,7 +9866,7 @@ var EntityToSyntax = class {
9806
9866
  }
9807
9867
  const setterEntity = entity.getSetter();
9808
9868
  if (setterEntity !== void 0) {
9809
- result.push(SyntaxFactory.packageVariableSetterDeclaration(tags, modifiers, name, void 0));
9869
+ result.push(SyntaxFactory.packageVariableSetterDeclaration(tags, modifiers, name, type, void 0));
9810
9870
  }
9811
9871
  } else {
9812
9872
  result = SyntaxFactory.packageVariableDeclaration(tags, modifiers, name, type);
@@ -9967,9 +10027,9 @@ var EntityToSyntax = class {
9967
10027
  return sortModifiers(modifiers);
9968
10028
  }
9969
10029
  convertTypeEntityMembers(members) {
9970
- const variables = members.getNamedMembers(127 /* All */).filter((m) => m.kind === 0 /* Variable */).flatMap((m) => this.convertField(m));
10030
+ const variables = members.getNamedMembers(255 /* All */).filter((m) => m.kind === 0 /* Variable */).flatMap((m) => this.convertField(m));
9971
10031
  const groupedVariables = this.groupTypeMemberDeclarations(variables);
9972
- const ordinaryMethods = members.getNamedMembers(127 /* All */).filter((m) => TypeMemberEntity.isOrdinaryMethod(m)).map((m) => this.convertMethod(m));
10032
+ const ordinaryMethods = members.getNamedMembers(255 /* All */).filter((m) => TypeMemberEntity.isOrdinaryMethod(m)).map((m) => this.convertMethod(m));
9973
10033
  const groupedOrdinaryMethods = this.groupTypeMemberDeclarations(ordinaryMethods);
9974
10034
  const operators = members.getOperators().map((m) => this.convertMethod(m));
9975
10035
  const groupedOperators = this.groupTypeMemberDeclarations(operators);
@@ -9979,11 +10039,14 @@ var EntityToSyntax = class {
9979
10039
  const groupedDestructors = this.groupTypeMemberDeclarations(destructors);
9980
10040
  const indexers = members.getIndexers().flatMap((i) => this.convertIndexer(i));
9981
10041
  const groupedIndexers = this.groupTypeMemberDeclarations(indexers);
10042
+ const dereferenceOperators = members.getDereferenceOperators().flatMap((i) => this.convertDereferenceOperator(i));
10043
+ const groupedDereferenceOperators = this.groupTypeMemberDeclarations(dereferenceOperators);
9982
10044
  return groupedVariables.concat(
9983
10045
  groupedIndexers,
9984
10046
  groupedConstructors,
9985
10047
  groupedOrdinaryMethods,
9986
10048
  groupedOperators,
10049
+ groupedDereferenceOperators,
9987
10050
  groupedDestructors
9988
10051
  );
9989
10052
  }
@@ -9991,22 +10054,22 @@ var EntityToSyntax = class {
9991
10054
  if (entity.isVariant()) {
9992
10055
  return this.convertVariant(entity);
9993
10056
  }
9994
- const name = this.getEntityName(entity);
9995
- const type = this.convertType(entity.getType());
9996
- const tags = this.convertTags(entity.getTags());
9997
- const modifiers = this.convertFieldModifiers(entity);
9998
10057
  let result;
9999
- if (isComputedVariableEntity(entity)) {
10058
+ if (isVariableEntityWithExplicitAccessors(entity)) {
10000
10059
  result = [];
10001
10060
  const getterEntity = entity.getGetter();
10002
10061
  if (getterEntity !== void 0) {
10003
- result.push(SyntaxFactory.fieldGetterDeclaration(tags, modifiers, name, type, void 0));
10062
+ result.push(this.convertTypeMemberAccessor(getterEntity));
10004
10063
  }
10005
10064
  const setterEntity = entity.getSetter();
10006
10065
  if (setterEntity !== void 0) {
10007
- result.push(SyntaxFactory.fieldSetterDeclaration(tags, modifiers, name, void 0));
10066
+ result.push(this.convertTypeMemberAccessor(setterEntity));
10008
10067
  }
10009
10068
  } else {
10069
+ const name = this.getEntityName(entity);
10070
+ const type = this.convertType(entity.getType());
10071
+ const tags = this.convertTags(entity.getTags());
10072
+ const modifiers = this.convertFieldModifiers(entity);
10010
10073
  result = SyntaxFactory.fieldDeclaration(tags, modifiers, name, type);
10011
10074
  }
10012
10075
  return result;
@@ -10058,6 +10121,8 @@ var EntityToSyntax = class {
10058
10121
  const parameters = this.convertParameters(entity.getParameters());
10059
10122
  return SyntaxFactory.destructorDeclaration(tags, modifiers, parameters, void 0);
10060
10123
  }
10124
+ case 4 /* Accessor */:
10125
+ return this.convertTypeMemberAccessor(entity);
10061
10126
  default:
10062
10127
  Debug.never(entity.methodKind);
10063
10128
  }
@@ -10104,25 +10169,56 @@ var EntityToSyntax = class {
10104
10169
  }
10105
10170
  return sortModifiers(modifiers);
10106
10171
  }
10107
- convertIndexer(entity) {
10108
- const tags = this.convertTags(entity.getTags());
10109
- const modifiers = this.convertIndexerModifiers(entity);
10110
- const parameters = this.convertParameters(entity.getParameters());
10111
- const result = new Array();
10112
- const getterEntity = entity.getGetter();
10113
- if (getterEntity !== void 0) {
10114
- const type = this.convertType(entity.getType());
10115
- const declaration = SyntaxFactory.indexedElementGetterDeclaration(tags, modifiers, parameters, type, void 0);
10116
- result.push(declaration);
10172
+ convertTypeMemberAccessor(entity) {
10173
+ const accessorKind = entity.accessorKind;
10174
+ if (accessorKind === void 0) {
10175
+ return SyntaxFactory.missingTypeMemberDeclaration([], []);
10117
10176
  }
10118
- const setterEntity = entity.getSetter();
10119
- if (setterEntity !== void 0) {
10120
- const declaration = SyntaxFactory.indexedElementSetterDeclaration(tags, modifiers, parameters, void 0);
10121
- result.push(declaration);
10177
+ const tags = this.convertTags(entity.getTags());
10178
+ const modifiers = this.convertAccessorModifiers(entity);
10179
+ switch (accessorKind) {
10180
+ case 2 /* FieldGetter */: {
10181
+ const owningEntity = entity.getAccessorOwner();
10182
+ if (owningEntity?.kind !== 0 /* Variable */) {
10183
+ return SyntaxFactory.missingTypeMemberDeclaration([], []);
10184
+ }
10185
+ const name = this.getEntityName(owningEntity);
10186
+ const type = this.convertType(entity.getReturnType());
10187
+ return SyntaxFactory.fieldGetterDeclaration(tags, modifiers, name, type, void 0);
10188
+ }
10189
+ case 3 /* FieldSetter */: {
10190
+ const owningEntity = entity.getAccessorOwner();
10191
+ if (owningEntity?.kind !== 0 /* Variable */) {
10192
+ return SyntaxFactory.missingTypeMemberDeclaration([], []);
10193
+ }
10194
+ const type = this.convertType(owningEntity.getType());
10195
+ const name = this.getEntityName(owningEntity);
10196
+ return SyntaxFactory.fieldSetterDeclaration(tags, modifiers, name, type, void 0);
10197
+ }
10198
+ case 4 /* IndexedElementGetter */: {
10199
+ const parameters = this.convertParameters(entity.getParameters());
10200
+ const type = this.convertType(entity.getReturnType());
10201
+ return SyntaxFactory.indexedElementGetterDeclaration(tags, modifiers, parameters, type, void 0);
10202
+ }
10203
+ case 5 /* IndexedElementSetter */: {
10204
+ const parameterEntities = entity.getParameters();
10205
+ const parameters = this.convertParameters(parameterEntities.slice(0, parameterEntities.length - 1));
10206
+ const type = this.convertType(entity.getReturnType());
10207
+ return SyntaxFactory.indexedElementSetterDeclaration(tags, modifiers, parameters, type, void 0);
10208
+ }
10209
+ case 6 /* DereferencedVariableGetter */: {
10210
+ const type = this.convertType(entity.getReturnType());
10211
+ return SyntaxFactory.dereferencedVariableGetterDeclaration(tags, modifiers, type, void 0);
10212
+ }
10213
+ case 7 /* DereferencedVariableSetter */: {
10214
+ const type = this.convertType(entity.getReturnType());
10215
+ return SyntaxFactory.dereferencedVariableSetterDeclaration(tags, modifiers, type, void 0);
10216
+ }
10217
+ default:
10218
+ Debug.never(accessorKind);
10122
10219
  }
10123
- return result;
10124
10220
  }
10125
- convertIndexerModifiers(entity) {
10221
+ convertAccessorModifiers(entity) {
10126
10222
  const modifiers = new Array();
10127
10223
  const isHidden = entity.isHidden();
10128
10224
  if (isHidden !== void 0) {
@@ -10131,11 +10227,41 @@ var EntityToSyntax = class {
10131
10227
  if (entity.isStatic()) {
10132
10228
  modifiers.push(SyntaxFactory.modifier(45 /* Static */));
10133
10229
  }
10230
+ if (entity.markedBasic()) {
10231
+ modifiers.push(SyntaxFactory.modifier(21 /* Basic */));
10232
+ }
10134
10233
  if (entity.markedAbstract()) {
10135
10234
  modifiers.push(SyntaxFactory.modifier(42 /* Abstract */));
10136
10235
  }
10236
+ if (entity.isOverride()) {
10237
+ modifiers.push(SyntaxFactory.modifier(43 /* Override */));
10238
+ }
10137
10239
  return sortModifiers(modifiers);
10138
10240
  }
10241
+ convertIndexer(entity) {
10242
+ const result = new Array();
10243
+ const getterEntity = entity.getGetter();
10244
+ if (getterEntity !== void 0) {
10245
+ result.push(this.convertTypeMemberAccessor(getterEntity));
10246
+ }
10247
+ const setterEntity = entity.getSetter();
10248
+ if (setterEntity !== void 0) {
10249
+ result.push(this.convertTypeMemberAccessor(setterEntity));
10250
+ }
10251
+ return result;
10252
+ }
10253
+ convertDereferenceOperator(entity) {
10254
+ const result = new Array();
10255
+ const getterEntity = entity.getGetter();
10256
+ if (getterEntity !== void 0) {
10257
+ result.push(this.convertTypeMemberAccessor(getterEntity));
10258
+ }
10259
+ const setterEntity = entity.getSetter();
10260
+ if (setterEntity !== void 0) {
10261
+ result.push(this.convertTypeMemberAccessor(setterEntity));
10262
+ }
10263
+ return result;
10264
+ }
10139
10265
  convertVariant(entity) {
10140
10266
  const tags = this.convertTags(entity.getTags());
10141
10267
  const name = this.getEntityName(entity);
@@ -10616,19 +10742,16 @@ var SourceGenerationService = class extends RxObject7 {
10616
10742
  default:
10617
10743
  Debug.never(entity);
10618
10744
  }
10619
- case 3 /* Getter */:
10620
- case 4 /* Setter */:
10621
- return this.checkIfEntityOfKindIsPresentInGeneratedCode(entity.getOwningEntity());
10622
- case 5 /* Indexer */:
10623
- case 6 /* DereferenceOperator */:
10745
+ case 3 /* Indexer */:
10746
+ case 4 /* DereferenceOperator */:
10624
10747
  return this.checkIfEntityOfKindIsPresentInGeneratedCode(entity.getContainingEntity());
10625
- case 7 /* PackageAlias */:
10748
+ case 5 /* PackageAlias */:
10626
10749
  return false;
10627
- case 9 /* Package */:
10750
+ case 7 /* Package */:
10628
10751
  return false;
10629
- case 8 /* TypeExtension */:
10752
+ case 6 /* TypeExtension */:
10630
10753
  return true;
10631
- case 10 /* TextTranslation */:
10754
+ case 8 /* TextTranslation */:
10632
10755
  return true;
10633
10756
  default:
10634
10757
  Debug.never(entity);
@@ -10719,17 +10842,15 @@ var EntityFinder = class {
10719
10842
  default:
10720
10843
  Debug.never(entity);
10721
10844
  }
10722
- case 5 /* Indexer */:
10845
+ case 3 /* Indexer */:
10723
10846
  return this.findIndexerEntity(entity);
10724
- case 6 /* DereferenceOperator */:
10847
+ case 4 /* DereferenceOperator */:
10725
10848
  return this.findDereferenceOperatorEntity(entity);
10726
- case 7 /* PackageAlias */:
10727
- case 3 /* Getter */:
10728
- case 4 /* Setter */:
10729
- case 9 /* Package */:
10730
- case 8 /* TypeExtension */:
10849
+ case 5 /* PackageAlias */:
10850
+ case 7 /* Package */:
10851
+ case 6 /* TypeExtension */:
10731
10852
  return void 0;
10732
- case 10 /* TextTranslation */:
10853
+ case 8 /* TextTranslation */:
10733
10854
  return void 0;
10734
10855
  default:
10735
10856
  Debug.never(entity);
@@ -10741,7 +10862,7 @@ var EntityFinder = class {
10741
10862
  } else if (entity.subkind === "field") {
10742
10863
  const containingType = this.findEntity(entity.getContainingEntity());
10743
10864
  if (containingType !== void 0 && isTypeEntity(containingType) && isTypeEntityWithMembers(containingType)) {
10744
- return containingType.getMembers().getNamedMembersByName(entity.getName(), 127 /* All */)[0];
10865
+ return containingType.getMembers().getNamedMembersByName(entity.getName(), 255 /* All */)[0];
10745
10866
  }
10746
10867
  } else if (entity.subkind === "parameter") {
10747
10868
  const originalContainingEntity = entity.getContainingEntity();
@@ -10776,7 +10897,7 @@ var EntityFinder = class {
10776
10897
  if (!(containingType !== void 0 && isTypeEntity(containingType) && isTypeEntityWithMembers(containingType))) {
10777
10898
  return void 0;
10778
10899
  }
10779
- const members = containingType.getMembers().getNamedMembersByName(entity.getSpecialNameOrName(), 127 /* All */).filter((m) => m.kind === 1 /* Function */);
10900
+ const members = containingType.getMembers().getNamedMembersByName(entity.getSpecialNameOrName(), 255 /* All */).filter((m) => m.kind === 1 /* Function */);
10780
10901
  if (members.length === 0) {
10781
10902
  return void 0;
10782
10903
  } else if (members.length === 1) {
@@ -10845,7 +10966,7 @@ var EntityFinder = class {
10845
10966
  switch (entity.kind) {
10846
10967
  case 1 /* Function */:
10847
10968
  return entity.getParameters();
10848
- case 5 /* Indexer */:
10969
+ case 3 /* Indexer */:
10849
10970
  return entity.getParameters();
10850
10971
  case 2 /* Type */: {
10851
10972
  if (entity.typeEntityKind === 0 /* Function */) {
@@ -10854,14 +10975,12 @@ var EntityFinder = class {
10854
10975
  return void 0;
10855
10976
  }
10856
10977
  case 0 /* Variable */:
10857
- case 3 /* Getter */:
10858
- case 4 /* Setter */:
10859
- case 7 /* PackageAlias */:
10860
- case 9 /* Package */:
10861
- case 8 /* TypeExtension */:
10862
- case 6 /* DereferenceOperator */:
10978
+ case 5 /* PackageAlias */:
10979
+ case 7 /* Package */:
10980
+ case 6 /* TypeExtension */:
10981
+ case 4 /* DereferenceOperator */:
10863
10982
  return void 0;
10864
- case 10 /* TextTranslation */:
10983
+ case 8 /* TextTranslation */:
10865
10984
  return void 0;
10866
10985
  default:
10867
10986
  Debug.never(entity);
@@ -10877,15 +10996,13 @@ var EntityFinder = class {
10877
10996
  }
10878
10997
  return void 0;
10879
10998
  }
10880
- case 5 /* Indexer */:
10881
- case 6 /* DereferenceOperator */:
10999
+ case 3 /* Indexer */:
11000
+ case 4 /* DereferenceOperator */:
10882
11001
  case 0 /* Variable */:
10883
- case 3 /* Getter */:
10884
- case 4 /* Setter */:
10885
- case 7 /* PackageAlias */:
10886
- case 9 /* Package */:
10887
- case 8 /* TypeExtension */:
10888
- case 10 /* TextTranslation */:
11002
+ case 5 /* PackageAlias */:
11003
+ case 7 /* Package */:
11004
+ case 6 /* TypeExtension */:
11005
+ case 8 /* TextTranslation */:
10889
11006
  return void 0;
10890
11007
  default:
10891
11008
  Debug.never(entity);