@artel/artc 0.6.25231 → 0.6.25232

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Compiler
3
- } from "./chunk-VQ5GGKF7.js";
3
+ } from "./chunk-S7ZUX7EX.js";
4
4
  import {
5
5
  ArtelVersion,
6
6
  Cached,
@@ -14,7 +14,7 @@ import {
14
14
  __async,
15
15
  performanceMeasurementStageNames,
16
16
  performanceMeasurementStages
17
- } from "./chunk-S7CAJWX2.js";
17
+ } from "./chunk-E72KEKQV.js";
18
18
 
19
19
  // source/executor/FileSystemUri.ts
20
20
  import { platform } from "os";
@@ -10,7 +10,7 @@ import {
10
10
  WellKnownDeclarationsLoadError,
11
11
  __async,
12
12
  createTsInteropInputsForCompilation
13
- } from "./chunk-S7CAJWX2.js";
13
+ } from "./chunk-E72KEKQV.js";
14
14
 
15
15
  // source/executor/Compiler.ts
16
16
  var Compiler = class {
@@ -98,6 +98,7 @@ export declare class Analyzer {
98
98
  private readonly _diagnosticsComputedLazily;
99
99
  private readonly _diagnosticsComputedLazilyAcceptor;
100
100
  private readonly _sourcePackageMemberConflictsDiagnostics;
101
+ private readonly _notImplementedAbstractTypeMembers;
101
102
  get tsInterop(): TsInteropContext;
102
103
  constructor(compilation: project.Compilation, tsInteropInputs: TsInteropInputs);
103
104
  getProjectSourceFile(node: tree.SourceFile): project.SourceFile;
@@ -278,6 +279,7 @@ export declare class Analyzer {
278
279
  getSourceFileDiagnosticsComputedLazily(sourceFile: project.SourceFile): readonly Diagnostic[];
279
280
  getDiagnosticsWithoutLocationComputedLazily(): readonly Diagnostic[];
280
281
  validateSourcePackageMemberConflicts(pkg: project.ProgramPackage): readonly Diagnostic[];
282
+ getNotImplementedAbstractMembers(typeEntity: e.TypeEntityWithMembers): readonly types.TypeMember[];
281
283
  private createTsInterop;
282
284
  }
283
285
  export declare class TsInteropInputs {
@@ -481,28 +483,56 @@ declare class DefaultConstructors {
481
483
  }
482
484
  declare class OverriddenMember {
483
485
  private readonly _analyzer;
486
+ private readonly _fieldFinder;
487
+ private readonly _methodFinder;
488
+ private readonly _operatorFinder;
489
+ private readonly _indexerFinder;
490
+ private readonly _dereferenceOperatorFinder;
491
+ private readonly _overriddenAndShadowedFields;
492
+ private readonly _overriddenAndShadowedMethods;
493
+ private readonly _overriddenAndShadowedOperators;
494
+ private readonly _overriddenAndShadowedIndexers;
495
+ private readonly _overriddenAndShadowedDereferenceOperators;
484
496
  constructor(_analyzer: Analyzer);
485
- getOverriddenFields(node: tree.FieldDeclaration | FieldAccessorDeclaration): types.Field[];
486
- getOverriddenMethods(node: tree.MethodDeclaration): types.Method[];
487
- getOverriddenOperators(node: tree.OperatorDeclaration): types.Operator[];
488
- getOverriddenIndexers(node: IndexedElementAccessorDeclaration): types.Indexer[];
489
- getOverriddenDereferenceOperators(node: DereferencedVariableAccessorDeclaration): types.DereferenceOperator[];
490
- private findOverriddenFieldInType;
491
- private findOverriddenMethodInType;
492
- private findOverriddenOperatorInType;
493
- private findOverriddenIndexerInType;
494
- private findOverriddenDereferenceOperatorInType;
495
- private checkFieldOverridesField;
496
- private checkMethodOverridesMethod;
497
- private checkOperatorOverridesOperator;
498
- private checkIndexerOverridesIndexer;
499
- private checkDereferenceOperatorOverridesDereferenceOperator;
500
- private enumerateTypeMemberLookupsForOverriddenMember;
497
+ getOverriddenAndShadowedFields(node: tree.FieldDeclaration | FieldAccessorDeclaration): OverriddenAndShadowedMembers<types.Field>;
498
+ getOverriddenAndShadowedMethods(node: tree.MethodDeclaration): OverriddenAndShadowedMembers<types.Method>;
499
+ getOverriddenAndShadowedOperators(node: tree.OperatorDeclaration): OverriddenAndShadowedMembers<types.Operator>;
500
+ getOverriddenAndShadowedIndexers(node: IndexedElementAccessorDeclaration): OverriddenAndShadowedMembers<types.Indexer>;
501
+ getOverriddenAndShadowedDereferenceOperators(node: DereferencedVariableAccessorDeclaration): OverriddenAndShadowedMembers<types.DereferenceOperator>;
502
+ entityCanBeOverridden(entity: OverridableTypeMemberEntity): boolean;
503
+ getEntityTypeOrReturnType(entity: OverridableTypeMemberEntity): types.Type;
504
+ getMemberTypeOrReturnType(member: OverridableTypeMember): types.Type;
505
+ private findOverriddenMembers;
506
+ private findOverriddenOrShadowedFieldInType;
507
+ private findOverriddenOrShadowedMethodInType;
508
+ private findOverriddenOrShadowedOperatorInType;
509
+ private findOverriddenOrShadowedIndexerInType;
510
+ private findOverriddenOrShadowedDereferenceOperatorInType;
511
+ private checkMethodOverridesOrShadowsMethod;
512
+ private checkOperatorOverridesOrShadowsOperator;
513
+ private checkIndexerOverridesOrShadowsIndexer;
514
+ private enumerateTypeMemberLookups;
501
515
  private enumerateTypesForOverriddenMemberLookup;
502
- private entityCanOverride;
503
- private entityCanBeOverridden;
504
- private addTypeMemberIfUnique;
516
+ private entityCanOverrideOrShadow;
505
517
  }
518
+ export declare enum ShadowReason {
519
+ BaseMemberCanNotBeOverridden = 0,
520
+ NoOverrideModifier = 1,
521
+ NoOverrideModifierAndTypeOrReturnTypeMismatch = 2,
522
+ TypeOrReturnTypeMismatch = 3
523
+ }
524
+ export declare class ShadowedMemberInfo<T extends OverridableTypeMember = OverridableTypeMember> {
525
+ readonly value: T;
526
+ readonly shadowReason: ShadowReason;
527
+ constructor(value: T, shadowReason: ShadowReason);
528
+ }
529
+ export declare class OverriddenAndShadowedMembers<T extends OverridableTypeMember = OverridableTypeMember> {
530
+ readonly overriddenMembers: readonly T[];
531
+ readonly shadowedMembers: readonly ShadowedMemberInfo<T>[];
532
+ constructor(overriddenMembers: readonly T[], shadowedMembers: readonly ShadowedMemberInfo<T>[]);
533
+ }
534
+ export type OverridableTypeMemberEntity = e.FieldEntity | e.MethodEntity | e.OperatorEntity | e.IndexerEntity | e.DereferenceOperatorEntity;
535
+ export type OverridableTypeMember = types.Field | types.Method | types.Operator | types.Indexer | types.DereferenceOperator;
506
536
  declare class Tags {
507
537
  readonly _analyzer: Analyzer;
508
538
  private readonly _tags;
@@ -577,13 +607,17 @@ declare class OwningPlainObjectModificationCheck {
577
607
  private nodeBelongsToPlainObjectDeclaration;
578
608
  }
579
609
  export declare enum TypeAssignabilityFlags {
580
- NotAssignable = 0,
581
- Identity = 1,
582
- DerivedToBase = 2,
583
- FunctionTypes = 4,
584
- ImplicitConversion = 8,
610
+ None = 0,
611
+ /**
612
+ * Если флаг NotAssignable установлен, никакие другие флаги не могут быть установлены.
613
+ */
614
+ NotAssignable = 1,
615
+ Identity = 2,
616
+ DerivedToBase = 4,
617
+ FunctionTypes = 8,
618
+ ImplicitConversion = 16,
585
619
  First = 1,
586
- Last = 8
620
+ Last = 16
587
621
  }
588
622
  declare class PackageImports {
589
623
  private readonly _analyzer;
@@ -622,6 +656,9 @@ declare class TypeUtils {
622
656
  getCommonObjectAndAspectTypesOfUnion(unionType: types.UnionType): readonly types.StructuredType[];
623
657
  removeBaseTypesInPlace(types: types.Type[]): void;
624
658
  removeDerivedTypesInPlace(types: types.Type[]): void;
659
+ getBaseTypes(type: types.Type): readonly types.Type[];
660
+ getBaseTypesRecursively(type: types.Type): readonly types.Type[];
661
+ private collectBaseTypesRecursively;
625
662
  private getBaseTypesForCommonTypesSearch;
626
663
  private addTypeAndCollectAllBaseTypes;
627
664
  private addTypeIfUnique;
@@ -5,9 +5,12 @@ import { Analyzer } from './Analyzer.js';
5
5
  import { FoundAnonymousDeclaration } from './FoundDeclaration.js';
6
6
  /**
7
7
  * "основа" не является самостоятельным выражением и может использоваться только в следующих конструкциях:
8
- * 1. основа() - в конструкторе для вызова базового конструктора или в методе для вызова базового метода.
9
- * 2. основа.поле (основа.метод) - в любом выражении в контексте типа, имеющего базовый тип.
10
- * 3. основа[] - аналогично п. 2.
8
+ * 1. `основа()` - в конструкторе для вызова базового конструктора или в методе для вызова базового метода.
9
+ * 2. `основа.поле` (`основа.метод`) - в любом выражении в контексте типа, имеющего базовый тип.
10
+ * 3. `основа[]` - аналогично п. 2.
11
+ * 4. `основа^` - аналогично п. 2.
12
+ * 5. `(основа как БазовыйАспект).поле`, `(основа как БазовыйАспект)[]`, `(основа как БазовыйАспект)^` - для доступа к
13
+ * реализации по умолчанию члена базового аспекта.
11
14
  */
12
15
  export declare class Resolver {
13
16
  private readonly _analyzer;
@@ -81,6 +81,9 @@ export declare class DiagnosticCollector {
81
81
  private checkIfNestedFunctionIsUnused;
82
82
  private checkIfTypeParameterIsUnused;
83
83
  private checkAllCodePathsReturnOrResultVariableIsAssigned;
84
+ private checkTypeMemberIncorrectlyOverridesOrShadowsBaseMember;
85
+ private isReceiverBaseAutoVariableAccess;
86
+ private overridingMemberHasCorrectHiding;
84
87
  private addDiagnostic;
85
88
  private addDiagnostics;
86
89
  private addMaybeLazyDiagnostic;
@@ -5,9 +5,9 @@ export declare enum ModifierFlags {
5
5
  HiddenInHierarchy = 4,
6
6
  HiddenInFile = 8,
7
7
  HiddenInPackage = 16,
8
- Basic = 32,
9
- Static = 64,
10
- Abstract = 128,
8
+ Static = 32,
9
+ Abstract = 64,
10
+ Basic = 128,
11
11
  Override = 256,
12
12
  Async = 512,
13
13
  Const = 1024,
@@ -66,6 +66,7 @@ export declare class ModifierValidator {
66
66
  private validateTypeMembers;
67
67
  private validateTypeMemberModifierList;
68
68
  private validateTypeMemberCanBePlacedInGroupWithModifiers;
69
+ private validateFieldCanBePlacedInGroupWithModifiers;
69
70
  private typeMemberAllowsAbstractModifier;
70
71
  private typeMemberAllowsBasicModifier;
71
72
  private typeMemberAllowsOverrideModifier;
@@ -0,0 +1,13 @@
1
+ import { DiagnosticAcceptor } from '../diagnostic/Diagnostic.js';
2
+ import { TypeEntityWithMembers } from '../entities/index.js';
3
+ import { DisplayService } from '../services/DisplayService.js';
4
+ import { Analyzer } from './Analyzer.js';
5
+ export declare class TypeMemberImplementationValidator {
6
+ private readonly _analyzer;
7
+ private readonly _typeEntity;
8
+ private readonly _displayService;
9
+ private readonly _diagnostics;
10
+ constructor(_analyzer: Analyzer, _typeEntity: TypeEntityWithMembers, _displayService: DisplayService, _diagnostics: DiagnosticAcceptor);
11
+ validate(): void;
12
+ private getDiagnosticLocation;
13
+ }
@@ -5,4 +5,9 @@ export declare class ArrayUtils {
5
5
  * Работает быстрее, чем `array.splice(index, 1)`, и не выделяет память для массива удалённых элементов.
6
6
  */
7
7
  static removeElement<T>(array: T[], index: number): void;
8
+ static pushElementIfUniqueComparingWithEquals<T extends WithEqualsMethod<T>>(array: T[], element: T): void;
9
+ static pushElementsIfUniqueComparingWithEquals<T extends WithEqualsMethod<T>>(array: T[], elements: readonly T[]): void;
8
10
  }
11
+ export type WithEqualsMethod<T> = {
12
+ equals(t: T): boolean;
13
+ };
@@ -88,89 +88,102 @@ export declare enum DiagnosticCode {
88
88
  BodyIsMissing = 250,
89
89
  AbstractTypeMembersMustNotHaveBody = 251,
90
90
  MembersOfAspectTypeMustNotHaveBody = 252,
91
- DeclarationsMarkedWithBuiltIntoPlatformTagMustNotHaveBody = 253,
92
- AbstractVariablesMustNotHaveInitializers = 254,
93
- PackageIsAlreadyImportedInAnotherLanguage = 255,
94
- OnlySubprogramsWithReturnTypeCanReturnValue = 256,
95
- FunctionsUsingYieldStatementCannotReturnValue = 257,
96
- YieldStatementCannotBeUsedInAnonymousFunctions = 258,
97
- YieldStatementCannotBeUsedHere = 259,
98
- FunctionsUsingYieldStatementMustHaveEnumerableAsReturnType = 260,
99
- YieldStatementCannotBeUsedInTryStatementThatHasCatchClause = 261,
100
- YieldStatementCannotBeUsedInFinallyClause = 262,
101
- SubprogramMustReturnValue = 263,
102
- ResultVariableCannotBeUsedInFunctionsUsingYieldStatement = 264,
103
- TypeAliasReferencesItself = 265,
104
- TypeParameterHasCircularConstraint = 266,
105
- BaseTypeCausesInheritanceCycle = 267,
106
- OnlyGenericTypesAndFunctionsCanBeSpecialized = 268,
107
- Expected0TypeArguments = 269,
108
- ExpectedFrom0To1TypeArguments = 270,
109
- Type0IsNotAssignableToConstraint1 = 271,
110
- VariableIsDeclaredButItsValueIsNeverRead = 272,
111
- FunctionIsDeclaredButNotUsed = 273,
112
- TypeParameterIsDeclaredButNotUsed = 274,
113
- DefaultConstructorArgumentsMustBeNamed = 275,
114
- IncorrectBodyOfBasicAliasTypeMethod = 276,
115
- TheFollowingDeclarationsAreNotTranslated0 = 277,
116
- TheFollowingDeclarationAreNotTranslated0And1More = 278,
117
- OperatorFunction0MustNotHaveParameters = 279,
118
- OperatorFunction0MustHaveOneParameter = 280,
119
- OperatorFunction0MustHaveNoMoreThanOneParameter = 281,
120
- CorrespondingBasicTypeMemberNotFound = 282,
121
- AsyncFunctionCanOnlyBeCalledFromFunctionMarkedWithAsyncModifier = 283,
122
- TagNotFound = 284,
123
- TypeOrFunctionNameExpected = 285,
124
- PackageNameOrAliasExpected = 286,
125
- ExpressionCanBeNone = 287,
126
- TargetVariableExpressionInTheAssignmentStatementCannotContainQuestionOperator = 288,
127
- UnreachableCode = 289,
128
- RecursionOccurredWhileCalculatingTheTypeOfTheExpression = 290,
129
- RecursionOccurredWhileInferringTheTypeOfTheVariable = 291,
130
- ScopeAlreadyContainsDeclarationWithTheSameName = 292,
131
- ScopeAlreadyContainsFunctionWithTheSameNameAndParameterTypes = 293,
132
- ParameterName0ConflictsWithAutomaticallyGeneratedVariableName = 294,
133
- PackageAlreadyContainsDeclarationWithTheSameName = 295,
134
- PackageAlreadyContainsFunctionWithTheSameNameAndParameterTypes = 296,
135
- PackageAlreadyContainsTypeWithTheSameNameAndSameOrIntersectingTypeParameterCount = 297,
136
- PackageAliasWithTheSameNameAlreadyExits = 298,
137
- PackageCanHaveOnlyEntryPoint = 299,
138
- PackageCanHaveOnlyOneConstructor = 300,
139
- TypeAlreadyContainsDeclarationWithTheSameName = 301,
140
- TypeAlreadyContainsMethodWithTheSameNameAndParameterTypes = 302,
141
- TypeAlreadyContainsConstructorWithTheSameParameterTypes = 303,
142
- TypeAlreadyContainsOperatorFunctionWithTheSameParameterTypes = 304,
143
- TypeAlreadyContainsIndexerWithTheSameParameterTypes = 305,
144
- TypeCanHaveOnlyOneDestructor = 306,
145
- TypeCanHaveOnlyOneDereferenceOperator = 307,
146
- VariableIsUsedBeforeItsDeclaration = 308,
147
- VariableMayNotHasBeenAssignedBeforeUsage = 309,
148
- NotAllCodePathsReturnAValueAndResultLocalVariableMayNotHasBeenAssigned = 310,
149
- WriteFunctionHasNoCorrespondingReadFunction = 311,
150
- TypeCanNotHaveMultipleBaseObjectTypes = 312,
151
- TypeThatIsNotMarkedAsBasicCanNotBeUsedAsBaseType = 313,
152
- PlainObjectTypeCanNotBeUsedAsBaseType = 314,
153
- ThisTypeIsAlreadyListedInBaseTypeList = 315,
154
- OnlyObjectAndAspectTypesCanBeUsedAsBaseTypes = 316,
155
- PlainObjectTypeCanHaveOnlyAspectsAsBaseTypes = 317,
156
- AspectTypeCanHaveOnlyAspectsAsBaseTypes = 318,
157
- ModifierListAlreadyContains0Modifier = 319,
158
- ModifierListOfOuterDeclarationGroupAlreadyContains0Modifier = 320,
159
- _0ModifierIsNotAllowedHere = 321,
160
- DeclarationCanNotBePlacedInGroupHaving0Modifier = 322,
161
- PackageConstructorDeclarationCanNotHaveModifiers = 323,
162
- PackageEntryPointDeclarationCanNotHaveModifiers = 324,
163
- TranslationsCanNotHaveModifiers = 325,
164
- AbstractModifierCanOnlyBeUsedInAbstractObjectTypes = 326,
165
- BasicModifierCanOnlyBeUsedInObjectTypesAspectTypesAndTypeAliases = 327,
166
- OverrideModifierCanOnlyBeUsedInObjectAndAspectTypes = 328,
167
- _0ModifierCanNotBeUsedWith1Modifier = 329,
168
- VariantDeclarationCanNotHaveHiddenModifier = 330,
169
- BasicModifierCanOnlyBeAppliedToObjectTypes = 331,
170
- AbstractModifierCanOnlyBeAppliedToObjectTypes = 332,
171
- NotBasicObjectTypesCanNotHaveBasicMembers = 333,
172
- WriteFunctionMustHaveTheSameModifiersAsReadFunction = 334,
173
- WriteFunctionMustHaveTheSameOrMoreRestrictiveHidingLevelThenReadFunction = 335,
91
+ AspectTypeFieldsMustBeAbstract = 253,
92
+ DeclarationsMarkedWithBuiltIntoPlatformTagMustNotHaveBody = 254,
93
+ AbstractFieldsMustNotHaveInitializers = 255,
94
+ PackageIsAlreadyImportedInAnotherLanguage = 256,
95
+ OnlySubprogramsWithReturnTypeCanReturnValue = 257,
96
+ FunctionsUsingYieldStatementCannotReturnValue = 258,
97
+ YieldStatementCannotBeUsedInAnonymousFunctions = 259,
98
+ YieldStatementCannotBeUsedHere = 260,
99
+ FunctionsUsingYieldStatementMustHaveEnumerableAsReturnType = 261,
100
+ YieldStatementCannotBeUsedInTryStatementThatHasCatchClause = 262,
101
+ YieldStatementCannotBeUsedInFinallyClause = 263,
102
+ SubprogramMustReturnValue = 264,
103
+ ResultVariableCannotBeUsedInFunctionsUsingYieldStatement = 265,
104
+ TypeAliasReferencesItself = 266,
105
+ TypeParameterHasCircularConstraint = 267,
106
+ BaseTypeCausesInheritanceCycle = 268,
107
+ OnlyGenericTypesAndFunctionsCanBeSpecialized = 269,
108
+ Expected0TypeArguments = 270,
109
+ ExpectedFrom0To1TypeArguments = 271,
110
+ Type0IsNotAssignableToConstraint1 = 272,
111
+ VariableIsDeclaredButItsValueIsNeverRead = 273,
112
+ FunctionIsDeclaredButNotUsed = 274,
113
+ TypeParameterIsDeclaredButNotUsed = 275,
114
+ DefaultConstructorArgumentsMustBeNamed = 276,
115
+ IncorrectBodyOfBasicAliasTypeMethod = 277,
116
+ TheFollowingDeclarationsAreNotTranslated0 = 278,
117
+ TheFollowingDeclarationAreNotTranslated0And1More = 279,
118
+ OperatorFunction0MustNotHaveParameters = 280,
119
+ OperatorFunction0MustHaveOneParameter = 281,
120
+ OperatorFunction0MustHaveNoMoreThanOneParameter = 282,
121
+ CorrespondingBasicTypeMemberNotFound = 283,
122
+ AsyncFunctionCanOnlyBeCalledFromFunctionMarkedWithAsyncModifier = 284,
123
+ TagNotFound = 285,
124
+ TypeOrFunctionNameExpected = 286,
125
+ PackageNameOrAliasExpected = 287,
126
+ ExpressionCanBeNone = 288,
127
+ TargetVariableExpressionInTheAssignmentStatementCannotContainQuestionOperator = 289,
128
+ UnreachableCode = 290,
129
+ RecursionOccurredWhileCalculatingTheTypeOfTheExpression = 291,
130
+ RecursionOccurredWhileInferringTheTypeOfTheVariable = 292,
131
+ ScopeAlreadyContainsDeclarationWithTheSameName = 293,
132
+ ScopeAlreadyContainsFunctionWithTheSameNameAndParameterTypes = 294,
133
+ ParameterName0ConflictsWithAutomaticallyGeneratedVariableName = 295,
134
+ PackageAlreadyContainsDeclarationWithTheSameName = 296,
135
+ PackageAlreadyContainsFunctionWithTheSameNameAndParameterTypes = 297,
136
+ PackageAlreadyContainsTypeWithTheSameNameAndSameOrIntersectingTypeParameterCount = 298,
137
+ PackageAliasWithTheSameNameAlreadyExits = 299,
138
+ PackageCanHaveOnlyEntryPoint = 300,
139
+ PackageCanHaveOnlyOneConstructor = 301,
140
+ TypeAlreadyContainsDeclarationWithTheSameName = 302,
141
+ TypeAlreadyContainsMethodWithTheSameNameAndParameterTypes = 303,
142
+ TypeAlreadyContainsConstructorWithTheSameParameterTypes = 304,
143
+ TypeAlreadyContainsOperatorFunctionWithTheSameParameterTypes = 305,
144
+ TypeAlreadyContainsIndexerWithTheSameParameterTypes = 306,
145
+ TypeCanHaveOnlyOneDestructor = 307,
146
+ TypeCanHaveOnlyOneDereferenceOperator = 308,
147
+ VariableIsUsedBeforeItsDeclaration = 309,
148
+ VariableMayNotHasBeenAssignedBeforeUsage = 310,
149
+ NotAllCodePathsReturnAValueAndResultLocalVariableMayNotHasBeenAssigned = 311,
150
+ WriteFunctionHasNoCorrespondingReadFunction = 312,
151
+ TypeCanNotHaveMultipleBaseObjectTypes = 313,
152
+ TypeThatIsNotMarkedAsBasicCanNotBeUsedAsBaseType = 314,
153
+ PlainObjectTypeCanNotBeUsedAsBaseType = 315,
154
+ ThisTypeIsAlreadyListedInBaseTypeList = 316,
155
+ OnlyObjectAndAspectTypesCanBeUsedAsBaseTypes = 317,
156
+ PlainObjectTypeCanHaveOnlyAspectsAsBaseTypes = 318,
157
+ AspectTypeCanHaveOnlyAspectsAsBaseTypes = 319,
158
+ ModifierListAlreadyContains0Modifier = 320,
159
+ ModifierListOfOuterDeclarationGroupAlreadyContains0Modifier = 321,
160
+ _0ModifierIsNotAllowedHere = 322,
161
+ DeclarationCanNotBePlacedInGroupHaving0Modifier = 323,
162
+ PackageConstructorDeclarationCanNotHaveModifiers = 324,
163
+ PackageEntryPointDeclarationCanNotHaveModifiers = 325,
164
+ TranslationsCanNotHaveModifiers = 326,
165
+ AbstractModifierCanOnlyBeUsedInAbstractObjectTypes = 327,
166
+ BasicModifierCanOnlyBeUsedInObjectTypesAspectTypesAndTypeAliases = 328,
167
+ OverrideModifierCanOnlyBeUsedInObjectAndAspectTypes = 329,
168
+ _0ModifierCanNotBeUsedWith1Modifier = 330,
169
+ VariantDeclarationCanNotHaveHiddenModifier = 331,
170
+ BasicModifierCanOnlyBeAppliedToObjectTypes = 332,
171
+ AbstractModifierCanOnlyBeAppliedToObjectTypes = 333,
172
+ NotBasicObjectTypesCanNotHaveBasicMembers = 334,
173
+ BasicModifierCanNotBeAppliedToAspectTypeFields = 335,
174
+ WriteFunctionMustHaveTheSameModifiersAsReadFunction = 336,
175
+ WriteFunctionMustHaveTheSameOrMoreRestrictiveHidingLevelThenReadFunction = 337,
176
+ DeclarationConflictsWithBaseTypeMember0 = 338,
177
+ DeclarationConflictsWithBaseTypeMember0AddOverrideModifier = 339,
178
+ DeclarationConflictsWithBaseTypeMember0ThisMemberCanNotBeOverridden = 340,
179
+ DeclarationConflictsWithBaseTypeMember0ToOverrideTypeMustBeAssignableTo1 = 341,
180
+ DeclarationConflictsWithBaseTypeMember0ToOverrideReturnTypeMustBeAssignableTo1 = 342,
181
+ OverridingMemberMustHaveTheSameHidingLevelAsBaseMember0 = 343,
182
+ OverridingMethodMustBeAsyncBecauseBaseMethod0IsAsync = 344,
183
+ OverridingMethodMustNotBeAsyncBecauseBaseMethod0IsNotAsync = 345,
184
+ OverridingFieldMustNotBeConstOrHaveWriteFunctionToMatchBaseField0 = 346,
185
+ TypeDoesNotImplementMember0 = 347,
186
+ CanNotAccessAbstractMemberOfBaseType = 348,
174
187
  CannotFindTsLibDirectoryBaseSearchPaths0 = 401,
175
188
  SourceFile0IsNotPartOfThePackageAndWontBeLoaded = 402,
176
189
  ProgramWithoutMainPackageCannotBeCompiled = 403,
@@ -31,7 +31,6 @@ export declare class DereferenceOperatorDeclarationEntity implements Dereference
31
31
  private readonly _getterDeclaration;
32
32
  private readonly _setterDeclaration;
33
33
  private readonly _getterOrSetterDeclaration;
34
- private readonly _overriddenMembers;
35
34
  private _modifierFlags;
36
35
  private _hasReportedAllDiagnostics;
37
36
  private get modifierFlags();
@@ -75,7 +75,6 @@ export declare class MethodDeclarationEntity implements MethodEntity {
75
75
  readonly subkind = "method";
76
76
  private readonly _typeParameters;
77
77
  private readonly _valueParameters;
78
- private readonly _overriddenMember;
79
78
  private _modifierFlags;
80
79
  private get modifierFlags();
81
80
  constructor(_analyzer: Analyzer, _node: MethodDeclaration);
@@ -38,7 +38,6 @@ export declare class IndexerDeclarationEntity implements SourceIndexerEntity {
38
38
  private readonly _setterDeclaration;
39
39
  private readonly _getterOrSetterDeclaration;
40
40
  private readonly _parameters;
41
- private readonly _overriddenMembers;
42
41
  private _modifierFlags;
43
42
  private _hasReportedAllDiagnostics;
44
43
  private get parameters();
@@ -28,7 +28,6 @@ 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 _overriddenMembers;
32
31
  private _modifierFlags;
33
32
  private get modifierFlags();
34
33
  constructor(_analyzer: Analyzer, _node: tree.OperatorDeclaration);
@@ -2,23 +2,24 @@ import { Name } from '../common/index.js';
2
2
  import { ConstructorEntity } from './ConstructorEntity.js';
3
3
  import { DereferenceOperatorEntity } from './DereferenceOperatorEntity.js';
4
4
  import { DestructorEntity } from './DestructorEntity.js';
5
- import { IndexerEntity } from './IndexerEntity.js';
6
5
  import { MethodEntity } from './FunctionEntity.js';
6
+ import { IndexerEntity } from './IndexerEntity.js';
7
7
  import { OperatorEntity } from './OperatorEntity.js';
8
8
  import { OperatorKind } from './OperatorKind.js';
9
9
  import { FieldEntity } from './VariableEntity.js';
10
+ import { TypeMemberEntity } from './index.js';
10
11
  export declare class OriginalTypeEntityMembers {
11
12
  private readonly _namedMembers;
12
13
  private readonly _operators;
13
14
  private readonly _constructors;
14
15
  private readonly _destructors;
15
16
  private readonly _indexers;
16
- private readonly _referenceOperators;
17
+ private readonly _dereferenceOperators;
17
18
  private readonly _membersByNameKey;
18
19
  private readonly _operatorsByKind;
19
20
  private get membersByNameKey();
20
21
  private get operatorByKind();
21
- constructor(_namedMembers: readonly NamedTypeMemberEntity[], _operators: readonly OperatorEntity[], _constructors: readonly ConstructorEntity[], _destructors: readonly DestructorEntity[], _indexers: readonly IndexerEntity[], _referenceOperators: readonly DereferenceOperatorEntity[]);
22
+ constructor(_namedMembers: readonly NamedTypeMemberEntity[], _operators: readonly OperatorEntity[], _constructors: readonly ConstructorEntity[], _destructors: readonly DestructorEntity[], _indexers: readonly IndexerEntity[], _dereferenceOperators: readonly DereferenceOperatorEntity[]);
22
23
  getNamedMembers(): readonly NamedTypeMemberEntity[];
23
24
  getNamedMembersByName(name: Name): readonly NamedTypeMemberEntity[];
24
25
  getOperators(): readonly OperatorEntity[];
@@ -27,5 +28,6 @@ export declare class OriginalTypeEntityMembers {
27
28
  getDereferenceOperators(): readonly DereferenceOperatorEntity[];
28
29
  getConstructors(): readonly ConstructorEntity[];
29
30
  getDestructors(): readonly DestructorEntity[];
31
+ getAll(): readonly TypeMemberEntity[];
30
32
  }
31
33
  export type NamedTypeMemberEntity = FieldEntity | MethodEntity;
@@ -154,7 +154,6 @@ export declare class FieldDeclarationEntity implements FieldEntity {
154
154
  private readonly _analyzer;
155
155
  private readonly _node;
156
156
  private readonly _typeInferrer;
157
- private readonly _overriddenMembers;
158
157
  private _modifierFlags;
159
158
  private _hasReportedAllDiagnostics;
160
159
  private get modifierFlags();
@@ -184,7 +183,6 @@ export declare class ComputedFieldDeclarationEntity implements FieldEntity {
184
183
  private readonly _getterDeclaration;
185
184
  private readonly _setterDeclaration;
186
185
  private readonly _getterOrSetterDeclaration;
187
- private readonly _overriddenMembers;
188
186
  private _modifierFlags;
189
187
  private _hasReportedAllDiagnostics;
190
188
  private get modifierFlags();
@@ -1,11 +1,13 @@
1
+ import { Analyzer } from '../analysis/Analyzer.js';
2
+ import * as types from '../types/index.js';
1
3
  import { AliasTypeEntity } from './AliasTypeEntity.js';
2
4
  import { ConstructorEntity } from './ConstructorEntity.js';
3
5
  import { DereferenceOperatorEntity } from './DereferenceOperatorEntity.js';
4
6
  import { DestructorEntity } from './DestructorEntity.js';
5
- import { GetterEntity } from './GetterEntity.js';
6
- import { IndexerEntity } from './IndexerEntity.js';
7
7
  import { FunctionEntity, MethodEntity, PackageFunctionEntity } from './FunctionEntity.js';
8
8
  import { FunctionTypeEntity, PackageFunctionTypeEntity } from './FunctionTypeEntity.js';
9
+ import { GetterEntity } from './GetterEntity.js';
10
+ import { IndexerEntity } from './IndexerEntity.js';
9
11
  import { OperatorEntity } from './OperatorEntity.js';
10
12
  import { PackageAliasEntity } from './PackageAliasEntity.js';
11
13
  import { PackageEntity } from './PackageEntity.js';
@@ -14,7 +16,7 @@ import { PackageStructuredTypeEntity, StructuredTypeEntity } from './StructuredT
14
16
  import { TypeEntity } from './TypeEntity.js';
15
17
  import { TypeExtensionEntity } from './TypeExtensionEntity.js';
16
18
  import { TypeParameterEntity } from './TypeParameterEntity.js';
17
- import { PackageVariableEntity, FieldEntity, VariableEntity } from './VariableEntity.js';
19
+ import { FieldEntity, PackageVariableEntity, VariableEntity } from './VariableEntity.js';
18
20
  import { PackageVariantTypeEntity, VariantTypeEntity } from './VariantTypeEntity.js';
19
21
  export * from './AliasTypeEntity.js';
20
22
  export * from './ConstructorEntity.js';
@@ -22,10 +24,10 @@ export * from './DereferenceOperatorEntity.js';
22
24
  export * from './DestructorEntity.js';
23
25
  export * from './EntityHiding.js';
24
26
  export * from './EntityNaming.js';
25
- export * from './GetterEntity.js';
26
- export * from './IndexerEntity.js';
27
27
  export * from './FunctionEntity.js';
28
28
  export * from './FunctionTypeEntity.js';
29
+ export * from './GetterEntity.js';
30
+ export * from './IndexerEntity.js';
29
31
  export * from './OperatorEntity.js';
30
32
  export * from './OperatorKind.js';
31
33
  export * from './PackageAliasEntity.js';
@@ -96,19 +98,11 @@ export declare namespace TypeMemberEntity {
96
98
  * Объявление можно заменить в производном типе, если оно не всеобщее, и выполняется одно из условий:
97
99
  * - объявление помечено модификатором "базовое"
98
100
  * - объявление помечено модификатором "абстрактное"
99
- * - объявление помечено модификатором "расширенное"
100
- * - объявление является членом аспектного типа
101
101
  */
102
102
  function isBasic(entity: TypeMemberEntity): boolean;
103
- /**
104
- * Возвращает `true`, если объявление не имеет реализации.
105
- *
106
- * Объявление не имеет реализации, если выполняется одно из условий:
107
- * - объявление помечено модификатором "абстрактное"
108
- * - объявление является является членом аспекта, не помечено модификатором "базовое", не является всеобщим и не
109
- * скрыто в типе.
110
- */
111
103
  function isAbstract(entity: TypeMemberEntity): boolean;
104
+ function getOverriddenMembers(entity: TypeMemberEntity): readonly types.TypeMember[];
105
+ function instantiate(analyzer: Analyzer, entity: TypeMemberEntity, substitutions: types.Substitutions): types.TypeMember;
112
106
  }
113
107
  export declare function entityToStringDecorator<T extends {
114
108
  new (...args: any[]): Entity;
@@ -45,6 +45,7 @@ export declare class DisplayService {
45
45
  displayTypeExtensionEntity(entity: e.TypeExtensionEntity): string;
46
46
  displayEntity(entity: e.Entity, localization?: Localization): string;
47
47
  displayTypeEntity(entity: e.TypeEntity, localization?: Localization): string;
48
+ displayTypeMember(member: types.TypeMember, localization?: Localization): string;
48
49
  displayKeyword(kind: KeywordKind): string;
49
50
  displayHelperPhrase(kind: HelperPhraseKind): string;
50
51
  displayEntityName(entity: NamedEntity, localization: Localization | undefined): string;
@@ -1,6 +1,6 @@
1
1
  import { Analyzer } from '../analysis/index.js';
2
2
  import { Name } from '../common/index.js';
3
- import { ConstructorEntity, DereferenceOperatorEntity, DestructorEntity, EntityHidingLevel, IndexerEntity, OperatorEntity, OperatorKind, ParameterVariableEntity, MethodEntity, TypeParameterEntity, FieldEntity } from '../entities/index.js';
3
+ import { ConstructorEntity, DereferenceOperatorEntity, DestructorEntity, EntityHidingLevel, FieldEntity, IndexerEntity, MethodEntity, OperatorEntity, OperatorKind, ParameterVariableEntity, TypeParameterEntity } from '../entities/index.js';
4
4
  import { FunctionType } from './FunctionType.js';
5
5
  import { Substitutions } from './Substitutions.js';
6
6
  import { Type } from './Type.js';
@@ -77,16 +77,15 @@ export declare class Operator implements ITypeMember {
77
77
  export declare class Constructor implements ITypeMember {
78
78
  private readonly _entity;
79
79
  private readonly _substitutions;
80
- private readonly _instanceType;
81
80
  readonly kind = "constructor";
82
81
  private readonly _valueParameters;
83
- constructor(_entity: ConstructorEntity, _substitutions: Substitutions, _instanceType: Type);
82
+ constructor(_entity: ConstructorEntity, _substitutions: Substitutions);
84
83
  getValueParameters(): readonly ValueParameter[];
85
- getInstanceType(): Type;
86
84
  getEntity(): ConstructorEntity;
87
85
  getSubstitutions(): Substitutions;
88
86
  isHidden(): EntityHidingLevel | undefined;
89
87
  isStatic(): boolean;
88
+ applySubstitutions(substitutions: Substitutions): TypeMember;
90
89
  equals(other: TypeMember): boolean;
91
90
  }
92
91
  export declare class Destructor implements ITypeMember {
@@ -136,4 +135,5 @@ export interface ITypeMember {
136
135
  isStatic(): boolean;
137
136
  getSubstitutions(): Substitutions;
138
137
  equals(other: TypeMember): boolean;
138
+ applySubstitutions(substitutions: Substitutions): TypeMember;
139
139
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artel/artc",
3
- "version": "0.6.25231",
3
+ "version": "0.6.25232",
4
4
  "description": "Артель Компилятор | Artel Compiler",
5
5
  "author": "Nezaboodka Team <contact@nezaboodka.com>",
6
6
  "license": "LGPL-3.0-or-later",