@artel/artc 0.6.25216 → 0.6.25218

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 (108) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +12 -50
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +1056 -1060
  5. package/build/{chunk-6RYP5SET.js → chunk-FI6LW2RD.js} +5 -4
  6. package/build/{chunk-TJG64G2K.js → chunk-SK7ZBC3X.js} +16737 -15766
  7. package/build/{chunk-O7AXOZXA.js → chunk-TQDMVKTN.js} +13 -5
  8. package/build/types/analysis/AnalyzedTranslationPackage.d.ts +4 -26
  9. package/build/types/analysis/Analyzer.d.ts +162 -200
  10. package/build/types/analysis/{CallArgumentToParameterMatchResult.d.ts → ArgumentToParameterMatchResult.d.ts} +6 -7
  11. package/build/types/analysis/{CallArgumentsToParametersMatcher.d.ts → ArgumentsToParametersMatcher.d.ts} +14 -14
  12. package/build/types/analysis/ConstructorOverloadResolver.d.ts +1 -1
  13. package/build/types/analysis/DereferenceExpressionMeaning.d.ts +3 -3
  14. package/build/types/analysis/DiagnosticCollector.d.ts +3 -0
  15. package/build/types/analysis/FindModifier.d.ts +2 -0
  16. package/build/types/analysis/IdentifierExpressionMeaning.d.ts +14 -12
  17. package/build/types/analysis/IndexedAccessExpressionMeaning.d.ts +12 -7
  18. package/build/types/analysis/LocalizationContext.d.ts +4 -5
  19. package/build/types/analysis/Lookup.d.ts +8 -7
  20. package/build/types/analysis/ModifierFlags.d.ts +16 -0
  21. package/build/types/analysis/NamedTypeSpecifierResolver.d.ts +0 -1
  22. package/build/types/analysis/NodeTypeUtils.d.ts +1 -0
  23. package/build/types/analysis/OperationOverloadResolver.d.ts +2 -2
  24. package/build/types/analysis/OverloadResolver.d.ts +4 -4
  25. package/build/types/analysis/PackageMemberLookup.d.ts +5 -6
  26. package/build/types/analysis/PropertyAccessExpressionMeaning.d.ts +18 -16
  27. package/build/types/analysis/Scope.d.ts +21 -116
  28. package/build/types/analysis/SemanticContext.d.ts +16 -6
  29. package/build/types/analysis/SemanticContextBuilder.d.ts +1 -1
  30. package/build/types/analysis/SourceFileMembers.d.ts +12 -89
  31. package/build/types/analysis/TagMeaning.d.ts +57 -9
  32. package/build/types/analysis/Tags.d.ts +2 -2
  33. package/build/types/analysis/TypeMemberLookup.d.ts +15 -15
  34. package/build/types/analysis/TypeOverloadResolver.d.ts +1 -1
  35. package/build/types/analysis/WellKnownDeclarations.d.ts +1 -0
  36. package/build/types/analysis/index.d.ts +1 -1
  37. package/build/types/api/Api.d.ts +2 -6
  38. package/build/types/diagnostic/DiagnosticCode.d.ts +111 -103
  39. package/build/types/emitter/{EmitterGeneratedDeclarationKind.d.ts → EmitPhaseName.d.ts} +1 -44
  40. package/build/types/emitter/EmitterContext.d.ts +13 -1
  41. package/build/types/emitter/Entities.d.ts +58 -16
  42. package/build/types/emitter/EntityMap.d.ts +1 -3
  43. package/build/types/emitter/IrBuilder.d.ts +6 -2
  44. package/build/types/emitter/IrToJs.d.ts +5 -5
  45. package/build/types/emitter/Transformer.d.ts +20 -13
  46. package/build/types/emitter/ir/EmitOptions.d.ts +163 -0
  47. package/build/types/emitter/ir/Nodes.d.ts +213 -185
  48. package/build/types/emitter/ir/index.d.ts +1 -2
  49. package/build/types/emitter/ir/types.d.ts +4 -3
  50. package/build/types/entities/AliasTypeEntity.d.ts +9 -5
  51. package/build/types/entities/ConstructorEntity.d.ts +2 -0
  52. package/build/types/entities/DereferenceOperatorEntity.d.ts +9 -0
  53. package/build/types/entities/DestructorEntity.d.ts +2 -0
  54. package/build/types/entities/GetterEntity.d.ts +8 -0
  55. package/build/types/entities/IndexerEntity.d.ts +9 -0
  56. package/build/types/entities/MethodEntity.d.ts +9 -5
  57. package/build/types/entities/MethodTypeEntity.d.ts +18 -5
  58. package/build/types/entities/OperatorEntity.d.ts +5 -3
  59. package/build/types/entities/PackageEntity.d.ts +3 -3
  60. package/build/types/entities/PackageMembers.d.ts +4 -90
  61. package/build/types/entities/SetterEntity.d.ts +8 -0
  62. package/build/types/entities/StructuredTypeEntity.d.ts +22 -9
  63. package/build/types/entities/TypeEntity.d.ts +15 -0
  64. package/build/types/entities/TypeExtensionEntity.d.ts +2 -0
  65. package/build/types/entities/TypeParameterEntity.d.ts +12 -7
  66. package/build/types/entities/VariableEntity.d.ts +50 -41
  67. package/build/types/entities/VariantTypeEntity.d.ts +18 -11
  68. package/build/types/entities/index.d.ts +17 -25
  69. package/build/types/executor/Compiler.d.ts +1 -0
  70. package/build/types/executor/NodeCompiler.d.ts +1 -0
  71. package/build/types/parser/CharacterCodes.d.ts +8 -0
  72. package/build/types/parser/ReservedIdentifierDictionary.d.ts +1 -2
  73. package/build/types/parser/Scanner.d.ts +0 -6
  74. package/build/types/parser/UnescapeText.d.ts +1 -1
  75. package/build/types/project/FileSystemTree.d.ts +2 -2
  76. package/build/types/services/CompletionService.d.ts +4 -1
  77. package/build/types/services/DisplayService.d.ts +218 -163
  78. package/build/types/services/NodeSemanticInfo.d.ts +7 -5
  79. package/build/types/services/signature-help/SignatureWithValueParameters.d.ts +8 -24
  80. package/build/types/services/signature-help/TypeParameterSignatureHelpProvider.d.ts +1 -0
  81. package/build/types/services/source-generation/EntityToSyntax.d.ts +1 -1
  82. package/build/types/services/source-generation/SourceGenerationService.d.ts +2 -2
  83. package/build/types/services/workspace/ClientTrackedSourceFiles.d.ts +5 -5
  84. package/build/types/services/workspace/CompilationController.d.ts +3 -3
  85. package/build/types/services/workspace/FileSystemTreeProviderBasedOnWatchedFileSystem.d.ts +4 -4
  86. package/build/types/services/workspace/ManuallyUpdatedFileSystemTreeProvider.d.ts +4 -4
  87. package/build/types/services/workspace/Workspace.d.ts +3 -3
  88. package/build/types/services/workspace/WorkspaceFiles.d.ts +7 -7
  89. package/build/types/tree/KeywordKind.d.ts +37 -37
  90. package/build/types/tree/NodeKind.d.ts +37 -39
  91. package/build/types/tree/green/Nodes.d.ts +57 -80
  92. package/build/types/tree/green/SyntaxFactory.d.ts +4 -5
  93. package/build/types/tree/green/SyntaxToCode.d.ts +1 -2
  94. package/build/types/tree/red/Nodes.d.ts +65 -93
  95. package/build/types/ts-interop/Entities.d.ts +77 -34
  96. package/build/types/ts-interop/TsPackageMembersCreator.d.ts +0 -1
  97. package/build/types/types/MethodType.d.ts +2 -2
  98. package/build/types/types/TypeMembers.d.ts +9 -0
  99. package/build/types/types/VariantType.d.ts +2 -2
  100. package/package.json +2 -2
  101. package/build/types/analysis/DereferencedVariableAccess.d.ts +0 -14
  102. package/build/types/analysis/IndexedAccess.d.ts +0 -14
  103. package/build/types/analysis/VariableAccess.d.ts +0 -14
  104. package/build/types/analysis/VariantLookup.d.ts +0 -20
  105. package/build/types/emitter/ir/LoweringOptions.d.ts +0 -34
  106. package/build/types/emitter/ir/LoweringState.d.ts +0 -25
  107. package/build/types/entities/VariantEntity.d.ts +0 -31
  108. package/build/types/entities/Variants.d.ts +0 -10
