@artel/artc 0.6.26038 → 0.6.26039

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.
package/build/Cli.js CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CommandLineCompiler
4
- } from "./chunk-NDVIUVPP.js";
5
- import "./chunk-VICRYDHJ.js";
4
+ } from "./chunk-5VVFNKOH.js";
5
+ import "./chunk-AEW4TILW.js";
6
6
  import {
7
7
  __async
8
- } from "./chunk-FT6HME2Z.js";
8
+ } from "./chunk-LTJPPRSR.js";
9
9
 
10
10
  // source/Cli.ts
11
11
  function main() {
package/build/api/Api.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Compiler
3
- } from "../chunk-VICRYDHJ.js";
3
+ } from "../chunk-AEW4TILW.js";
4
4
  import {
5
5
  AccessKind,
6
6
  AccessedFunction_entity,
@@ -310,7 +310,7 @@ import {
310
310
  withoutQuotes,
311
311
  withoutTemplateQuotes,
312
312
  yieldTask
313
- } from "../chunk-FT6HME2Z.js";
313
+ } from "../chunk-LTJPPRSR.js";
314
314
  export {
315
315
  AccessKind,
316
316
  AccessedFunction_entity,
@@ -6,9 +6,9 @@ import {
6
6
  PhysicalFileSystem,
7
7
  PhysicalTypeScriptLibrariesProvider,
8
8
  PrintingDiagnosticAcceptor
9
- } from "../chunk-NDVIUVPP.js";
10
- import "../chunk-VICRYDHJ.js";
11
- import "../chunk-FT6HME2Z.js";
9
+ } from "../chunk-5VVFNKOH.js";
10
+ import "../chunk-AEW4TILW.js";
11
+ import "../chunk-LTJPPRSR.js";
12
12
  export {
13
13
  CommandLineCompiler,
14
14
  FileSystemUri,
@@ -107,7 +107,7 @@ import {
107
107
  sortModifiers,
108
108
  traverseTreeAsync,
109
109
  yieldTask
110
- } from "../chunk-FT6HME2Z.js";
110
+ } from "../chunk-LTJPPRSR.js";
111
111
 
112
112
  // source/services/common/Types.ts
113
113
  import * as ls from "vscode-languageserver";
@@ -3618,12 +3618,6 @@ var MatchResultParameterReferenceTarget = class {
3618
3618
  this.kind = "match-result-value-parameter";
3619
3619
  }
3620
3620
  };
