@artel/artc 0.6.25230 → 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.
Files changed (36) hide show
  1. package/build/Cli.js +3 -3
  2. package/build/api/Api.js +12 -2
  3. package/build/api/ApiNodeJS.js +3 -3
  4. package/build/api/ApiServices.js +13 -13
  5. package/build/{chunk-ZUIGWNN5.js → chunk-E72KEKQV.js} +10116 -8220
  6. package/build/{chunk-3LHZOXTJ.js → chunk-QDDCF32T.js} +2 -2
  7. package/build/{chunk-WS3ILL2L.js → chunk-S7ZUX7EX.js} +1 -1
  8. package/build/types/analysis/Analyzer.d.ts +66 -28
  9. package/build/types/analysis/BaseExpressionMeaning.d.ts +6 -3
  10. package/build/types/analysis/DiagnosticCollector.d.ts +4 -0
  11. package/build/types/analysis/FindModifier.d.ts +1 -0
  12. package/build/types/analysis/MemberAccessExpressionMeaning.d.ts +1 -1
  13. package/build/types/analysis/ModifierFlags.d.ts +9 -4
  14. package/build/types/analysis/ModifierValidator.d.ts +84 -0
  15. package/build/types/analysis/TypeMemberConflictsValidator.d.ts +22 -0
  16. package/build/types/analysis/TypeMemberImplementationValidator.d.ts +13 -0
  17. package/build/types/common/ArrayUtils.d.ts +13 -0
  18. package/build/types/common/index.d.ts +1 -0
  19. package/build/types/diagnostic/DiagnosticCode.d.ts +92 -51
  20. package/build/types/entities/DereferenceOperatorEntity.d.ts +3 -1
  21. package/build/types/entities/FunctionEntity.d.ts +0 -1
  22. package/build/types/entities/IndexerEntity.d.ts +3 -1
  23. package/build/types/entities/OperatorEntity.d.ts +0 -1
  24. package/build/types/entities/StructuredTypeEntity.d.ts +13 -13
  25. package/build/types/entities/TypeEntityMembers.d.ts +5 -3
  26. package/build/types/entities/VariableEntity.d.ts +4 -2
  27. package/build/types/entities/index.d.ts +9 -14
  28. package/build/types/project/SourcePackage.d.ts +7 -7
  29. package/build/types/services/DisplayService.d.ts +1 -0
  30. package/build/types/services/NodeSemanticInfo.d.ts +1 -1
  31. package/build/types/tree/green/Nodes.d.ts +2 -2
  32. package/build/types/tree/red/Nodes.d.ts +1 -1
  33. package/build/types/ts-interop/Entities.d.ts +5 -5
  34. package/build/types/types/StructuredType.d.ts +2 -0
  35. package/build/types/types/TypeMembers.d.ts +4 -4
  36. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Compiler