@@ -1,7 +1,6 @@
1
1
  export * from './AccessedEntities.js';
2
2
  export * from './ComputedAccess.js';
3
- export * from './LoweringOptions.js';
4
- export * from './LoweringState.js';
3
+ export * from './EmitOptions.js';
5
4
  export * from './Nodes.js';
6
5
  export * from './SourceLocation.js';
7
6
  export * from './types.js';
@@ -1,9 +1,10 @@
1
1
  import * as ir from './Nodes.js';
2
- export type Node = ir.ArrayLiteral | ir.AsExpression | ir.AssertionExpression | ir.AssumptionExpression | ir.AssignmentExpression | ir.AssignmentStatement | ir.BaseConstructorCallExpression | ir.BinaryExpression | ir.BlockStatement | ir.BooleanLiteral | ir.BreakLoopStatement | ir.CallExpression | ir.CharLiteral | ir.CommaExpression | ir.ConstructorCallExpression | ir.ContinueLoopStatement | ir.DisposeStatement | ir.RunStatement | ir.NoneLiteral | ir.EmptyStatement | ir.ErrorStatement | ir.ExpressionStatement | ir.FinallyClause | ir.ForStatement | ir.PackageMethodDeclaration | ir.PackageTypeDeclaration | ir.PackageVariableDeclaration | ir.PackageVariableGetterDeclaration | ir.PackageVariableSetterDeclaration | ir.PackageVariantTypeDeclaration | ir.HelperMethodCallExpression | ir.IfStatement | ir.IndexedAccessExpression | ir.InlineJsExpression | ir.TypeMethodAccessExpression | ir.TypeVariableAccessExpression | ir.IntegerLiteral | ir.IsExpression | ir.JsIndexedAccessExpression | ir.NestedMethodDeclaration | ir.NestedMethodDeclarationStatement | ir.LocalVariableDeclaration | ir.LocalVariableDeclarationStatement | ir.NumericLiteral | ir.OnErrorClause | ir.MethodAccessExpression | ir.MethodLiteral | ir.PrefixUnaryExpression | ir.MeasureLiteral | ir.ReferenceExpression | ir.LoopStatement | ir.Package | ir.ReturnStatement | ir.TextLiteral | ir.TextTemplateLiteral | ir.TypeConstructorDeclaration | ir.TypeDestructorDeclaration | ir.TypeIndexedGetterDeclaration | ir.TypeIndexedSetterDeclaration | ir.TypeMethodDeclaration | ir.TypeVariableDeclaration | ir.TypeVariableGetterDeclaration | ir.TypeVariableSetterDeclaration | ir.SwitchStatement | ir.TernaryExpression | ir.ThisExpression | ir.TryCatchFinallyStatement | ir.TypeAccessExpression | ir.ValueParameterDeclaration | ir.VariableAccessExpression | ir.VariantAccessExpression | ir.VariantDeclaration | ir.WhileStatement | ir.YieldStatement | ir.JsObjectLiteral | ir.JsObjectLiteralProperty | ir.JsPropertyAccessExpression | ir.JsFunctionLiteral | ir.JsTypeOfExpression | ir.JsInstanceOfExpression | ir.JsIdentifierExpression | ir.DereferenceExpression | ir.BaseExpression | ir.OwnConstructorCallExpression | ir.EsModuleImportDirectiveStatement | ir.CjsModuleImportDirectiveStatement | ir.JsNamespaceDestructuringStatement | ir.TypeDereferencedVariableGetterDeclaration | ir.TypeDereferencedVariableSetterDeclaration;
2
+ export type Node = ir.ArrayLiteral | ir.AsExpression | ir.AssertionExpression | ir.AssumptionExpression | ir.AssignmentExpression | ir.AssignmentStatement | ir.BaseConstructorCallExpression | ir.BinaryExpression | ir.BlockStatement | ir.BooleanLiteral | ir.BreakLoopStatement | ir.CallExpression | ir.CharLiteral | ir.CommaExpression | ir.ConstructorCallExpression | ir.ContinueLoopStatement | ir.DisposeStatement | ir.RunStatement | ir.NoneLiteral | ir.EmptyStatement | ir.ErrorStatement | ir.ExpressionStatement | ir.FinallyClause | ir.ForStatement | ir.PackageMethodDeclaration | ir.PackageTypeDeclaration | ir.PackageVariableDeclaration | ir.PackageVariableGetterDeclaration | ir.PackageVariableSetterDeclaration | ir.PackageVariantTypeDeclaration | ir.IfStatement | ir.IndexedAccessExpression | ir.InlineJsExpression | ir.TypeMethodAccessExpression | ir.TypeVariableAccessExpression | ir.IntegerLiteral | ir.IsExpression | ir.JsIndexedAccessExpression | ir.NestedMethodDeclaration | ir.NestedMethodDeclarationStatement | ir.LocalVariableDeclaration | ir.LocalVariableDeclarationStatement | ir.NumericLiteral | ir.CatchClause | ir.MethodAccessExpression | ir.MethodLiteral | ir.PrefixUnaryExpression | ir.MeasureLiteral | ir.ReferenceExpression | ir.LoopStatement | ir.Package | ir.ReturnStatement | ir.TextLiteral | ir.TextTemplateLiteral | ir.TypeConstructorDeclaration | ir.TypeDestructorDeclaration | ir.TypeIndexedGetterDeclaration | ir.TypeIndexedSetterDeclaration | ir.TypeMethodDeclaration | ir.TypeVariableDeclaration | ir.ComputedTypeVariableDeclaration | ir.TypeVariableGetterDeclaration | ir.TypeVariableSetterDeclaration | ir.SwitchStatement | ir.TernaryExpression | ir.ThisExpression | ir.TryCatchFinallyStatement | ir.TypeAccessExpression | ir.ValueParameterDeclaration | ir.VariableAccessExpression | ir.VariantDeclaration | ir.WhileStatement | ir.YieldStatement | ir.JsObjectLiteral | ir.NamedJsObjectLiteralProperty | ir.SpreadJsObjectLiteralProperty | ir.JsPropertyAccessExpression | ir.JsFunctionLiteral | ir.JsTypeOfExpression | ir.JsInstanceOfExpression | ir.JsIdentifierExpression | ir.DereferenceExpression | ir.BaseExpression | ir.OwnConstructorCallExpression | ir.EsModuleImportDirectiveStatement | ir.CjsModuleImportDirectiveStatement | ir.JsNamespaceDestructuringStatement | ir.TypeDereferencedVariableGetterDeclaration | ir.TypeDereferencedVariableSetterDeclaration | ir.TextWithEntityName | ir.Argument | ir.Arguments | ir.Decorator;
3
3
  export type Declaration = ir.PackageMethodDeclaration | ir.PackageTypeDeclaration | ir.PackageVariableDeclaration | ir.PackageVariableGetterDeclaration | ir.PackageVariableSetterDeclaration | ir.PackageVariantTypeDeclaration | ir.NestedMethodDeclaration | ir.LocalVariableDeclaration | ir.TypeConstructorDeclaration | ir.TypeDestructorDeclaration | ir.TypeIndexedGetterDeclaration | ir.TypeIndexedSetterDeclaration | ir.TypeMethodDeclaration | ir.TypeVariableDeclaration | ir.TypeVariableGetterDeclaration | ir.TypeVariableSetterDeclaration | ir.ValueParameterDeclaration | ir.VariantDeclaration | ir.TypeDereferencedVariableGetterDeclaration | ir.TypeDereferencedVariableSetterDeclaration;