3621
- var PackageReferenceTarget = class {
3622
- constructor(package_) {
3623
- this.package_ = package_;
3624
- this.kind = "package";
3625
- }
3626
- };
3627
3621
  var PackageNameTreeNodeReferenceTarget = class {
3628
3622
  constructor(node) {
3629
3623
  this.node = node;
@@ -3821,7 +3815,7 @@ var NodeSemanticInfoServiceA = class {
3821
3815
  result = new DefinitionNodeSemanticInfo(analyzer.entity.ofPackageImport(parent));
3822
3816
  break;
3823
3817
  case 9 /* PackageName */:
3824
- result = void 0;
3818
+ result = this.ofPackageNameQualifier(analyzer, parent, node, options7);
3825
3819
  break;
3826
3820
  case 73 /* MemberAccessExpression */:
3827
3821
  result = this.ofMember(analyzer, parent, options7);
@@ -3857,6 +3851,20 @@ var NodeSemanticInfoServiceA = class {
3857
3851
  }
3858
3852
  return result;
3859
3853
  }
3854
+ static ofPackageNameQualifier(analyzer, node, qualifier, options7) {
3855
+ let result;
3856
+ if (!options7.isForReferencesSearch || qualifier === node.segments.last()) {
3857
+ const packageImportInfo = analyzer.packageImports.getImportedPackage(node.parent);
3858
+ if (packageImportInfo?.entity !== void 0) {
3859
+ const target = new EntityReferenceTarget(packageImportInfo.entity, 0 /* Get */);
3860
+ result = new ReferenceNodeSemanticInfo([target], false);
3861
+ }
3862
+ }
3863
+ if (result !== void 0 && options7.includeBetterReferenceTargets) {
3864
+ result = this.getBetterReferenceTargetsOrPreserve(result);
3865
+ }
3866
+ return result;
3867
+ }
3860
3868
  static ofMember(analyzer, node, options7) {
3861
3869
  let result;
3862
3870
  const meaning = analyzer.resolveMemberAccessExpression(node);
@@ -3953,7 +3961,7 @@ var NodeSemanticInfoServiceA = class {
3953
3961
  break;
3954
3962
  }
3955
3963
  case "package-name-segment-access":
3956
- result = this.ofPackageNameSegmentAccess(analyzer, meaning.packageTreeNode, node);
3964
+ result = this.ofPackageNameSegmentAccess(analyzer, meaning.packageTreeNode, node, options7);
3957
3965
  break;
3958
3966
  case "mixed-ambiguous-access": {
3959
3967
  const targets = Query.from(meaning.entities).mapAndFilter((d) => new EntityReferenceTarget(d, 0 /* Get */)).toArray();
@@ -4002,14 +4010,18 @@ var NodeSemanticInfoServiceA = class {
4002
4010
  result = new ReferenceNodeSemanticInfo(createNonEmptyArray(targets), true);
4003
4011
  }
4004
4012
  } else if (resolvedQualifier.kind === "package-name-segment") {
4005
- let currentIndex = qualifierIndex;
4006
- while (currentIndex + 1 < resolutionResult.resolvedQualifiers.length && resolutionResult.resolvedQualifiers[currentIndex + 1].kind === "package-name-segment") {
4007
- currentIndex++;
4008
- }
4009
- const qualifier2 = resolutionResult.resolvedQualifiers[currentIndex];
4010
- if (qualifier2.kind === "package-name-segment" && qualifier2.packageTreeNode.package !== void 0) {
4011
- const target = new PackageReferenceTarget(qualifier2.packageTreeNode.package);
4012
- result = new ReferenceNodeSemanticInfo([target], false);
4013
+ if (!options7.isForReferencesSearch || qualifierIndex === resolutionResult.resolvedQualifiers.length - 1) {
4014
+ let currentIndex = qualifierIndex;
4015
+ while (currentIndex + 1 < resolutionResult.resolvedQualifiers.length && resolutionResult.resolvedQualifiers[currentIndex + 1].kind === "package-name-segment") {
4016
+ currentIndex++;
4017
+ }
4018
+ const qualifier2 = resolutionResult.resolvedQualifiers[currentIndex];
4019
+ if (qualifier2.kind === "package-name-segment" && qualifier2.packageTreeNode.package !== void 0) {
4020
+ const target = new EntityReferenceTarget(qualifier2.packageTreeNode.package, 0 /* Get */);
4021
+ result = new ReferenceNodeSemanticInfo([target], false);
4022
+ } else {
4023
+ result = void 0;
4024
+ }
4013
4025
  } else {
4014
4026
  result = void 0;
4015
4027
  }
@@ -4078,14 +4090,18 @@ var NodeSemanticInfoServiceA = class {
4078
4090
  break;
4079
4091
  }
4080
4092
  case "package-name-segment": {
4081
- let currentIndex = qualifierIndex;
4082
- while (currentIndex + 1 < resolutionResult.resolvedQualifiers.length && resolutionResult.resolvedQualifiers[currentIndex + 1].kind === "package-name-segment") {
4083
- currentIndex++;
4084
- }
4085
- const qualifier2 = resolutionResult.resolvedQualifiers[currentIndex];
4086
- if (qualifier2.kind === "package-name-segment" && qualifier2.packageTreeNode.package !== void 0) {
4087
- const target = new PackageReferenceTarget(qualifier2.packageTreeNode.package);
4088
- result = new ReferenceNodeSemanticInfo([target], false);
4093
+ if (!options7.isForReferencesSearch || qualifierIndex === resolutionResult.resolvedQualifiers.length - 1) {
4094
+ let currentIndex = qualifierIndex;
4095
+ while (currentIndex + 1 < resolutionResult.resolvedQualifiers.length && resolutionResult.resolvedQualifiers[currentIndex + 1].kind === "package-name-segment") {
4096
+ currentIndex++;
4097
+ }
4098
+ const qualifier2 = resolutionResult.resolvedQualifiers[currentIndex];
4099
+ if (qualifier2.kind === "package-name-segment" && qualifier2.packageTreeNode.package !== void 0) {
4100
+ const target = new EntityReferenceTarget(qualifier2.packageTreeNode.package, 0 /* Get */);
4101
+ result = new ReferenceNodeSemanticInfo([target], false);
4102
+ } else {
4103
+ result = void 0;
4104
+ }
4089
4105
  } else {
4090
4106
  result = void 0;
4091
4107
  }
@@ -4186,7 +4202,7 @@ var NodeSemanticInfoServiceA = class {
4186
4202
  break;
4187
4203
  }
4188
4204
  case "package-name-segment-access": {
4189
- result = this.ofPackageNameSegmentAccess(analyzer, meaning.packageTreeNode, node);
4205
+ result = this.ofPackageNameSegmentAccess(analyzer, meaning.packageTreeNode, node, options7);
4190
4206
  break;
4191
4207
  }
4192
4208
  case "mixed-ambiguous-access": {
@@ -4470,21 +4486,28 @@ var NodeSemanticInfoServiceA = class {
4470
4486
  static ofOjectParameterDeclaration(analyzer, node, _objectKeyword) {
4471
4487
  return new DefinitionNodeSemanticInfo(analyzer.entity.ofParameterDeclaration(node));
4472
4488
  }
4473
- static ofPackageNameSegmentAccess(analyzer, packageTreeNode, node) {
4489
+ static ofPackageNameSegmentAccess(analyzer, packageTreeNode, node, options7) {
4474
4490
  let parent = node.getParentSkippingParenthesizedExpressions();
4491
+ let outermostPackageTreeNode = packageTreeNode;
4475
4492
  while (parent.kind === 73 /* MemberAccessExpression */) {
4476
4493
  const meaning = analyzer.resolveMemberAccessExpression(parent);
4477
4494
  if (meaning.kind === "package-name-segment-access") {
4478
- packageTreeNode = meaning.packageTreeNode;
4495
+ outermostPackageTreeNode = meaning.packageTreeNode;
4479
4496
  parent = parent.getParentSkippingParenthesizedExpressions();
4480
4497
  } else {
4481
4498
  break;
4482
4499
  }
4483
4500
  }
4484
- if (packageTreeNode.package === void 0) {
4501
+ if (outermostPackageTreeNode.package === void 0) {
4502
+ return void 0;
4503
+ }
4504
+ if (options7.isForReferencesSearch && outermostPackageTreeNode !== packageTreeNode) {
4485
4505
  return void 0;
4486
4506
  }
4487
- return new ReferenceNodeSemanticInfo([new PackageReferenceTarget(packageTreeNode.package)], false);
4507
+ return new ReferenceNodeSemanticInfo(
4508
+ [new EntityReferenceTarget(outermostPackageTreeNode.package, 0 /* Get */)],
4509
+ false
4510
+ );
4488
4511
  }
4489
4512
  static ofConstructorCallWithTypeAccess(analyzer, suitableType, typeCandidates, suitableOrSingleConstructor, candidates, options7) {
4490
4513
  if (options7.preferredTargetOfExplicitConstructorCall === "type-declaration") {
@@ -4732,7 +4755,11 @@ var NodeSemanticInfoServiceA = class {
4732
4755
  // source/services/common/Utils.ts
4733
4756
  function getEntitySourceLocations(analyzer, entity) {
4734
4757
  if (entity.kind === 7 /* Package */) {
4735
- return void 0;
4758
+ const definition = entity.getDefinition();
4759
+ if (definition.kind !== 0 /* Source */) {
4760
+ return void 0;
4761
+ }
4762
+ return definition.package.sourceFiles.map((f) => new SourceLocation(f, Range.empty(0)));
4736
4763
  }
4737
4764
  let result;
4738
4765
  if (entity.kind === 0 /* Variable */) {
@@ -5001,11 +5028,9 @@ var DefinitionService = class {
5001
5028
  return this.getSourceLocationsOfVariableEntity(analyzer, target.parameter.entity);
5002
5029
  case "type-value-parameter":
5003
5030
  return this.getSourceLocationsOfVariableEntity(analyzer, target.parameter.getEntity());
5004
- case "package":
5005
- return [new SourceLocation(sourceFile, range)];
5006
5031
  case "package-name-tree-node":
5007
5032
  if (target.node.package !== void 0) {
5008
- return [new SourceLocation(sourceFile, range)];
5033
+ return getEntitySourceLocations(analyzer, target.node.package);
5009
5034
  }
5010
5035
  return void 0;
5011
5036
  case "type-context": {
@@ -5035,8 +5060,6 @@ var DefinitionService = class {
5035
5060
  return target.func.getEntity();
5036
5061
  case "match-result-value-parameter":
5037
5062
  return target.parameter.entity;
5038
- case "package":
5039
- return target.package_;
5040
5063
  case "package-name-tree-node":
5041
5064
  return target.node.package;
5042
5065
  case "type-context":
@@ -5099,7 +5122,6 @@ var DefinitionService = class {
5099
5122
  case "type-dereference-operator":
5100
5123
  case "accessed-function":
5101
5124
  case "type-indexer":
5102
- case "package":
5103
5125
  case "package-name-tree-node":
5104
5126
  break;
5105
5127
  default:
@@ -5152,7 +5174,8 @@ var DefinitionServiceA = class extends DefinitionService {
5152
5174
  }
5153
5175
  const options7 = {
5154
5176
  includeBetterReferenceTargets: true,
5155
- preferredTargetOfExplicitConstructorCall: "constructor-declaration"
5177
+ preferredTargetOfExplicitConstructorCall: "constructor-declaration",
5178
+ isForReferencesSearch: false
5156
5179
  };
5157
5180
  const semanticInfo = NodeSemanticInfoServiceA.ofTokenOrKeyword(analyzer.dialectA, tokenOrKeyword, options7);
5158
5181
  if (semanticInfo === void 0) {
@@ -5387,8 +5410,6 @@ var HoverService = class {
5387
5410
  const declaration = new ParameterDeclaration_typeMember(firstTarget.parameter);
5388
5411
  return new Hover(this.displayService.displayParameterDeclaration(declaration), range);
5389
5412
  }
5390
- case "package":
5391
- return new Hover(this.displayService.displayPackage(firstTarget.package_), range);
5392
5413
  case "package-name-tree-node":
5393
5414
  return new Hover(this.displayService.displayPackageNameTreeNode(firstTarget.node), range);
5394
5415
  case "type-context": {
@@ -5437,7 +5458,8 @@ var HoverServiceA = class extends HoverService {
5437
5458
  }
5438
5459
  const options7 = {
5439
5460
  includeBetterReferenceTargets: false,
5440
- preferredTargetOfExplicitConstructorCall: "constructor-declaration"
5461
+ preferredTargetOfExplicitConstructorCall: "constructor-declaration",
5462
+ isForReferencesSearch: false
5441
5463
  };
5442
5464
  const semanticInfo = NodeSemanticInfoServiceA.ofTokenOrKeyword(analyzer.dialectA, tokenOrKeyword, options7);
5443
5465
  if (semanticInfo === void 0) {
@@ -5518,8 +5540,6 @@ var ReferencesSearchUtils = class {
5518
5540
  return new DefinitionInfo(t.func.getEntity(), 0 /* Read */);
5519
5541
  case "match-result-value-parameter":
5520
5542
  return new DefinitionInfo(t.parameter.entity, 0 /* Read */);
5521
- case "package":
5522
- return new DefinitionInfo(t.package_, 0 /* Read */);
5523
5543
  case "type-context": {
5524
5544
  const entity = t.type.getEntity();
5525
5545
  if (entity !== void 0) {
@@ -5561,12 +5581,14 @@ var DefinitionInfoFinderA = class {
5561
5581
  if (options7.onlyNamed) {
5562
5582
  semanticInfoOptions = {
5563
5583
  includeBetterReferenceTargets: true,
5564
- preferredTargetOfExplicitConstructorCall: "type-declaration"
5584
+ preferredTargetOfExplicitConstructorCall: "type-declaration",
5585
+ isForReferencesSearch: false
5565
5586
  };
5566
5587
  } else {
5567
5588
  semanticInfoOptions = {
5568
5589
  includeBetterReferenceTargets: true,
5569
- preferredTargetOfExplicitConstructorCall: "constructor-declaration"
5590
+ preferredTargetOfExplicitConstructorCall: "constructor-declaration",
5591
+ isForReferencesSearch: false
5570
5592
  };
5571
5593
  }
5572
5594
  const semanticInfo = NodeSemanticInfoServiceA.ofTokenOrKeyword(
@@ -5656,12 +5678,14 @@ var ReferencesFinderA = class extends ReferencesFinder {
5656
5678
  if (TypeMemberEntity.isConstructor(firstDefinition)) {
5657
5679
  semanticInfoOptions = {
5658
5680
  preferredTargetOfExplicitConstructorCall: "constructor-declaration",
5659
- includeBetterReferenceTargets: true
5681
+ includeBetterReferenceTargets: true,
5682
+ isForReferencesSearch: true
5660
5683
  };
5661
5684
  } else {
5662
5685
  semanticInfoOptions = {
5663
5686
  preferredTargetOfExplicitConstructorCall: "type-declaration",
5664
- includeBetterReferenceTargets: true
5687
+ includeBetterReferenceTargets: true,
5688
+ isForReferencesSearch: true
5665
5689
  };
5666
5690
  }
5667
5691
  yield traverseTreeAsync(
@@ -6017,6 +6041,9 @@ var ReferencesService = class {
6017
6041
  }
6018
6042
  }
6019
6043
  }
6044
+ if (definition.value.kind === 7 /* Package */) {
6045
+ result.canBeIdentifier = true;
6046
+ }
6020
6047
  return result;
6021
6048
  }
6022
6049
  // TODO: вынести эту логику в сервис, зависящий от диалекта. В диалекта А конструктор нельзя переименовать,
@@ -6160,7 +6187,6 @@ var RenameService = class {
6160
6187
  canBeRenamed = this.entityCanBeRenamed(analyzer, target.parameter.entity);
6161
6188
  break;
6162
6189
  case "type-dereference-operator":
6163
- case "package":
6164
6190
  case "type-context":
6165
6191
  case "type-indexer":
6166
6192
  case "package-name-tree-node":
@@ -6178,6 +6204,9 @@ var RenameService = class {
6178
6204
  }
6179
6205
  }
6180
6206
  entityCanBeRenamed(analyzer, entity) {
6207
+ if (entity.kind === 7 /* Package */) {
6208
+ return false;
6209
+ }
6181
6210
  const sourceLocations = getEntitySourceLocations(analyzer, entity);
6182
6211
  if (sourceLocations === void 0 || sourceLocations.length === 0) {
6183
6212
  return false;
@@ -6200,13 +6229,15 @@ var RenameServiceA = class extends RenameService {
6200
6229
  if (isIdentifier(tokenOrKeyword.value)) {
6201
6230
  const options7 = {
6202
6231
  includeBetterReferenceTargets: false,
6203
- preferredTargetOfExplicitConstructorCall: "type-declaration"
6232
+ preferredTargetOfExplicitConstructorCall: "type-declaration",
6233
+ isForReferencesSearch: false
6204
6234
  };
6205
6235
  semanticInfo = NodeSemanticInfoServiceA.ofNonKeywordIdentifier(analyzer.dialectA, tokenOrKeyword.value, options7);
6206
6236
  } else if (tokenOrKeyword.isKeyword(7 /* Object */) && tokenOrKeyword.parent.kind === 84 /* ObjectExpression */) {
6207
6237
  const options7 = {
6208
6238
  includeBetterReferenceTargets: false,
6209
- preferredTargetOfExplicitConstructorCall: "type-declaration"
6239
+ preferredTargetOfExplicitConstructorCall: "type-declaration",
6240
+ isForReferencesSearch: false
6210
6241
  };
6211
6242
  semanticInfo = NodeSemanticInfoServiceA.ofObjectExpression(analyzer.dialectA, tokenOrKeyword.parent, options7);
6212
6243
  }
@@ -10600,7 +10631,7 @@ var SourceGenerationService = class extends RxObject7 {
10600
10631
  case 5 /* PackageAlias */:
10601
10632
  return false;
10602
10633
  case 7 /* Package */:
10603
- return false;
10634
+ return true;
10604
10635
  case 6 /* TypeExtension */:
10605
10636
  return true;
10606
10637
  case 8 /* TextTranslation */:
@@ -10698,8 +10729,9 @@ var EntityFinder = class {
10698
10729
  return this.findIndexerEntity(entity);
10699
10730
  case 4 /* DereferenceOperator */:
10700
10731
  return this.findDereferenceOperatorEntity(entity);
10701
- case 5 /* PackageAlias */:
10702
10732
  case 7 /* Package */:
10733
+ return this.packageEntity;
10734
+ case 5 /* PackageAlias */:
10703
10735
  case 6 /* TypeExtension */:
10704
10736
  return void 0;
10705
10737
  case 8 /* TextTranslation */:
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Compiler
3
- } from "./chunk-VICRYDHJ.js";
3
+ } from "./chunk-AEW4TILW.js";
4
4
  import {
5
5
  ArtelVersion,
6
6
  Cached,
@@ -16,7 +16,7 @@ import {
16
16
  __async,
17
17
  performanceMeasurementStageNames,
18
18
  performanceMeasurementStages
19
- } from "./chunk-FT6HME2Z.js";
19
+ } from "./chunk-LTJPPRSR.js";
20
20
 
21
21
  // source/executor/FileSystemUri.ts
22
22
  import { platform } from "os";
@@ -9,7 +9,7 @@ import {
9
9
  WellKnownDeclarationsLoadError,
10
10
  __async,
11
11
  createTsInteropInputsForCompilation
12
- } from "./chunk-FT6HME2Z.js";
12
+ } from "./chunk-LTJPPRSR.js";
13
13
 
14
14
  // source/executor/Compiler.ts
15
15
  var Compiler = class {
@@ -780,7 +780,7 @@ var UniqueWithComparatorQuery = class extends Query {
780
780
  };
781
781
 
782
782
  // source/common/Constants.ts
783
- var ArtelVersion = true ? "0.6.26038" : "";
783
+ var ArtelVersion = true ? "0.6.26039" : "";
784
784
  var ArtelSourceFileExtensions = [".\u0430\u0440\u0442", ".\u0430\u0440\u0442\u0435\u043B\u044C", ".art", ".artel", ".\u0430\u0440\u0442\u043C", ".\u0430\u0440\u0442\u0435\u043B\u044C\u043C", ".artm", ".artelm"];
785
785
  var ArtelSourceFileExtensionSet = new Set(ArtelSourceFileExtensions);
786
786
  var ArtelSourceAndConfigurationFileExtensionSet = new Set(ArtelSourceFileExtensionSet).add(".json");
@@ -2632,9 +2632,12 @@ var Name = class _Name {
2632
2632
  * @param unescapedOriginalWithoutQuotes Исходное имя без апострофов, одиночных кавычек и экранирования.
2633
2633
  * @param flags Флаги имени (`NameFlags`). `NameFlags.None` по умолчанию.
2634
2634
  */
2635
- constructor(unescapedOriginalWithoutQuotes, flags = 0 /* None */) {
2635
+ constructor(unescapedOriginalWithoutQuotes, flags = 0 /* None */, specialKey) {
2636
2636
  this.unescapedOriginalWithoutQuotes = unescapedOriginalWithoutQuotes;
2637
- if ((flags & 8 /* SpecialName */) !== 0) {
2637
+ if (specialKey !== void 0) {
2638
+ this.key = specialKey;
2639
+ flags |= 8 /* SpecialName */;
2640
+ } else if ((flags & 8 /* SpecialName */) !== 0) {
2638
2641
  this.key = unescapedOriginalWithoutQuotes;
2639
2642
  } else {
2640
2643
  const isPlainIdentifier = Scanner.isPlainIdentifier(unescapedOriginalWithoutQuotes);
@@ -2670,7 +2673,7 @@ var Name = class _Name {
2670
2673
  getDisplayText() {
2671
2674
  return this.unescapedOriginal;
2672
2675
  }
2673
- static parse(original, initialFlags = 0 /* None */) {
2676
+ static parse(original, initialFlags = 0 /* None */, specialKey) {
2674
2677
  let flags = initialFlags;
2675
2678
  let firstCharIndex = 0;
2676
2679
  let lastCharIndex = original.length - 1;
@@ -2685,7 +2688,7 @@ var Name = class _Name {
2685
2688
  if ((flags & 2 /* QuotedName */) !== 0) {
2686
2689
  unescapedOriginalWithoutQuotes = unescapeText(unescapedOriginalWithoutQuotes);
2687
2690
  }
2688
- return new _Name(unescapedOriginalWithoutQuotes, flags);
2691
+ return new _Name(unescapedOriginalWithoutQuotes, flags, specialKey);
2689
2692
  }
2690
2693
  static toUnescapedOriginal(unescapedOriginalWithoutQuotes, flags) {
2691
2694
  let result = unescapedOriginalWithoutQuotes;
@@ -43531,6 +43534,9 @@ var TranslatedParameterEntity = class {
43531
43534
  );
43532
43535
  this.originalEntity = originalEntity;
43533
43536
  this.translation = translation;
43537
+ if (this.isObjectParameter() && name.key !== specialNameKeys.objectParameter) {
43538
+ name = new Name(name.unescapedOriginal, name.flags, specialNameKeys.objectParameter);
43539
+ }
43534
43540
  this.name = name;
43535
43541
  this.containingEntity = translatedContainingEntity;
43536
43542
  }
@@ -75850,7 +75856,7 @@ var Analyzer3 = class extends Analyzer {
75850
75856
  let result = this.nameByIdentifierText.get(node.value);
75851
75857
  if (result === void 0) {
75852
75858
  if ((node.flags & 512 /* ObjectParameterName */) !== 0) {
75853
- result = Name.parse(specialNameKeys.objectParameter, 8 /* SpecialName */);
75859
+ result = Name.parse(node.value, 8 /* SpecialName */, specialNameKeys.objectParameter);
75854
75860
  } else {
75855
75861
  result = Name.parse(node.value, 0 /* None */);
75856
75862
  }
@@ -78921,6 +78927,11 @@ var PackageImports = class {
78921
78927
  }
78922
78928
  return result;
78923
78929
  }
78930
+ getImportedPackage(node) {
78931
+ const sourceFile = this.analyzer.getProjectSourceFileA(node.sourceFile);
78932
+ const resolvedImports = this.resolvePackageImports(sourceFile);
78933
+ return resolvedImports.get(node);
78934
+ }
78924
78935
  getPackagesAvailableForImport(pkg2) {
78925
78936
  let result = this.packagesAvailableForImport.get(pkg2);
78926
78937
  if (result === void 0) {
@@ -451,6 +451,7 @@ declare class PackageImports {
451
451
  private readonly importedPackageNameTrees;
452
452
  constructor(analyzer: Analyzer);
453
453
  resolvePackageImports(sourceFile: project.SourceFileA): ReadonlyMap<tree.PackageImport, ResolvedPackageImport>;
454
+ getImportedPackage(node: tree.PackageImport): ResolvedPackageImport | undefined;
454
455
  getPackagesAvailableForImport(pkg: project.SourcePackageA): readonly e.PackageEntity[];
455
456
  getUniqueImportedPackages(sourceFile: project.SourceFileA): readonly PackageImportInfo[];
456
457
  getImportedPackageNameTree(node: tree.SourceFile): ImportedPackageNameTree;
@@ -46,12 +46,12 @@ export declare class Name implements Displayable {
46
46
  * @param unescapedOriginalWithoutQuotes Исходное имя без апострофов, одиночных кавычек и экранирования.
47
47
  * @param flags Флаги имени (`NameFlags`). `NameFlags.None` по умолчанию.
48
48
  */
49
- constructor(unescapedOriginalWithoutQuotes: string, flags?: NameFlags);
49
+ constructor(unescapedOriginalWithoutQuotes: string, flags?: NameFlags, specialKey?: string);
50
50
  toBackingVariableName(): Name;
51
51
  considerEqual(other: Name): boolean;
52
52
  toString(): string;
53
53
  getPreferredUnescapedOriginal(requiresQuotes?: boolean): string;
54
54
  getDisplayText(): string;
55
- static parse(original: string, initialFlags?: NameFlags): Name;
55
+ static parse(original: string, initialFlags?: NameFlags, specialKey?: string): Name;
56
56
  private static toUnescapedOriginal;
57
57
  }
@@ -7,6 +7,7 @@ export declare class NodeSemanticInfoServiceA {
7
7
  static ofRegularOrBlockFunctionLiteral(analyzer: Analyzer, node: tree.RegularOrBlockFunctionLiteral): NodeSemanticInfo | undefined;
8
8
  static ofDefaultMatchExpression(analyzer: Analyzer, node: tree.DefaultMatchExpression): NodeSemanticInfo | undefined;
9
9
  static ofNonKeywordIdentifier(analyzer: Analyzer, node: tree.Identifier, options: NodeSemanticInfoServiceOptions): NodeSemanticInfo | undefined;
10
+ static ofPackageNameQualifier(analyzer: Analyzer, node: tree.PackageName, qualifier: tree.Identifier, options: NodeSemanticInfoServiceOptions): NodeSemanticInfo | undefined;
10
11
  static ofMember(analyzer: Analyzer, node: tree.MemberAccessExpression, options: NodeSemanticInfoServiceOptions): NodeSemanticInfo | undefined;
11
12
  static ofQualifiedNameQualifier(analyzer: Analyzer, node: tree.QualifiedName, qualifier: tree.Identifier, options: NodeSemanticInfoServiceOptions): NodeSemanticInfo | undefined;
12
13
  static ofNamedTypeSpecifierNameQualifier(analyzer: Analyzer, node: tree.NamedTypeSpecifier, qualifier: tree.Identifier, options: NodeSemanticInfoServiceOptions): NodeSemanticInfo | undefined;
@@ -42,4 +43,10 @@ export declare class NodeSemanticInfoServiceA {
42
43
  export type NodeSemanticInfoServiceOptions = {
43
44
  readonly preferredTargetOfExplicitConstructorCall: 'type-declaration' | 'constructor-declaration';
44
45
  readonly includeBetterReferenceTargets: boolean;
46
+ /**
47
+ * Для всех сегментов имени пакета `NodeSemanticInfoService` возвращает одинаковую семантическую информацию - ссылку
48
+ * на пакет (`PackageEntity`). Если флаг установлен, сервис вернёт семантическую информацию только для последнего
49
+ * сегмента, чтобы учесть имя при поиске ссылок только один раз.
50
+ */
51
+ readonly isForReferencesSearch: boolean;
45
52
  };
@@ -2,7 +2,7 @@ import { MatchResultParameter } from '../../../analysis/a/ArgumentToParameterMat
2
2
  import { AccessedFunction } from '../../../analysis/AccessedFunction.js';
3
3
  import { PackageNameTreeNode } from '../../../analysis/ImportedPackageNameTree.js';
4
4
  import { AccessKind, ReadonlyNonEmptyArray } from '../../../common/index.js';
5
- import { AliasTypeEntity, Entity, FunctionEntity, FunctionTypeEntity, PackageEntity, StructuredTypeEntity, Translation, TypeParameterEntity, VariableEntity, VariantTypeEntity } from '../../../entities/index.js';
5
+ import { AliasTypeEntity, Entity, FunctionEntity, FunctionTypeEntity, StructuredTypeEntity, Translation, TypeParameterEntity, VariableEntity, VariantTypeEntity } from '../../../entities/index.js';
6
6
  import * as types from '../../../types/index.js';
7
7
  export type NodeSemanticInfo = DefinitionNodeSemanticInfo | ReferenceNodeSemanticInfo | DefaultSwitchMatchNodeSemanticInfo;
8
8
  export declare class DefinitionNodeSemanticInfo {
@@ -19,7 +19,7 @@ export declare class ReferenceNodeSemanticInfo {
19
19
  get firstBetterTargetWithFallback(): ReferenceTarget;
20
20
  constructor(targets: ReadonlyNonEmptyArray<ReferenceTarget>, isAmbiguous: boolean, betterTargets?: ReadonlyNonEmptyArray<ReferenceTarget> | undefined);
21
21
  }
22
- export type ReferenceTarget = EntityReferenceTarget | FieldReferenceTarget | TypeParameterReferenceTarget | DereferenceOperatorReferenceTarget | AccessedFunctionReferenceTarget | IndexerReferenceTarget | MatchResultParameterReferenceTarget | PackageReferenceTarget | PackageNameTreeNodeReferenceTarget | TypeContextReferenceTarget;
22
+ export type ReferenceTarget = EntityReferenceTarget | FieldReferenceTarget | TypeParameterReferenceTarget | DereferenceOperatorReferenceTarget | AccessedFunctionReferenceTarget | IndexerReferenceTarget | MatchResultParameterReferenceTarget | PackageNameTreeNodeReferenceTarget | TypeContextReferenceTarget;
23
23
  export declare class EntityReferenceTarget {
24
24
  readonly entity: Entity;
25
25
  readonly accessKind: AccessKind;
@@ -57,11 +57,6 @@ export declare class MatchResultParameterReferenceTarget {
57
57
  readonly kind = "match-result-value-parameter";
58
58
  constructor(parameter: MatchResultParameter, accessKind: AccessKind);
59
59
  }
60
- export declare class PackageReferenceTarget {
61
- readonly package_: PackageEntity;
62
- readonly kind = "package";
63
- constructor(package_: PackageEntity);
64
- }
65
60
  export declare class PackageNameTreeNodeReferenceTarget {
66
61
  readonly node: PackageNameTreeNode;
67
62
  readonly kind = "package-name-tree-node";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artel/artc",
3
- "version": "0.6.26038",
3
+ "version": "0.6.26039",
4
4
  "description": "Артель Компилятор | Artel Compiler",
5
5
  "author": "Nezaboodka Team <contact@nezaboodka.com>",
6
6
  "license": "Apache-2.0",