@artel/artc 0.6.25211 → 0.6.25212

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 (62) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +20 -18
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +748 -485
  5. package/build/{chunk-Y3KGPV3L.js → chunk-DYVLHEXS.js} +10754 -10037
  6. package/build/{chunk-5BGDYCRQ.js → chunk-MRSDFDBD.js} +9 -8
  7. package/build/{chunk-EYLAO2SF.js → chunk-XGS3PSIF.js} +3 -3
  8. package/build/types/analysis/AnalyzedTranslationPackage.d.ts +3 -1
  9. package/build/types/analysis/Analyzer.d.ts +33 -15
  10. package/build/types/analysis/BaseExpressionMeaning.d.ts +8 -2
  11. package/build/types/analysis/CallExpressionMeaning.d.ts +6 -1
  12. package/build/types/analysis/DiagnosticCollector.d.ts +1 -0
  13. package/build/types/analysis/EntityLocalizationHelper.d.ts +3 -1
  14. package/build/types/analysis/IdentifierExpressionMeaning.d.ts +12 -4
  15. package/build/types/analysis/Lookup.d.ts +6 -2
  16. package/build/types/analysis/PrefixUnaryOperatorResolver.d.ts +1 -3
  17. package/build/types/analysis/PropertyAccessExpressionMeaning.d.ts +13 -4
  18. package/build/types/analysis/Scope.d.ts +17 -3
  19. package/build/types/analysis/SemanticContext.d.ts +18 -1
  20. package/build/types/analysis/SemanticContextBuilder.d.ts +2 -0
  21. package/build/types/analysis/StatementBlockScopeBuilder.d.ts +1 -0
  22. package/build/types/analysis/TypeMemberLookup.d.ts +3 -3
  23. package/build/types/analysis/UserDefinableBinaryOperatorResolver.d.ts +2 -2
  24. package/build/types/common/Cached.d.ts +1 -0
  25. package/build/types/common/Debug.d.ts +1 -1
  26. package/build/types/common/LocalizationHelper.d.ts +5 -2
  27. package/build/types/common/Uri.d.ts +11 -2
  28. package/build/types/common/index.d.ts +0 -1
  29. package/build/types/diagnostic/DiagnosticCode.d.ts +126 -115
  30. package/build/types/emitter/EmitterGeneratedDeclarationKind.d.ts +7 -0
  31. package/build/types/emitter/Entities.d.ts +1 -0
  32. package/build/types/emitter/EntityMap.d.ts +1 -2
  33. package/build/types/emitter/IrBuilder.d.ts +2 -0
  34. package/build/types/emitter/StatementTransformationResult.d.ts +3 -1
  35. package/build/types/emitter/ir/Nodes.d.ts +24 -22
  36. package/build/types/entities/OperatorEntity.d.ts +7 -9
  37. package/build/types/entities/OperatorKind.d.ts +19 -26
  38. package/build/types/entities/StructuredTypeEntity.d.ts +3 -3
  39. package/build/types/entities/TypeEntityMembers.d.ts +9 -14
  40. package/build/types/entities/TypeExtensionEntity.d.ts +0 -1
  41. package/build/types/entities/VariableEntity.d.ts +2 -2
  42. package/build/types/entities/index.d.ts +7 -12
  43. package/build/types/parser/Parser.d.ts +2 -2
  44. package/build/types/project/FileSystemTree.d.ts +1 -1
  45. package/build/types/services/CompletionService.d.ts +26 -20
  46. package/build/types/services/DisplayService.d.ts +42 -50
  47. package/build/types/services/NodeSemanticInfo.d.ts +6 -11
  48. package/build/types/services/SemanticTokensService.d.ts +4 -3
  49. package/build/types/tree/NodeKind.d.ts +105 -104
  50. package/build/types/tree/OperatorKind.d.ts +24 -7
  51. package/build/types/tree/green/Nodes.d.ts +28 -5
  52. package/build/types/tree/green/SyntaxToCode.d.ts +1 -0
  53. package/build/types/tree/green/Token.d.ts +4 -3
  54. package/build/types/tree/red/Nodes.d.ts +26 -8
  55. package/build/types/tree/red/Token.d.ts +3 -2
  56. package/build/types/types/TypeMembers.d.ts +20 -29
  57. package/package.json +3 -3
  58. package/build/types/analysis/BuiltInOperators.d.ts +0 -14
  59. package/build/types/common/UriTree.d.ts +0 -41
  60. package/build/types/entities/BinaryOperatorEntity.d.ts +0 -54
  61. package/build/types/entities/UnaryOperatorEntity.d.ts +0 -37
  62. package/build/types/parser/OperatorDictionary.d.ts +0 -11
@@ -1,15 +1,13 @@
1
1
  import { Analyzer } from '../analysis/index.js';
2
2
  import { Tag } from '../analysis/Tags.js';
3
- import { Name } from '../common/index.js';
4
- import { TypeMethodDeclaration } from '../tree/index.js';
3
+ import * as tree from '../tree/index.js';
5
4
  import * as types from '../types/index.js';
6
5
  import { DefinitionKind, EntityHidingLevel, EntityKind, OperatorKind, ParameterVariableEntity, TypeMemberEntityContainer } from './index.js';
