@artel/artc 0.6.25283 → 0.6.25284

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 (97) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +26 -14
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +828 -700
  5. package/build/{chunk-2Q4QKW7T.js → chunk-CGOSDN2E.js} +20378 -18371
  6. package/build/{chunk-MJ2ZVHII.js → chunk-OBX375YX.js} +1 -1
  7. package/build/{chunk-7RAZAZE6.js → chunk-ZV3UW5X6.js} +2 -2
  8. package/build/types/analysis/AccessibilityCheck.d.ts +20 -0
  9. package/build/types/analysis/Analyzer.d.ts +16 -8
  10. package/build/types/analysis/BaseMemberConflictsValidator.d.ts +2 -4
  11. package/build/types/analysis/ConstructorCallResolver.d.ts +3 -4
  12. package/build/types/analysis/MemberAccessExpressionMeaning.d.ts +2 -1
  13. package/build/types/analysis/ModifierValidator.d.ts +17 -15
  14. package/build/types/analysis/NodeTypeUtils.d.ts +3 -3
  15. package/build/types/analysis/PackageMemberLookup.d.ts +11 -4
  16. package/build/types/analysis/ReachabilityChecker.d.ts +27 -0
  17. package/build/types/analysis/ReductionSourceMemberFinder.d.ts +20 -0
  18. package/build/types/analysis/ReservedNameDictionary.d.ts +14 -0
  19. package/build/types/analysis/SourceFileAnalyzer.d.ts +3 -0
  20. package/build/types/analysis/TypeArgumentInferrer.d.ts +1 -0
  21. package/build/types/analysis/TypeMemberLookup.d.ts +36 -22
  22. package/build/types/analysis/Utils.d.ts +2 -0
  23. package/build/types/analysis/WellKnownDeclarations.d.ts +11 -7
  24. package/build/types/analysis/control-flow/GraphBuilder.d.ts +4 -1
  25. package/build/types/analysis/semantic-context/FieldWithInitializerSemanticContext.d.ts +4 -2
  26. package/build/types/analysis/semantic-context/SemanticContextBase.d.ts +6 -5
  27. package/build/types/analysis/semantic-context/SemanticContextValidatingNameConflicts.d.ts +2 -2
  28. package/build/types/analysis/semantic-context/SemanticContextWithParent.d.ts +2 -0
  29. package/build/types/analysis/semantic-context/SourceFileSemanticContext.d.ts +9 -4
  30. package/build/types/analysis/semantic-context/SubprogramBodyAndParametersSemanticContext.d.ts +5 -5
  31. package/build/types/analysis/semantic-context/SubprogramSemanticContext.d.ts +2 -2
  32. package/build/types/analysis/semantic-context/TypeSemanticContext.d.ts +14 -11
  33. package/build/types/api/Api.d.ts +1 -1
  34. package/build/types/common/LocalizationHelper.d.ts +2 -2
  35. package/build/types/common/index.d.ts +0 -1
  36. package/build/types/diagnostic/DiagnosticCode.d.ts +154 -141
  37. package/build/types/emitter/Entities.d.ts +5 -4
  38. package/build/types/emitter/EntityMap.d.ts +4 -0
  39. package/build/types/emitter/IrBuilder.d.ts +1 -0
  40. package/build/types/entities/Entity.d.ts +9 -6
  41. package/build/types/entities/EntityHiding.d.ts +1 -4
  42. package/build/types/entities/EntityLocalizationContext.d.ts +3 -2
  43. package/build/types/entities/TypeEntity.d.ts +4 -3
  44. package/build/types/entities/index.d.ts +0 -2
  45. package/build/types/entities/interfaces/AliasTypeEntity.d.ts +2 -2
  46. package/build/types/entities/interfaces/ConstructorEntity.d.ts +3 -1
  47. package/build/types/entities/interfaces/DereferenceOperatorEntity.d.ts +2 -1
  48. package/build/types/entities/interfaces/DestructorEntity.d.ts +4 -1
  49. package/build/types/entities/interfaces/FunctionEntity.d.ts +3 -1
  50. package/build/types/entities/interfaces/IndexerEntity.d.ts +2 -1
  51. package/build/types/entities/interfaces/OperatorEntity.d.ts +3 -1
  52. package/build/types/entities/interfaces/ReducedTypeEntity.d.ts +99 -0
  53. package/build/types/entities/interfaces/TypeParameterEntity.d.ts +2 -2
  54. package/build/types/entities/interfaces/VariableEntity.d.ts +2 -1
  55. package/build/types/entities/interfaces/index.d.ts +1 -0
  56. package/build/types/entities/intrinsic/IntrinsicConstructorEntity.d.ts +3 -1
  57. package/build/types/entities/intrinsic/IntrinsicFunctionEntity.d.ts +2 -1
  58. package/build/types/entities/intrinsic/IntrinsicVariableEntity.d.ts +2 -1
  59. package/build/types/entities/source/SourceConstructorEntity.d.ts +6 -2
  60. package/build/types/entities/source/SourceDereferenceOperatorEntity.d.ts +3 -1
  61. package/build/types/entities/source/SourceDestructorEntity.d.ts +6 -1
  62. package/build/types/entities/source/SourceFunctionEntity.d.ts +5 -1
  63. package/build/types/entities/source/SourceIndexerEntity.d.ts +3 -1
  64. package/build/types/entities/source/SourceOperatorEntity.d.ts +5 -1
  65. package/build/types/entities/source/SourceReducedTypeEntity.d.ts +44 -0
  66. package/build/types/entities/source/SourceVariableEntity.d.ts +7 -1
  67. package/build/types/entities/source/index.d.ts +1 -0
  68. package/build/types/entities/translated/TranslatedConstructorEntity.d.ts +9 -4
  69. package/build/types/entities/translated/TranslatedDereferenceOperatorEntity.d.ts +3 -1
  70. package/build/types/entities/translated/TranslatedDestructorEntity.d.ts +4 -1
  71. package/build/types/entities/translated/TranslatedFunctionEntity.d.ts +3 -1
  72. package/build/types/entities/translated/TranslatedIndexerEntity.d.ts +3 -1
  73. package/build/types/entities/translated/TranslatedOperatorEntity.d.ts +3 -1
  74. package/build/types/entities/translated/TranslatedReducedTypeEntity.d.ts +59 -0
  75. package/build/types/entities/translated/TranslatedVariableEntity.d.ts +3 -1
  76. package/build/types/entities/translated/index.d.ts +1 -0
  77. package/build/types/project/SourceFile.d.ts +3 -1
  78. package/build/types/services/CompletionService.d.ts +5 -4
  79. package/build/types/services/DisplayService.d.ts +70 -3
  80. package/build/types/services/TranslationService.d.ts +1 -1
  81. package/build/types/services/source-generation/EntityToSyntax.d.ts +4 -0
  82. package/build/types/tree/KeywordKind.d.ts +57 -56
  83. package/build/types/tree/NodeKind.d.ts +142 -140
  84. package/build/types/tree/Nodes.d.ts +51 -11
  85. package/build/types/tree/SyntaxFactory.d.ts +2 -0
  86. package/build/types/tree/SyntaxToCode.d.ts +1 -0
  87. package/build/types/ts-interop/Entities.d.ts +10 -1
  88. package/build/types/ts-interop/TsPackageMembersCreator.d.ts +1 -1
  89. package/build/types/types/ReducedType.d.ts +24 -0
  90. package/build/types/types/Type.d.ts +2 -1
  91. package/build/types/types/TypeFactory.d.ts +3 -2
  92. package/build/types/types/index.d.ts +1 -0
  93. package/package.json +1 -1
  94. package/build/types/analysis/semantic-context/SemanticContextBasedEntityHidingMatcher.d.ts +0 -14
  95. package/build/types/entities/BaseEntityHidingMatcher.d.ts +0 -11
  96. package/build/types/entities/EntityHidingMatcherWithinTypeEntity.d.ts +0 -10
  97. package/build/types/parser/ReservedIdentifierDictionary.d.ts +0 -11
