@artel/artc 0.6.25275 → 0.6.25277

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 (54) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +22 -26
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +282 -143
  5. package/build/{chunk-TYQHZ7HH.js → chunk-DKZTCPRN.js} +1 -1
  6. package/build/{chunk-DB2CJDOL.js → chunk-EVYL6VFM.js} +30646 -30435
  7. package/build/{chunk-ORP2UF4D.js → chunk-QK3TWMY2.js} +2 -2
  8. package/build/types/analysis/AnalyzedTextTranslationPackage.d.ts +1 -1
  9. package/build/types/analysis/AnalyzedTranslationPackage.d.ts +49 -125
  10. package/build/types/analysis/Analyzer.d.ts +9 -2
  11. package/build/types/analysis/DiagnosticCollector.d.ts +0 -8
  12. package/build/types/analysis/semantic-context/SemanticContextBase.d.ts +3 -1
  13. package/build/types/analysis/semantic-context/SemanticContextBasedEntityHidingMatcher.d.ts +1 -2
  14. package/build/types/analysis/semantic-context/SourceFileSemanticContext.d.ts +5 -1
  15. package/build/types/common/Name.d.ts +3 -1
  16. package/build/types/common/Query.d.ts +3 -0
  17. package/build/types/diagnostic/DiagnosticCode.d.ts +184 -173
  18. package/build/types/emitter/Emitter.d.ts +0 -1
  19. package/build/types/emitter/Entities.d.ts +1 -0
  20. package/build/types/emitter/IrFactory.d.ts +1 -1
  21. package/build/types/entities/Entity.d.ts +16 -9
  22. package/build/types/entities/EntityLocalizationContext.d.ts +11 -10
  23. package/build/types/entities/PackageMembers.d.ts +2 -1
  24. package/build/types/entities/index.d.ts +4 -0
  25. package/build/types/entities/interfaces/AliasTypeEntity.d.ts +1 -0
  26. package/build/types/entities/interfaces/FunctionTypeEntity.d.ts +1 -0
  27. package/build/types/entities/interfaces/PackageEntity.d.ts +1 -0
  28. package/build/types/entities/interfaces/StructuredTypeEntity.d.ts +1 -0
  29. package/build/types/entities/interfaces/TypeExtensionEntity.d.ts +1 -0
  30. package/build/types/entities/interfaces/VariantTypeEntity.d.ts +1 -0
  31. package/build/types/entities/translated/TranslatedAliasTypeEntity.d.ts +9 -6
  32. package/build/types/entities/translated/TranslatedConstructorEntity.d.ts +21 -9
  33. package/build/types/entities/translated/TranslatedDereferenceOperatorEntity.d.ts +4 -4
  34. package/build/types/entities/translated/TranslatedDestructorEntity.d.ts +4 -4
  35. package/build/types/entities/translated/TranslatedFunctionEntity.d.ts +10 -8
  36. package/build/types/entities/translated/TranslatedFunctionTypeEntity.d.ts +11 -11
  37. package/build/types/entities/translated/TranslatedGetterEntity.d.ts +5 -5
  38. package/build/types/entities/translated/TranslatedIndexerEntity.d.ts +5 -3
  39. package/build/types/entities/translated/TranslatedOperatorEntity.d.ts +5 -3
  40. package/build/types/entities/translated/TranslatedPackageEntity.d.ts +4 -3
  41. package/build/types/entities/translated/TranslatedSetterEntity.d.ts +5 -5
  42. package/build/types/entities/translated/TranslatedStructuredTypeEntity.d.ts +9 -8
  43. package/build/types/entities/translated/TranslatedTypeExtensionEntity.d.ts +4 -5
  44. package/build/types/entities/translated/TranslatedTypeParameterEntity.d.ts +6 -5
  45. package/build/types/entities/translated/TranslatedVariableEntity.d.ts +10 -11
  46. package/build/types/entities/translated/TranslatedVariantTypeEntity.d.ts +11 -11
  47. package/build/types/project/SourcePackage.d.ts +2 -1
  48. package/build/types/services/NodeSemanticInfo.d.ts +6 -0
  49. package/build/types/tree/Nodes.d.ts +3 -3
  50. package/build/types/ts-interop/Entities.d.ts +1 -2
  51. package/build/types/ts-interop/TsInteropContext.d.ts +1 -2
  52. package/build/types/ts-interop/TsPackageContents.d.ts +1 -2
  53. package/build/types/ts-interop/TsPackageMembersCreator.d.ts +1 -2
  54. package/package.json +1 -1
