@artel/artc 0.6.25231 → 0.6.25233

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-SCSDVK4I.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-T4JAN46C.js";
18
18
 
19
19
  // source/executor/FileSystemUri.ts
20
20
  import { platform } from "os";
@@ -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,60 @@ declare class DefaultConstructors {
481
483
  }
482
484
  declare class OverriddenMember {
483
485
  private readonly _analyzer;
486
+ private readonly _namedMemberFinder;
487
+ private readonly _operatorFinder;
488
+ private readonly _indexerFinder;
489
+ private readonly _dereferenceOperatorFinder;
490
+ private readonly _isField;
491
+ private readonly _isMethod;
492
+ private readonly _isOperator;
493
+ private readonly _isIndexer;
494
+ private readonly _isDereferenceOperator;
495
+ private readonly _overriddenAndShadowedFields;
496
+ private readonly _overriddenAndShadowedMethods;
497
+ private readonly _overriddenAndShadowedOperators;
498
+ private readonly _overriddenAndShadowedIndexers;
499
+ private readonly _overriddenAndShadowedDereferenceOperators;
484
500
  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;
501
+ getOverriddenAndShadowedFields(node: tree.FieldDeclaration | FieldAccessorDeclaration): OverriddenAndShadowedMembers<types.Field, types.NamedTypeMember>;
502
+ getOverriddenAndShadowedMethods(node: tree.MethodDeclaration): OverriddenAndShadowedMembers<types.Method, types.NamedTypeMember>;
503
+ getOverriddenAndShadowedOperators(node: tree.OperatorDeclaration): OverriddenAndShadowedMembers<types.Operator>;
504
+ getOverriddenAndShadowedIndexers(node: IndexedElementAccessorDeclaration): OverriddenAndShadowedMembers<types.Indexer>;
505
+ getOverriddenAndShadowedDereferenceOperators(node: DereferencedVariableAccessorDeclaration): OverriddenAndShadowedMembers<types.DereferenceOperator>;
506
+ entityCanBeOverridden(entity: OverridableTypeMemberEntity): boolean;
507
+ getEntityTypeOrReturnType(entity: OverridableTypeMemberEntity): types.Type;
508
+ getMemberTypeOrReturnType(member: OverridableTypeMember): types.Type;
509
+ private findOverriddenMembers;
510
+ private findOverriddenOrShadowedNamedMemberInType;
511
+ private findOverriddenOrShadowedOperatorInType;
512
+ private findOverriddenOrShadowedIndexerInType;
513
+ private findOverriddenOrShadowedDereferenceOperatorInType;
514
+ private checkMethodOverridesOrShadowsMethod;
515
+ private checkOperatorOverridesOrShadowsOperator;
516
+ private checkIndexerOverridesOrShadowsIndexer;
517
+ private enumerateTypeMemberLookups;
501
518
  private enumerateTypesForOverriddenMemberLookup;
502
- private entityCanOverride;
503
- private entityCanBeOverridden;
504
- private addTypeMemberIfUnique;
519
+ private entityCanOverrideOrShadow;
505
520
  }