7
6
  export interface OperatorEntity {
8
7
  readonly kind: EntityKind.Operator;
9
8
  getOperatorKind(): OperatorKind;
10
- getName(): Name;
11
9
  getValueParameters(): readonly ParameterVariableEntity[];
12
- getResultType(): types.Type;
10
+ getReturnType(): types.Type;
13
11
  getDefinition(): OperatorDefinition;
14
12
  getContainer(): TypeMemberEntityContainer;
15
13
  isStatic(): boolean;
@@ -21,19 +19,18 @@ export interface OperatorEntity {
21
19
  }
22
20
  export type OperatorDefinition = {
23
21
  kind: DefinitionKind.Source;
24
- node: TypeMethodDeclaration;
22
+ node: tree.OperatorDeclaration;
25
23
  };
26
24
  export declare class OperatorDeclarationEntity implements OperatorEntity {
27
25
  private readonly _analyzer;
28
26
  private readonly _node;
29
- private readonly _operatorKind;
30
27
  readonly kind = EntityKind.Operator;
28
+ private readonly _operatorKind;
31
29
  private readonly _valueParameters;
32
- constructor(_analyzer: Analyzer, _node: TypeMethodDeclaration, _operatorKind: OperatorKind);
30
+ constructor(_analyzer: Analyzer, _node: tree.OperatorDeclaration);
33
31
  getOperatorKind(): OperatorKind;
34
- getName(): Name;
35
32
  getValueParameters(): readonly ParameterVariableEntity[];
36
- getResultType(): types.Type;
33
+ getReturnType(): types.Type;
37
34
  getDefinition(): OperatorDefinition;
38
35
  getContainer(): TypeMemberEntityContainer;
39
36
  isStatic(): boolean;
@@ -42,4 +39,5 @@ export declare class OperatorDeclarationEntity implements OperatorEntity {
42
39
  isAbstract(): boolean;
43
40
  isHidden(): EntityHidingLevel | undefined;
44
41
  getTags(): readonly Tag[];
42
+ private convertSyntaxOperatorKind;
45
43
  }
@@ -1,9 +1,9 @@
1
- import { PackageLocale } from '../common/PackageLocale.js';
1
+ import * as tree from '../tree/index.js';
2
2
  export declare enum OperatorKind {
3
3
  UnaryPlus = 0,
4
4
  UnaryMinus = 1,
5
5
  Not = 2,
6
- ImplicitConversion = 3,
6
+ BitwiseNot = 3,
7
7
  Add = 4,
8
8
  Subtract = 5,
9
9
  Multiply = 6,
@@ -17,47 +17,40 @@ export declare enum OperatorKind {
17
17
  Or = 14,
18
18
  And = 15,
19
19
  Xor = 16,
20
- AddEquals = 17,
21
- SubtractEquals = 18,
22
- MultiplyEquals = 19,
23
- DivideEquals = 20,
24
- IntegerDivideEquals = 21,
25
- ModuloEquals = 22
20
+ BitwiseAnd = 17,
21
+ BitwiseOr = 18,
22
+ BitwiseXor = 19
26
23
  }
27
24
  /**
28
25
  * Виды операторов, задаваемых токенами (`+`, `-`, `*=` и др.).
29
26
  */
30
- export type KindOfOperatorDefinedByToken = OperatorKind.UnaryPlus | OperatorKind.UnaryMinus | OperatorKind.ImplicitConversion | OperatorKind.Add | OperatorKind.Subtract | OperatorKind.Multiply | OperatorKind.Divide | OperatorKind.IntegerDivide | OperatorKind.Modulo | OperatorKind.LessThan | OperatorKind.GreaterThan | OperatorKind.LessThanEquals | OperatorKind.GreaterThanEquals | OperatorKind.AddEquals | OperatorKind.SubtractEquals | OperatorKind.MultiplyEquals | OperatorKind.DivideEquals | OperatorKind.IntegerDivideEquals | OperatorKind.ModuloEquals;
27
+ export type KindOfOperatorDefinedByToken = OperatorKind.BitwiseNot | OperatorKind.UnaryPlus | OperatorKind.UnaryMinus | OperatorKind.Add | OperatorKind.Subtract | OperatorKind.Multiply | OperatorKind.Divide | OperatorKind.IntegerDivide | OperatorKind.Modulo | OperatorKind.LessThan | OperatorKind.GreaterThan | OperatorKind.LessThanEquals | OperatorKind.GreaterThanEquals | OperatorKind.BitwiseAnd | OperatorKind.BitwiseOr | OperatorKind.BitwiseXor;
28
+ export declare function isOperatorDefinedByToken(kind: OperatorKind): kind is KindOfOperatorDefinedByToken;
31
29
  /**
32
30
  * Виды операторов, задаваемых ключевыми словами (`и`, `или`, `не` и др.)
33
31
  */
34
32
  export type KindOfOperatorDefinedByKeyword = OperatorKind.Not | OperatorKind.Or | OperatorKind.And | OperatorKind.Xor;
33
+ export declare function isOperatorDefinedByKeyword(kind: OperatorKind): kind is KindOfOperatorDefinedByKeyword;
35
34
  /**
36
35
  * Виды одноместных операторов. Объявление одноместного оператора не должно содержать ни одного параметра.
37
36
  */
38
- export type UnaryOperatorKind = OperatorKind.UnaryPlus | OperatorKind.UnaryMinus | OperatorKind.Not | OperatorKind.ImplicitConversion;
37
+ export type UnaryOperatorKind = OperatorKind.UnaryPlus | OperatorKind.UnaryMinus | OperatorKind.Not | OperatorKind.BitwiseNot;
38
+ export declare function isUnaryOperator(kind: OperatorKind): kind is UnaryOperatorKind;
39
39
  /**
40
- * Виды двухместных операторов, в том числе составных. Объявление двухместного оператора должно содержать один параметр.
40
+ * Виды двухместных операторов. Объявление двухместного оператора должно содержать один параметр.
41
41
  */
42
- export type BinaryOperatorKind = OperatorKind.Add | OperatorKind.Subtract | OperatorKind.Multiply | OperatorKind.Divide | OperatorKind.IntegerDivide | OperatorKind.Modulo | OperatorKind.LessThan | OperatorKind.GreaterThan | OperatorKind.LessThanEquals | OperatorKind.GreaterThanEquals | OperatorKind.Or | OperatorKind.And | OperatorKind.Xor | OperatorKind.AddEquals | OperatorKind.SubtractEquals | OperatorKind.MultiplyEquals | OperatorKind.DivideEquals | OperatorKind.IntegerDivideEquals | OperatorKind.ModuloEquals;
42
+ export type BinaryOperatorKind = OperatorKind.Add | OperatorKind.Subtract | OperatorKind.Multiply | OperatorKind.Divide | OperatorKind.IntegerDivide | OperatorKind.Modulo | OperatorKind.LessThan | OperatorKind.GreaterThan | OperatorKind.LessThanEquals | OperatorKind.GreaterThanEquals | OperatorKind.Or | OperatorKind.And | OperatorKind.Xor | OperatorKind.BitwiseAnd | OperatorKind.BitwiseOr | OperatorKind.BitwiseXor;
43
+ export declare function isBinaryOperator(kind: OperatorKind): kind is BinaryOperatorKind;
43
44
  export type KindOfUnaryOperatorDefinedByToken = UnaryOperatorKind & KindOfOperatorDefinedByToken;
44
45
  export type KindOfUnaryOperatorDefinedByKeyword = UnaryOperatorKind & KindOfOperatorDefinedByKeyword;
45
46
  export type KindOfBinaryOperatorDefinedByToken = BinaryOperatorKind & KindOfOperatorDefinedByToken;
46
47
  export type KindOfBinaryOperatorDefinedByKeyword = BinaryOperatorKind & KindOfOperatorDefinedByKeyword;
47
- export declare const unaryOperatorKindByTokenText: Record<string, KindOfUnaryOperatorDefinedByToken | undefined>;
48
- export declare const binaryOperatorKindByTokenText: Record<string, KindOfBinaryOperatorDefinedByToken | undefined>;
49
- export declare const operatorKindByRussianKeywordText: {
50
- readonly не: OperatorKind.Not;
51
- readonly или: OperatorKind.Or;
52
- readonly и: OperatorKind.And;
53
- readonly искл: OperatorKind.Xor;
48
+ export declare const tokenTextByOperatorKind: {
49
+ [T in KindOfOperatorDefinedByToken]: string;
54
50
  };
55
- export declare const operatorKindByEnglishKeywordText: {
56
- readonly not: OperatorKind.Not;
57
- readonly or: OperatorKind.Or;
58
- readonly and: OperatorKind.And;
59
- readonly xor: OperatorKind.Xor;
51
+ export declare const keywordKindByOperatorKind: {
52
+ [T in KindOfOperatorDefinedByKeyword]: tree.KeywordKind;
60
53
  };
61
- export declare const operatorKindByKeywordTextByPackageLocale: {
62
- [T in PackageLocale]: Record<string, KindOfOperatorDefinedByKeyword>;
54
+ export declare const operatorKindsBySyntacticalOperatorKind: {
55
+ [T in tree.OperatorKind]: readonly OperatorKind[];
63
56
  };
@@ -5,7 +5,7 @@ import { AnonymousStructuredTypeDeclaration, PackageStructuredTypeDeclaration }
5
5
  import * as types from '../types/index.js';
6
6
  import { EntityNaming } from './EntityNaming.js';
7
7
  import { NamedTypeMemberEntity, OriginalTypeEntityMembers } from './TypeEntityMembers.js';
8
- import type { DereferenceOperatorEntity, PackageEntity } from './index.js';
8
+ import type { DereferenceOperatorEntity, OperatorEntity, PackageEntity } from './index.js';
9
9
  import { ConstructorEntity, DefinitionKind, DestructorEntity, EntityHidingLevel, EntityKind, IndexerEntity, SubstitutionApplicationMode, TypeParameterEntity } from './index.js';
10
10
  export type StructuredTypeEntity = PackageStructuredTypeEntity | AnonymousStructuredTypeEntity;
11
11
  export interface PackageStructuredTypeEntity extends IStructuredTypeEntity {
@@ -188,12 +188,12 @@ export declare class UnfinishedIntrinsicPackageStructuredTypeEntity {
188
188
  private readonly _unfinishedValue;
189
189
  get unfinishedValue(): PackageStructuredTypeEntity;
190
190
  constructor(analyzer: Analyzer, name: Name, containingPackage: PackageEntity, typeParameters: readonly TypeParameterEntity[], isAspect: boolean, isRefObject: boolean, baseObjectType: types.StructuredType | undefined, baseAspectTypes: readonly types.StructuredType[], isHidden: EntityHidingLevel | undefined, substitutionApplicationMode: SubstitutionApplicationMode);
191
- finish(ownNamedMembers: readonly NamedTypeMemberEntity[], ownConstructors: readonly ConstructorEntity[], ownDestructors: readonly DestructorEntity[], ownIndexers: readonly IndexerEntity[], ownDereferenceOperators: readonly DereferenceOperatorEntity[]): PackageStructuredTypeEntity;
191
+ finish(ownNamedMembers: readonly NamedTypeMemberEntity[], ownOperators: readonly OperatorEntity[], ownConstructors: readonly ConstructorEntity[], ownDestructors: readonly DestructorEntity[], ownIndexers: readonly IndexerEntity[], ownDereferenceOperators: readonly DereferenceOperatorEntity[]): PackageStructuredTypeEntity;
192
192
  }
193
193
  export declare class UnfinishedIntrinsicAnonymousStructuredTypeEntity {
194
194
  private readonly _unfinishedValue;
195
195
  get unfinishedValue(): AnonymousStructuredTypeEntity;
196
196
  constructor(analyzer: Analyzer, typeParameters: readonly TypeParameterEntity[], isAspect: boolean, isRefObject: boolean, baseObjectType: types.StructuredType | undefined, baseAspectTypes: readonly types.StructuredType[], isHidden: EntityHidingLevel | undefined, substitutionApplicationMode: SubstitutionApplicationMode, containingPackage: PackageEntity);
197
- finish(ownNamedMembers: readonly NamedTypeMemberEntity[], ownConstructors: readonly ConstructorEntity[], ownDestructors: readonly DestructorEntity[], ownIndexers: readonly IndexerEntity[], ownDereferenceOperators: readonly DereferenceOperatorEntity[]): AnonymousStructuredTypeEntity;
197
+ finish(ownNamedMembers: readonly NamedTypeMemberEntity[], ownOperators: readonly OperatorEntity[], ownConstructors: readonly ConstructorEntity[], ownDestructors: readonly DestructorEntity[], ownIndexers: readonly IndexerEntity[], ownDereferenceOperators: readonly DereferenceOperatorEntity[]): AnonymousStructuredTypeEntity;
198
198
  }
199
199
  export {};
@@ -1,36 +1,31 @@
1
1
  import { Name } from '../common/index.js';
2
- import { BinaryOperatorEntity, BinaryOperatorKind } from './BinaryOperatorEntity.js';
3
2
  import { ConstructorEntity } from './ConstructorEntity.js';
3
+ import { DereferenceOperatorEntity } from './DereferenceOperatorEntity.js';
4
4
  import { DestructorEntity } from './DestructorEntity.js';
5
5
  import { IndexerEntity } from './IndexerEntity.js';
6
6
  import { TypeMethodEntity } from './MethodEntity.js';
7
- import { DereferenceOperatorEntity } from './DereferenceOperatorEntity.js';
8
- import { UnaryOperatorEntity, UnaryOperatorKind } from './UnaryOperatorEntity.js';
7
+ import { OperatorEntity } from './OperatorEntity.js';
8
+ import { OperatorKind } from './OperatorKind.js';
9
9
  import { TypeVariableEntity } from './VariableEntity.js';
10
10
  export declare class OriginalTypeEntityMembers {
11
11
  private readonly _namedMembers;
12
+ private readonly _operators;
12
13
  private readonly _constructors;
13
14
  private readonly _destructors;
14
15
  private readonly _indexers;
15
16
  private readonly _referenceOperators;
16
- private readonly _unaryOperators;
17
- private readonly _binaryOperators;
18
17
  private readonly _membersByNameKey;
19
- private readonly _unaryOperatorsByKind;
20
- private readonly _binaryOperatorsByKind;
18
+ private readonly _operatorsByKind;
21
19
  private get membersByNameKey();
22
- private get unaryOperatorByKind();
23
- private get binaryOperatorByKind();
24
- constructor(_namedMembers: readonly NamedTypeMemberEntity[], _constructors: readonly ConstructorEntity[], _destructors: readonly DestructorEntity[], _indexers: readonly IndexerEntity[], _referenceOperators: readonly DereferenceOperatorEntity[], _unaryOperators: readonly UnaryOperatorEntity[], _binaryOperators: readonly BinaryOperatorEntity[]);
20
+ private get operatorByKind();
21
+ constructor(_namedMembers: readonly NamedTypeMemberEntity[], _operators: readonly OperatorEntity[], _constructors: readonly ConstructorEntity[], _destructors: readonly DestructorEntity[], _indexers: readonly IndexerEntity[], _referenceOperators: readonly DereferenceOperatorEntity[]);
25
22
  getNamedMembers(): readonly NamedTypeMemberEntity[];
26
23
  getNamedMembersByName(name: Name): readonly NamedTypeMemberEntity[];
24
+ getOperators(): readonly OperatorEntity[];
25
+ getOperatorsByKind(kind: OperatorKind): readonly OperatorEntity[];
27
26
  getIndexers(): readonly IndexerEntity[];
28
27
  getDereferenceOperators(): readonly DereferenceOperatorEntity[];
29
28
  getConstructors(): readonly ConstructorEntity[];
30
29
  getDestructors(): readonly DestructorEntity[];
31
- getUnaryOperators(): readonly UnaryOperatorEntity[];
32
- getUnaryOperatorsByKind(kind: UnaryOperatorKind): readonly UnaryOperatorEntity[];
33
- getBinaryOperators(): readonly BinaryOperatorEntity[];
34
- getBinaryOperatorsByKind(kind: BinaryOperatorKind): readonly BinaryOperatorEntity[];
35
30
  }
36
31
  export type NamedTypeMemberEntity = TypeVariableEntity | TypeMethodEntity;
@@ -28,6 +28,5 @@ export declare class SourceTypeExtensionEntity implements TypeExtensionEntity {
28
28
  getDefinition(): TypeExtensionEntityDefinition;
29
29
  isHidden(): EntityHidingLevel | undefined;
30
30
  getTags(): readonly Tag[];
31
- private enumerateOwnMembers;
32
31
  }
33
32
  export {};
@@ -3,7 +3,7 @@ import { Analyzer } from '../analysis/index.js';
3
3
  import { Lazy, Name } from '../common/index.js';
4
4
  import { EnumerationVariableDeclaration, ErrorVariableDeclaration, LocalVariableDeclaration, MethodLiteral, PackageVariableDeclaration, PackageVariableGetterDeclaration, PackageVariableSetterDeclaration, ParameterDeclaration, SetterParameterDeclaration, TypeVariableDeclaration, TypeVariableGetterDeclaration, TypeVariableSetterDeclaration } from '../tree/index.js';
5
5
  import * as types from '../types/index.js';
6
- import type { Entity, IndexerEntity, PackageEntity } from './index.js';
6
+ import type { Entity, IndexerEntity, OperatorEntity, PackageEntity } from './index.js';
7
7
  import { Entity as ActualEntity, ConstructorEntity, DefinitionKind, DestructorEntity, EntityHidingLevel, EntityKind, GetterEntity, MethodEntity, MethodTypeEntity, SetterEntity, TypeMemberEntityContainer } from './index.js';
8
8
  export type VariableEntity = PackageVariableEntity | TypeVariableEntity | ParameterVariableEntity | LocalVariableEntity;
9
9
  export interface PackageVariableEntity extends IVariableEntity {
@@ -53,7 +53,7 @@ export declare namespace ParameterVariableEntityContainer {
53
53
  constructor(entityContainingMethod: ActualEntity);
54
54
  }
55
55
  }
56
- export type EntityContainingValueParameter = MethodEntity | IndexerEntity | ConstructorEntity | DestructorEntity | MethodTypeEntity | SetterEntity;
56
+ export type EntityContainingValueParameter = MethodEntity | IndexerEntity | ConstructorEntity | DestructorEntity | MethodTypeEntity | SetterEntity | OperatorEntity;
57
57
  export declare function isEntityContainingValueParameter(entity: Entity): entity is EntityContainingValueParameter;
58
58
  export type VariableEntityDefinition = {
59
59
  kind: DefinitionKind.Source;
@@ -6,19 +6,17 @@ import { GetterEntity } from './GetterEntity.js';
6
6
  import { IndexerEntity } from './IndexerEntity.js';
7
7
  import { MethodEntity, PackageMethodEntity, TypeMethodEntity } from './MethodEntity.js';
8
8
  import { AnonymousMethodTypeEntity, MethodTypeEntity, PackageMethodTypeEntity } from './MethodTypeEntity.js';
9
+ import { OperatorEntity } from './OperatorEntity.js';
9
10
  import { PackageAliasEntity } from './PackageAliasEntity.js';
10
11
  import { PackageEntity } from './PackageEntity.js';
11
12
  import { SetterEntity } from './SetterEntity.js';
12
13
  import { AnonymousStructuredTypeEntity, PackageStructuredTypeEntity, StructuredTypeEntity } from './StructuredTypeEntity.js';
13
14
  import { TypeExtensionEntity } from './TypeExtensionEntity.js';
14
15
  import { TypeParameterEntity } from './TypeParameterEntity.js';
15
- import { UnaryOperatorEntity } from './UnaryOperatorEntity.js';
16
16
  import { PackageVariableEntity, TypeVariableEntity, VariableEntity } from './VariableEntity.js';
17
17
  import { VariantEntity } from './VariantEntity.js';
18
18
  import { AnonymousVariantTypeEntity, PackageVariantTypeEntity, VariantTypeEntity } from './VariantTypeEntity.js';
19
- import { BinaryOperatorEntity } from './index.js';
20
19
  export * from './AliasTypeEntity.js';
21
- export * from './BinaryOperatorEntity.js';
22
20
  export * from './ConstructorEntity.js';
23
21
  export * from './DereferenceOperatorEntity.js';
24
22
  export * from './DestructorEntity.js';
@@ -29,7 +27,7 @@ export * from './IndexerEntity.js';
29
27
  export * from './MethodEntity.js';
30
28
  export * from './MethodTypeEntity.js';
31
29
  export * from './OperatorEntity.js';
32
- export { binaryOperatorKindByTokenText, OperatorKind, operatorKindByKeywordTextByPackageLocale, unaryOperatorKindByTokenText } from './OperatorKind.js';
30
+ export * from './OperatorKind.js';
33
31
  export * from './PackageAliasEntity.js';
34
32
  export * from './PackageEntity.js';
35
33
  export * from './SetterEntity.js';
@@ -38,7 +36,6 @@ export * from './SubstitutionApplicationMode.js';
38
36
  export * from './TypeExtensionEntity.js';
39
37
  export * from './TypeMemberContainer.js';
40
38
  export * from './TypeParameterEntity.js';
41
- export * from './UnaryOperatorEntity.js';
42
39
  export * from './VariableEntity.js';
43
40
  export * from './VariantEntity.js';
44
41
  export * from './VariantTypeEntity.js';
@@ -63,13 +60,11 @@ export declare const enum EntityKind {
63
60
  StructuredType = 12,
64
61
  PackageAlias = 13,
65
62
  AliasType = 14,
66
- UnaryOperator = 15,
67
- BinaryOperator = 16,
68
- Operator = 17,
69
- Package = 18,
70
- TypeExtension = 19
63
+ Operator = 15,
64
+ Package = 16,
65
+ TypeExtension = 17
71
66
  }
72
- export type Entity = PackageEntity | VariableEntity | VariantEntity | VariantTypeEntity | GetterEntity | SetterEntity | MethodEntity | TypeParameterEntity | IndexerEntity | DereferenceOperatorEntity | ConstructorEntity | DestructorEntity | MethodTypeEntity | StructuredTypeEntity | PackageAliasEntity | AliasTypeEntity | TypeExtensionEntity | UnaryOperatorEntity | BinaryOperatorEntity;
67
+ export type Entity = PackageEntity | VariableEntity | VariantEntity | VariantTypeEntity | GetterEntity | SetterEntity | MethodEntity | TypeParameterEntity | OperatorEntity | IndexerEntity | DereferenceOperatorEntity | ConstructorEntity | DestructorEntity | MethodTypeEntity | StructuredTypeEntity | PackageAliasEntity | AliasTypeEntity | TypeExtensionEntity;
73
68
  export type TypeEntity = MethodTypeEntity | StructuredTypeEntity | TypeParameterEntity | VariantTypeEntity | AliasTypeEntity;
74
69
  export type PackageTypeEntity = PackageMethodTypeEntity | PackageStructuredTypeEntity | PackageVariantTypeEntity | AliasTypeEntity;
75
70
  export declare function isPackageTypeEntity(entity: TypeEntity): entity is PackageTypeEntity;
@@ -83,7 +78,7 @@ export declare function isPackageMemberEntity(entity: Entity): entity is Package
83
78
  export type NamedPackageMemberEntity = PackageVariableEntity | PackageMethodEntity | PackageTypeEntity;
84
79
  export type EntityWithTags = AliasTypeEntity | ConstructorEntity | DestructorEntity | IndexerEntity | DereferenceOperatorEntity | MethodEntity | MethodTypeEntity | StructuredTypeEntity | VariableEntity | VariantEntity | VariantTypeEntity | GetterEntity | SetterEntity;
85
80
  export declare function isEntityWithTags(entity: Entity): entity is EntityWithTags;
86
- export type TypeMemberEntity = TypeVariableEntity | TypeMethodEntity | ConstructorEntity | DestructorEntity | IndexerEntity | DereferenceOperatorEntity | UnaryOperatorEntity | BinaryOperatorEntity;
81
+ export type TypeMemberEntity = TypeVariableEntity | TypeMethodEntity | OperatorEntity | ConstructorEntity | DestructorEntity | IndexerEntity | DereferenceOperatorEntity;
87
82
  export declare function isTypeMemberEntity(entity: Entity): entity is TypeMemberEntity;
88
83
  export type AnonymousTypeEntity = AnonymousStructuredTypeEntity | AnonymousMethodTypeEntity | AnonymousVariantTypeEntity;
89
84
  export declare function isAnonymousTypeEntity(entity: Entity): entity is AnonymousTypeEntity;
@@ -1,7 +1,7 @@
1
- import { PackageLocale } from '../common/index.js';
1
+ import { PackageDialect, PackageLocale } from '../common/index.js';
2
2
  import * as tree from '../tree/green/index.js';
3
3
  export declare class Parser {
4
4
  private readonly _parser;
5
- constructor(text: string, locale?: PackageLocale);
5
+ constructor(text: string, locale?: PackageLocale, dialect?: PackageDialect);
6
6
  parse(): tree.SourceFile;
7
7
  }
@@ -3,7 +3,7 @@ import { Uri } from '../common/index.js';
3
3
  export declare class FileSystemTree extends ObservableObject implements ReadonlyFileSystemTree {
4
4
  private readonly _handleInconsistentRequestsWithoutErrors;
5
5
  private readonly _deleteEmptyDirectories;
6
- private readonly _rootByScheme;
6
+ private readonly _rootsByScheme;
7
7
  private _version;
8
8
  private _createdDirectoriesVersion;
9
9
  private _deletedDirectoriesVersion;
@@ -1,4 +1,5 @@
1
1
  import { Analyzer } from '../analysis/index.js';
2
+ import { Range } from '../common/index.js';
2
3
  import { SourceFile } from '../project/index.js';
3
4
  export declare class CompletionService {
4
5
  private readonly _cache;
@@ -45,6 +46,7 @@ export declare class CompletionService {
45
46
  private getPackageImportCompletionItemInfos;
46
47
  private getTopLevelAliasListCompletionItemInfos;
47
48
  private getTypeAliasMemberListItemInfos;
49
+ private getOperatorNameItemInfos;
48
50
  private mergeOverloadedMethods;
49
51
  private removeCompletionItemsWithDuplicateLabels;
50
52
  private convertCompletionItemInfos;
@@ -55,40 +57,44 @@ export declare class CompletionItem {
55
57
  readonly kind: CompletionItemKind;
56
58
  readonly details: string | undefined;
57
59
  readonly insertText: string | undefined;
60
+ readonly editRange: Range | undefined;
58
61
  readonly sortText: string | undefined;
59
62
  readonly cacheId: number;
60
63
  readonly indexInCache: number;
61
- constructor(label: string, kind: CompletionItemKind, details: string | undefined, insertText: string | undefined, sortText: string | undefined, cacheId: number, indexInCache: number);
64
+ constructor(label: string, kind: CompletionItemKind, details: string | undefined, insertText: string | undefined, editRange: Range | undefined, sortText: string | undefined, cacheId: number, indexInCache: number);
62
65
  }
63
66
  export declare const enum CompletionItemKind {
64
67
  PackageNameSegment = 0,
65
68
  PackageAlias = 1,
66
69
  TypeVariable = 2,
67
70
  TypeMethod = 3,
68
- TypeIndexer = 4,
69
- TypeConstructor = 5,
70
- PackageVariable = 6,
71
- PackageMethod = 7,
72
- LocalVariable = 8,
73
- ParameterVariable = 9,
74
- NestedMethod = 10,
75
- Variant = 11,
76
- RefObjectType = 12,
77
- PlainObjectType = 13,
78
- AspectType = 14,
79
- VariantType = 15,
80
- TypeParameter = 16,
81
- MethodType = 17,
82
- AliasType = 18,
83
- InvalidType = 19,
84
- Keyword = 20,
85
- TargetSignatureParameter = 21
71
+ Operator = 4,
72
+ TypeIndexer = 5,
73
+ TypeConstructor = 6,
74
+ PackageVariable = 7,
75
+ PackageMethod = 8,
76
+ LocalVariable = 9,
77
+ ParameterVariable = 10,
78
+ NestedMethod = 11,
79
+ Variant = 12,
80
+ RefObjectType = 13,
81
+ PlainObjectType = 14,
82
+ AspectType = 15,
83
+ VariantType = 16,
84
+ TypeParameter = 17,
85
+ MethodType = 18,
86
+ AliasType = 19,
87
+ InvalidType = 20,
88
+ Keyword = 21,
89
+ TargetSignatureParameter = 22,
90
+ OperatorName = 23
86
91
  }
87
92
  export type ResolutionResult = ResolutionResult_item | ResolutionResult_notInCache;
88
93
  export declare class ResolutionResult_item {
89
94
  readonly value: CompletionItem;
95
+ readonly sourceFile: SourceFile;
90
96
  readonly kind = "item";
91
- constructor(value: CompletionItem);
97
+ constructor(value: CompletionItem, sourceFile: SourceFile);
92
98
  }
93
99
  export declare class ResolutionResult_notInCache {
94
100
  readonly kind = "not-in-cache";
@@ -4,7 +4,7 @@ import { SubstitutedMethod } from '../analysis/SubstitutedMethod.js';
4
4
  import { Analyzer } from '../analysis/index.js';
5
5
  import { HelperPhraseKind } from '../common/HelperPhrases.js';
6
6
  import { PackageDialect, PackageLocale } from '../common/index.js';
7
- import { AliasTypeEntity, BinaryOperatorEntity, BinaryOperatorKind, ConstructorEntity, DestructorEntity, Entity, GetterEntity, IndexerEntity, MethodEntity, MethodTypeEntity, NamedTypeEntity, PackageAliasEntity, PackageEntity, PackageMethodTypeEntity, PackageStructuredTypeEntity, PackageVariantTypeEntity, DereferenceOperatorEntity, SetterEntity, StructuredTypeEntity, TypeEntity, TypeExtensionEntity, TypeParameterEntity, UnaryOperatorEntity, UnaryOperatorKind, VariableEntity, VariantEntity, VariantTypeEntity } from '../entities/index.js';
7
+ import { AliasTypeEntity, ConstructorEntity, DereferenceOperatorEntity, DestructorEntity, Entity, GetterEntity, IndexerEntity, MethodEntity, MethodTypeEntity, NamedTypeEntity, OperatorEntity, OperatorKind, PackageAliasEntity, PackageEntity, PackageMethodTypeEntity, PackageStructuredTypeEntity, PackageVariantTypeEntity, SetterEntity, StructuredTypeEntity, TypeEntity, TypeExtensionEntity, TypeParameterEntity, VariableEntity, VariantEntity, VariantTypeEntity } from '../entities/index.js';
8
8
  import { KeywordKind } from '../tree/index.js';
9
9
  import * as types from '../types/index.js';
10
10
  export declare class DisplayService {
@@ -23,6 +23,9 @@ export declare class DisplayService {
23
23
  getValueParameterDeclarationDisplayParts(parameter: ValueParameterDeclaration, typeDisplayOptions?: TypeDisplayOptions): ValueParameterDeclarationDisplayParts;
24
24
  displayMethodDeclaration(method: MethodDeclaration): string;
25
25
  getMethodDeclarationDisplayParts(method: MethodDeclaration): MethodDeclarationDisplayParts;
26
+ displayOperatorDeclaration(operator: OperatorDeclaration): string;
27
+ getOperatorDeclarationDisplayParts(operator: OperatorDeclaration): OperatorDeclarationDisplayParts;
28
+ displayOperatorKind(kind: OperatorKind, locale: PackageLocale): string;
26
29
  displayConstructorDeclaration(constructor: ConstructorDeclaration): string;
27
30
  getConstructorDeclarationDisplayParts(constructor: ConstructorDeclaration): ConstructorDeclarationDisplayParts;
28
31
  displayDestructorDeclaration(constructor: DestructorDeclaration): string;
@@ -35,10 +38,6 @@ export declare class DisplayService {
35
38
  getTypeDeclarationDisplayParts(type: TypeDeclaration): TypeDeclarationDisplayParts;
36
39
  getTypeDeclarationEntityDisplayParts(entity: TypeEntity, localization: Localization): TypeDeclarationDisplayParts;
37
40
  displayTypeParameterValue(value: TypeParameterValue): string;
38
- displayUnaryOperatorDeclaration(operator: UnaryOperatorDeclaration): string;
39
- displayBinaryOperatorDeclaration(operator: BinaryOperatorDeclaration): string;
40
- displayBinaryOperatorKind(operatorKind: BinaryOperatorKind): string;
41
- displayUnaryOperatorKind(operatorKind: UnaryOperatorKind): string;
42
41
  displayGetterEntity(entity: GetterEntity): string;
43
42
  displaySetterEntity(entity: SetterEntity): string;
44
43
  displayTypeExtensionEntity(entity: TypeExtensionEntity): string;
@@ -556,57 +555,36 @@ interface INamedType {
556
555
  getEntity(): NamedTypeEntity;
557
556
  getTypeParameters(): readonly TypeParameterEntity[];
558
557
  }
559
- export type UnaryOperatorDeclaration = UnaryOperatorDeclaration_entity | UnaryOperatorDeclaration_typeMember;
560
- export declare class UnaryOperatorDeclaration_entity implements IUnaryOperatorDeclaration {
561
- readonly operator: UnaryOperatorEntity;
562
- readonly kind = "entity";
563
- constructor(operator: UnaryOperatorEntity);
564
- getOperatorKind(): UnaryOperatorKind;
565
- getOperandType(): types.Type;
566
- getResultType(): types.Type;
567
- getTypeMemberContainer(): TypeMemberContainer | undefined;
568
- }
569
- export declare class UnaryOperatorDeclaration_typeMember implements IUnaryOperatorDeclaration {
570
- readonly operator: types.UnaryOperator;
571
- readonly kind = "typeMember";
572
- constructor(operator: types.UnaryOperator);
573
- getOperatorKind(): UnaryOperatorKind;
574
- getOperandType(): types.Type;
575
- getResultType(): types.Type;
576
- getTypeMemberContainer(analyzer: Analyzer | undefined): TypeMemberContainer | undefined;
577
- }
578
- interface IUnaryOperatorDeclaration {
579
- getOperatorKind(): UnaryOperatorKind;
580
- getOperandType(): types.Type;
581
- getResultType(): types.Type;
582
- getTypeMemberContainer(analyzer: Analyzer | undefined): TypeMemberContainer | undefined;
583
- }
584
- export type BinaryOperatorDeclaration = BinaryOperatorDeclaration_entity | BinaryOperatorDeclaration_typeMember;
585
- export declare class BinaryOperatorDeclaration_entity implements IBinaryOperatorDeclaration {
586
- readonly operator: BinaryOperatorEntity;
558
+ export type OperatorDeclaration = OperatorDeclaration_entity | OperatorDeclaration_typeMember;
559
+ export declare class OperatorDeclaration_entity implements IOperatorDeclaration {
560
+ readonly operator: OperatorEntity;
561
+ readonly localization: Localization;
587
562
  readonly kind = "entity";
588
- constructor(operator: BinaryOperatorEntity);
589
- getOperatorKind(): BinaryOperatorKind;
590
- getLeftOperandType(): types.Type;
591
- getRightOperandType(): types.Type;
592
- getResultType(): types.Type;
563
+ private readonly _valueParameters;
564
+ constructor(operator: OperatorEntity, localization: Localization);
565
+ getLocalization(): Localization;
566
+ getOperatorKind(): OperatorKind;
567
+ getValueParameters(): readonly ValueParameterDeclaration[];
568
+ getReturnType(): types.Type;
593
569
  getTypeMemberContainer(): TypeMemberContainer | undefined;
594
570
  }
595
- export declare class BinaryOperatorDeclaration_typeMember implements IBinaryOperatorDeclaration {
596
- readonly operator: types.BinaryOperator;
571
+ export declare class OperatorDeclaration_typeMember implements IOperatorDeclaration {
572
+ readonly operator: types.Operator;
573
+ readonly localization: Localization;
597
574
  readonly kind = "type-member";
598
- constructor(operator: types.BinaryOperator);
599
- getOperatorKind(): BinaryOperatorKind;
600
- getLeftOperandType(): types.Type;
601
- getRightOperandType(): types.Type;
602
- getResultType(): types.Type;
575
+ private readonly _valueParameters;
576
+ constructor(operator: types.Operator, localization: Localization);
577
+ getLocalization(): Localization;
578
+ getOperatorKind(): OperatorKind;
579
+ getValueParameters(): readonly ValueParameterDeclaration[];
580
+ getReturnType(): types.Type;
603
581
  getTypeMemberContainer(analyzer: Analyzer | undefined): TypeMemberContainer | undefined;
604
582
  }
605
- interface IBinaryOperatorDeclaration {
606
- getOperatorKind(): BinaryOperatorKind;
607
- getLeftOperandType(): types.Type;
608
- getRightOperandType(): types.Type;
609
- getResultType(): types.Type;
583
+ interface IOperatorDeclaration {
584
+ getLocalization(): Localization;
585
+ getOperatorKind(): OperatorKind;
586
+ getValueParameters(): readonly ValueParameterDeclaration[];
587
+ getReturnType(): types.Type;
610
588
  getTypeMemberContainer(analyzer: Analyzer | undefined): TypeMemberContainer | undefined;
611
589
  }
612
590
  export type TypeUsage = StructuredTypeUsage | VariantTypeUsage | MethodTypeUsage | AliasTypeUsage | ParameterTypeUsage | UnionTypeUsage | UnresolvedTypeUsage;
@@ -758,6 +736,20 @@ export declare class MethodDeclarationDisplayParts {
758
736
  constructor(asyncKeywordWithWhitespace: string, functionKeyword: string, whitespaceAfterFunctionKeyword: string, container: string, name: string, typeParametersStart: string, typeParameters: readonly string[], typeParameterSeparator: string, typeParametersEnd: string, valueParametersStart: string, valueParameters: readonly ValueParameterDeclarationDisplayParts[], valueParameterSeparator: string, valueParametersEnd: string, returnTypeAnnotationColon: string, returnType: string);
759
737
  toString(): string;
760
738
  }
739
+ export declare class OperatorDeclarationDisplayParts {
740
+ readonly functionKeyword: string;
741
+ readonly whitespaceAfterFunctionKeyword: string;
742
+ readonly container: string;
743
+ readonly name: string;
744
+ readonly valueParametersStart: string;
745
+ readonly valueParameters: readonly ValueParameterDeclarationDisplayParts[];
746
+ readonly valueParameterSeparator: string;
747
+ readonly valueParametersEnd: string;
748
+ readonly returnTypeAnnotationColon: string;
749
+ readonly returnType: string;
750
+ constructor(functionKeyword: string, whitespaceAfterFunctionKeyword: string, container: string, name: string, valueParametersStart: string, valueParameters: readonly ValueParameterDeclarationDisplayParts[], valueParameterSeparator: string, valueParametersEnd: string, returnTypeAnnotationColon: string, returnType: string);
751
+ toString(): string;
752
+ }
761
753
  export declare class ValueParameterDeclarationDisplayParts {
762
754
  readonly name: string;
763
755
  readonly optionalityText: string;
@@ -52,7 +52,7 @@ export declare class ReferenceNodeSemanticInfo {
52
52
  get firstBetterTargetWithFallback(): WithLocalization<ReferenceTarget>;
53
53
  constructor(targets: ReadonlyNonEmptyArray<WithLocalization<ReferenceTarget>>, isAmbiguous: boolean, betterTargets?: ReadonlyNonEmptyArray<WithLocalization<ReferenceTarget>> | undefined);
54
54
  }
55
- export type ReferenceTarget = EntityReferenceTarget | TypeVariableReferenceTarget | TypeValueParameterReferenceTarget | TypeConstructorReferenceTarget | TypeUnaryOperatorReferenceTarget | TypeBinaryOperatorReferenceTarget | TypeDereferenceOperatorReferenceTarget | AccessedMethodReferenceTarget | TypeIndexerReferenceTarget | MatchResultValueParameterReferenceTarget | PackageReferenceTarget | TypeContextReferenceTarget;
55
+ export type ReferenceTarget = EntityReferenceTarget | TypeVariableReferenceTarget | TypeValueParameterReferenceTarget | TypeConstructorReferenceTarget | OperatorReferenceTarget | TypeDereferenceOperatorReferenceTarget | AccessedMethodReferenceTarget | TypeIndexerReferenceTarget | MatchResultValueParameterReferenceTarget | PackageReferenceTarget | TypeContextReferenceTarget;
56
56
  export declare class EntityReferenceTarget {
57
57
  readonly entity: ReferencedEntity;
58
58
  readonly accessKind: AccessKind;
@@ -77,16 +77,6 @@ export declare class TypeConstructorReferenceTarget {
77
77
  readonly kind = "type-constructor";
78
78
  constructor(constructor_: types.Constructor);
79
79
  }
80
- export declare class TypeUnaryOperatorReferenceTarget {
81
- readonly operator: types.UnaryOperator;
82
- readonly kind = "type-unary-operator";
83
- constructor(operator: types.UnaryOperator);
84
- }
85
- export declare class TypeBinaryOperatorReferenceTarget {
86
- readonly operator: types.BinaryOperator;
87
- readonly kind = "type-binary-operator";
88
- constructor(operator: types.BinaryOperator);
89
- }
90
80
  export declare class TypeDereferenceOperatorReferenceTarget {
91
81
  readonly operator: types.DereferenceOperator;
92
82
  readonly accessKind: AccessKind;
@@ -98,6 +88,11 @@ export declare class AccessedMethodReferenceTarget {
98
88
  readonly kind = "accessed-method";
99
89
  constructor(method: AccessedMethod);
100
90
  }
91
+ export declare class OperatorReferenceTarget {
92
+ readonly operator: types.Operator;
93
+ readonly kind = "operator";
94
+ constructor(operator: types.Operator);
95
+ }
101
96
  export declare class MatchResultValueParameterReferenceTarget {
102
97
  readonly parameter: MatchResultValueParameter;
103
98
  readonly accessKind: AccessKind;
@@ -29,12 +29,13 @@ export declare const enum SemanticTokenKind {
29
29
  Variant = 3,
30
30
  PackageMethod = 4,
31
31
  NestedMethod = 5,
32
- TypeMethod = 6
32
+ TypeMethod = 6,
33
+ Operator = 7
33
34
  }
34
- export declare const supportedSemanticTokens: SemanticTokenKind[];
35
+ export declare const supportedSemanticTokens: readonly [SemanticTokenKind.MethodBlockLiteralParameter, SemanticTokenKind.SpecialVariable, SemanticTokenKind.SpecialMethod, SemanticTokenKind.Variant, SemanticTokenKind.PackageMethod, SemanticTokenKind.NestedMethod, SemanticTokenKind.TypeMethod, SemanticTokenKind.Operator];
35
36
  export declare const enum SemanticTokenModifierFlag {
36
37
  Const = 1,
37
38
  Declaration = 2,
38
39
  Capitalized = 4
39
40
  }
40
- export declare const supportedSemanticTokenModifiers: SemanticTokenModifierFlag[];
41
+ export declare const supportedSemanticTokenModifiers: readonly [SemanticTokenModifierFlag.Const, SemanticTokenModifierFlag.Declaration, SemanticTokenModifierFlag.Capitalized];