@@ -29,6 +29,7 @@ export declare class EntityMap {
29
29
  getTypeParameterEntity(entity: analyzerEntities.TypeParameterEntity): emitterEntities.TypeOrExtensionEntity;
30
30
  getFunctionTypeEntity(entity: analyzerEntities.FunctionTypeEntity): emitterEntities.TypeOrExtensionEntity;
31
31
  getAliasTypeEntity(entity: analyzerEntities.AliasTypeEntity): emitterEntities.TypeOrExtensionEntity;
32
+ getReducedTypeEntity(entity: analyzerEntities.ReducedTypeEntity): emitterEntities.TypeOrExtensionEntity;
32
33
  getTypeExtensionEntity(entity: analyzerEntities.TypeExtensionEntity): emitterEntities.TypeOrExtensionEntity;
33
34
  getTypeOrExtensionEntity(entity: analyzerEntities.TypeOrExtensionEntity): emitterEntities.TypeOrExtensionEntity;
34
35
  getPackageEntity(entity: analyzerEntities.PackageEntity): emitterEntities.PackageEntity;
@@ -37,6 +38,9 @@ export declare class EntityMap {
37
38
  private getPackageEntityInternal;
38
39
  private createTypeMembers;
39
40
  private getContainingPackageAndAccumulateIfMember;
41
+ private tryGetReductionSourceMemberGetter;
42
+ private tryGetReductionSourceMemberSetter;
43
+ private getReductionSourceMember;
40
44
  private getEntityNameText;
41
45
  private getNameText;
42
46
  private isDefaultExport;
@@ -34,6 +34,7 @@ export declare class IrBuilder {
34
34
  private buildPackageFunctionDeclaration;
35
35
  private buildPackageStructuredTypeDeclaration;
36
36
  private buildPackageAliasTypeDeclaration;
37
+ private buildPackageReducedTypeDeclaration;
37
38
  private buildPackageVariableDeclaration;
38
39
  private buildPackageVariableGetterDeclaration;
39
40
  private buildPackageVariableSetterDeclaration;
@@ -11,6 +11,7 @@ import { IndexerEntity } from './interfaces/IndexerEntity.js';
11
11
  import { OperatorEntity } from './interfaces/OperatorEntity.js';
12
12
  import { PackageAliasEntity } from './interfaces/PackageAliasEntity.js';
13
13
  import { PackageEntity } from './interfaces/PackageEntity.js';
14
+ import { ReducedTypeEntity } from './interfaces/ReducedTypeEntity.js';
14
15
  import { SetterEntity } from './interfaces/SetterEntity.js';
15
16
  import { AnonymousStructuredTypeEntity, PackageStructuredTypeEntity, StructuredTypeEntity } from './interfaces/StructuredTypeEntity.js';
16
17
  import { TextTranslationEntity } from './interfaces/TextTranslationEntity.js';
@@ -40,13 +41,13 @@ export declare const enum EntityKind {
40
41
  Package = 12,
41
42
  TextTranslation = 13
42
43
  }
43
- export type Entity = PackageEntity | VariableEntity | VariantTypeEntity | GetterEntity | SetterEntity | FunctionEntity | TypeParameterEntity | OperatorEntity | IndexerEntity | DereferenceOperatorEntity | ConstructorEntity | DestructorEntity | FunctionTypeEntity | StructuredTypeEntity | PackageAliasEntity | AliasTypeEntity | TypeExtensionEntity | TextTranslationEntity;
44
- export type PackageTypeEntity = PackageFunctionTypeEntity | PackageStructuredTypeEntity | PackageVariantTypeEntity | AliasTypeEntity;
44
+ export type Entity = PackageEntity | VariableEntity | VariantTypeEntity | GetterEntity | SetterEntity | FunctionEntity | TypeParameterEntity | OperatorEntity | IndexerEntity | DereferenceOperatorEntity | ConstructorEntity | DestructorEntity | FunctionTypeEntity | StructuredTypeEntity | PackageAliasEntity | AliasTypeEntity | ReducedTypeEntity | TypeExtensionEntity | TextTranslationEntity;
45
+ export type PackageTypeEntity = PackageFunctionTypeEntity | PackageStructuredTypeEntity | PackageVariantTypeEntity | AliasTypeEntity | ReducedTypeEntity;
45
46
  export declare function isPackageTypeEntity(entity: Entity): entity is PackageTypeEntity;
46
- export type NamedTypeEntity = PackageFunctionTypeEntity | PackageStructuredTypeEntity | PackageVariantTypeEntity | AliasTypeEntity | TypeParameterEntity;
47
+ export type NamedTypeEntity = PackageFunctionTypeEntity | PackageStructuredTypeEntity | PackageVariantTypeEntity | AliasTypeEntity | ReducedTypeEntity | TypeParameterEntity;
47
48
  export type AnonymousTypeEntity = AnonymousStructuredTypeEntity | AnonymousFunctionTypeEntity | AnonymousVariantTypeEntity;
48
49
  export declare function isAnonymousTypeEntity(entity: Entity): entity is AnonymousTypeEntity;
49
- export type TypeEntityWithMembers = FunctionTypeEntity | StructuredTypeEntity | VariantTypeEntity | AliasTypeEntity;
50
+ export type TypeEntityWithMembers = FunctionTypeEntity | StructuredTypeEntity | VariantTypeEntity | AliasTypeEntity | ReducedTypeEntity;
50
51
  export declare function isTypeEntityWithMembers(entity: Entity): entity is TypeEntityWithMembers;
51
52
  export type TypeOrExtensionEntity = TypeEntity | TypeExtensionEntity;
52
53
  export type TypeWithMembersOrExtensionEntity = TypeEntityWithMembers | TypeExtensionEntity;
@@ -55,7 +56,7 @@ export declare namespace TypeWithMembersOrExtensionEntity {
55
56
  }
56
57
  export declare function isTypeWithMembersOrExtensionEntity(entity: Entity): entity is TypeWithMembersOrExtensionEntity;
57
58
  export declare function isTypeEntity(entity: Entity): entity is TypeEntity;
58
- export declare function isNamedTypeEntity(entity: TypeEntity): entity is NamedTypeEntity;
59
+ export declare function isNamedTypeEntity(entity: Entity): entity is NamedTypeEntity;
59
60
  export type PackageMemberEntity = PackageVariableEntity | PackageFunctionEntity | PackageTypeEntity | TypeExtensionEntity | TextTranslationEntity;
60
61
  export declare function isPackageMemberEntity(entity: Entity): entity is PackageMemberEntity;
61
62
  export type NamedPackageMemberEntity = PackageVariableEntity | PackageFunctionEntity | PackageTypeEntity;
@@ -65,6 +66,7 @@ export declare function isTypeMemberEntity(entity: Entity): entity is TypeMember
65
66
  export declare namespace TypeMemberEntity {
66
67
  function isAspectTypeMember(entity: TypeMemberEntity): boolean;
67
68
  function isRefObjectTypeMember(entity: TypeMemberEntity): boolean;
69
+ function isReducedTypeMember(entity: TypeMemberEntity): boolean;
68
70
  /**
69
71
  * Возвращает `true`, если объявление является всеобщим (помечено модификатором "всеобщее").
70
72
  */
@@ -87,9 +89,10 @@ export declare namespace TypeMemberEntity {
87
89
  }
88
90
  export type NamedTypeMemberEntity = FieldEntity | MethodEntity;
89
91
  export declare function isNamedTypeMemberEntity(entity: Entity): entity is NamedTypeMemberEntity;
90
- export type NamedEntity = VariableEntity | PackageVariantTypeEntity | NamedFunctionEntity | TypeParameterEntity | PackageFunctionTypeEntity | PackageStructuredTypeEntity | PackageAliasEntity | AliasTypeEntity;
92
+ export type NamedEntity = VariableEntity | PackageVariantTypeEntity | NamedFunctionEntity | TypeParameterEntity | PackageFunctionTypeEntity | PackageStructuredTypeEntity | PackageAliasEntity | AliasTypeEntity | ReducedTypeEntity;
91
93
  export type PackageOrNestedFunctionEntity = PackageFunctionEntity | NestedFunctionEntity;
92
94
  export type AccessorEntity = GetterEntity | SetterEntity;
95
+ export declare function isAccessorEntity(entity: Entity): entity is AccessorEntity;
93
96
  export type EntityWithTypeParameters = EntityContainingTypeParameter;
94
97
  export declare function isEntityWithTypeParameters(entity: Entity): entity is EntityWithTypeParameters;
95
98
  export type EntityWithParameters = Exclude<EntityContainingParameter, PackageEntity>;
@@ -1,6 +1,6 @@
1
1
  import { SourceFile } from '../project/index.js';
2
- import { PackageEntity } from './interfaces/PackageEntity.js';
3
2
  import { TypeEntity } from './index.js';
3
+ import { PackageEntity } from './interfaces/PackageEntity.js';
4
4
  export type EntityHidingLevel = EntityHidingLevel_type | EntityHidingLevel_typeHierarchy | EntityHidingLevel_file | EntityHidingLevel_package;
5
5
  export declare class EntityHidingLevel_type {
6
6
  readonly typeEntity: TypeEntity;
@@ -22,6 +22,3 @@ export declare class EntityHidingLevel_package {
22
22
  readonly kind = "package";
23
23
  constructor(packageEntity: PackageEntity);
24
24
  }
25
- export interface IEntityHidingMatcher {
26
- matches(hiding: EntityHidingLevel | undefined): boolean;
27
- }
@@ -1,7 +1,7 @@
1
1
  import { AnalyzedTranslationPackage } from '../analysis/AnalyzedTranslationPackage.js';
2
2
  import { Analyzer } from '../analysis/Analyzer.js';
3
3
  import * as types from '../types/index.js';
4
- import { AliasTypeEntity, AnonymousFunctionTypeEntity, AnonymousStructuredTypeEntity, AnonymousVariantTypeEntity, ConstructorEntity, DereferenceOperatorEntity, DestructorEntity, Entity, FieldEntity, FunctionTypeEntity, GetterEntity, IndexerEntity, MethodEntity, NamedTypeMemberEntity, OperatorEntity, PackageEntity, PackageFunctionEntity, PackageFunctionTypeEntity, PackageMemberEntity, PackageStructuredTypeEntity, PackageTypeEntity, PackageVariableEntity, PackageVariantTypeEntity, ParameterEntity, SetterEntity, StructuredTypeEntity, TypeEntity, TypeEntityWithMembers, TypeExtensionEntity, TypeMemberEntity, TypeParameterEntity, TypeWithMembersOrExtensionEntity, VariantTypeEntity } from './index.js';
4
+ import { AliasTypeEntity, AnonymousFunctionTypeEntity, AnonymousStructuredTypeEntity, AnonymousVariantTypeEntity, ConstructorEntity, DereferenceOperatorEntity, DestructorEntity, Entity, FieldEntity, FunctionTypeEntity, GetterEntity, IndexerEntity, MethodEntity, NamedTypeMemberEntity, OperatorEntity, PackageEntity, PackageFunctionEntity, PackageFunctionTypeEntity, PackageMemberEntity, PackageStructuredTypeEntity, PackageTypeEntity, PackageVariableEntity, PackageVariantTypeEntity, ParameterEntity, ReducedTypeEntity, SetterEntity, StructuredTypeEntity, TypeEntity, TypeEntityWithMembers, TypeExtensionEntity, TypeMemberEntity, TypeParameterEntity, TypeWithMembersOrExtensionEntity, VariantTypeEntity } from './index.js';
5
5
  export declare class EntityLocalizationContext {
6
6
  private readonly analyzer;
7
7
  private readonly translationPackage;
@@ -28,6 +28,7 @@ export declare class EntityLocalizationContext {
28
28
  getLocalizedPackageStructuredTypeEntity(entity: PackageStructuredTypeEntity): PackageStructuredTypeEntity;
29
29
  getLocalizedAnonymousStructuredTypeEntity(entity: AnonymousStructuredTypeEntity): AnonymousStructuredTypeEntity;
30
30
  getLocalizedAliasTypeEntity(entity: AliasTypeEntity): AliasTypeEntity;
31
+ getLocalizedReducedTypeEntity(entity: ReducedTypeEntity): ReducedTypeEntity;
31
32
  getLocalizedTypeExtensionEntity(entity: TypeExtensionEntity): TypeExtensionEntity;
32
33
  getLocalizedNamedTypeMemberEntity(entity: NamedTypeMemberEntity): NamedTypeMemberEntity;
33
34
  getLocalizedStructuredTypeEntity(entity: StructuredTypeEntity): StructuredTypeEntity;
@@ -49,6 +50,6 @@ export declare class EntityLocalizationContext {
49
50
  private getOwnTranslatedParameterEntity;
50
51
  private getOwnTranslatedAccessorEntity;
51
52
  }
52
- export type LocalizableEntity = PackageEntity | PackageVariableEntity | FieldEntity | ParameterEntity | PackageVariantTypeEntity | AnonymousVariantTypeEntity | GetterEntity | SetterEntity | PackageFunctionEntity | MethodEntity | TypeParameterEntity | OperatorEntity | IndexerEntity | DereferenceOperatorEntity | ConstructorEntity | DestructorEntity | PackageFunctionTypeEntity | AnonymousFunctionTypeEntity | PackageStructuredTypeEntity | AnonymousStructuredTypeEntity | AliasTypeEntity | TypeExtensionEntity;
53
+ export type LocalizableEntity = PackageEntity | PackageVariableEntity | FieldEntity | ParameterEntity | PackageVariantTypeEntity | AnonymousVariantTypeEntity | GetterEntity | SetterEntity | PackageFunctionEntity | MethodEntity | TypeParameterEntity | OperatorEntity | IndexerEntity | DereferenceOperatorEntity | ConstructorEntity | DestructorEntity | PackageFunctionTypeEntity | AnonymousFunctionTypeEntity | PackageStructuredTypeEntity | AnonymousStructuredTypeEntity | AliasTypeEntity | ReducedTypeEntity | TypeExtensionEntity;
53
54
  export declare function isLocalizableEntity(entity: Entity): entity is LocalizableEntity;
54
55
  export type LocalizablePackageMemberEntity = PackageMemberEntity & LocalizableEntity;
@@ -1,6 +1,6 @@
1
1
  import { IEntity } from './IEntity.js';
2
- import { AliasTypeEntity, EntityKind, FunctionTypeEntity, StructuredTypeEntity, TypeParameterEntity, VariantTypeEntity } from './index.js';
3
- export type TypeEntity = StructuredTypeEntity | FunctionTypeEntity | VariantTypeEntity | AliasTypeEntity | TypeParameterEntity;
2
+ import { AliasTypeEntity, EntityKind, FunctionTypeEntity, ReducedTypeEntity, StructuredTypeEntity, TypeParameterEntity, VariantTypeEntity } from './index.js';
3
+ export type TypeEntity = StructuredTypeEntity | FunctionTypeEntity | VariantTypeEntity | AliasTypeEntity | TypeParameterEntity | ReducedTypeEntity;
4
4
  export declare namespace TypeEntity {
5
5
  function isAbstract(entity: TypeEntity): boolean;
6
6
  function isAbstractOrAliasedAbstract(entity: TypeEntity): boolean;
@@ -16,5 +16,6 @@ export declare enum TypeEntityKind {
16
16
  Structured = 1,
17
17
  Parameter = 2,
18
18
  Variant = 3,
19
- Alias = 4
19
+ Alias = 4,
20
+ Reduced = 5
20
21
  }
@@ -1,9 +1,7 @@
1
1
  export * from './BaseAspectTypes.js';
2
- export * from './BaseEntityHidingMatcher.js';
3
2
  export * from './BaseObjectType.js';
4
3
  export * from './Entity.js';
5
4
  export * from './EntityHiding.js';
6
- export * from './EntityHidingMatcherWithinTypeEntity.js';
7
5
  export * from './EntityLocalizationContext.js';
8
6
  export * from './EntityNaming.js';
9
7
  export * from './interfaces/index.js';
@@ -9,8 +9,8 @@ export interface AliasTypeEntity extends ITypeEntity {
9
9
  readonly typeEntityKind: TypeEntityKind.Alias;
10
10
  getName(): Name;
11
11
  /**
12
- * При каждом вызове метод должен возвращать один и тот же экземпляр класса AliasedType.
13
- */
12
+ * При каждом вызове метод должен возвращать один и тот же экземпляр класса AliasedType.
13
+ */
14
14
  getAliasedType(): AliasedType;
15
15
  getTypeParameters(): readonly TypeParameterEntity[];
16
16
  getDefinition(): AliasTypeEntityDefinition;
@@ -1,7 +1,7 @@
1
1
  import * as tree from '../../tree/index.js';
2
2
  import * as types from '../../types/index.js';
3
3
  import { IEntity } from '../IEntity.js';
4
- import type { TypeWithMembersOrExtensionEntity } from '../index.js';
4
+ import type { PreservedReducedTypeEntityMemberInfo, TypeWithMembersOrExtensionEntity } from '../index.js';
5
5
  import { DefinitionKind, EntityHidingLevel, EntityKind, FieldEntity, ParameterEntity } from '../index.js';
6
6
  export interface ConstructorEntity extends IEntity {
7
7
  readonly kind: EntityKind.Constructor;
@@ -11,7 +11,9 @@ export interface ConstructorEntity extends IEntity {
11
11
  isDefault(): DefaultConstructorEntityInfo | undefined;
12
12
  isHidden(): EntityHidingLevel | undefined;
13
13
  markedAbstract(): boolean;
14
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Constructor> | undefined;
14
15
  getOriginalEntity(): ConstructorEntity;
16
+ ensureAllDiagnosticsReported?(): void;
15
17
  }
16
18
  export declare class DefaultConstructorEntityInfo {
17
19
  readonly baseConstructor: types.Constructor | undefined;
@@ -1,7 +1,7 @@
1
1
  import * as tree from '../../tree/index.js';
2
2
  import * as types from '../../types/index.js';
3
3
  import { IEntity } from '../IEntity.js';
4
- import { DefinitionKind, EntityHidingLevel, EntityKind, GetterEntity, SetterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
4
+ import { DefinitionKind, EntityHidingLevel, EntityKind, GetterEntity, PreservedReducedTypeEntityMemberInfo, SetterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
5
5
  export interface DereferenceOperatorEntity extends IEntity {
6
6
  readonly kind: EntityKind.DereferenceOperator;
7
7
  getType(): types.Type;
@@ -15,6 +15,7 @@ export interface DereferenceOperatorEntity extends IEntity {
15
15
  markedBasic(): boolean;
16
16
  markedAbstract(): boolean;
17
17
  getOverriddenMembers(): readonly types.DereferenceOperator[];
18
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.DereferenceOperator> | undefined;
18
19
  getOriginalEntity(): DereferenceOperatorEntity;
19
20
  ensureAllDiagnosticsReported?(): void;
20
21
  }
@@ -1,6 +1,7 @@
1
1
  import * as tree from '../../tree/index.js';
2
+ import * as types from '../../types/index.js';
2
3
  import { IEntity } from '../IEntity.js';
3
- import { DefinitionKind, EntityHidingLevel, EntityKind, ParameterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
4
+ import { DefinitionKind, EntityHidingLevel, EntityKind, ParameterEntity, PreservedReducedTypeEntityMemberInfo, TypeWithMembersOrExtensionEntity } from '../index.js';
4
5
  export interface DestructorEntity extends IEntity {
5
6
  readonly kind: EntityKind.Destructor;
6
7
  getParameters(): readonly ParameterEntity[];
@@ -8,7 +9,9 @@ export interface DestructorEntity extends IEntity {
8
9
  getDefinition(): DestructorEntityDefinition;
9
10
  isHidden(): EntityHidingLevel | undefined;
10
11
  markedAbstract(): boolean;
12
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Destructor> | undefined;
11
13
  getOriginalEntity(): DestructorEntity;
14
+ ensureAllDiagnosticsReported?(): void;
12
15
  }
13
16
  export type DestructorEntityDefinition = {
14
17
  kind: DefinitionKind.Source;
@@ -3,7 +3,7 @@ import { Name } from '../../common/index.js';
3
3
  import * as tree from '../../tree/index.js';
4
4
  import * as types from '../../types/index.js';
5
5
  import { IEntity } from '../IEntity.js';
6
- import type { EntityNaming, TypeWithMembersOrExtensionEntity } from '../index.js';
6
+ import type { EntityNaming, PreservedReducedTypeEntityMemberInfo, TypeWithMembersOrExtensionEntity } from '../index.js';
7
7
  import { DefinitionKind, EntityHidingLevel, EntityKind, ParameterEntity, SubstitutionApplicationMode, TypeParameterEntity } from '../index.js';
8
8
  export type FunctionEntity = PackageFunctionEntity | MethodEntity | NestedFunctionEntity | AnonymousFunctionEntity;
9
9
  interface IFunctionEntity extends IEntity {
@@ -35,7 +35,9 @@ export interface MethodEntity extends IFunctionEntity {
35
35
  isModifyingOwningPlainObject(): boolean;
36
36
  isFunctionTypeInvokeMethod(): boolean;
37
37
  getOverriddenMembers(): readonly types.Method[];
38
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Method> | undefined;
38
39
  getOriginalEntity(): MethodEntity;
40
+ ensureAllDiagnosticsReported?(): void;
39
41
  }
40
42
  export interface NestedFunctionEntity extends IFunctionEntity {
41
43
  readonly subkind: 'nested';
@@ -1,7 +1,7 @@
1
1
  import * as tree from '../../tree/index.js';
2
2
  import * as types from '../../types/index.js';
3
3
  import { IEntity } from '../IEntity.js';
4
- import { DefinitionKind, EntityHidingLevel, EntityKind, GetterEntity, ParameterEntity, SetterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
4
+ import { DefinitionKind, EntityHidingLevel, EntityKind, GetterEntity, ParameterEntity, PreservedReducedTypeEntityMemberInfo, SetterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
5
5
  export interface IndexerEntity extends IEntity {
6
6
  readonly kind: EntityKind.Indexer;
7
7
  getParameters(): readonly ParameterEntity[];
@@ -16,6 +16,7 @@ export interface IndexerEntity extends IEntity {
16
16
  markedBasic(): boolean;
17
17
  markedAbstract(): boolean;
18
18
  getOverriddenMembers(): readonly types.Indexer[];
19
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Indexer> | undefined;
19
20
  getOriginalEntity(): IndexerEntity;
20
21
  ensureAllDiagnosticsReported?(): void;
21
22
  }
@@ -1,7 +1,7 @@
1
1
  import * as tree from '../../tree/index.js';
2
2
  import * as types from '../../types/index.js';
3
3
  import { IEntity } from '../IEntity.js';
4
- import { DefinitionKind, EntityHidingLevel, EntityKind, OperatorKind, ParameterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
4
+ import { DefinitionKind, EntityHidingLevel, EntityKind, OperatorKind, ParameterEntity, PreservedReducedTypeEntityMemberInfo, TypeWithMembersOrExtensionEntity } from '../index.js';
5
5
  export interface OperatorEntity extends IEntity {
6
6
  readonly kind: EntityKind.Operator;
7
7
  getOperatorKind(): OperatorKind;
@@ -15,7 +15,9 @@ export interface OperatorEntity extends IEntity {
15
15
  markedAbstract(): boolean;
16
16
  isHidden(): EntityHidingLevel | undefined;
17
17
  getOverriddenMembers(): readonly types.Operator[];
18
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Operator> | undefined;
18
19
  getOriginalEntity(): OperatorEntity;
20
+ ensureAllDiagnosticsReported?(): void;
19
21
  }
20
22
  export type OperatorEntityDefinition = {
21
23
  kind: DefinitionKind.Source;
@@ -0,0 +1,99 @@
1
+ import { Analyzer } from '../../analysis/index.js';
2
+ import { Name } from '../../common/index.js';
3
+ import * as tree from '../../tree/index.js';
4
+ import * as types from '../../types/index.js';
5
+ import { TypeEntityMembers } from '../TypeEntityMembers.js';
6
+ import { BaseAspectTypes, BaseObjectType, DefinitionKind, EntityHidingLevel, EntityKind, ITypeEntity, SubstitutionApplicationMode, TypeEntityKind, TypeParameterEntity } from '../index.js';
7
+ export interface ReducedTypeEntity extends ITypeEntity {
8
+ readonly kind: EntityKind.Type;
9
+ readonly typeEntityKind: TypeEntityKind.Reduced;
10
+ getName(): Name;
11
+ /**
12
+ * При каждом вызове метод должен возвращать один и тот же экземпляр класса ReductionSource.
13
+ */
14
+ getReductionSource(): ReductionSource;
15
+ /**
16
+ * При каждом вызове метод должен возвращать один и тот же экземпляр класса BaseObjectType.
17
+ */
18
+ getBaseObjectType(): BaseObjectType;
19
+ /**
20
+ * При каждом вызове метод должен возвращать один и тот же экземпляр класса BaseAspectTypes.
21
+ */
22
+ getBaseAspectTypes(): BaseAspectTypes;
23
+ getTypeParameters(): readonly TypeParameterEntity[];
24
+ getDefinition(): ReducedTypeEntityDefinition;
25
+ getMembers(): TypeEntityMembers;
26
+ getArity(): number;
27
+ isHidden(): EntityHidingLevel | undefined;
28
+ getSubstitutionApplicationMode(): SubstitutionApplicationMode;
29
+ getOriginalEntity(): ReducedTypeEntity;
30
+ ensureAllDiagnosticsReported?(): void;
31
+ }
32
+ export type ReducedTypeEntityDefinition = {
33
+ kind: DefinitionKind.Source;
34
+ node: tree.PackageReducedTypeDeclaration;
35
+ };
36
+ export declare class PreservedReducedTypeEntityMemberInfo<T extends types.TypeMember = types.TypeMember> {
37
+ readonly reductionSourceMember: T | undefined;
38
+ constructor(reductionSourceMember: T | undefined);
39
+ }
40
+ /**
41
+ * Класс позволяет работать с правой частью сокращённого типа, исключая циклы.
42
+ *
43
+ * Пример цикла:
44
+ * ```artel
45
+ * тип А = сокращённый объект Б { }
46
+ * тип Б = сокращённый объект А { }
47
+ * ```
48
+ *
49
+ * Для типа `А` в поле `declared` будет указан тип `Б`, а в поле `cycleFree` - тип `unresolved`, чтобы разорвать цикл,
50
+ * созданный типами `А` и `Б`.
51
+ */
52
+ export declare abstract class ReductionSource {
53
+ /**
54
+ * Правая часть сокращённого типа, указанная пользователем.
55
+ */
56
+ abstract readonly declared: types.Type;
57
+ /**
58
+ * Правая часть сокращённого типа, указанная пользователем, либо тип `unresolved`,
59
+ * если указанный тип приводит к циклу.
60
+ */
61
+ abstract readonly cycleFree: types.Type;
62
+ /**
63
+ * Приводит ли указанная пользователем правая часть сокращённого типа к циклу?
64
+ */
65
+ abstract readonly causesCycle: boolean;
66
+ /**
67
+ * @param circularityTrackingStack Если элементом массива является `false`, тип не создаёт цикл, если `true` - создаёт.
68
+ */
69
+ abstract resolveReductionSource(circularityTrackingStack: boolean[]): CycleFreeReductionSourceResolutionResult;
70
+ }
71
+ export declare class OriginalReductionSource extends ReductionSource {
72
+ /**
73
+ * Правая часть тождественного типа, указанная пользователем.
74
+ */
75
+ readonly declared: types.Type;
76
+ private readonly analyzer;
77
+ private state;
78
+ /**
79
+ * Правая часть тождественного типа, указанная пользователем, либо тип `unresolved`,
80
+ * если указанный тип приводит к циклу.
81
+ */
82
+ get cycleFree(): types.Type;
83
+ /**
84
+ * Приводит ли указанная пользователем правая часть тождественного типа к циклу?
85
+ */
86
+ get causesCycle(): boolean;
87
+ constructor(analyzer: Analyzer, declared: types.Type);
88
+ /**
89
+ * @param circularityTrackingStack Если элементом массива является `false`, тип не создаёт цикл, если `true` - создаёт.
90
+ */
91
+ resolveReductionSource(circularityTrackingStack: boolean[]): CycleFreeReductionSourceResolutionResult;
92
+ private getAliasedTypeResolutionResult;
93
+ private checkIfTypeFormsCycle;
94
+ }
95
+ export declare class CycleFreeReductionSourceResolutionResult {
96
+ readonly type: types.Type;
97
+ readonly causesCycle: boolean;
98
+ constructor(type: types.Type, causesCycle: boolean);
99
+ }
@@ -1,7 +1,7 @@
1
1
  import { Name } from '../../common/index.js';
2
2
  import * as tree from '../../tree/index.js';
3
3
  import * as types from '../../types/index.js';
4
- import { AliasTypeEntity, DefinitionKind, EntityHidingLevel, EntityKind, FunctionTypeEntity, ITypeEntity, NamedFunctionEntity, StructuredTypeEntity, TypeEntityKind, VariantTypeEntity } from '../index.js';
4
+ import { AliasTypeEntity, DefinitionKind, EntityHidingLevel, EntityKind, FunctionTypeEntity, ITypeEntity, NamedFunctionEntity, ReducedTypeEntity, StructuredTypeEntity, TypeEntityKind, VariantTypeEntity } from '../index.js';
5
5
  export interface TypeParameterEntity extends ITypeEntity {
6
6
  readonly kind: EntityKind.Type;
7
7
  readonly typeEntityKind: TypeEntityKind.Parameter;
@@ -26,7 +26,7 @@ export type TypeParameterEntityDefinition = {
26
26
  } | {
27
27
  kind: DefinitionKind.TypeScript;
28
28
  };
29
- export type EntityContainingTypeParameter = VariantTypeEntity | NamedFunctionEntity | FunctionTypeEntity | StructuredTypeEntity | AliasTypeEntity;
29
+ export type EntityContainingTypeParameter = VariantTypeEntity | NamedFunctionEntity | FunctionTypeEntity | StructuredTypeEntity | AliasTypeEntity | ReducedTypeEntity;
30
30
  /**
31
31
  * Класс позволяет работать с ограничением параметра шаблона, исключая циклы.
32
32
  *
@@ -3,7 +3,7 @@ import { Name } from '../../common/index.js';
3
3
  import * as tree from '../../tree/index.js';
4
4
  import * as types from '../../types/index.js';
5
5
  import { IEntity } from '../IEntity.js';
6
- import { ConstructorEntity, DefinitionKind, DestructorEntity, EntityHidingLevel, EntityKind, FunctionEntity, FunctionTypeEntity, GetterEntity, IndexerEntity, OperatorEntity, PackageEntity, SetterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
6
+ import { ConstructorEntity, DefinitionKind, DestructorEntity, EntityHidingLevel, EntityKind, FunctionEntity, FunctionTypeEntity, GetterEntity, IndexerEntity, OperatorEntity, PackageEntity, PreservedReducedTypeEntityMemberInfo, SetterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
7
7
  export type VariableEntity = PackageVariableEntity | FieldEntity | ParameterEntity | LocalVariableEntity;
8
8
  interface IVariableEntity extends IEntity {
9
9
  readonly kind: EntityKind.Variable;
@@ -30,6 +30,7 @@ export interface FieldEntity extends IVariableEntity {
30
30
  markedAbstract(): boolean;
31
31
  getOverriddenMembers(): readonly types.Field[];
32
32
  isVariant(): boolean;
33
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Field> | undefined;
33
34
  getOriginalEntity(): FieldEntity;
34
35
  }
35
36
  export interface ParameterEntity extends IVariableEntity {
@@ -9,6 +9,7 @@ export * from './IndexerEntity.js';
9
9
  export * from './OperatorEntity.js';
10
10
  export * from './PackageAliasEntity.js';
11
11
  export * from './PackageEntity.js';
12
+ export * from './ReducedTypeEntity.js';
12
13
  export * from './SetterEntity.js';
13
14
  export * from './StructuredTypeEntity.js';
14
15
  export * from './TextTranslationEntity.js';
@@ -3,7 +3,7 @@ import { Translation } from '../../analysis/Translation.js';
3
3
  import { Analyzer } from '../../analysis/index.js';
4
4
  import { PackageDialect, PackageLocale } from '../../common/index.js';
5
5
  import * as types from '../../types/index.js';
6
- import type { PackageEntity, TypeEntityWithMembers, TypeWithMembersOrExtensionEntity } from '../index.js';
6
+ import type { PackageEntity, PreservedReducedTypeEntityMemberInfo, TypeEntityWithMembers, TypeWithMembersOrExtensionEntity } from '../index.js';
7
7
  import { ConstructorEntity, ConstructorEntityDefinition, DefaultConstructorEntityInfo, EntityHidingLevel, EntityKind, FieldEntity, ParameterEntity } from '../index.js';
8
8
  export declare class IntrinsicConstructorEntity implements ConstructorEntity {
9
9
  private readonly parameters;
@@ -21,6 +21,7 @@ export declare class IntrinsicConstructorEntity implements ConstructorEntity {
21
21
  isHidden(): EntityHidingLevel | undefined;
22
22
  markedAbstract(): boolean;
23
23
  getTags(): readonly Tag[];
24
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Constructor> | undefined;
24
25
  getTranslation(): Translation | undefined;
25
26
  getLocale(): PackageLocale;
26
27
  getDialect(): PackageDialect;
@@ -42,6 +43,7 @@ export declare class DefaultConstructorEntity implements ConstructorEntity {
42
43
  isHidden(): EntityHidingLevel | undefined;
43
44
  markedAbstract(): boolean;
44
45
  getTags(): readonly Tag[];
46
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Constructor> | undefined;
45
47
  getTranslation(): Translation | undefined;
46
48
  getLocale(): PackageLocale;
47
49
  getDialect(): PackageDialect;
@@ -2,7 +2,7 @@ import { Tag } from '../../analysis/Tag.js';
2
2
  import { Translation } from '../../analysis/Translation.js';
3
3
  import { Name, PackageDialect, PackageLocale } from '../../common/index.js';
4
4
  import * as types from '../../types/index.js';
5
- import type { EntityNaming, FunctionEntityDefinition, MethodEntity, PackageEntity, PackageFunctionEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
5
+ import type { EntityNaming, FunctionEntityDefinition, MethodEntity, PackageEntity, PackageFunctionEntity, PreservedReducedTypeEntityMemberInfo, TypeWithMembersOrExtensionEntity } from '../index.js';
6
6
  import { EntityHidingLevel, EntityKind, ParameterEntity, SubstitutionApplicationMode, TypeParameterEntity } from '../index.js';
7
7
  export declare class IntrinsicPackageFunctionEntity implements PackageFunctionEntity {
8
8
  private readonly name;
@@ -72,6 +72,7 @@ export declare class IntrinsicMethodEntity implements MethodEntity {
72
72
  isModifyingOwningPlainObject(): boolean;
73
73
  getSubstitutionApplicationMode(): SubstitutionApplicationMode;
74
74
  getOverriddenMembers(): readonly types.Method[];
75
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Method> | undefined;
75
76
  getTranslation(): Translation | undefined;
76
77
  getLocale(): PackageLocale;
77
78
  getDialect(): PackageDialect;
@@ -2,7 +2,7 @@ import { Tag } from '../../analysis/Tag.js';
2
2
  import { Translation } from '../../analysis/Translation.js';
3
3
  import { Lazy, Name, PackageDialect, PackageLocale } from '../../common/index.js';
4
4
  import * as types from '../../types/index.js';
5
- import type { EntityContainingParameter, PackageEntity } from '../index.js';
5
+ import type { EntityContainingParameter, PackageEntity, PreservedReducedTypeEntityMemberInfo } from '../index.js';
6
6
  import { EntityHidingLevel, EntityKind, FieldEntity, GetterEntity, LocalVariableEntity, LocalVariableKind, PackageVariableEntity, ParameterEntity, SetterEntity, SpecialVariableEntityInfo, TypeWithMembersOrExtensionEntity, VariableEntityDefinition } from '../index.js';
7
7
  export declare class IntrinsicPackageVariableEntity implements PackageVariableEntity {
8
8
  private readonly name;
@@ -63,6 +63,7 @@ export declare class IntrinsicFieldEntity implements FieldEntity {
63
63
  markedAbstract(): boolean;
64
64
  getOverriddenMembers(): readonly types.Field[];
65
65
  isVariant(): boolean;
66
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Field> | undefined;
66
67
  getTranslation(): Translation | undefined;
67
68
  getLocale(): PackageLocale;
68
69
  getDialect(): PackageDialect;
@@ -3,16 +3,18 @@ import { Translation } from '../../analysis/Translation.js';
3
3
  import { Analyzer } from '../../analysis/index.js';
4
4
  import { PackageDialect, PackageLocale } from '../../common/index.js';
5
5
  import { ConstructorDeclaration } from '../../tree/index.js';
6
- import type { ConstructorEntity, ConstructorEntityDefinition, DefaultConstructorEntityInfo, PackageEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
7
- import { EntityHidingLevel, EntityKind, ParameterEntity } from '../index.js';
6
+ import * as types from '../../types/index.js';
7
+ import { ConstructorEntity, ConstructorEntityDefinition, DefaultConstructorEntityInfo, EntityHidingLevel, EntityKind, PackageEntity, ParameterEntity, PreservedReducedTypeEntityMemberInfo, TypeWithMembersOrExtensionEntity } from '../index.js';
8
8
  export declare class ConstructorDeclarationEntity implements ConstructorEntity {
9
9
  private readonly analyzer;
10
10
  private readonly node;
11
11
  readonly kind = EntityKind.Constructor;
12
12
  private readonly parameters;
13
13
  private readonly hiding;
14
+ private readonly isPreservedReducedTypeMember_;
14
15
  private containingEntity;
15
16
  private modifierFlags_;
17
+ private hasReportedAllDiagnostics;
16
18
  private get modifierFlags();
17
19
  constructor(analyzer: Analyzer, node: ConstructorDeclaration);
18
20
  getParameters(): readonly ParameterEntity[];
@@ -23,8 +25,10 @@ export declare class ConstructorDeclarationEntity implements ConstructorEntity {
23
25
  isHidden(): EntityHidingLevel | undefined;
24
26
  markedAbstract(): boolean;
25
27
  getTags(): readonly Tag[];
28
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Constructor> | undefined;
26
29
  getTranslation(): Translation | undefined;
27
30
  getLocale(): PackageLocale;
28
31
  getDialect(): PackageDialect;
29
32
  getOriginalEntity(): ConstructorEntity;
33
+ ensureAllDiagnosticsReported(): void;
30
34
  }
@@ -4,13 +4,14 @@ import { Translation } from '../../analysis/Translation.js';
4
4
  import { PackageDialect, PackageLocale } from '../../common/index.js';
5
5
  import { DereferencedVariableGetterDeclaration, DereferencedVariableSetterDeclaration } from '../../tree/index.js';
6
6
  import * as types from '../../types/index.js';
7
- import { DereferenceOperatorEntity, DereferenceOperatorEntityDefinition, EntityHidingLevel, EntityKind, GetterEntity, PackageEntity, SetterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
7
+ import { DereferenceOperatorEntity, DereferenceOperatorEntityDefinition, EntityHidingLevel, EntityKind, GetterEntity, PackageEntity, PreservedReducedTypeEntityMemberInfo, SetterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
8
8
  export declare class DereferenceOperatorDeclarationEntity implements DereferenceOperatorEntity {
9
9
  readonly kind = EntityKind.DereferenceOperator;
10
10
  private readonly analyzer;
11
11
  private readonly getterDeclaration;
12
12
  private readonly setterDeclaration;
13
13
  private readonly getterOrSetterDeclaration;
14
+ private readonly isPreservedReducedTypeMember_;
14
15
  private containingEntity;
15
16
  private modifierFlags_;
16
17
  private hasReportedAllDiagnostics;
@@ -29,6 +30,7 @@ export declare class DereferenceOperatorDeclarationEntity implements Dereference
29
30
  markedAbstract(): boolean;
30
31
  getTags(): readonly Tag[];
31
32
  getOverriddenMembers(): readonly types.DereferenceOperator[];
33
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.DereferenceOperator> | undefined;
32
34
  getTranslation(): Translation | undefined;
33
35
  getLocale(): PackageLocale;
34
36
  getDialect(): PackageDialect;
@@ -3,15 +3,18 @@ import { Translation } from '../../analysis/Translation.js';
3
3
  import { Analyzer } from '../../analysis/index.js';
4
4
  import { PackageDialect, PackageLocale } from '../../common/index.js';
5
5
  import { DestructorDeclaration } from '../../tree/index.js';
6
- import { DestructorEntity, DestructorEntityDefinition, EntityHidingLevel, EntityKind, PackageEntity, ParameterEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
6
+ import * as types from '../../types/index.js';
7
+ import { DestructorEntity, DestructorEntityDefinition, EntityHidingLevel, EntityKind, PackageEntity, ParameterEntity, PreservedReducedTypeEntityMemberInfo, TypeWithMembersOrExtensionEntity } from '../index.js';
7
8
  export declare class DestructorDeclarationEntity implements DestructorEntity {
8
9
  private readonly analyzer;
9
10
  private readonly node;
10
11
  readonly kind = EntityKind.Destructor;
11
12
  private readonly parameters;
12
13
  private readonly hiding;
14
+ private readonly isPreservedReducedTypeMember_;
13
15
  private containingEntity;
14
16
  private modifierFlags_;
17
+ private hasReportedAllDiagnostics;
15
18
  private get modifierFlags();
16
19
  constructor(analyzer: Analyzer, node: DestructorDeclaration);
17
20
  getParameters(): readonly ParameterEntity[];
@@ -21,8 +24,10 @@ export declare class DestructorDeclarationEntity implements DestructorEntity {
21
24
  isHidden(): EntityHidingLevel | undefined;
22
25
  markedAbstract(): boolean;
23
26
  getTags(): readonly Tag[];
27
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Destructor> | undefined;
24
28
  getTranslation(): Translation | undefined;
25
29
  getLocale(): PackageLocale;
26
30
  getDialect(): PackageDialect;
27
31
  getOriginalEntity(): DestructorEntity;
32
+ ensureAllDiagnosticsReported(): void;
28
33
  }
@@ -5,7 +5,7 @@ import { Name, PackageDialect, PackageLocale } from '../../common/index.js';
5
5
  import * as tree from '../../tree/index.js';
6
6
  import * as types from '../../types/index.js';
7
7
  import type { AnonymousFunctionEntity, EntityNaming, FunctionEntityDefinition, FunctionLiteralParameterDeclarationEntity, MethodEntity, NestedFunctionEntity, PackageEntity, PackageFunctionEntity, TypeWithMembersOrExtensionEntity } from '../index.js';
8
- import { EntityHidingLevel, EntityKind, ParameterEntity, SubstitutionApplicationMode, TypeParameterEntity } from '../index.js';
8
+ import { EntityHidingLevel, EntityKind, ParameterEntity, PreservedReducedTypeEntityMemberInfo, SubstitutionApplicationMode, TypeParameterEntity } from '../index.js';
9
9
  export declare class PackageFunctionDeclarationEntity implements PackageFunctionEntity {
10
10
  private readonly analyzer;
11
11
  private readonly node;
@@ -46,8 +46,10 @@ export declare class MethodDeclarationEntity implements MethodEntity {
46
46
  private readonly parameters;
47
47
  private readonly returnType;
48
48
  private readonly hiding;
49
+ private readonly isPreservedReducedTypeMember_;
49
50
  private containingEntity;
50
51
  private modifierFlags_;
52
+ private hasReportedAllDiagnostics;
51
53
  private get modifierFlags();
52
54
  constructor(analyzer: Analyzer, node: tree.MethodDeclaration);
53
55
  getName(): Name;
@@ -70,10 +72,12 @@ export declare class MethodDeclarationEntity implements MethodEntity {
70
72
  isModifyingOwningPlainObject(): boolean;
71
73
  getSubstitutionApplicationMode(): SubstitutionApplicationMode;
72
74
  getOverriddenMembers(): readonly types.Method[];
75
+ isPreservedReducedTypeMember(): PreservedReducedTypeEntityMemberInfo<types.Method> | undefined;
73
76
  getTranslation(): Translation | undefined;
74
77
  getLocale(): PackageLocale;
75
78
  getDialect(): PackageDialect;
76
79
  getOriginalEntity(): MethodEntity;
80
+ ensureAllDiagnosticsReported(): void;
77
81
  }
78
82
  export declare class NestedFunctionDeclarationEntity implements NestedFunctionEntity {
79
83
  private readonly analyzer;