@@ -2,6 +2,7 @@ import {
2
2
  AccessedFunction_entity,
3
3
  AccessedFunction_typeMember,
4
4
  AliasTypeDeclarationBody,
5
+ AnalyzedTranslationPackage,
5
6
  Analyzer,
6
7
  AnonymousFunctionTypeDeclaration,
7
8
  AnonymousStructuredTypeDeclaration,
@@ -165,9 +166,13 @@ import {
165
166
  getOrCreateKeywordDictionary,
166
167
  getParentSkippingParenthesizedExpressions,
167
168
  isComputedVariableEntity,
169
+ isEntityWithParameters,
170
+ isEntityWithTypeParameters,
168
171
  isIdentifier,
169
172
  isNarrowableReferenceExpression,
170
173
  isNonEmptyArray,
174
+ isPackageMemberEntity,
175
+ isPackageTypeEntity,
171
176
  isSourceOrConfigurationFileName,
172
177
  isTypeEntity,
173
178
  isTypeEntityWithMembers,
@@ -182,7 +187,7 @@ import {
182
187
  unwrapParenthesizedExpressions,
183
188
  visitChildren,
184
189
  yieldExecution
185
- } from "../chunk-DB2CJDOL.js";
190
+ } from "../chunk-EVYL6VFM.js";
186
191
 
187
192
  // source/services/CustomCommand.ts
188
193
  import * as ls from "vscode-languageserver";
@@ -1092,10 +1097,9 @@ var SyntaxFactory = class {
1092
1097
  }
1093
1098
  static createTokenSeparatedElements(elements, tokenKind) {
1094
1099
  const result = new Array();
1095
- let token;
1096
1100
  for (let i = 0; i < elements.length; i++) {
1097
1101
  if (i > 0) {
1098
- token ??= this.token(tokenKind);
1102
+ const token = this.token(tokenKind);
1099
1103
  result.push(token);
1100
1104
  }
1101
1105
  result.push(elements[i]);
@@ -1885,9 +1889,9 @@ var SyntaxToCode = class _SyntaxToCode {
1885
1889
  this.writeTranslationParameterClause(node.translatedParameterClause);
1886
1890
  }
1887
1891
  writeTranslationTypeParameterClause(node) {
1888
- if (node.parameterList.elements.length > 0) {
1892
+ if (node.typeParameterList.elements.length > 0) {
1889
1893
  this.writeToken(node.lessThanToken);
1890
- this.writeCommaSeparatedList(node.parameterList.elements, (p) => this.writeToken(p));
1894
+ this.writeCommaSeparatedList(node.typeParameterList.elements, (p) => this.writeToken(p));
1891
1895
  this.writeToken(node.greaterThanToken);
1892
1896
  }
1893
1897
  }
@@ -2430,7 +2434,7 @@ var TranslationsGenerationService = class {
2430
2434
  sourceFile.package.locale,
2431
2435
  sourceFile.package.dialect
2432
2436
  );
2433
- return Query.from(tokenOrKeyword.parent.translationList.translationDeclarations).filter((t) => t.kind === 139 /* TypeTranslationDeclaration */).mapAndFilter((t) => translationPackage.getTypeTranslationTarget(t).target).any((t) => generator.collectNotTranslatedTypeMembers(t).length > 0);
2437
+ return Query.from(tokenOrKeyword.parent.translationList.translationDeclarations).filter((t) => t.kind === 139 /* TypeTranslationDeclaration */).mapAndFilter((t) => translationPackage.getPackageMemberTranslationTargets(t)?.values).flatMap((t) => t).any((t) => isPackageTypeEntity(t) && generator.collectNotTranslatedTypeMembers(t).length > 0);
2434
2438
  }
2435
2439
  };
2436
2440
  var TranslationsGenerator = class _TranslationsGenerator {
@@ -2500,10 +2504,11 @@ var TranslationsGenerator = class _TranslationsGenerator {
2500
2504
  return result.length > 0 ? result : void 0;
2501
2505
  }
2502
2506
  generateMissingTypeMemberTranslations(typeTranslation) {
2503
- const entity = this.translationPackage.getTypeTranslationTarget(typeTranslation).validTarget;
2504
- if (entity === void 0) {
2507
+ const translationTargets = this.translationPackage.getPackageMemberTranslationTargets(typeTranslation)?.values;
2508
+ if (translationTargets === void 0 || translationTargets.length !== 1 || !isPackageTypeEntity(translationTargets[0])) {
2505
2509
  return void 0;
2506
2510
  }
2511
+ const entity = translationTargets[0];
2507
2512
  const memberEntities = this.collectNotTranslatedTypeMembers(entity);
2508
2513
  if (memberEntities.length === 0) {
2509
2514
  return void 0;
@@ -2542,37 +2547,8 @@ var TranslationsGenerator = class _TranslationsGenerator {
2542
2547
  return [new SourceFileEdit(this.sourceFile, editRange, editText)];
2543
2548
  }
2544
2549
  collectNotTranslatedTypeMembers(entity) {
2545
- const result = new Array();
2546
- const translatedTypeEntity = this.translationPackage.entityLocalizationContext.getLocalizedPackageTypeEntity(entity);
2547
- const members = translatedTypeEntity.getMembers();
2548
- for (const member of members.getNamedMembers()) {
2549
- if (member.isHidden() !== void 0) {
2550
- continue;
2551
- }
2552
- if (this.isNotTranslatedEntity(member)) {
2553
- result.push(member);
2554
- }
2555
- }
2556
- for (const constructor of members.getConstructors()) {
2557
- if (constructor.isHidden() !== void 0) {
2558
- continue;
2559
- }
2560
- if (constructor.isDefault() !== void 0) {
2561
- continue;
2562
- }
2563
- if (constructor.getParameters().length > 0 && this.isNotTranslatedEntity(constructor)) {
2564
- result.push(constructor);
2565
- }
2566
- }
2567
- for (const indexer of members.getIndexers()) {
2568
- if (indexer.isHidden() !== void 0) {
2569
- continue;
2570
- }
2571
- if (indexer.getParameters().length > 0 && this.isNotTranslatedEntity(indexer)) {
2572
- result.push(indexer);
2573
- }
2574
- }
2575
- return result;
2550
+ const translatedTypeEntity = this.translationPackage.localizationContext.getLocalizedPackageTypeEntity(entity);
2551
+ return translatedTypeEntity.getMembers().getAll().filter((m) => this.isNotTranslatedEntity(m) && AnalyzedTranslationPackage.isTypeMemberEntityThatShouldBeTranslatedByUser(m));
2576
2552
  }
2577
2553
  detectIndentationForPackageMemberTranslations(translationsDeclaration) {
2578
2554
  let indentationSize;
@@ -2626,7 +2602,7 @@ var TranslationsGenerator = class _TranslationsGenerator {
2626
2602
  return " ".repeat(indentationSize);
2627
2603
  }
2628
2604
  collectNotTranslatedPackageMembers() {
2629
- return this.translationPackage.getTranslatedTargetPackage().getMembers().getNamedMembers().filter((m) => m.isHidden() === void 0 && this.isNotTranslatedEntity(m));
2605
+ return this.translationPackage.translatedTargetPackage.getMembers().getNamedMembers().filter((m) => this.isNotTranslatedEntity(m) && AnalyzedTranslationPackage.isPackageMemberEntityThatShouldBeTranslatedByUser(m));
2630
2606
  }
2631
2607
  isNotTranslatedEntity(entity) {
2632
2608
  const translation = entity.getTranslation();
@@ -2682,9 +2658,10 @@ var TranslationsGenerator = class _TranslationsGenerator {
2682
2658
  return this.createConstructorTranslation(entity);
2683
2659
  case 5 /* Indexer */:
2684
2660
  return this.createIndexerTranslation(entity);
2661
+ case 9 /* Operator */:
2662
+ return this.createOperatorTranslation(entity);
2685
2663
  case 6 /* DereferenceOperator */:
2686
2664
  case 8 /* Destructor */:
2687
- case 9 /* Operator */:
2688
2665
  return void 0;
2689
2666
  default:
2690
2667
  Debug.never(entity);
@@ -2708,6 +2685,11 @@ var TranslationsGenerator = class _TranslationsGenerator {
2708
2685
  const parameters = entity.getParameters().map((p) => this.getNameText(p.getName()));
2709
2686
  return SyntaxFactory.indexerTranslation(parameters, parameters);
2710
2687
  }
2688
+ createOperatorTranslation(entity) {
2689
+ const name = `'${LocalizationHelper.localizeOperatorKind(entity.getOperatorKind(), this.locale, this.dialect)}'`;
2690
+ const parameters = entity.getParameters().map((p) => this.getNameText(p.getName()));
2691
+ return SyntaxFactory.methodTranslation(name, [], parameters, name, [], parameters);
2692
+ }
2711
2693
  getNameText(name) {
2712
2694
  const flags = name.flags & ~8 /* ConflictResolvingParameterName */;
2713
2695
  return name.getPreferredUnescapedOriginal(flags);
@@ -2767,7 +2749,7 @@ var CodeActionsService = class {
2767
2749
  }
2768
2750
  const result = new Array();
2769
2751
  const diagnosticCodeSet = new Set(diagnosticCodes);
2770
- if (diagnosticCodeSet.has(282 /* TheFollowingDeclarationsAreNotTranslated0 */) || diagnosticCodeSet.has(283 /* TheFollowingDeclarationsAreNotTranslated0And1More */)) {
2752
+ if (diagnosticCodeSet.has(288 /* TheFollowingDeclarationsAreNotTranslated0 */) || diagnosticCodeSet.has(289 /* TheFollowingDeclarationsAreNotTranslated0And1More */)) {
2771
2753
  const data = { onlyTypeMembers: false };
2772
2754
  result.push(CodeAction.unresolved(
2773
2755
  "\u0421\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043D\u0435\u0434\u043E\u0441\u0442\u0430\u044E\u0449\u0438\u0435 \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u044B.",
@@ -3515,7 +3497,10 @@ var CompletionService = class {
3515
3497
  let type;
3516
3498
  if (this.sourceFile.package.kind === "translation") {
3517
3499
  const translationPackage2 = this.analyzer.getAnalyzedTranslationPackageIfTargetResolved(this.sourceFile.package);
3518
- type = translationPackage2?.getTypeTranslationTarget(typeTranslation).target;
3500
+ const translationTargets = translationPackage2?.getPackageMemberTranslationTargets(typeTranslation)?.values;
3501
+ if (translationTargets !== void 0 && translationTargets.length === 1 && isPackageTypeEntity(translationTargets[0])) {
3502
+ type = translationTargets[0];
3503
+ }
3519
3504
  }
3520
3505
  const hidingMatcher = semanticContext.getHidingMatcher();
3521
3506
  return new TypeMemberTranslationListCompletionContext(
@@ -5699,6 +5684,14 @@ var NodeSemanticInfoService = class {
5699
5684
  return this.ofIndexedElementAccessorDeclaration(analyzer, tokenOrKeyword.parent.parent);
5700
5685
  } else if ((tokenOrKeyword.isToken(46 /* OpenSquareBracket */) || tokenOrKeyword.isToken(23 /* CloseSquareBracket */)) && tokenOrKeyword.parent.kind === 70 /* IndexedAccessExpression */) {
5701
5686
  return this.ofIndexedAccessExpressionOperator(analyzer, tokenOrKeyword.parent, options6);
5687
+ } else if (tokenOrKeyword.isKeyword(31 /* Creation */) && tokenOrKeyword.parent.kind === 127 /* ConstructorTranslation */) {
5688
+ return this.ofConstructorTranslationSourceConstructor(analyzer, tokenOrKeyword.parent, options6);
5689
+ } else if ((tokenOrKeyword.isToken(45 /* OpenParenthesis */) || tokenOrKeyword.isToken(22 /* CloseParenthesis */)) && tokenOrKeyword.parent.kind === 126 /* TranslationParameterClause */ && tokenOrKeyword.parent.parent.kind === 127 /* ConstructorTranslation */ && tokenOrKeyword.parent.parent.translatedParameterClause === tokenOrKeyword.parent) {
5690
+ return this.ofConstructorTranslationTranslatedConstructor(analyzer, tokenOrKeyword.parent.parent, options6);
5691
+ } else if ((tokenOrKeyword.isToken(46 /* OpenSquareBracket */) || tokenOrKeyword.isToken(23 /* CloseSquareBracket */)) && tokenOrKeyword.parent.kind === 128 /* IndexParameterTranslationClause */ && tokenOrKeyword.parent.parent.kind === 129 /* IndexerTranslation */ && tokenOrKeyword.parent.parent.sourceParameterClause === tokenOrKeyword.parent) {
5692
+ return this.ofIndexerTranslationSourceIndexer(analyzer, tokenOrKeyword.parent.parent, options6);
5693
+ } else if ((tokenOrKeyword.isToken(46 /* OpenSquareBracket */) || tokenOrKeyword.isToken(23 /* CloseSquareBracket */)) && tokenOrKeyword.parent.kind === 128 /* IndexParameterTranslationClause */ && tokenOrKeyword.parent.parent.kind === 129 /* IndexerTranslation */ && tokenOrKeyword.parent.parent.translatedParameterClause === tokenOrKeyword.parent) {
5694
+ return this.ofIndexerTranslationTranslatedIndexer(analyzer, tokenOrKeyword.parent.parent, options6);
5702
5695
  }
5703
5696
  return void 0;
5704
5697
  }
@@ -5715,9 +5708,9 @@ var NodeSemanticInfoService = class {
5715
5708
  const parent = node.parent;
5716
5709
  switch (parent.kind) {
5717
5710
  case 130 /* TranslationTypeParameterList */:
5718
- break;
5711
+ return this.ofTranslationTypeParameterListParameter(analyzer, node, parent, options6);
5719
5712
  case 125 /* TranslationParameterList */:
5720
- break;
5713
+ return this.ofTranslationParameterListParameter(analyzer, node, parent, options6);
5721
5714
  case 150 /* Argument */: {
5722
5715
  const respectiveParameter = analyzer.getRespectiveParameter(parent);
5723
5716
  if (respectiveParameter !== void 0) {
@@ -5765,65 +5758,25 @@ var NodeSemanticInfoService = class {
5765
5758
  case 135 /* QualifiedName */:
5766
5759
  result = this.ofQualifiedNameQualifier(analyzer, parent, node, options6);
5767
5760
  break;
5768
- case 136 /* PackageVariableTranslationDeclaration */: {
5769
- const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5770
- const getTargetResult = translationPackage?.getPackageVariableTranslationTarget(parent);
5771
- if (translationPackage !== void 0 && getTargetResult?.target !== void 0) {
5772
- if (node === parent.sourceName) {
5773
- const target = new EntityReferenceTarget(getTargetResult.target, 0 /* Get */);
5774
- result = new ReferenceNodeSemanticInfo([target], false);
5775
- if (options6.includeBetterReferenceTargets) {
5776
- result = this.getBetterReferenceTargetsOrPreserve(result);
5777
- }
5778
- } else if (node === parent.translatedName) {
5779
- const target = new EntityReferenceTarget(translationPackage.entityLocalizationContext.getLocalizedPackageVariableEntity(getTargetResult.target), 0 /* Get */);
5780
- result = new ReferenceNodeSemanticInfo([target], false);
5781
- if (options6.includeBetterReferenceTargets) {
5782
- result = this.getBetterReferenceTargetsOrPreserve(result);
5783
- }
5784
- }
5785
- }
5786
- break;
5787
- }
5788
- case 137 /* FieldOrVariantTranslation */: {
5789
- const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5790
- const getTargetsResult = translationPackage?.getFieldOrVariantTranslationTargets(parent);
5791
- if (translationPackage !== void 0 && isNonEmptyArray(getTargetsResult?.targets)) {
5792
- if (node === parent.sourceName) {
5793
- const targets = getTargetsResult.targets.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
5794
- result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
5795
- if (options6.includeBetterReferenceTargets) {
5796
- result = this.getBetterReferenceTargetsOrPreserve(result);
5797
- }
5798
- } else if (node === parent.translatedName) {
5799
- const targets = getTargetsResult.targets.map((f) => new EntityReferenceTarget(
5800
- translationPackage.entityLocalizationContext.getLocalizedFieldEntity(f),
5801
- 0 /* Get */
5802
- ));
5803
- result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
5804
- if (options6.includeBetterReferenceTargets) {
5805
- result = this.getBetterReferenceTargetsOrPreserve(result);
5806
- }
5807
- }
5808
- }
5809
- break;
5810
- }
5811
- case 132 /* PackageFunctionTranslationDeclaration */: {
5761
+ case 136 /* PackageVariableTranslationDeclaration */:
5762
+ case 132 /* PackageFunctionTranslationDeclaration */:
5763
+ case 139 /* TypeTranslationDeclaration */:
5764
+ case 134 /* FunctionTypeTranslationDeclaration */: {
5812
5765
  const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5813
- const getTargetsResult = translationPackage?.getPackageFunctionTranslationTargets(parent);
5814
- if (translationPackage !== void 0 && isNonEmptyArray(getTargetsResult?.targets)) {
5766
+ const translationTargets = translationPackage?.getPackageMemberTranslationTargets(parent);
5767
+ if (translationPackage !== void 0 && translationTargets !== void 0 && translationTargets.values.length > 0) {
5815
5768
  if (node === parent.sourceName) {
5816
- const targets = getTargetsResult.targets.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
5817
- result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
5769
+ const targets = translationTargets.values.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
5770
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
5818
5771
  if (options6.includeBetterReferenceTargets) {
5819
5772
  result = this.getBetterReferenceTargetsOrPreserve(result);
5820
5773
  }
5821
5774
  } else if (node === parent.translatedName) {
5822
- const targets = getTargetsResult.targets.map((f) => new EntityReferenceTarget(
5823
- translationPackage.entityLocalizationContext.getLocalizedPackageFunctionEntity(f),
5775
+ const targets = translationTargets.values.map((f) => new EntityReferenceTarget(
5776
+ translationPackage.localizationContext.getLocalizedPackageMemberEntity(f),
5824
5777
  0 /* Get */
5825
5778
  ));
5826
- result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
5779
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
5827
5780
  if (options6.includeBetterReferenceTargets) {
5828
5781
  result = this.getBetterReferenceTargetsOrPreserve(result);
5829
5782
  }
@@ -5831,62 +5784,23 @@ var NodeSemanticInfoService = class {
5831
5784
  }
5832
5785
  break;
5833
5786
  }
5787
+ case 137 /* FieldOrVariantTranslation */:
5834
5788
  case 133 /* MethodTranslation */: {
5835
5789
  const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5836
- const getTargetsResult = translationPackage?.getMethodTranslationTargets(parent);
5837
- if (translationPackage !== void 0 && isNonEmptyArray(getTargetsResult?.targets)) {
5790
+ const translationTargets = translationPackage?.getTypeMemberTranslationTargets(parent);
5791
+ if (translationPackage !== void 0 && translationTargets !== void 0 && translationTargets.values.length > 0) {
5838
5792
  if (node === parent.sourceName) {
5839
- const targets = getTargetsResult.targets.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
5840
- result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
5793
+ const targets = translationTargets.values.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
5794
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
5841
5795
  if (options6.includeBetterReferenceTargets) {
5842
5796
  result = this.getBetterReferenceTargetsOrPreserve(result);
5843
5797
  }
5844
5798
  } else if (node === parent.translatedName) {
5845
- const targets = getTargetsResult.targets.map((f) => new EntityReferenceTarget(
5846
- translationPackage.entityLocalizationContext.getLocalizedMethodEntity(f),
5799
+ const targets = translationTargets.values.map((f) => new EntityReferenceTarget(
5800
+ translationPackage.localizationContext.getLocalizedTypeMemberEntity(f),
5847
5801
  0 /* Get */
5848
5802
  ));
5849
- result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), getTargetsResult.isAmbiguous);
5850
- if (options6.includeBetterReferenceTargets) {
5851
- result = this.getBetterReferenceTargetsOrPreserve(result);
5852
- }
5853
- }
5854
- }
5855
- break;
5856
- }
5857
- case 139 /* TypeTranslationDeclaration */: {
5858
- const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5859
- const getTargetResult = translationPackage?.getTypeTranslationTarget(parent);
5860
- if (translationPackage !== void 0 && getTargetResult?.target !== void 0) {
5861
- if (node === parent.sourceName) {
5862
- const target = new EntityReferenceTarget(getTargetResult.target, 0 /* Get */);
5863
- result = new ReferenceNodeSemanticInfo([target], false);
5864
- if (options6.includeBetterReferenceTargets) {
5865
- result = this.getBetterReferenceTargetsOrPreserve(result);
5866
- }
5867
- } else if (node === parent.translatedName) {
5868
- const target = new EntityReferenceTarget(translationPackage.entityLocalizationContext.getLocalizedTypeEntity(getTargetResult.target), 0 /* Get */);
5869
- result = new ReferenceNodeSemanticInfo([target], false);
5870
- if (options6.includeBetterReferenceTargets) {
5871
- result = this.getBetterReferenceTargetsOrPreserve(result);
5872
- }
5873
- }
5874
- }
5875
- break;
5876
- }
5877
- case 134 /* FunctionTypeTranslationDeclaration */: {
5878
- const translationPackage = this.getContainingTranslationPackage(analyzer, node);
5879
- const getTargetResult = translationPackage?.getFunctionTypeTranslationTarget(parent);
5880
- if (translationPackage !== void 0 && getTargetResult?.target !== void 0) {
5881
- if (node === parent.sourceName) {
5882
- const target = new EntityReferenceTarget(getTargetResult.target, 0 /* Get */);
5883
- result = new ReferenceNodeSemanticInfo([target], false);
5884
- if (options6.includeBetterReferenceTargets) {
5885
- result = this.getBetterReferenceTargetsOrPreserve(result);
5886
- }
5887
- } else if (node === parent.translatedName) {
5888
- const target = new EntityReferenceTarget(translationPackage.entityLocalizationContext.getLocalizedPackageFunctionTypeEntity(getTargetResult.target), 0 /* Get */);
5889
- result = new ReferenceNodeSemanticInfo([target], false);
5803
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
5890
5804
  if (options6.includeBetterReferenceTargets) {
5891
5805
  result = this.getBetterReferenceTargetsOrPreserve(result);
5892
5806
  }
@@ -6519,6 +6433,64 @@ var NodeSemanticInfoService = class {
6519
6433
  }
6520
6434
  return result;
6521
6435
  }
6436
+ static ofConstructorTranslationSourceConstructor(analyzer, node, options6) {
6437
+ let result;
6438
+ const translationPackage = this.getContainingTranslationPackage(analyzer, node);
6439
+ const translationTargets = translationPackage?.getTypeMemberTranslationTargets(node);
6440
+ if (translationTargets !== void 0) {
6441
+ const targets = translationTargets.values.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
6442
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
6443
+ if (options6.includeBetterReferenceTargets) {
6444
+ result = this.getBetterReferenceTargetsOrPreserve(result);
6445
+ }
6446
+ }
6447
+ return result;
6448
+ }
6449
+ static ofConstructorTranslationTranslatedConstructor(analyzer, node, options6) {
6450
+ let result;
6451
+ const translationPackage = this.getContainingTranslationPackage(analyzer, node);
6452
+ const translationTargets = translationPackage?.getTypeMemberTranslationTargets(node);
6453
+ if (translationPackage !== void 0 && translationTargets !== void 0) {
6454
+ const targets = translationTargets.values.map((t) => new EntityReferenceTarget(
6455
+ translationPackage.localizationContext.getLocalizedTypeMemberEntity(t),
6456
+ 0 /* Get */
6457
+ ));
6458
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
6459
+ if (options6.includeBetterReferenceTargets) {
6460
+ result = this.getBetterReferenceTargetsOrPreserve(result);
6461
+ }
6462
+ }
6463
+ return result;
6464
+ }
6465
+ static ofIndexerTranslationSourceIndexer(analyzer, node, options6) {
6466
+ let result;
6467
+ const translationPackage = this.getContainingTranslationPackage(analyzer, node);
6468
+ const translationTargets = translationPackage?.getTypeMemberTranslationTargets(node);
6469
+ if (translationTargets !== void 0) {
6470
+ const targets = translationTargets.values.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
6471
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
6472
+ if (options6.includeBetterReferenceTargets) {
6473
+ result = this.getBetterReferenceTargetsOrPreserve(result);
6474
+ }
6475
+ }
6476
+ return result;
6477
+ }
6478
+ static ofIndexerTranslationTranslatedIndexer(analyzer, node, options6) {
6479
+ let result;
6480
+ const translationPackage = this.getContainingTranslationPackage(analyzer, node);
6481
+ const translationTargets = translationPackage?.getTypeMemberTranslationTargets(node);
6482
+ if (translationPackage !== void 0 && translationTargets !== void 0) {
6483
+ const targets = translationTargets.values.map((t) => new EntityReferenceTarget(
6484
+ translationPackage.localizationContext.getLocalizedTypeMemberEntity(t),
6485
+ 0 /* Get */
6486
+ ));
6487
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
6488
+ if (options6.includeBetterReferenceTargets) {
6489
+ result = this.getBetterReferenceTargetsOrPreserve(result);
6490
+ }
6491
+ }
6492
+ return result;
6493
+ }
6522
6494
  static ofPackageNameSegmentAccess(analyzer, packageTreeNode, node) {
6523
6495
  let parent = getParentSkippingParenthesizedExpressions(node);
6524
6496
  while (parent.kind === 76 /* MemberAccessExpression */) {
@@ -6554,6 +6526,97 @@ var NodeSemanticInfoService = class {
6554
6526
  const targets = suitableType !== void 0 ? [new EntityReferenceTarget(suitableType, 0 /* Get */)] : typeCandidates.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
6555
6527
  return new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), targets.length > 1);
6556
6528
  }
6529
+ static ofTranslationTypeParameterListParameter(analyzer, node, typeParameterList, options6) {
6530
+ const parameterIndex = typeParameterList.typeParameters.indexOf(node);
6531
+ if (parameterIndex < 0) {
6532
+ return void 0;
6533
+ }
6534
+ const translationPackage = this.getContainingTranslationPackage(analyzer, node);
6535
+ if (translationPackage === void 0) {
6536
+ return void 0;
6537
+ }
6538
+ const translationDeclaration = typeParameterList.parent.parent;
6539
+ let translationTargets;
6540
+ switch (translationDeclaration.kind) {
6541
+ case 132 /* PackageFunctionTranslationDeclaration */:
6542
+ case 134 /* FunctionTypeTranslationDeclaration */:
6543
+ case 139 /* TypeTranslationDeclaration */:
6544
+ translationTargets = translationPackage.getPackageMemberTranslationTargets(translationDeclaration);
6545
+ break;
6546
+ case 133 /* MethodTranslation */:
6547
+ translationTargets = translationPackage.getTypeMemberTranslationTargets(translationDeclaration);
6548
+ break;
6549
+ default:
6550
+ Debug.never(translationDeclaration);
6551
+ }
6552
+ let result;
6553
+ if (translationTargets !== void 0) {
6554
+ let typeParameterArrays;
6555
+ if (typeParameterList === translationDeclaration.sourceTypeParameterClause?.typeParameterList) {
6556
+ typeParameterArrays = Query.from(translationTargets.values).mapAndFilter((e) => isEntityWithTypeParameters(e) ? e.getTypeParameters() : void 0).toArray();
6557
+ } else {
6558
+ typeParameterArrays = Query.from(translationTargets.values).mapAndFilter((e) => {
6559
+ const localizedEntity = isPackageMemberEntity(e) ? translationPackage.localizationContext.getLocalizedPackageMemberEntity(e) : translationPackage.localizationContext.getLocalizedTypeMemberEntity(e);
6560
+ return isEntityWithTypeParameters(localizedEntity) ? localizedEntity.getTypeParameters() : void 0;
6561
+ }).toArray();
6562
+ }
6563
+ const typeParameters = Query.from(typeParameterArrays).mapAndFilter((a) => a[parameterIndex]).toArray();
6564
+ if (isNonEmptyArray(typeParameters)) {
6565
+ const targets = typeParameters.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
6566
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
6567
+ if (options6.includeBetterReferenceTargets) {
6568
+ result = this.getBetterReferenceTargetsOrPreserve(result);
6569
+ }
6570
+ }
6571
+ }
6572
+ return result;
6573
+ }
6574
+ static ofTranslationParameterListParameter(analyzer, node, parameterList, options6) {
6575
+ const parameterIndex = parameterList.parameters.indexOf(node);
6576
+ if (parameterIndex < 0) {
6577
+ return void 0;
6578
+ }
6579
+ const translationPackage = this.getContainingTranslationPackage(analyzer, node);
6580
+ if (translationPackage === void 0) {
6581
+ return void 0;
6582
+ }
6583
+ const translationDeclaration = parameterList.parent.parent;
6584
+ let translationTargets;
6585
+ switch (translationDeclaration.kind) {
6586
+ case 132 /* PackageFunctionTranslationDeclaration */:
6587
+ case 134 /* FunctionTypeTranslationDeclaration */:
6588
+ translationTargets = translationPackage.getPackageMemberTranslationTargets(translationDeclaration);
6589
+ break;
6590
+ case 133 /* MethodTranslation */:
6591
+ case 127 /* ConstructorTranslation */:
6592
+ case 129 /* IndexerTranslation */:
6593
+ translationTargets = translationPackage.getTypeMemberTranslationTargets(translationDeclaration);
6594
+ break;
6595
+ default:
6596
+ Debug.never(translationDeclaration);
6597
+ }
6598
+ let result;
6599
+ if (translationTargets !== void 0) {
6600
+ let parameterArrays;
6601
+ if (parameterList === translationDeclaration.sourceParameterClause?.parameterList) {
6602
+ parameterArrays = Query.from(translationTargets.values).mapAndFilter((e) => isEntityWithParameters(e) ? e.getParameters() : void 0).toArray();
6603
+ } else {
6604
+ parameterArrays = Query.from(translationTargets.values).mapAndFilter((e) => {
6605
+ const localizedEntity = isPackageMemberEntity(e) ? translationPackage.localizationContext.getLocalizedPackageMemberEntity(e) : translationPackage.localizationContext.getLocalizedTypeMemberEntity(e);
6606
+ return isEntityWithParameters(localizedEntity) ? localizedEntity.getParameters() : void 0;
6607
+ }).toArray();
6608
+ }
6609
+ const typeParameters = Query.from(parameterArrays).mapAndFilter((a) => a[parameterIndex]).toArray();
6610
+ if (isNonEmptyArray(typeParameters)) {
6611
+ const targets = typeParameters.map((t) => new EntityReferenceTarget(t, 0 /* Get */));
6612
+ result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), !translationTargets.areSuitable);
6613
+ if (options6.includeBetterReferenceTargets) {
6614
+ result = this.getBetterReferenceTargetsOrPreserve(result);
6615
+ }
6616
+ }
6617
+ }
6618
+ return result;
6619
+ }
6557
6620
  static getBetterReferenceTargetsOrPreserve(info) {
6558
6621
  const currentTargets = info.betterTargets ?? info.targets;
6559
6622
  const betterTargets = Query.from(currentTargets).mapAndFilter((t) => this.getBetterReferenceTarget(t)).toArray();
@@ -7327,6 +7390,82 @@ var ReferencesService = class {
7327
7390
  result.push(new Reference(sourceFile2, range, referenceKind));
7328
7391
  }
7329
7392
  }
7393
+ if (node.kind === 127 /* ConstructorTranslation */ && restrictions.canBeConstructorDeclaration) {
7394
+ {
7395
+ const semanticInfo = NodeSemanticInfoService.ofConstructorTranslationSourceConstructor(
7396
+ analyzer,
7397
+ node,
7398
+ semanticInfoOptions
7399
+ );
7400
+ const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
7401
+ definitions,
7402
+ semanticInfo,
7403
+ allowAmbiguous,
7404
+ isForRename
7405
+ );
7406
+ if (referenceKind !== void 0) {
7407
+ result.push(new Reference(sourceFile2, node.creationKeyword.rangeWithoutTrivia, referenceKind));
7408
+ }
7409
+ }
7410
+ {
7411
+ const semanticInfo = NodeSemanticInfoService.ofConstructorTranslationTranslatedConstructor(
7412
+ analyzer,
7413
+ node,
7414
+ semanticInfoOptions
7415
+ );
7416
+ const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
7417
+ definitions,
7418
+ semanticInfo,
7419
+ allowAmbiguous,
7420
+ isForRename
7421
+ );
7422
+ if (referenceKind !== void 0) {
7423
+ result.push(new Reference(
7424
+ sourceFile2,
7425
+ node.translatedParameterClause.rangeWithoutTrivia,
7426
+ referenceKind
7427
+ ));
7428
+ }
7429
+ }
7430
+ }
7431
+ if (node.kind === 129 /* IndexerTranslation */ && restrictions.canBeIndexer) {
7432
+ {
7433
+ const semanticInfo = NodeSemanticInfoService.ofIndexerTranslationSourceIndexer(
7434
+ analyzer,
7435
+ node,
7436
+ semanticInfoOptions
7437
+ );
7438
+ const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
7439
+ definitions,
7440
+ semanticInfo,
7441
+ allowAmbiguous,
7442
+ isForRename
7443
+ );
7444
+ if (referenceKind !== void 0) {
7445
+ result.push(new Reference(sourceFile2, node.sourceParameterClause.rangeWithoutTrivia, referenceKind));
7446
+ }
7447
+ }
7448
+ {
7449
+ const semanticInfo = NodeSemanticInfoService.ofIndexerTranslationTranslatedIndexer(
7450
+ analyzer,
7451
+ node,
7452
+ semanticInfoOptions
7453
+ );
7454
+ const referenceKind = this.ifReferenceToSomeOfDefinitionsThenKind(
7455
+ definitions,
7456
+ semanticInfo,
7457
+ allowAmbiguous,
7458
+ isForRename
7459
+ );
7460
+ if (referenceKind !== void 0) {
7461
+ result.push(new Reference(
7462
+ sourceFile2,
7463
+ node.translatedParameterClause.rangeWithoutTrivia,
7464
+ referenceKind
7465
+ ));
7466
+ }
7467
+ }
7468
+ }
7330
7469
  }
7331
7470
  }
7332
7471
  );
@@ -10,7 +10,7 @@ import {
10
10
  WellKnownDeclarationsLoadError,
11
11
  __async,
12
12
  createTsInteropInputsForCompilation
13
- } from "./chunk-DB2CJDOL.js";
13
+ } from "./chunk-EVYL6VFM.js";
14
14
 
15
15
  // source/executor/Compiler.ts
16
16
  var Compiler = class {