@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.
- package/build/Cli.js +3 -3
- package/build/api/Api.js +12 -2
- package/build/api/ApiNodeJS.js +3 -3
- package/build/api/ApiServices.js +13 -13
- package/build/{chunk-ZUIGWNN5.js → chunk-E72KEKQV.js} +10116 -8220
- package/build/{chunk-3LHZOXTJ.js → chunk-QDDCF32T.js} +2 -2
- package/build/{chunk-WS3ILL2L.js → chunk-S7ZUX7EX.js} +1 -1
- package/build/types/analysis/Analyzer.d.ts +66 -28
- package/build/types/analysis/BaseExpressionMeaning.d.ts +6 -3
- package/build/types/analysis/DiagnosticCollector.d.ts +4 -0
- package/build/types/analysis/FindModifier.d.ts +1 -0
- package/build/types/analysis/MemberAccessExpressionMeaning.d.ts +1 -1
- package/build/types/analysis/ModifierFlags.d.ts +9 -4
- package/build/types/analysis/ModifierValidator.d.ts +84 -0
- package/build/types/analysis/TypeMemberConflictsValidator.d.ts +22 -0
- package/build/types/analysis/TypeMemberImplementationValidator.d.ts +13 -0
- package/build/types/common/ArrayUtils.d.ts +13 -0
- package/build/types/common/index.d.ts +1 -0
- package/build/types/diagnostic/DiagnosticCode.d.ts +92 -51
- package/build/types/entities/DereferenceOperatorEntity.d.ts +3 -1
- package/build/types/entities/FunctionEntity.d.ts +0 -1
- package/build/types/entities/IndexerEntity.d.ts +3 -1
- package/build/types/entities/OperatorEntity.d.ts +0 -1
- package/build/types/entities/StructuredTypeEntity.d.ts +13 -13
- package/build/types/entities/TypeEntityMembers.d.ts +5 -3
- package/build/types/entities/VariableEntity.d.ts +4 -2
- package/build/types/entities/index.d.ts +9 -14
- package/build/types/project/SourcePackage.d.ts +7 -7
- package/build/types/services/DisplayService.d.ts +1 -0
- package/build/types/services/NodeSemanticInfo.d.ts +1 -1
- package/build/types/tree/green/Nodes.d.ts +2 -2
- package/build/types/tree/red/Nodes.d.ts +1 -1
- package/build/types/ts-interop/Entities.d.ts +5 -5
- package/build/types/types/StructuredType.d.ts +2 -0
- package/build/types/types/TypeMembers.d.ts +4 -4
- package/package.json +1 -1
@@ -1,6 +1,6 @@
|
|
1
1
|
import {
|
2
2
|
Compiler
|
3
|
-
} from "./chunk-
|
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-
|
17
|
+
} from "./chunk-E72KEKQV.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;
|
@@ -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
|
-
|
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
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
private
|
495
|
-
private
|
496
|
-
private
|
497
|
-
private
|
498
|
-
private
|
499
|
-
private
|
500
|
-
private
|
501
|
-
private
|
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
|
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
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
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 =
|
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.
|
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
|
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
|
-
|
9
|
-
|
10
|
-
|
8
|
+
Static = 32,
|
9
|
+
Abstract = 64,
|
10
|
+
Basic = 128,
|
11
11
|
Override = 256,
|
12
12
|
Async = 512,
|
13
13
|
Const = 1024,
|
14
|
-
|
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
|
+
};
|
@@ -88,61 +88,102 @@ export declare enum DiagnosticCode {
|
|
88
88
|
BodyIsMissing = 250,
|
89
89
|
AbstractTypeMembersMustNotHaveBody = 251,
|
90
90
|
MembersOfAspectTypeMustNotHaveBody = 252,
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
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
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
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);
|