521
+ export declare enum ShadowReason {
522
+ BaseMemberHasDifferentKind = 0,
523
+ BaseMemberCanNotBeOverridden = 1,
524
+ NoOverrideModifier = 2,
525
+ NoOverrideModifierAndTypeOrReturnTypeMismatch = 3,
526
+ TypeOrReturnTypeMismatch = 4
527
+ }
528
+ export declare class ShadowedMemberInfo<T extends OverridableTypeMember = OverridableTypeMember> {
529
+ readonly value: T;
530
+ readonly shadowReason: ShadowReason;
531
+ constructor(value: T, shadowReason: ShadowReason);
532
+ }
533
+ export declare class OverriddenAndShadowedMembers<TOverriddenMember extends OverridableTypeMember = OverridableTypeMember, TShadowedMember extends OverridableTypeMember = TOverriddenMember> {
534
+ readonly overriddenMembers: readonly TOverriddenMember[];
535
+ readonly shadowedMembers: readonly ShadowedMemberInfo<TShadowedMember>[];
536
+ constructor(overriddenMembers: readonly TOverriddenMember[], shadowedMembers: readonly ShadowedMemberInfo<TShadowedMember>[]);
537
+ }
538
+ export type OverridableTypeMemberEntity = e.FieldEntity | e.MethodEntity | e.OperatorEntity | e.IndexerEntity | e.DereferenceOperatorEntity;
539
+ export type OverridableTypeMember = types.Field | types.Method | types.Operator | types.Indexer | types.DereferenceOperator;
506
540
  declare class Tags {
507
541
  readonly _analyzer: Analyzer;
508
542
  private readonly _tags;
@@ -577,13 +611,17 @@ declare class OwningPlainObjectModificationCheck {
577
611
  private nodeBelongsToPlainObjectDeclaration;
578
612
  }
579
613
  export declare enum TypeAssignabilityFlags {
580
- NotAssignable = 0,
581
- Identity = 1,
582
- DerivedToBase = 2,
583
- FunctionTypes = 4,
584
- ImplicitConversion = 8,
614
+ None = 0,
615
+ /**
616
+ * Если флаг NotAssignable установлен, никакие другие флаги не могут быть установлены.
617
+ */
618
+ NotAssignable = 1,
619
+ Identity = 2,
620
+ DerivedToBase = 4,
621
+ FunctionTypes = 8,
622
+ ImplicitConversion = 16,
585
623
  First = 1,
586
- Last = 8
624
+ Last = 16
587
625
  }
588
626
  declare class PackageImports {
589
627
  private readonly _analyzer;
@@ -622,6 +660,9 @@ declare class TypeUtils {
622
660
  getCommonObjectAndAspectTypesOfUnion(unionType: types.UnionType): readonly types.StructuredType[];
623
661
  removeBaseTypesInPlace(types: types.Type[]): void;
624
662
  removeDerivedTypesInPlace(types: types.Type[]): void;
663
+ getBaseTypes(type: types.Type): readonly types.Type[];
664
+ getBaseTypesRecursively(type: types.Type): readonly types.Type[];
665
+ private collectBaseTypesRecursively;
625
666
  private getBaseTypesForCommonTypesSearch;
626
667
  private addTypeAndCollectAllBaseTypes;
627
668
  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;
@@ -48,9 +48,7 @@ export declare class DiagnosticCollector {
48
48
  private checkReturnStatement;
49
49
  private checkYieldStatement;
50
50
  private checkPackageMemberBodyPresence;
51
- private getPackageMemberBodyRequirementReason;
52
51
  private checkTypeMemberBodyPresence;
53
- private getTypeMemberBodyRequirementReason;
54
52
  private checkIdentifierExpression;
55
53
  private checkLocalVariableUsedBeforeDeclaration;
56
54
  private checkLocalVariableIsUsedBeforeBeingAssigned;
@@ -81,6 +79,9 @@ export declare class DiagnosticCollector {
81
79
  private checkIfNestedFunctionIsUnused;
82
80
  private checkIfTypeParameterIsUnused;
83
81
  private checkAllCodePathsReturnOrResultVariableIsAssigned;
82
+ private checkTypeMemberIncorrectlyOverridesOrShadowsBaseMember;
83
+ private isReceiverBaseAutoVariableAccess;
84
+ private overridingMemberHasCorrectHiding;
84
85
  private addDiagnostic;
85
86
  private addDiagnostics;
86
87
  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,
@@ -45,13 +45,14 @@ export declare class ModifierValidator {
45
45
  static readonly allowedModifiersByTypeMemberDeclarationKind: {
46
46
  [T in TypeMemberDeclarationKind]: ModifierFlags;
47
47
  };
48
+ private effectiveModifiers;
48
49
  constructor(_analyzer: Analyzer, _diagnostics: DiagnosticAcceptor, _locale: PackageLocale, _dialect: PackageDialect);
49
50
  static validatePackageVariableAccessorsHaveConsistentModifiers(analyzer: Analyzer, getterModifiers: ModifierFlags, setterModifiers: ModifierFlags, nodeForDiagnostic: tree.Node, diagnostics: DiagnosticAcceptor): void;
50
51
  static validateFieldAccessorsHaveConsistentModifiers(analyzer: Analyzer, getterModifiers: ModifierFlags, setterModifiers: ModifierFlags, nodeForDiagnostic: tree.Node, diagnostics: DiagnosticAcceptor): void;
51
52
  static validateIndexedElementAccessorsHaveConsistentModifiers(analyzer: Analyzer, getterModifiers: ModifierFlags, setterModifiers: ModifierFlags, nodeForDiagnostic: tree.Node, diagnostics: DiagnosticAcceptor): void;
52
53
  static validateDereferencedVariableAccessorsHaveConsistentModifiers(analyzer: Analyzer, getterModifiers: ModifierFlags, setterModifiers: ModifierFlags, nodeForDiagnostic: tree.Node, diagnostics: DiagnosticAcceptor): void;
53
54
  validateTopLevelPackageMembers(list: tree.PackageMemberDeclarationList): void;
54
- validateTopLevelTypeMembers(list: tree.TypeMemberDeclarationList, declarationWithMembersKind: DeclarationWithTypeMembersKind, isTypeMarkedAbstract: boolean, isTypeMarkedBasic: boolean): void;
55
+ validateTopLevelTypeMembers(memberList: tree.TypeMemberDeclarationList, declarationWithMembersKind: DeclarationWithTypeMembersKind, isTypeMarkedAbstract: boolean, isTypeMarkedBasic: boolean): void;
55
56
  private static validateTypeMemberAccessorsHaveConsistentModifiers;
56
57
  private static validatePackageMemberSetterHasMoreRestrictiveHidingLevel;
57
58
  private static validateTypeMemberSetterHasMoreRestrictiveHidingLevel;
@@ -66,6 +67,7 @@ export declare class ModifierValidator {
66
67
  private validateTypeMembers;
67
68
  private validateTypeMemberModifierList;
68
69
  private validateTypeMemberCanBePlacedInGroupWithModifiers;
70
+ private validateFieldCanBePlacedInGroupWithModifiers;
69
71
  private typeMemberAllowsAbstractModifier;
70
72
  private typeMemberAllowsBasicModifier;
71
73
  private typeMemberAllowsOverrideModifier;
@@ -75,9 +77,8 @@ export declare class ModifierValidator {
75
77
  private reportDeclarationCanNotBePlacedInGroupWithModifier;
76
78
  private reportModifierCanNotBeUsedWithAnotherModifier;
77
79
  private reportModifierIsNotAllowedHere;
80
+ private findModifier;
78
81
  private displayModifierNode;
79
- private displayModifierFlag;
80
- private displayModifier;
81
82
  private forEachModifierFlag;
82
83
  }
83
84
  export {};
@@ -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,
@@ -805,15 +805,15 @@ export declare class MethodDeclaration {
805
805
  export declare class FieldAccessExpression {
806
806
  expression: Expression;
807
807
  isOptionalAccess: boolean;
808
- variable: AccessedVariable;
808
+ field: AccessedVariable;
809
809
  accessKind: AccessKind;
810
810
  ifComputedThenKey: Expression | undefined;
811
811
  sourceLocation: SourceLocation | undefined;
812
812
  options: FieldAccessExpressionEmitOptions;
813
813
  readonly kind = NodeKind.FieldAccessExpression;
814
- constructor(expression: Expression, isOptionalAccess: boolean, variable: AccessedVariable, accessKind: AccessKind, ifComputedThenKey: Expression | undefined, sourceLocation: SourceLocation | undefined, options?: FieldAccessExpressionEmitOptions);
815
- static get(expression: Expression, isOptionalAccess: boolean, variable: AccessedVariable | VariableEntity, ifComputedThenKey?: Expression, sourceLocation?: SourceLocation): FieldAccessExpression;
816
- static set(expression: Expression, isOptionalAccess: boolean, variable: AccessedVariable | VariableEntity, ifComputedThenKey?: Expression, sourceLocation?: SourceLocation): FieldAccessExpression;
814
+ constructor(expression: Expression, isOptionalAccess: boolean, field: AccessedVariable, accessKind: AccessKind, ifComputedThenKey: Expression | undefined, sourceLocation: SourceLocation | undefined, options?: FieldAccessExpressionEmitOptions);
815
+ static get(expression: Expression, isOptionalAccess: boolean, field: AccessedVariable | VariableEntity, ifComputedThenKey?: Expression, sourceLocation?: SourceLocation): FieldAccessExpression;
816
+ static set(expression: Expression, isOptionalAccess: boolean, field: AccessedVariable | VariableEntity, ifComputedThenKey?: Expression, sourceLocation?: SourceLocation): FieldAccessExpression;
817
817
  clone(): FieldAccessExpression;
818
818
  }
819
819
  export declare class FieldDeclaration {
@@ -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;