4
4
  export type Statement = ir.AssignmentStatement | ir.BlockStatement | ir.BreakLoopStatement | ir.ContinueLoopStatement | ir.DisposeStatement | ir.RunStatement | ir.EmptyStatement | ir.ErrorStatement | ir.ExpressionStatement | ir.ForStatement | ir.IfStatement | ir.NestedMethodDeclarationStatement | ir.LocalVariableDeclarationStatement | ir.LoopStatement | ir.ReturnStatement | ir.SwitchStatement | ir.TryCatchFinallyStatement | ir.WhileStatement | ir.YieldStatement | ir.EsModuleImportDirectiveStatement | ir.CjsModuleImportDirectiveStatement | ir.JsNamespaceDestructuringStatement;
5
- export type Expression = ir.ArrayLiteral | ir.AsExpression | ir.AssertionExpression | ir.AssumptionExpression | ir.AssignmentExpression | ir.BinaryExpression | ir.BooleanLiteral | ir.CallExpression | ir.CharLiteral | ir.CommaExpression | ir.ConstructorCallExpression | ir.NoneLiteral | ir.HelperMethodCallExpression | ir.IndexedAccessExpression | ir.InlineJsExpression | ir.TypeMethodAccessExpression | ir.TypeVariableAccessExpression | ir.IntegerLiteral | ir.IsExpression | ir.NumericLiteral | ir.MethodAccessExpression | ir.MethodLiteral | ir.PrefixUnaryExpression | ir.MeasureLiteral | ir.ReferenceExpression | ir.DereferenceExpression | ir.TextLiteral | ir.TextTemplateLiteral | ir.TernaryExpression | ir.ThisExpression | ir.TypeAccessExpression | ir.VariableAccessExpression | ir.VariantAccessExpression | ir.BaseConstructorCallExpression | ir.JsIndexedAccessExpression | ir.JsObjectLiteral | ir.JsPropertyAccessExpression | ir.JsFunctionLiteral | ir.JsTypeOfExpression | ir.JsInstanceOfExpression | ir.JsIdentifierExpression | ir.BaseExpression | ir.OwnConstructorCallExpression;
6
- export type TypeMemberDeclaration = ir.TypeVariableDeclaration | ir.TypeVariableGetterDeclaration | ir.TypeVariableSetterDeclaration | ir.TypeMethodDeclaration | ir.TypeConstructorDeclaration | ir.TypeDestructorDeclaration | ir.TypeIndexedGetterDeclaration | ir.TypeIndexedSetterDeclaration | ir.TypeDereferencedVariableGetterDeclaration | ir.TypeDereferencedVariableSetterDeclaration;
5
+ export type Expression = ir.ArrayLiteral | ir.AsExpression | ir.AssertionExpression | ir.AssumptionExpression | ir.AssignmentExpression | ir.BinaryExpression | ir.BooleanLiteral | ir.CallExpression | ir.CharLiteral | ir.CommaExpression | ir.ConstructorCallExpression | ir.NoneLiteral | ir.IndexedAccessExpression | ir.InlineJsExpression | ir.TypeMethodAccessExpression | ir.TypeVariableAccessExpression | ir.IntegerLiteral | ir.IsExpression | ir.NumericLiteral | ir.MethodAccessExpression | ir.MethodLiteral | ir.PrefixUnaryExpression | ir.MeasureLiteral | ir.ReferenceExpression | ir.DereferenceExpression | ir.TextLiteral | ir.TextWithEntityName | ir.TextTemplateLiteral | ir.TernaryExpression | ir.ThisExpression | ir.TypeAccessExpression | ir.VariableAccessExpression | ir.BaseConstructorCallExpression | ir.JsIndexedAccessExpression | ir.JsObjectLiteral | ir.JsPropertyAccessExpression | ir.JsFunctionLiteral | ir.JsTypeOfExpression | ir.JsInstanceOfExpression | ir.JsIdentifierExpression | ir.BaseExpression | ir.OwnConstructorCallExpression;
6
+ export type TypeMemberDeclaration = ir.TypeVariableDeclaration | ir.ComputedTypeVariableDeclaration | ir.TypeMethodDeclaration | ir.TypeConstructorDeclaration | ir.TypeDestructorDeclaration | ir.TypeIndexedGetterDeclaration | ir.TypeIndexedSetterDeclaration | ir.TypeDereferencedVariableGetterDeclaration | ir.TypeDereferencedVariableSetterDeclaration;
7
7
  export type PackageMemberDeclaration = ir.PackageMethodDeclaration | ir.PackageTypeDeclaration | ir.PackageVariableDeclaration | ir.PackageVariableGetterDeclaration | ir.PackageVariableSetterDeclaration | ir.PackageVariantTypeDeclaration;
8
+ export type LocalDeclaration = ir.LocalVariableDeclaration | ir.NestedMethodDeclaration;
8
9
  export type LValueExpression = ir.VariableAccessExpression | ir.TypeVariableAccessExpression | ir.IndexedAccessExpression | ir.JsIndexedAccessExpression | ir.JsPropertyAccessExpression | ir.ThisExpression | ir.DereferenceExpression;
9
10
  export declare function isLValueExpression(node: Expression): node is LValueExpression;
@@ -4,13 +4,14 @@ import { Name } from '../common/index.js';
4
4
  import { PackageAliasTypeDeclaration } from '../tree/index.js';
5
5
  import * as types from '../types/index.js';
6
6
  import { OriginalTypeEntityMembers } from './TypeEntityMembers.js';