3
- } from "./chunk-WS3ILL2L.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-ZUIGWNN5.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-ZUIGWNN5.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;
@@ -171,8 +172,6 @@ export declare class Analyzer {
171
172
  createNameFromIdentifier(node: tree.Identifier): Name;
172
173
  createSearchNameFromIdentifier(identifier: tree.Identifier): SearchName;
173
174
  createLocalizationContext(sourceFile: project.SourceFile): LocalizationContext;
174
- typeIsValidBaseObjectType(type: types.Type): boolean;
175
- typeIsValidBaseAspectType(type: types.Type): boolean;
176
175
  getImplicitBaseTypeForStructuredType(entity: e.StructuredTypeEntity): types.StructuredType | undefined;
177
176
  getImplicitBaseTypeForVariantType(): types.StructuredType;
178
177
  getImplicitBaseTypeForFunctionType(): types.StructuredType;
@@ -277,8 +276,10 @@ export declare class Analyzer {
277
276
  createAmbiguousNamedScopeDeclarationAccessLazyDiagnostic(declarations: readonly WithLocalization<semanticContext.NamedDeclaration>[], lctx: LocalizationContext, node: tree.Node): Lazy<Diagnostic>;
278
277
  addDiagnosticComputedLazily(diagnostic: Diagnostic): void;
279
278
  getAcceptorForDiagnosticsComputedLazily(): DiagnosticAcceptor;
280
- getDiagnosticsComputedLazily(sourceFile: project.SourceFile): readonly Diagnostic[];
279
+ getSourceFileDiagnosticsComputedLazily(sourceFile: project.SourceFile): readonly Diagnostic[];
280
+ getDiagnosticsWithoutLocationComputedLazily(): readonly Diagnostic[];
281
281
  validateSourcePackageMemberConflicts(pkg: project.ProgramPackage): readonly Diagnostic[];
282
+ getNotImplementedAbstractMembers(typeEntity: e.TypeEntityWithMembers): readonly types.TypeMember[];
282
283
  private createTsInterop;
283
284
  }
284
285
  export declare class TsInteropInputs {
@@ -482,28 +483,56 @@ declare class DefaultConstructors {
482
483
  }
483
484
  declare class OverriddenMember {
484
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;
485
496
  constructor(_analyzer: Analyzer);
486
- getOverriddenFields(node: tree.FieldDeclaration | FieldAccessorDeclaration): types.Field[];
487
- getOverriddenMethods(node: tree.MethodDeclaration): types.Method[];
488
- getOverriddenOperators(node: tree.OperatorDeclaration): types.Operator[];
489
- getOverriddenIndexers(node: IndexedElementAccessorDeclaration): types.Indexer[];
490
- getOverriddenDereferenceOperators(node: DereferencedVariableAccessorDeclaration): types.DereferenceOperator[];
491
- private findOverriddenFieldInType;
492
- private findOverriddenMethodInType;
493
- private findOverriddenOperatorInType;
494
- private findOverriddenIndexerInType;
495
- private findOverriddenDereferenceOperatorInType;
496
- private checkFieldOverridesField;
497
- private checkMethodOverridesMethod;
498
- private checkOperatorOverridesOperator;
499
- private checkIndexerOverridesIndexer;
500
- private checkDereferenceOperatorOverridesDereferenceOperator;
501
- 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;
502
515
  private enumerateTypesForOverriddenMemberLookup;
503
- private entityCanOverride;
504
- private entityCanBeOverridden;
505
- private addTypeMemberIfUnique;
516
+ private entityCanOverrideOrShadow;
506
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;
507
536
  declare class Tags {
508
537
  readonly _analyzer: Analyzer;
509
538
  private readonly _tags;
@@ -578,13 +607,17 @@ declare class OwningPlainObjectModificationCheck {
578
607
  private nodeBelongsToPlainObjectDeclaration;
579
608
  }
580
609
  export declare enum TypeAssignabilityFlags {
581
- NotAssignable = 0,
582
- Identity = 1,
583
- DerivedToBase = 2,
584
- FunctionTypes = 4,
585
- ImplicitConversion = 8,
610
+ None = 0,
611
+ /**
612
+ * Если флаг NotAssignable установлен, никакие другие флаги не могут быть установлены.
613
+ */
614
+ NotAssignable = 1,
615
+ Identity = 2,
616
+ DerivedToBase = 4,
617
+ FunctionTypes = 8,
618
+ ImplicitConversion = 16,
586
619
  First = 1,
587
- Last = 8
620
+ Last = 16
588
621
  }
589
622
  declare class PackageImports {
590
623
  private readonly _analyzer;
@@ -623,6 +656,9 @@ declare class TypeUtils {
623
656
  getCommonObjectAndAspectTypesOfUnion(unionType: types.UnionType): readonly types.StructuredType[];
624
657
  removeBaseTypesInPlace(types: types.Type[]): void;
625
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;
626
662
  private getBaseTypesForCommonTypesSearch;
627
663
  private addTypeAndCollectAllBaseTypes;
628
664
  private addTypeIfUnique;
@@ -653,6 +689,8 @@ declare class ConflictsCheck {
653
689
  doFunctionSignaturesConflict(function1: e.FunctionEntity, function2: e.FunctionEntity): boolean;
654
690
  /**
655
691
  * Проверяет, конфликтуют две сущности, имеющие параметры, но не имеющие параметры типа.
692
+ *
693
+ * Отношение "сущности, имеющие только параметры, конфликтуют" является транзитивным.
656
694
  */
657
695
  doSignaturesWithoutTypeParametersConflict(entity1: EntityWithoutTypeParametersInSignature, entity2: EntityWithoutTypeParametersInSignature): boolean;
658
696
  /**
@@ -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;
@@ -12,6 +12,7 @@ export declare class DiagnosticCollector {
12
12
  private readonly _diagnostics;
13
13
  private readonly _diagnosticAcceptor;
14
14
  private _namedDeclarationsCountResult;
15
+ private readonly _modifierValidator;
15
16
  private get node();
16
17
  private get translationPackage();
17
18
  private get isInterfacePackageFile();
@@ -80,6 +81,9 @@ export declare class DiagnosticCollector {
80
81
  private checkIfNestedFunctionIsUnused;
81
82
  private checkIfTypeParameterIsUnused;
82
83
  private checkAllCodePathsReturnOrResultVariableIsAssigned;
84
+ private checkTypeMemberIncorrectlyOverridesOrShadowsBaseMember;
85
+ private isReceiverBaseAutoVariableAccess;
86
+ private overridingMemberHasCorrectHiding;
83
87
  private addDiagnostic;
84
88
  private addDiagnostics;
85
89
  private addMaybeLazyDiagnostic;
@@ -3,4 +3,5 @@ import { ModifierFlags } from './ModifierFlags.js';
3
3
  type NodeWithModifiers = tree.PackageMemberDeclaration | tree.TypeMemberDeclaration;
4
4
  export declare function findModifier(node: NodeWithModifiers, modifierKeywordKind: tree.ModifierKeywordKind): tree.Modifier | undefined;
5
5
  export declare function createDeclaredModifierFlags(node: NodeWithModifiers): ModifierFlags;
6
+ export declare function modifierToModifierFlag(modifier: tree.Modifier): ModifierFlags;
6
7
  export {};
@@ -13,7 +13,7 @@ export declare class Resolver {
13
13
  private readonly _analyzer;
14
14
  private readonly _node;
15
15
  private readonly _targetTypeHint;
16
- private get propertySearchName();
16
+ private get memberSearchName();
17
17
  private get semanticContext();
18
18
  private get receiver();
19
19
  constructor(analyzer: Analyzer, node: tree.MemberAccessExpression, targetTypeHint: TargetTypeHint | undefined);
@@ -5,11 +5,16 @@ 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,
14
- NotComputed = 2048
14
+ First = 1,
15
+ Last = 1024,
16
+ NotComputed = 2048,
17
+ AnyHiddenModifier = 31,
18
+ HiddenInPackageOrWithoutLevel = 17,
19
+ HiddenInTypeOrWithoutLevel = 3
15
20
  }
@@ -0,0 +1,84 @@
1
+ import { PackageDialect, PackageLocale } from '../common/index.js';
2
+ import { DiagnosticAcceptor } from '../diagnostic/Diagnostic.js';
3
+ import * as tree from '../tree/index.js';
4
+ import { Analyzer } from './Analyzer.js';
5
+ import { ModifierFlags } from './ModifierFlags.js';
6
+ declare enum PackageMemberDeclarationKind {
7
+ TranslationsDeclaration = 0,
8
+ AliasTypeDeclaration = 1,
9
+ MemberGroupDeclaration = 2,
10
+ TypeExtensionDeclaration = 3,
11
+ ConstructorDeclaration = 4,
12
+ EntryPointDeclaration = 5,
13
+ FunctionDeclaration = 6,
14
+ FunctionTypeDeclaration = 7,
15
+ ObjectTypeDeclaration = 8,
16
+ PlainObjectTypeDeclaration = 9,
17
+ AspectTypeDeclaration = 10,
18
+ VariableDeclaration = 11,
19
+ VariableGetterDeclaration = 12,
20
+ VariableSetterDeclaration = 13,
21
+ VariantTypeDeclaration = 14,
22
+ InvalidDeclaration = 15
23
+ }
24
+ type TypeMemberDeclarationKind = tree.TypeMemberDeclaration['kind'];
25
+ export declare enum DeclarationWithTypeMembersKind {
26
+ ObjectType = 0,
27
+ PlainObjectType = 1,
28
+ AspectType = 2,
29
+ VariantType = 3,
30
+ AliasType = 4,
31
+ TypeExtension = 5
32
+ }
33
+ export declare class ModifierValidator {
34
+ private readonly _analyzer;
35
+ private readonly _diagnostics;
36
+ private readonly _locale;
37
+ private readonly _dialect;
38
+ static readonly allowedPackageMemberHidingModifiers: number;
39
+ static readonly allowedPackageMemberModifiers: number;
40
+ static readonly allowedModifiersByPackageMemberDeclarationKind: {
41
+ [T in PackageMemberDeclarationKind]: ModifierFlags;
42
+ };
43
+ static readonly allowedTypeMemberHidingModifiers: number;
44
+ static readonly allowedTypeMemberModifiers: number;
45
+ static readonly allowedModifiersByTypeMemberDeclarationKind: {
46
+ [T in TypeMemberDeclarationKind]: ModifierFlags;
47
+ };
48
+ constructor(_analyzer: Analyzer, _diagnostics: DiagnosticAcceptor, _locale: PackageLocale, _dialect: PackageDialect);
49
+ static validatePackageVariableAccessorsHaveConsistentModifiers(analyzer: Analyzer, getterModifiers: ModifierFlags, setterModifiers: ModifierFlags, nodeForDiagnostic: tree.Node, diagnostics: DiagnosticAcceptor): void;
50
+ static validateFieldAccessorsHaveConsistentModifiers(analyzer: Analyzer, getterModifiers: ModifierFlags, setterModifiers: ModifierFlags, nodeForDiagnostic: tree.Node, diagnostics: DiagnosticAcceptor): void;
51
+ static validateIndexedElementAccessorsHaveConsistentModifiers(analyzer: Analyzer, getterModifiers: ModifierFlags, setterModifiers: ModifierFlags, nodeForDiagnostic: tree.Node, diagnostics: DiagnosticAcceptor): void;
52
+ static validateDereferencedVariableAccessorsHaveConsistentModifiers(analyzer: Analyzer, getterModifiers: ModifierFlags, setterModifiers: ModifierFlags, nodeForDiagnostic: tree.Node, diagnostics: DiagnosticAcceptor): void;
53
+ validateTopLevelPackageMembers(list: tree.PackageMemberDeclarationList): void;
54
+ validateTopLevelTypeMembers(list: tree.TypeMemberDeclarationList, declarationWithMembersKind: DeclarationWithTypeMembersKind, isTypeMarkedAbstract: boolean, isTypeMarkedBasic: boolean): void;
55
+ private static validateTypeMemberAccessorsHaveConsistentModifiers;
56
+ private static validatePackageMemberSetterHasMoreRestrictiveHidingLevel;
57
+ private static validateTypeMemberSetterHasMoreRestrictiveHidingLevel;
58
+ private static reportMoreRestrictiveHidingLevelIsRequired;
59
+ private static reportSetterMustHaveSameModifiersAsGetter;
60
+ private validatePackageMembers;
61
+ private validatePackageMemberModifierList;
62
+ private validatePackageMemberCanBePlacedInGroupWithModifiers;
63
+ private validatePackageConstructorDeclaration;
64
+ private validatePackageEntryPointDeclaration;
65
+ private validateTranslationsDeclaration;
66
+ private validateTypeMembers;
67
+ private validateTypeMemberModifierList;
68
+ private validateTypeMemberCanBePlacedInGroupWithModifiers;
69
+ private validateFieldCanBePlacedInGroupWithModifiers;
70
+ private typeMemberAllowsAbstractModifier;
71
+ private typeMemberAllowsBasicModifier;
72
+ private typeMemberAllowsOverrideModifier;
73
+ private typeMemberAllowsStaticModifier;
74
+ private reportDuplicateModifier;
75
+ private reportDuplicateHiddenModifier;
76
+ private reportDeclarationCanNotBePlacedInGroupWithModifier;
77
+ private reportModifierCanNotBeUsedWithAnotherModifier;
78
+ private reportModifierIsNotAllowedHere;
79
+ private displayModifierNode;
80
+ private displayModifierFlag;
81
+ private displayModifier;
82
+ private forEachModifierFlag;
83
+ }
84
+ export {};
@@ -0,0 +1,22 @@
1
+ import { DiagnosticAcceptor } from '../diagnostic/Diagnostic.js';
2
+ import { OriginalTypeEntityMembers } from '../entities/TypeEntityMembers.js';
3
+ import { Analyzer } from './Analyzer.js';
4
+ export declare class TypeMemberConflictsValidator {
5
+ private readonly _analyzer;
6
+ private readonly _members;
7
+ private readonly _diagnostics;
8
+ constructor(_analyzer: Analyzer, _members: OriginalTypeEntityMembers, _diagnostics: DiagnosticAcceptor);
9
+ validate(): void;
10
+ private validateNamedMembers;
11
+ private validateNamedMembersWithoutIsStaticCheck;
12
+ private validateMethodsWithSameName;
13
+ private validateConstructors;
14
+ private validateDestructors;
15
+ private validateOperators;
16
+ private validateIndexers;
17
+ private validateDereferenceOperators;
18
+ private validateMembersWithoutTypeParametersInSignature;
19
+ private reportNameConflictDiagnosticsForAllEntities;
20
+ private reportNameConflictDiagnostic;
21
+ private getDiagnosticLocation;
22
+ }
@@ -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
+ }
@@ -0,0 +1,13 @@
1
+ export declare class ArrayUtils {
2
+ /**
3
+ * Удаляет элемент из массива по заданному индексу.
4
+ *
5
+ * Работает быстрее, чем `array.splice(index, 1)`, и не выделяет память для массива удалённых элементов.
6
+ */
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;
10
+ }
11
+ export type WithEqualsMethod<T> = {
12
+ equals(t: T): boolean;
13
+ };
@@ -1,4 +1,5 @@
1
1
  export * from './AccessKind.js';
2
+ export * from './ArrayUtils.js';
2
3
  export * from './ArtelFileCheck.js';
3
4
  export * from './Cached.js';
4
5
  export * from './CancellationToken.js';
@@ -88,61 +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
- OperatorFunctionMustNotBeStatic = 279,
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
118
  OperatorFunction0MustNotHaveParameters = 280,
119
119
  OperatorFunction0MustHaveOneParameter = 281,
120
120
  OperatorFunction0MustHaveNoMoreThanOneParameter = 282,
121
121
  CorrespondingBasicTypeMemberNotFound = 283,
122
- ConstructorCannotBeDeclaredAsBasic = 284,
123
- ConstructorCannotBeDeclaredAsOverridden = 285,
124
- AsyncFunctionCanOnlyBeCalledFromFunctionMarkedWithAsyncModifier = 286,
125
- TagNotFound = 287,
126
- TypeOrFunctionNameExpected = 288,
127
- PackageNameOrAliasExpected = 289,
128
- ExpressionCanBeNone = 290,
129
- TargetVariableExpressionInTheAssignmentStatementCannotContainQuestionOperator = 291,
130
- UnreachableCode = 292,
131
- RecursionOccurredWhileCalculatingTheTypeOfTheExpression = 293,
132
- RecursionOccurredWhileInferringTheTypeOfTheVariable = 294,
133
- ScopeAlreadyContainsDeclarationWithTheSameName = 295,
134
- ScopeAlreadyContainsFunctionWithTheSameNameAndParameterTypes = 296,
135
- ParameterName0ConflictsWithAutomaticallyGeneratedVariableName = 297,
136
- PackageAlreadyContainsDeclarationWithTheSameName = 298,
137
- PackageAlreadyContainsFunctionWithTheSameNameAndParameterTypes = 299,
138
- PackageAlreadyContainsTypeWithTheSameNameAndSameOrIntersectingTypeParameterCount = 300,
139
- PackageAliasWithTheSameNameAlreadyExits = 301,
140
- PackageCanHaveOnlyEntryPoint = 302,
141
- PackageCanHaveOnlyOneConstructor = 303,
142
- VariableIsUsedBeforeItsDeclaration = 304,
143
- VariableMayNotHasBeenAssignedBeforeUsage = 305,
144
- NotAllCodePathsReturnAValueAndResultLocalVariableMayNotHasBeenAssigned = 306,
145
- WriteFunctionHasNoCorrespondingReadFunction = 307,
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,
146
187
  CannotFindTsLibDirectoryBaseSearchPaths0 = 401,
147
188
  SourceFile0IsNotPartOfThePackageAndWontBeLoaded = 402,
148
189
  ProgramWithoutMainPackageCannotBeCompiled = 403,
@@ -17,6 +17,7 @@ export interface DereferenceOperatorEntity {
17
17
  markedAbstract(): boolean;
18
18
  getTags(): readonly Tag[];
19
19
  getOverriddenMembers(): readonly types.DereferenceOperator[];
20
+ ensureAllDiagnosticsReported?(): void;
20
21
  }
21
22
  export type DereferenceOperatorEntityDefinition = {
22
23
  kind: DefinitionKind.Source;
@@ -30,8 +31,8 @@ export declare class DereferenceOperatorDeclarationEntity implements Dereference
30
31
  private readonly _getterDeclaration;
31
32
  private readonly _setterDeclaration;
32
33
  private readonly _getterOrSetterDeclaration;
33
- private readonly _overriddenMembers;
34
34
  private _modifierFlags;
35
+ private _hasReportedAllDiagnostics;
35
36
  private get modifierFlags();
36
37
  constructor(analyzer: Analyzer, getterDeclaration: DereferencedVariableGetterDeclaration | undefined, setterDeclaration: DereferencedVariableSetterDeclaration | undefined);
37
38
  getType(): types.Type;
@@ -46,4 +47,5 @@ export declare class DereferenceOperatorDeclarationEntity implements Dereference
46
47
  markedAbstract(): boolean;
47
48
  getTags(): readonly Tag[];
48
49
  getOverriddenMembers(): readonly types.DereferenceOperator[];
50
+ ensureAllDiagnosticsReported(): void;
49
51
  }
@@ -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);
@@ -18,6 +18,7 @@ export interface IndexerEntity {
18
18
  markedAbstract(): boolean;
19
19
  getTags(): readonly Tag[];
20
20
  getOverriddenMembers(): readonly types.Indexer[];
21
+ ensureAllDiagnosticsReported?(): void;
21
22
  }
22
23
  export type IndexerEntityDefinition = {
23
24
  kind: DefinitionKind.Source;
@@ -37,8 +38,8 @@ export declare class IndexerDeclarationEntity implements SourceIndexerEntity {
37
38
  private readonly _setterDeclaration;
38
39
  private readonly _getterOrSetterDeclaration;
39
40
  private readonly _parameters;
40
- private readonly _overriddenMembers;
41
41
  private _modifierFlags;
42
+ private _hasReportedAllDiagnostics;
42
43
  private get parameters();
43
44
  private get modifierFlags();
44
45
  constructor(analyzer: Analyzer, getterDeclaration: IndexedElementGetterDeclaration | undefined, setterDeclaration: IndexedElementSetterDeclaration | undefined);
@@ -56,5 +57,6 @@ export declare class IndexerDeclarationEntity implements SourceIndexerEntity {
56
57
  markedAbstract(): boolean;
57
58
  getTags(): readonly Tag[];
58
59
  getOverriddenMembers(): readonly types.Indexer[];
60
+ ensureAllDiagnosticsReported(): void;
59
61
  private createParameters;
60
62
  }
@@ -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);