7
- import { DefinitionKind, EntityHidingLevel, EntityKind, PackageEntity, SubstitutionApplicationMode, TypeParameterEntity } from './index.js';
8
- export interface AliasTypeEntity {
9
- readonly kind: EntityKind.AliasType;
7
+ import { DefinitionKind, EntityHidingLevel, EntityKind, ITypeEntity, PackageEntity, SubstitutionApplicationMode, TypeEntityKind, TypeParameterEntity } from './index.js';
8
+ export interface AliasTypeEntity extends ITypeEntity {
9
+ readonly kind: EntityKind.Type;
10
+ readonly typeEntityKind: TypeEntityKind.Alias;
10
11
  getName(): Name;
11
12
  getContainingPackage(): PackageEntity;
12
13
  /**
13
- * При повторных вызовах метод должен возвращать один и тот же экземпляр класса AliasedType.
14
+ * При каждом вызове метод должен возвращать один и тот же экземпляр класса AliasedType.
14
15
  */
15
16
  getAliasedType(): AliasedType;
16
17
  getTypeParameters(): readonly TypeParameterEntity[];
@@ -66,10 +67,13 @@ export declare class AliasedType {
66
67
  export declare class PackageAliasTypeDeclarationEntity implements AliasTypeEntity {
67
68
  private readonly _analyzer;
68
69
  private readonly _node;
69
- readonly kind = EntityKind.AliasType;
70
+ readonly kind = EntityKind.Type;
71
+ readonly typeEntityKind = TypeEntityKind.Alias;
70
72
  private readonly _aliasedType;
71
73
  private readonly _typeParameters;
72
74
  private readonly _members;
75
+ private readonly _modifierFlags;
76
+ private get modifierFlags();
73
77
  constructor(_analyzer: Analyzer, _node: PackageAliasTypeDeclaration);
74
78
  getName(): Name;
75
79
  getContainingPackage(): PackageEntity;
@@ -45,6 +45,8 @@ export declare class TypeConstructorDeclarationEntity implements ConstructorEnti
45
45
  private readonly _node;
46
46
  readonly kind = EntityKind.Constructor;
47
47
  private readonly _valueParameters;
48
+ private readonly _modifierFlags;
49
+ private get modifierFlags();
48
50
  constructor(_analyzer: Analyzer, _node: TypeConstructorDeclaration);
49
51
  getValueParameters(): readonly ParameterVariableEntity[];
50
52
  getDefinition(): ConstructorEntityDefinition;
@@ -12,8 +12,11 @@ export interface DereferenceOperatorEntity {
12
12
  getContainer(): TypeMemberEntityContainer;
13
13
  isStatic(): boolean;
14
14
  isHidden(): EntityHidingLevel | undefined;
15
+ isRedefinable(): boolean;
16
+ isRedefined(): boolean;
15
17
  isAbstract(): boolean;
16
18
  getTags(): readonly Tag[];
19
+ getOverriddenMembers(): readonly types.DereferenceOperator[];
17
20
  }
18
21
  export type DereferenceOperatorEntityDefinition = {
19
22
  kind: DefinitionKind.Source;
@@ -27,6 +30,9 @@ export declare class TypeDereferenceOperatorDeclarationEntity implements Derefer
27
30
  private readonly _getterDeclaration;
28
31
  private readonly _setterDeclaration;
29
32
  private readonly _getterOrSetterDeclaration;
33
+ private readonly _overriddenMembers;
34
+ private readonly _modifierFlags;
35
+ private get modifierFlags();
30
36
  constructor(analyzer: Analyzer, getterDeclaration: TypeDereferencedVariableGetterDeclaration | undefined, setterDeclaration: TypeDereferencedVariableSetterDeclaration | undefined);
31
37
  getType(): types.Type;
32
38
  getGetter(): GetterEntity | undefined;
@@ -35,6 +41,9 @@ export declare class TypeDereferenceOperatorDeclarationEntity implements Derefer
35
41
  getContainer(): TypeMemberEntityContainer;
36
42
  isStatic(): boolean;
37
43
  isHidden(): EntityHidingLevel | undefined;
44
+ isRedefinable(): boolean;
45
+ isRedefined(): boolean;
38
46
  isAbstract(): boolean;
39
47
  getTags(): readonly Tag[];
48
+ getOverriddenMembers(): readonly types.DereferenceOperator[];
40
49
  }
@@ -20,6 +20,8 @@ export declare class TypeDestructorDeclarationEntity implements DestructorEntity
20
20
  private readonly _node;
21
21
  readonly kind = EntityKind.Destructor;
22
22
  private readonly _valueParameters;
23
+ private readonly _modifierFlags;
24
+ private get modifierFlags();
23
25
  constructor(_analyzer: Analyzer, _node: TypeDestructorDeclaration);
24
26
  getValueParameters(): readonly ParameterVariableEntity[];
25
27
  getContainer(): TypeMemberEntityContainer;
@@ -26,6 +26,8 @@ export declare class PackageVariableGetterDeclarationEntity implements GetterEnt
26
26
  private readonly _analyzer;
27
27
  private readonly _node;
28
28
  readonly kind = EntityKind.Getter;
29
+ private readonly _modifierFlags;
30
+ private get modifierFlags();
29
31
  constructor(_analyzer: Analyzer, _node: PackageVariableGetterDeclaration);
30
32
  getReturnType(): types.Type;
31
33
  getDefinition(): GetterEntityDefinition;
@@ -38,6 +40,8 @@ export declare class TypeVariableGetterDeclarationEntity implements GetterEntity
38
40
  private readonly _analyzer;
39
41
  private readonly _node;
40
42
  readonly kind = EntityKind.Getter;
43
+ private readonly _modifierFlags;
44
+ private get modifierFlags();
41
45
  constructor(_analyzer: Analyzer, _node: TypeVariableGetterDeclaration);
42
46
  getReturnType(): types.Type;
43
47
  getDefinition(): GetterEntityDefinition;
@@ -50,6 +54,8 @@ export declare class TypeIndexedGetterDeclarationEntity implements GetterEntity
50
54
  private readonly _analyzer;
51
55
  private readonly _node;
52
56
  readonly kind = EntityKind.Getter;
57
+ private readonly _modifierFlags;
58
+ private get modifierFlags();
53
59
  constructor(_analyzer: Analyzer, _node: TypeIndexedGetterDeclaration);
54
60
  getReturnType(): types.Type;
55
61
  getDefinition(): GetterEntityDefinition;
@@ -62,6 +68,8 @@ export declare class TypeDereferencedVariableGetterDeclarationEntity implements
62
68
  private readonly _analyzer;
63
69
  private readonly _node;
64
70
  readonly kind = EntityKind.Getter;
71
+ private readonly _modifierFlags;
72
+ private get modifierFlags();
65
73
  constructor(_analyzer: Analyzer, _node: TypeDereferencedVariableGetterDeclaration);
66
74
  getReturnType(): types.Type;
67
75
  getDefinition(): GetterEntityDefinition;
@@ -13,8 +13,11 @@ export interface IndexerEntity {
13
13
  getContainer(): TypeMemberEntityContainer;
14
14
  isStatic(): boolean;
15
15
  isHidden(): EntityHidingLevel | undefined;
16
+ isRedefinable(): boolean;
17
+ isRedefined(): boolean;
16
18
  isAbstract(): boolean;
17
19
  getTags(): readonly Tag[];
20
+ getOverriddenMembers(): readonly types.Indexer[];
18
21
  }
19
22
  export type IndexerEntityDefinition = {
20
23
  kind: DefinitionKind.Source;
@@ -34,7 +37,10 @@ export declare class TypeIndexerDeclarationEntity implements SourceIndexerEntity
34
37
  private readonly _setterDeclaration;
35
38
  private readonly _getterOrSetterDeclaration;
36
39
  private readonly _parameters;
40
+ private readonly _overriddenMembers;
41
+ private readonly _modifierFlags;
37
42
  private get parameters();
43
+ private get modifierFlags();
38
44
  constructor(analyzer: Analyzer, getterDeclaration: TypeIndexedGetterDeclaration | undefined, setterDeclaration: TypeIndexedSetterDeclaration | undefined);
39
45
  getParameter(node: ParameterDeclaration): ParameterVariableEntity;
40
46
  getValueParameters(): readonly ParameterVariableEntity[];
@@ -45,7 +51,10 @@ export declare class TypeIndexerDeclarationEntity implements SourceIndexerEntity
45
51
  getContainer(): TypeMemberEntityContainer;
46
52
  isStatic(): boolean;
47
53
  isHidden(): EntityHidingLevel | undefined;
54
+ isRedefinable(): boolean;
55
+ isRedefined(): boolean;
48
56
  isAbstract(): boolean;
49
57
  getTags(): readonly Tag[];
58
+ getOverriddenMembers(): readonly types.Indexer[];
50
59
  private createParameters;
51
60
  }
@@ -19,7 +19,7 @@ export interface TypeMethodEntity extends IMethodEntity {
19
19
  isAbstract(): boolean;
20
20
  isModifyingOwningPlainObject(): boolean;
21
21
  isMethodTypeInvokeMethod(): boolean;
22
- getOverriddenMember(): types.Method | undefined;
22
+ getOverriddenMembers(): readonly types.Method[];
23
23
  }
24
24
  export interface NestedMethodEntity extends IMethodEntity {
25
25
  readonly subkind: 'nested';
@@ -53,6 +53,8 @@ export declare class PackageMethodDeclarationEntity implements PackageMethodEnti
53
53
  readonly subkind = "package";
54
54
  private readonly _typeParameters;
55
55
  private readonly _valueParameters;
56
+ private readonly _modifierFlags;
57
+ private get modifierFlags();
56
58
  constructor(_analyzer: Analyzer, _node: PackageMethodDeclaration);
57
59
  getName(): Name;
58
60
  getContainingPackage(): PackageEntity;
@@ -74,6 +76,8 @@ export declare class TypeMethodDeclarationEntity implements TypeMethodEntity {
74
76
  private readonly _typeParameters;
75
77
  private readonly _valueParameters;
76
78
  private readonly _overriddenMember;
79
+ private readonly _modifierFlags;
80
+ private get modifierFlags();
77
81
  constructor(_analyzer: Analyzer, _node: TypeMethodDeclaration);
78
82
  getName(): Name;
79
83
  getTypeParameters(): readonly TypeParameterEntity[];
@@ -92,7 +96,7 @@ export declare class TypeMethodDeclarationEntity implements TypeMethodEntity {
92
96
  isAbstract(): boolean;
93
97
  isModifyingOwningPlainObject(): boolean;
94
98
  getSubstitutionApplicationMode(): SubstitutionApplicationMode;
95
- getOverriddenMember(): types.Method | undefined;
99
+ getOverriddenMembers(): readonly types.Method[];
96
100
  }
97
101
  export declare class NestedMethodDeclarationEntity implements NestedMethodEntity {
98
102
  private readonly _analyzer;
@@ -153,10 +157,10 @@ export declare class IntrinsicTypeMethodEntity implements TypeMethodEntity {
153
157
  private readonly _isRedefined;
154
158
  private readonly _isAbstract;
155
159
  private readonly _isModifyingOwningPlainObject;
156
- private readonly _overriddenMember;
160
+ private readonly _overriddenMembers;
157
161
  readonly kind = EntityKind.Method;
158
162
  readonly subkind = "type";
159
- constructor(_name: Name, _typeParameters: readonly TypeParameterEntity[], _valueParameters: readonly ParameterVariableEntity[], _returnType: types.Type, _isAsync: boolean, _isHidden: EntityHidingLevel | undefined, _tags: readonly Tag[], _isMethodTypeInvokeMethod: boolean, _container: TypeMemberEntityContainer, _isStatic: boolean, _isRedefinable: boolean, _isRedefined: boolean, _isAbstract: boolean, _isModifyingOwningPlainObject: boolean, _overriddenMember: types.Method | undefined);
163
+ constructor(_name: Name, _typeParameters: readonly TypeParameterEntity[], _valueParameters: readonly ParameterVariableEntity[], _returnType: types.Type, _isAsync: boolean, _isHidden: EntityHidingLevel | undefined, _tags: readonly Tag[], _isMethodTypeInvokeMethod: boolean, _container: TypeMemberEntityContainer, _isStatic: boolean, _isRedefinable: boolean, _isRedefined: boolean, _isAbstract: boolean, _isModifyingOwningPlainObject: boolean, _overriddenMembers: readonly types.Method[]);
160
164
  getName(): Name;
161
165
  getTypeParameters(): readonly TypeParameterEntity[];
162
166
  getValueParameters(): readonly ParameterVariableEntity[];
@@ -174,6 +178,6 @@ export declare class IntrinsicTypeMethodEntity implements TypeMethodEntity {
174
178
  isAbstract(): boolean;
175
179
  isModifyingOwningPlainObject(): boolean;
176
180
  getSubstitutionApplicationMode(): SubstitutionApplicationMode;
177
- getOverriddenMember(): types.Method | undefined;
181
+ getOverriddenMembers(): readonly types.Method[];
178
182
  }
179
183
  export {};
@@ -6,7 +6,7 @@ import * as types from '../types/index.js';
6
6
  import { EntityNaming } from './EntityNaming.js';
7
7
  import { OriginalTypeEntityMembers } from './TypeEntityMembers.js';
8
8
  import type { PackageEntity } from './index.js';
9
- import { DefinitionKind, EntityHidingLevel, EntityKind, ParameterVariableEntity, SubstitutionApplicationMode, TypeParameterEntity } from './index.js';
9
+ import { BaseObjectType, DefinitionKind, EntityHidingLevel, EntityKind, ITypeEntity, ParameterVariableEntity, SubstitutionApplicationMode, TypeEntityKind, TypeParameterEntity } from './index.js';
10
10
  export type MethodTypeEntity = PackageMethodTypeEntity | AnonymousMethodTypeEntity;
11
11
  export interface PackageMethodTypeEntity extends IMethodTypeEntity {
12
12
  readonly subkind: 'package';
@@ -17,8 +17,9 @@ export interface AnonymousMethodTypeEntity extends IMethodTypeEntity {
17
17
  readonly subkind: 'anonymous';
18
18
  getContainingPackage(): PackageEntity;
19
19
  }
20
- interface IMethodTypeEntity {
21
- readonly kind: EntityKind.MethodType;
20
+ interface IMethodTypeEntity extends ITypeEntity {
21
+ readonly kind: EntityKind.Type;
22
+ readonly typeEntityKind: TypeEntityKind.Method;
22
23
  getNaming(): EntityNaming;
23
24
  getTypeParameters(): readonly TypeParameterEntity[];
24
25
  getValueParameters(): readonly ParameterVariableEntity[];
@@ -30,6 +31,10 @@ interface IMethodTypeEntity {
30
31
  isHidden(): EntityHidingLevel | undefined;
31
32
  getTags(): readonly Tag[];
32
33
  getSubstitutionApplicationMode(): SubstitutionApplicationMode;
34
+ /**
35
+ * При каждом вызове метод должен возвращать один и тот же экземпляр класса BaseObjectType.
36
+ */
37
+ getBaseObjectType(): BaseObjectType;
33
38
  }
34
39
  export type MethodTypeEntityDefinition = {
35
40
  kind: DefinitionKind.Source;
@@ -42,11 +47,15 @@ export type MethodTypeEntityDefinition = {
42
47
  export declare class PackageMethodTypeDeclarationEntity implements PackageMethodTypeEntity {
43
48
  private readonly _analyzer;
44
49
  private readonly _node;
45
- readonly kind = EntityKind.MethodType;
50
+ readonly kind = EntityKind.Type;
51
+ readonly typeEntityKind = TypeEntityKind.Method;
46
52
  readonly subkind = "package";
47
53
  private readonly _typeParameters;
48
54
  private readonly _valueParameters;
49
55
  private readonly _members;
56
+ private readonly _baseObjectType;
57
+ private readonly _modifierFlags;
58
+ private get modifierFlags();
50
59
  constructor(_analyzer: Analyzer, _node: PackageMethodTypeDeclaration);
51
60
  getNaming(): EntityNaming;
52
61
  getName(): Name;
@@ -61,14 +70,17 @@ export declare class PackageMethodTypeDeclarationEntity implements PackageMethod
61
70
  isHidden(): EntityHidingLevel | undefined;
62
71
  getTags(): readonly Tag[];
63
72
  getSubstitutionApplicationMode(): SubstitutionApplicationMode;
73
+ getBaseObjectType(): BaseObjectType;
64
74
  }
65
75
  export declare class AnonymousMethodTypeDeclarationEntity implements AnonymousMethodTypeEntity {
66
76
  private readonly _analyzer;
67
77
  private readonly _node;
68
- readonly kind = EntityKind.MethodType;
78
+ readonly kind = EntityKind.Type;
79
+ readonly typeEntityKind = TypeEntityKind.Method;
69
80
  readonly subkind = "anonymous";
70
81
  private readonly _valueParameters;
71
82
  private readonly _members;
83
+ private readonly _baseObjectType;
72
84
  constructor(_analyzer: Analyzer, _node: AnonymousMethodTypeDeclaration);
73
85
  getNaming(): EntityNaming;
74
86
  getTypeParameters(): readonly TypeParameterEntity[];
@@ -82,6 +94,7 @@ export declare class AnonymousMethodTypeDeclarationEntity implements AnonymousMe
82
94
  getTags(): readonly Tag[];
83
95
  getSubstitutionApplicationMode(): SubstitutionApplicationMode;
84
96
  getContainingPackage(): PackageEntity;
97
+ getBaseObjectType(): BaseObjectType;
85
98
  }
86
99
  export declare class UnfinishedIntrinsicAnonymousMethodTypeEntity {
87
100
  private readonly _unfinishedValue;
@@ -16,7 +16,7 @@ export interface OperatorEntity {
16
16
  isAbstract(): boolean;
17
17
  isHidden(): EntityHidingLevel | undefined;
18
18
  getTags(): readonly Tag[];
19
- getOverriddenMember(): types.Operator | undefined;
19
+ getOverriddenMembers(): readonly types.Operator[];
20
20
  }
21
21
  export type OperatorDefinition = {
22
22
  kind: DefinitionKind.Source;
@@ -28,7 +28,9 @@ export declare class OperatorDeclarationEntity implements OperatorEntity {
28
28
  readonly kind = EntityKind.Operator;
29
29
  private readonly _operatorKind;
30
30
  private readonly _valueParameters;
31
- private readonly _overriddenMember;
31
+ private readonly _overriddenMembers;
32
+ private readonly _modifierFlags;
33
+ private get modifierFlags();
32
34
  constructor(_analyzer: Analyzer, _node: tree.OperatorDeclaration);
33
35
  getOperatorKind(): OperatorKind;
34
36
  getValueParameters(): readonly ParameterVariableEntity[];
@@ -41,6 +43,6 @@ export declare class OperatorDeclarationEntity implements OperatorEntity {
41
43
  isAbstract(): boolean;
42
44
  isHidden(): EntityHidingLevel | undefined;
43
45
  getTags(): readonly Tag[];
44
- getOverriddenMember(): types.Operator | undefined;
46
+ getOverriddenMembers(): readonly types.Operator[];
45
47
  private convertSyntaxOperatorKind;
46
48
  }
@@ -1,14 +1,14 @@
1
1
  import { Analyzer } from '../analysis/index.js';
2
2
  import { PackageLocale } from '../common/index.js';
3
- import * as packageMembers from '../entities/PackageMembers.js';
4
3
  import type { JavaScriptImplementationConfig, SourcePackage } from '../project/index.js';
5
4
  import { PackageName, PlatformKind } from '../project/index.js';
6
5
  import { DefinitionKind, EntityKind } from './index.js';
6
+ import { OriginalPackageMembers } from './PackageMembers.js';
7
7
  export interface PackageEntity {
8
8
  readonly kind: EntityKind.Package;
9
9
  getName(): PackageName;
10
10
  getLocale(): PackageLocale;
11
- getMembers(): packageMembers.OriginalPackageMembers;
11
+ getMembers(): OriginalPackageMembers;
12
12
  isInterface(): InterfacePackageEntityInfo | undefined;
13
13
  getImplementedInterfacePackage(): PackageEntity | undefined;
14
14
  getSupportedPlatforms(): readonly PlatformKind[];
@@ -48,7 +48,7 @@ export declare class SourcePackageEntity implements PackageEntity {
48
48
  constructor(_analyzer: Analyzer, _package: SourcePackage);
49
49
  getName(): PackageName;
50
50
  getLocale(): PackageLocale;
51
- getMembers(): packageMembers.OriginalPackageMembers;
51
+ getMembers(): OriginalPackageMembers;
52
52
  isInterface(): InterfacePackageEntityInfo | undefined;
53
53
  getImplementedInterfacePackage(): PackageEntity | undefined;
54
54
  getSupportedPlatforms(): readonly PlatformKind[];
@@ -1,98 +1,12 @@
1
- import { Analyzer } from '../analysis/index.js';
2
1
  import { Name } from '../common/index.js';
3
- import { AliasTypeEntity, EntityHidingLevel, PackageMethodEntity, PackageMethodTypeEntity, PackageStructuredTypeEntity, PackageTypeEntity, PackageVariableEntity, PackageVariantTypeEntity, TypeEntity, TypeExtensionEntity, TypeParameterEntity } from '../entities/index.js';
4
- import * as types from '../types/index.js';
2
+ import { NamedPackageMemberEntity, TypeEntity, TypeExtensionEntity } from '../entities/index.js';
5
3
  export declare class OriginalPackageMembers {
6
4
  private readonly _namedMembers;
7
5
  private readonly _typeExtensions;
8
6
  private readonly _membersByNameKey;
9
7
  private get membersByNameKey();
10
- constructor(_namedMembers: readonly NamedMember[], _typeExtensions: readonly TypeExtensionEntity[]);
11
- getNamedMembers(): readonly NamedMember[];
12
- getNamedMembersByName(name: Name): readonly NamedMember[];
8
+ constructor(_namedMembers: readonly NamedPackageMemberEntity[], _typeExtensions: readonly TypeExtensionEntity[]);
9
+ getNamedMembers(): readonly NamedPackageMemberEntity[];
10
+ getNamedMembersByName(name: Name): readonly NamedPackageMemberEntity[];
13
11
  getTypeExtensions(type: TypeEntity): readonly TypeExtensionEntity[];
14
12
  }
15
- export type TypeDeclaration = TypeDeclaration_structured | TypeDeclaration_variant | TypeDeclaration_method | TypeDeclaration_alias;
16
- export declare class TypeDeclaration_structured implements ITypeDeclaration {
17
- readonly value: PackageStructuredTypeEntity;
18
- readonly kind = "structured";
19
- constructor(value: PackageStructuredTypeEntity);
20
- getName(): Name;
21
- getArity(): number;
22
- getTypeParameters(): readonly TypeParameterEntity[];
23
- isHidden(): EntityHidingLevel | undefined;
24
- getEntity(): PackageTypeEntity;
25
- instantiate(analyzer: Analyzer, typeArguments: readonly types.Type[]): types.Type;
26
- }
27
- export declare class TypeDeclaration_variant implements ITypeDeclaration {
28
- readonly value: PackageVariantTypeEntity;
29
- readonly kind = "variant";
30
- constructor(value: PackageVariantTypeEntity);
31
- getName(): Name;
32
- getArity(): number;
33
- getTypeParameters(): readonly TypeParameterEntity[];
34
- isHidden(): EntityHidingLevel | undefined;
35
- getEntity(): PackageTypeEntity;
36
- instantiate(analyzer: Analyzer, typeArguments: readonly types.Type[]): types.Type;
37
- }
38
- export declare class TypeDeclaration_method implements ITypeDeclaration {
39
- readonly value: PackageMethodTypeEntity;
40
- readonly kind = "method";
41
- constructor(value: PackageMethodTypeEntity);
42
- getName(): Name;
43
- getArity(): number;
44
- getTypeParameters(): readonly TypeParameterEntity[];
45
- isHidden(): EntityHidingLevel | undefined;
46
- getEntity(): PackageTypeEntity;
47
- instantiate(analyzer: Analyzer, typeArguments: readonly types.Type[]): types.Type;
48
- }
49
- export declare class TypeDeclaration_alias implements ITypeDeclaration {
50
- readonly value: AliasTypeEntity;
51
- readonly kind = "alias";
52
- constructor(value: AliasTypeEntity);
53
- getName(): Name;
54
- getArity(): number;
55
- getTypeParameters(): readonly TypeParameterEntity[];
56
- isHidden(): EntityHidingLevel | undefined;
57
- getEntity(): PackageTypeEntity;
58
- instantiate(analyzer: Analyzer, typeArguments: readonly types.Type[]): types.Type;
59
- }
60
- interface ITypeDeclaration {
61
- getName(): Name;
62
- getTypeParameters(): readonly TypeParameterEntity[];
63
- isHidden(): EntityHidingLevel | undefined;
64
- getEntity(): PackageTypeEntity;
65
- instantiate(analyzer: Analyzer, typeArguments: readonly types.Type[]): types.Type;
66
- }
67
- export type NamedMember = NamedMember_variable | NamedMember_method | NamedMember_type;
68
- export declare class NamedMember_variable implements INamedMember {
69
- readonly value: PackageVariableEntity;
70
- readonly kind = "variable";
71
- constructor(value: PackageVariableEntity);
72
- getName(): Name;
73
- isHidden(): EntityHidingLevel | undefined;
74
- getEntity(): PackageVariableEntity;
75
- }
76
- export declare class NamedMember_method implements INamedMember {
77
- readonly value: PackageMethodEntity;
78
- readonly kind = "method";
79
- constructor(value: PackageMethodEntity);
80
- getName(): Name;
81
- isHidden(): EntityHidingLevel | undefined;
82
- getEntity(): PackageMethodEntity;
83
- }
84
- export declare class NamedMember_type implements INamedMember {
85
- readonly value: TypeDeclaration;
86
- readonly kind = "type";
87
- constructor(value: TypeDeclaration);
88
- getName(): Name;
89
- isHidden(): EntityHidingLevel | undefined;
90
- getEntity(): PackageTypeEntity;
91
- }
92
- interface INamedMember {
93
- getName(): Name;
94
- isHidden(): EntityHidingLevel | undefined;
95
- getEntity(): NamedPackageMemberEntity;
96
- }
97
- export type NamedPackageMemberEntity = PackageVariableEntity | PackageMethodEntity | PackageTypeEntity;
98
- export {};
@@ -24,6 +24,8 @@ export declare class PackageVariableSetterDeclarationEntity implements SetterEnt
24
24
  private readonly _analyzer;
25
25
  private readonly _node;
26
26
  readonly kind = EntityKind.Setter;
27
+ private readonly _modifierFlags;
28
+ private get modifierFlags();
27
29
  constructor(_analyzer: Analyzer, _node: PackageVariableSetterDeclaration);
28
30
  getDefinition(): SetterEntityDefinition;
29
31
  isModifyingOwningPlainObject(): boolean;
@@ -35,6 +37,8 @@ export declare class TypeVariableSetterDeclarationEntity implements SetterEntity
35
37
  private readonly _analyzer;
36
38
  private readonly _node;
37
39
  readonly kind = EntityKind.Setter;
40
+ private readonly _modifierFlags;
41
+ private get modifierFlags();
38
42
  constructor(_analyzer: Analyzer, _node: TypeVariableSetterDeclaration);
39
43
  getDefinition(): SetterEntityDefinition;
40
44
  isModifyingOwningPlainObject(): boolean;
@@ -46,6 +50,8 @@ export declare class TypeIndexedSetterDeclarationEntity implements SetterEntity
46
50
  private readonly _analyzer;
47
51
  private readonly _node;
48
52
  readonly kind = EntityKind.Setter;
53
+ private readonly _modifierFlags;
54
+ private get modifierFlags();
49
55
  constructor(_analyzer: Analyzer, _node: TypeIndexedSetterDeclaration);
50
56
  getDefinition(): SetterEntityDefinition;
51
57
  isModifyingOwningPlainObject(): boolean;
@@ -57,6 +63,8 @@ export declare class TypeDereferencedVariableSetterDeclarationEntity implements
57
63
  private readonly _analyzer;
58
64
  private readonly _node;
59
65
  readonly kind = EntityKind.Setter;
66
+ private readonly _modifierFlags;
67
+ private get modifierFlags();
60
68
  constructor(_analyzer: Analyzer, _node: TypeDereferencedVariableSetterDeclaration);
61
69
  getDefinition(): SetterEntityDefinition;
62
70
  isModifyingOwningPlainObject(): boolean;
@@ -5,8 +5,8 @@ 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, OperatorEntity, PackageEntity } from './index.js';
9
- import { ConstructorEntity, DefinitionKind, DestructorEntity, EntityHidingLevel, EntityKind, IndexerEntity, SubstitutionApplicationMode, TypeParameterEntity } from './index.js';
8
+ import type { PackageEntity } from './index.js';
9
+ import { ConstructorEntity, DefinitionKind, DereferenceOperatorEntity, DestructorEntity, EntityHidingLevel, EntityKind, IndexerEntity, ITypeEntity, OperatorEntity, SubstitutionApplicationMode, TypeEntityKind, TypeParameterEntity } from './index.js';
10
10
  export type StructuredTypeEntity = PackageStructuredTypeEntity | AnonymousStructuredTypeEntity;
11
11
  export interface PackageStructuredTypeEntity extends IStructuredTypeEntity {
12
12
  readonly subkind: 'package';
@@ -17,22 +17,25 @@ export interface AnonymousStructuredTypeEntity extends IStructuredTypeEntity {
17
17
  readonly subkind: 'anonymous';
18
18
  getContainingPackage(): PackageEntity;
19
19
  }
20
- interface IStructuredTypeEntity {
21
- readonly kind: EntityKind.StructuredType;
20
+ interface IStructuredTypeEntity extends ITypeEntity {
21
+ readonly kind: EntityKind.Type;
22
+ readonly typeEntityKind: TypeEntityKind.Structured;
22
23
  getNaming(): EntityNaming;
23
24
  getTypeParameters(): readonly TypeParameterEntity[];
24
25
  getMembers(): OriginalTypeEntityMembers;
25
26
  getDefinition(): StructuredTypeEntityDefinition;
27
+ isBasic(): boolean;
28
+ isAbstract(): boolean;
26
29
  isAspect(): boolean;
27
30
  isRefObject(): boolean;
28
31
  isPlainObject(): boolean;
29
32
  getArity(): number;
30
33
  /**
31
- * При повторных вызовах метод должен возвращать один и тот же экземпляр класса BaseObjectType.
34
+ * При каждом вызове метод должен возвращать один и тот же экземпляр класса BaseObjectType.
32
35
  */
33
36
  getBaseObjectType(): BaseObjectType;
34
37
  /**
35
- * При повторных вызовах метод должен возвращать один и тот же экземпляр класса BaseAspectTypes.
38
+ * При каждом вызове метод должен возвращать один и тот же экземпляр класса BaseAspectTypes.
36
39
  */
37
40
  getBaseAspectTypes(): BaseAspectTypes;
38
41
  isHidden(): EntityHidingLevel | undefined;
@@ -113,7 +116,8 @@ export declare class BaseAspectTypes {
113
116
  private resolveBaseAspectTypes;
114
117
  }
115
118
  export declare class PackageStructuredTypeDeclarationEntity implements PackageStructuredTypeEntity {
116
- readonly kind = EntityKind.StructuredType;
119
+ readonly kind = EntityKind.Type;
120
+ readonly typeEntityKind = TypeEntityKind.Structured;
117
121
  readonly subkind = "package";
118
122
  private readonly _analyzer;
119
123
  private readonly _node;
@@ -125,6 +129,8 @@ export declare class PackageStructuredTypeDeclarationEntity implements PackageSt
125
129
  getTypeParameters(): readonly TypeParameterEntity[];
126
130
  getMembers(): OriginalTypeEntityMembers;
127
131
  getDefinition(): StructuredTypeEntityDefinition;
132
+ isBasic(): boolean;
133
+ isAbstract(): boolean;
128
134
  isAspect(): boolean;
129
135
  isRefObject(): boolean;
130
136
  isPlainObject(): boolean;
@@ -143,6 +149,8 @@ export declare class SourcePackageStructuredTypeDeclarationData {
143
149
  private readonly _baseObjectType;
144
150
  private readonly _baseAspectTypes;
145
151
  private readonly _members;
152
+ private readonly _modifierFlags;
153
+ private get modifierFlags();
146
154
  constructor(analyzer: Analyzer, node: PackageStructuredTypeDeclaration, entity: PackageStructuredTypeEntity);
147
155
  getNaming(): EntityNaming;
148
156
  getName(): Name;
@@ -150,6 +158,8 @@ export declare class SourcePackageStructuredTypeDeclarationData {
150
158
  getTypeParameters(): readonly TypeParameterEntity[];
151
159
  getMembers(): OriginalTypeEntityMembers;
152
160
  getDefinition(): StructuredTypeEntityDefinition;
161
+ isBasic(): boolean;
162
+ isAbstract(): boolean;
153
163
  isAspect(): boolean;
154
164
  isRefObject(): boolean;
155
165
  isPlainObject(): boolean;
@@ -163,7 +173,8 @@ export declare class SourcePackageStructuredTypeDeclarationData {
163
173
  export declare class AnonymousStructuredTypeDeclarationEntity implements AnonymousStructuredTypeEntity {
164
174
  private readonly _analyzer;
165
175
  private readonly _node;
166
- readonly kind = EntityKind.StructuredType;
176
+ readonly kind = EntityKind.Type;
177
+ readonly typeEntityKind = TypeEntityKind.Structured;
167
178
  readonly subkind = "anonymous";
168
179
  private readonly _baseObjectType;
169
180
  private readonly _baseAspectTypes;
@@ -173,6 +184,8 @@ export declare class AnonymousStructuredTypeDeclarationEntity implements Anonymo
173
184
  getTypeParameters(): readonly TypeParameterEntity[];
174
185
  getMembers(): OriginalTypeEntityMembers;
175
186
  getDefinition(): StructuredTypeEntityDefinition;
187
+ isBasic(): boolean;
188
+ isAbstract(): boolean;
176
189
  isAspect(): boolean;
177
190
  isRefObject(): boolean;
178
191
  isPlainObject(): boolean;
@@ -187,7 +200,7 @@ export declare class AnonymousStructuredTypeDeclarationEntity implements Anonymo
187
200
  export declare class UnfinishedIntrinsicPackageStructuredTypeEntity {
188
201
  private readonly _unfinishedValue;
189
202
  get unfinishedValue(): PackageStructuredTypeEntity;
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);
203
+ constructor(analyzer: Analyzer, name: Name, containingPackage: PackageEntity, typeParameters: readonly TypeParameterEntity[], isBasic: boolean, isAbstract: boolean, isAspect: boolean, isRefObject: boolean, baseObjectType: types.StructuredType | undefined, baseAspectTypes: readonly types.StructuredType[], isHidden: EntityHidingLevel | undefined, substitutionApplicationMode: SubstitutionApplicationMode);
191
204
  finish(ownNamedMembers: readonly NamedTypeMemberEntity[], ownOperators: readonly OperatorEntity[], ownConstructors: readonly ConstructorEntity[], ownDestructors: readonly DestructorEntity[], ownIndexers: readonly IndexerEntity[], ownDereferenceOperators: readonly DereferenceOperatorEntity[]): PackageStructuredTypeEntity;
192
205
  }
193
206
  export declare class UnfinishedIntrinsicAnonymousStructuredTypeEntity {
@@ -0,0 +1,15 @@
1
+ import { Tag } from '../analysis/Tags.js';
2
+ import { AliasTypeEntity, EntityKind, MethodTypeEntity, StructuredTypeEntity, TypeParameterEntity, VariantTypeEntity } from './index.js';
3
+ export type TypeEntity = StructuredTypeEntity | MethodTypeEntity | VariantTypeEntity | AliasTypeEntity | TypeParameterEntity;
4
+ export interface ITypeEntity {
5
+ readonly kind: EntityKind.Type;
6
+ readonly typeEntityKind: TypeEntityKind;
7
+ getTags(): readonly Tag[];
8
+ }
9
+ export declare enum TypeEntityKind {
10
+ Method = 0,
11
+ Structured = 1,
12
+ Parameter = 2,
13
+ Variant = 3,
14
+ Alias = 4
15
+ }