@artel/artc 0.6.25229 → 0.6.25231
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 +6 -4
- package/build/api/ApiNodeJS.js +3 -3
- package/build/api/ApiServices.js +50 -50
- package/build/{chunk-4UBNOTKC.js → chunk-BG2YEIQO.js} +2 -2
- package/build/{chunk-6YPLDA76.js → chunk-S7CAJWX2.js} +2372 -943
- package/build/{chunk-2FHW6RUS.js → chunk-VQ5GGKF7.js} +1 -1
- package/build/types/analysis/Analyzer.d.ts +51 -11
- package/build/types/analysis/BaseExpressionMeaning.d.ts +1 -1
- package/build/types/analysis/DiagnosticCollector.d.ts +1 -1
- package/build/types/analysis/FindModifier.d.ts +1 -0
- package/build/types/analysis/{OperationOverloadResolver.d.ts → FunctionOverloadResolver.d.ts} +2 -0
- package/build/types/analysis/IdentifierExpressionMeaning.d.ts +2 -2
- package/build/types/analysis/MemberAccessExpressionMeaning.d.ts +5 -5
- package/build/types/analysis/ModifierFlags.d.ts +7 -2
- package/build/types/analysis/ModifierValidator.d.ts +83 -0
- package/build/types/analysis/PackageMemberNameConflictsValidator.d.ts +2 -3
- package/build/types/analysis/TypeMemberConflictsValidator.d.ts +22 -0
- package/build/types/analysis/control-flow/NarrowableReference.d.ts +4 -4
- package/build/types/analysis/control-flow/Nodes.d.ts +1 -1
- package/build/types/analysis/semantic-context/Declarations.d.ts +2 -2
- package/build/types/analysis/semantic-context/SemanticContextValidatingNameConflicts.d.ts +0 -1
- package/build/types/common/ArrayUtils.d.ts +8 -0
- package/build/types/common/index.d.ts +1 -0
- package/build/types/diagnostic/DiagnosticCode.d.ts +57 -29
- package/build/types/emitter/Entities.d.ts +3 -3
- package/build/types/entities/AliasTypeEntity.d.ts +1 -1
- package/build/types/entities/ConstructorEntity.d.ts +8 -8
- package/build/types/entities/DereferenceOperatorEntity.d.ts +10 -7
- package/build/types/entities/DestructorEntity.d.ts +3 -3
- package/build/types/entities/FunctionEntity.d.ts +14 -14
- package/build/types/entities/FunctionTypeEntity.d.ts +1 -1
- package/build/types/entities/GetterEntity.d.ts +4 -4
- package/build/types/entities/IndexerEntity.d.ts +11 -8
- package/build/types/entities/OperatorEntity.d.ts +7 -7
- package/build/types/entities/SetterEntity.d.ts +4 -4
- package/build/types/entities/StructuredTypeEntity.d.ts +14 -14
- package/build/types/entities/TypeExtensionEntity.d.ts +1 -1
- package/build/types/entities/VariableEntity.d.ts +32 -28
- package/build/types/entities/VariantTypeEntity.d.ts +1 -1
- package/build/types/entities/index.d.ts +29 -0
- package/build/types/project/SourcePackage.d.ts +7 -7
- package/build/types/services/DisplayService.d.ts +2 -2
- package/build/types/services/NodeSemanticInfo.d.ts +4 -4
- package/build/types/tree/KeywordKind.d.ts +1 -1
- package/build/types/tree/green/Nodes.d.ts +3 -3
- package/build/types/tree/red/Nodes.d.ts +2 -2
- package/build/types/ts-interop/Entities.d.ts +29 -29
- package/build/types/ts-interop/TsTypeMembersCreator.d.ts +1 -1
- package/build/types/types/StructuredType.d.ts +2 -0
- package/build/types/types/TypeMembers.d.ts +5 -5
- package/package.json +4 -4
@@ -24,6 +24,7 @@ import * as constructorOverloadResolver from './ConstructorOverloadResolver.js';
|
|
24
24
|
import { DeclarationsUsageCountResult } from './DeclarationsUsageCounter.js';
|
25
25
|
import * as dereferenceExpressionMeaning from './DereferenceExpressionMeaning.js';
|
26
26
|
import { FoundAnonymousDeclaration } from './FoundDeclaration.js';
|
27
|
+
import * as functionOverloadResolver from './FunctionOverloadResolver.js';
|
27
28
|
import * as identifierExpressionResolution from './IdentifierExpressionMeaning.js';
|
28
29
|
import { ImportedPackageNameTree, PackageNameTreeNode } from './ImportedPackageNameTree.js';
|
29
30
|
import * as indexedAccessExpressionMeaning from './IndexedAccessExpressionMeaning.js';
|
@@ -34,7 +35,6 @@ import { ModifierFlags } from './ModifierFlags.js';
|
|
34
35
|
import { NamedTypeSpecifierResolutionResult } from './NamedTypeSpecifierResolver.js';
|
35
36
|
import { DereferencedVariableAccessorDeclaration, FieldAccessorDeclaration, FunctionTypeDeclaration, GetterDeclaration, IndexedElementAccessorDeclaration, PackageVariableAccessorDeclaration, SetterDeclaration, StructuredTypeDeclaration, VariantTypeDeclaration } from './NodeTypeUtils.js';
|
36
37
|
import * as objectExpressionMeaning from './ObjectExpressionMeaning.js';
|
37
|
-
import * as operationOverloadResolver from './OperationOverloadResolver.js';
|
38
38
|
import { SourceFileMembers as ActualSourceFileMembers } from './SourceFileMembers.js';
|
39
39
|
import * as tagMeaning from './TagMeaning.js';
|
40
40
|
import * as tags from './Tags.js';
|
@@ -68,6 +68,7 @@ export declare class Analyzer {
|
|
68
68
|
readonly owningPlainObjectModificationCheck: OwningPlainObjectModificationCheck;
|
69
69
|
readonly packageImports: PackageImports;
|
70
70
|
readonly typeUtils: TypeUtils;
|
71
|
+
readonly conflictsCheck: ConflictsCheck;
|
71
72
|
private readonly _tsInteropInputs;
|
72
73
|
private readonly _targetType;
|
73
74
|
private readonly _typeAssignabilityCheck;
|
@@ -117,8 +118,8 @@ export declare class Analyzer {
|
|
117
118
|
getUnambiguousTargetFunctionType(targetType: types.Type | undefined): types.FunctionType | undefined;
|
118
119
|
getUnambiguousTargetArrayType(targetType: types.Type | undefined): types.Type | undefined;
|
119
120
|
getEnumeratorElementType(node: tree.Node): types.Type | undefined;
|
120
|
-
resolveFunctionOverloadByCallExpression<TCandidate extends
|
121
|
-
resolveFunctionOverloadByTargetType<TCandidate extends
|
121
|
+
resolveFunctionOverloadByCallExpression<TCandidate extends functionOverloadResolver.ICandidate<TValueParameter>, TValueParameter extends functionOverloadResolver.IValueParameter>(candidates: readonly TCandidate[], node: tree.CallExpression): readonly TCandidate[];
|
122
|
+
resolveFunctionOverloadByTargetType<TCandidate extends functionOverloadResolver.ICandidate<TValueParameter>, TValueParameter extends functionOverloadResolver.IValueParameter>(candidates: readonly TCandidate[], targetType: types.FunctionType): readonly TCandidate[];
|
122
123
|
resolveConstructorOverload<TCandidate extends constructorOverloadResolver.ICandidate<TValueParameter>, TValueParameter extends constructorOverloadResolver.IValueParameter>(candidates: readonly TCandidate[], args: readonly tree.Argument[]): readonly TCandidate[];
|
123
124
|
resolveTypeOverloadByArgumentCount<TCandidate extends typeOverloadResolver.ICandidate>(candidates: readonly TCandidate[], argumentCount: number): readonly TCandidate[];
|
124
125
|
resolveMemberAccessExpression(node: tree.MemberAccessExpression, targetTypeHint?: TargetTypeHint): memberAccessExpressionResolution.ResolutionResult;
|
@@ -170,8 +171,6 @@ export declare class Analyzer {
|
|
170
171
|
createNameFromIdentifier(node: tree.Identifier): Name;
|
171
172
|
createSearchNameFromIdentifier(identifier: tree.Identifier): SearchName;
|
172
173
|
createLocalizationContext(sourceFile: project.SourceFile): LocalizationContext;
|
173
|
-
typeIsValidBaseObjectType(type: types.Type): boolean;
|
174
|
-
typeIsValidBaseAspectType(type: types.Type): boolean;
|
175
174
|
getImplicitBaseTypeForStructuredType(entity: e.StructuredTypeEntity): types.StructuredType | undefined;
|
176
175
|
getImplicitBaseTypeForVariantType(): types.StructuredType;
|
177
176
|
getImplicitBaseTypeForFunctionType(): types.StructuredType;
|
@@ -276,7 +275,8 @@ export declare class Analyzer {
|
|
276
275
|
createAmbiguousNamedScopeDeclarationAccessLazyDiagnostic(declarations: readonly WithLocalization<semanticContext.NamedDeclaration>[], lctx: LocalizationContext, node: tree.Node): Lazy<Diagnostic>;
|
277
276
|
addDiagnosticComputedLazily(diagnostic: Diagnostic): void;
|
278
277
|
getAcceptorForDiagnosticsComputedLazily(): DiagnosticAcceptor;
|
279
|
-
|
278
|
+
getSourceFileDiagnosticsComputedLazily(sourceFile: project.SourceFile): readonly Diagnostic[];
|
279
|
+
getDiagnosticsWithoutLocationComputedLazily(): readonly Diagnostic[];
|
280
280
|
validateSourcePackageMemberConflicts(pkg: project.ProgramPackage): readonly Diagnostic[];
|
281
281
|
private createTsInterop;
|
282
282
|
}
|
@@ -482,17 +482,17 @@ declare class DefaultConstructors {
|
|
482
482
|
declare class OverriddenMember {
|
483
483
|
private readonly _analyzer;
|
484
484
|
constructor(_analyzer: Analyzer);
|
485
|
-
|
485
|
+
getOverriddenFields(node: tree.FieldDeclaration | FieldAccessorDeclaration): types.Field[];
|
486
486
|
getOverriddenMethods(node: tree.MethodDeclaration): types.Method[];
|
487
487
|
getOverriddenOperators(node: tree.OperatorDeclaration): types.Operator[];
|
488
488
|
getOverriddenIndexers(node: IndexedElementAccessorDeclaration): types.Indexer[];
|
489
489
|
getOverriddenDereferenceOperators(node: DereferencedVariableAccessorDeclaration): types.DereferenceOperator[];
|
490
|
-
private
|
490
|
+
private findOverriddenFieldInType;
|
491
491
|
private findOverriddenMethodInType;
|
492
492
|
private findOverriddenOperatorInType;
|
493
493
|
private findOverriddenIndexerInType;
|
494
494
|
private findOverriddenDereferenceOperatorInType;
|
495
|
-
private
|
495
|
+
private checkFieldOverridesField;
|
496
496
|
private checkMethodOverridesMethod;
|
497
497
|
private checkOperatorOverridesOperator;
|
498
498
|
private checkIndexerOverridesIndexer;
|
@@ -560,7 +560,7 @@ export declare class LinkedTypeWithMembers {
|
|
560
560
|
private readonly _memberLookup;
|
561
561
|
private get memberLookup();
|
562
562
|
constructor(analyzer: Analyzer, externalType: e.TypeEntityWithMembers, targetType: e.TypeEntityWithMembers, linkedPackage: LinkedMultiPlatformPackage);
|
563
|
-
|
563
|
+
getLinkedField(entity: e.FieldEntity): e.FieldEntity | undefined;
|
564
564
|
getLinkedMethod(entity: e.MethodEntity): e.MethodEntity | undefined;
|
565
565
|
getLinkedOperator(entity: e.OperatorEntity): e.OperatorEntity | undefined;
|
566
566
|
getLinkedConstructor(entity: e.ConstructorEntity): e.ConstructorEntity | undefined;
|
@@ -616,7 +616,7 @@ export declare class PackageImportInfo {
|
|
616
616
|
readonly isAliasedImport: e.PackageAliasEntity | undefined;
|
617
617
|
constructor(entity: e.PackageEntity, translationPackage: AnalyzedTranslationPackage | undefined, isAliasedImport: e.PackageAliasEntity | undefined);
|
618
618
|
}
|
619
|
-
|
619
|
+
declare class TypeUtils {
|
620
620
|
private readonly _analyzer;
|
621
621
|
constructor(_analyzer: Analyzer);
|
622
622
|
getCommonObjectAndAspectTypesOfUnion(unionType: types.UnionType): readonly types.StructuredType[];
|
@@ -628,6 +628,46 @@ export declare class TypeUtils {
|
|
628
628
|
private getFlattenedConstituentTypesForCommonTypesSearch;
|
629
629
|
private flattenTypeParameterConstraint;
|
630
630
|
}
|
631
|
+
declare class ConflictsCheck {
|
632
|
+
private readonly _analyzer;
|
633
|
+
private _stubParameterTypes;
|
634
|
+
constructor(_analyzer: Analyzer);
|
635
|
+
/**
|
636
|
+
* Проверяет, конфликтуют ли две функции, т.е. могут ли такие функции находиться в одной области видимости.
|
637
|
+
* Метод не сравнивает имена.
|
638
|
+
*
|
639
|
+
* Отношение "функции конфликтуют" не является транзитивным, т.е. из того, что функция 1 конфликтует с функцией 2 и
|
640
|
+
* функция 2 конфликтует с функцией 3 не следует, что функция 1 конфликтует с функцией 3.
|
641
|
+
*
|
642
|
+
* Пример:
|
643
|
+
* ```artel
|
644
|
+
* 1. функция ф<Т1>()
|
645
|
+
* 2. функция ф<Т1, Т2>()
|
646
|
+
* 3. функция ф<Т1, Т2 = Объект>()
|
647
|
+
* ```
|
648
|
+
*
|
649
|
+
* Функции 1 и 2 не конфликтуют между собой, поскольку имеют разное количество количество параметров типа, однако
|
650
|
+
* каждая из них конфликтует с функций 3, которая может принимать от 1 до 2 параметров типа.
|
651
|
+
*/
|
652
|
+
doFunctionSignaturesConflict(function1: e.FunctionEntity, function2: e.FunctionEntity): boolean;
|
653
|
+
/**
|
654
|
+
* Проверяет, конфликтуют две сущности, имеющие параметры, но не имеющие параметры типа.
|
655
|
+
*
|
656
|
+
* Отношение "сущности, имеющие только параметры, конфликтуют" является транзитивным.
|
657
|
+
*/
|
658
|
+
doSignaturesWithoutTypeParametersConflict(entity1: EntityWithoutTypeParametersInSignature, entity2: EntityWithoutTypeParametersInSignature): boolean;
|
659
|
+
/**
|
660
|
+
* Проверяет, конфликтуют ли два типа, т.е. могут ли такие типы находиться в одном пакете. Метод не сравнивает имена.
|
661
|
+
*
|
662
|
+
* Отношение "типы конфликтуют" не является транзитивным (см. комментарий у метода
|
663
|
+
* {@link doFunctionSignaturesConflict}).
|
664
|
+
*/
|
665
|
+
doPackageTypesConflict(type1: e.PackageTypeEntity, type2: e.PackageTypeEntity): boolean;
|
666
|
+
doTypeArgumentCountsIntersect(typeParameters1: readonly e.TypeParameterEntity[], typeParameters2: readonly e.TypeParameterEntity[]): boolean;
|
667
|
+
private doParametersConflict;
|
668
|
+
private createSubstitutionMapWithStubTypes;
|
669
|
+
}
|
670
|
+
export type EntityWithoutTypeParametersInSignature = e.ConstructorEntity | e.DestructorEntity | e.OperatorEntity | e.IndexerEntity;
|
631
671
|
export declare class ExpressionDenotesFunctionCheckResult {
|
632
672
|
readonly candidates: readonly WithLocalization<AccessedFunction>[];
|
633
673
|
readonly suitableFunctions: readonly WithLocalization<AccessedFunction>[];
|
@@ -5,7 +5,7 @@ import { Analyzer } from './Analyzer.js';
|
|
5
5
|
import { FoundAnonymousDeclaration } from './FoundDeclaration.js';
|
6
6
|
/**
|
7
7
|
* "основа" не является самостоятельным выражением и может использоваться только в следующих конструкциях:
|
8
|
-
* 1. основа() - в конструкторе для вызова базового конструктора или в методе для вызова
|
8
|
+
* 1. основа() - в конструкторе для вызова базового конструктора или в методе для вызова базового метода.
|
9
9
|
* 2. основа.поле (основа.метод) - в любом выражении в контексте типа, имеющего базовый тип.
|
10
10
|
* 3. основа[] - аналогично п. 2.
|
11
11
|
*/
|
@@ -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();
|
@@ -50,7 +51,6 @@ export declare class DiagnosticCollector {
|
|
50
51
|
private getPackageMemberBodyRequirementReason;
|
51
52
|
private checkTypeMemberBodyPresence;
|
52
53
|
private getTypeMemberBodyRequirementReason;
|
53
|
-
private isBasicEntity;
|
54
54
|
private checkIdentifierExpression;
|
55
55
|
private checkLocalVariableUsedBeforeDeclaration;
|
56
56
|
private checkLocalVariableIsUsedBeforeBeingAssigned;
|
@@ -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 {};
|
package/build/types/analysis/{OperationOverloadResolver.d.ts → FunctionOverloadResolver.d.ts}
RENAMED
@@ -11,6 +11,8 @@ export declare class Resolver<TCandidate extends ICandidate<TValueParameter>, TV
|
|
11
11
|
export interface ICandidate<TValueParameter extends IValueParameter> {
|
12
12
|
getValueParameters(): readonly TValueParameter[];
|
13
13
|
getSignatureType(): types.Type;
|
14
|
+
getTypeParameterCount(): number;
|
15
|
+
getRequiredTypeParameterCount(): number;
|
14
16
|
}
|
15
17
|
export interface IValueParameter {
|
16
18
|
getName(): Name | undefined;
|
@@ -90,9 +90,9 @@ export declare class AccessedVariable_entity implements IAccessedVariable {
|
|
90
90
|
getType(): types.Type;
|
91
91
|
}
|
92
92
|
export declare class AccessedVariable_typeMember implements IAccessedVariable {
|
93
|
-
readonly value: types.
|
93
|
+
readonly value: types.Field;
|
94
94
|
readonly kind = "type-member";
|
95
|
-
constructor(value: types.
|
95
|
+
constructor(value: types.Field);
|
96
96
|
getEntity(): VariableEntity;
|
97
97
|
getName(): Name;
|
98
98
|
getType(): types.Type;
|
@@ -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);
|
@@ -70,10 +70,10 @@ declare class Meaning_packageNameSegmentAccess {
|
|
70
70
|
}
|
71
71
|
declare class Meaning_staticFieldAccess {
|
72
72
|
readonly type: types.Type;
|
73
|
-
readonly
|
73
|
+
readonly field: FoundNamedDeclaration<types.Field>;
|
74
74
|
readonly accessKind: AccessKind;
|
75
75
|
readonly kind = "static-field-access";
|
76
|
-
constructor(type: types.Type,
|
76
|
+
constructor(type: types.Type, field: FoundNamedDeclaration<types.Field>, accessKind: AccessKind);
|
77
77
|
}
|
78
78
|
declare class Meaning_staticMethodAccess {
|
79
79
|
readonly type: types.Type;
|
@@ -84,10 +84,10 @@ declare class Meaning_staticMethodAccess {
|
|
84
84
|
constructor(type: types.Type, candidates: readonly FoundNamedDeclaration<AccessedFunction>[], suitableFunctions: readonly FoundNamedDeclaration<AccessedFunction>[]);
|
85
85
|
}
|
86
86
|
declare class Meaning_instanceFieldAccess {
|
87
|
-
readonly
|
87
|
+
readonly field: FoundNamedDeclaration<types.Field>;
|
88
88
|
readonly accessKind: AccessKind;
|
89
89
|
readonly kind = "instance-field-access";
|
90
|
-
constructor(
|
90
|
+
constructor(field: FoundNamedDeclaration<types.Field>, accessKind: AccessKind);
|
91
91
|
}
|
92
92
|
declare class Meaning_instanceMethodAccess {
|
93
93
|
readonly candidates: readonly FoundNamedDeclaration<AccessedFunction>[];
|
@@ -8,8 +8,13 @@ export declare enum ModifierFlags {
|
|
8
8
|
Basic = 32,
|
9
9
|
Static = 64,
|
10
10
|
Abstract = 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,83 @@
|
|
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 typeMemberAllowsAbstractModifier;
|
70
|
+
private typeMemberAllowsBasicModifier;
|
71
|
+
private typeMemberAllowsOverrideModifier;
|
72
|
+
private typeMemberAllowsStaticModifier;
|
73
|
+
private reportDuplicateModifier;
|
74
|
+
private reportDuplicateHiddenModifier;
|
75
|
+
private reportDeclarationCanNotBePlacedInGroupWithModifier;
|
76
|
+
private reportModifierCanNotBeUsedWithAnotherModifier;
|
77
|
+
private reportModifierIsNotAllowedHere;
|
78
|
+
private displayModifierNode;
|
79
|
+
private displayModifierFlag;
|
80
|
+
private displayModifier;
|
81
|
+
private forEachModifierFlag;
|
82
|
+
}
|
83
|
+
export {};
|
@@ -9,11 +9,10 @@ export declare class PackageMemberNameConflictsValidator {
|
|
9
9
|
constructor(_analyzer: Analyzer, _members: OriginalPackageMembers);
|
10
10
|
validate(): readonly Diagnostic[];
|
11
11
|
private validateFunctionNameConflicts;
|
12
|
-
private areFunctionSignaturesEqual;
|
13
12
|
private validateTypeNameConflicts;
|
14
|
-
private typeParameterCountsIntersect;
|
15
13
|
private createAndAddNameConflictDiagnosticsForAllEntities;
|
16
|
-
private
|
14
|
+
private shouldReportConflictWithMemberBasedOnHiding;
|
15
|
+
private reportNameConflictDiagnostic;
|
17
16
|
private getDiagnosticLocation;
|
18
17
|
}
|
19
18
|
export declare class SourcePackageMemberConflictsValidator {
|
@@ -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
|
+
}
|
@@ -27,10 +27,10 @@ export declare namespace NarrowableReference {
|
|
27
27
|
}
|
28
28
|
export class InstanceField implements INarrowableReference {
|
29
29
|
private readonly _analyzer;
|
30
|
-
readonly
|
30
|
+
readonly field: types.Field;
|
31
31
|
readonly receiver: NarrowableReference;
|
32
32
|
readonly kind = "instance-field";
|
33
|
-
constructor(_analyzer: Analyzer,
|
33
|
+
constructor(_analyzer: Analyzer, field: types.Field, receiver: NarrowableReference);
|
34
34
|
equals(other: NarrowableReference): boolean;
|
35
35
|
contains(other: NarrowableReference): boolean;
|
36
36
|
equalsExpression(expression: NarrowableReferenceExpression): boolean;
|
@@ -38,9 +38,9 @@ export declare namespace NarrowableReference {
|
|
38
38
|
}
|
39
39
|
export class StaticField implements INarrowableReference {
|
40
40
|
private readonly _analyzer;
|
41
|
-
readonly
|
41
|
+
readonly field: types.Field;
|
42
42
|
readonly kind = "static-field";
|
43
|
-
constructor(_analyzer: Analyzer,
|
43
|
+
constructor(_analyzer: Analyzer, field: types.Field);
|
44
44
|
equals(other: NarrowableReference): boolean;
|
45
45
|
contains(_other: NarrowableReference): boolean;
|
46
46
|
equalsExpression(expression: NarrowableReferenceExpression): boolean;
|
@@ -45,7 +45,7 @@ export declare class AssignmentNode extends ControlFlowNodeBase {
|
|
45
45
|
}
|
46
46
|
/**
|
47
47
|
* Создаётся в местах объявления локальных переменных. Если переменной присваивается начальное значение, её тип будет
|
48
|
-
*
|
48
|
+
* взят как тип присваиваемого выражения.
|
49
49
|
*/
|
50
50
|
export declare class LocalVariableDeclarationNode extends ControlFlowNodeBase {
|
51
51
|
readonly predecessor: Node;
|
@@ -77,9 +77,9 @@ export declare class NamedDeclarationVariable_entity implements INamedDeclaratio
|
|
77
77
|
isHidden(): EntityHidingLevel | undefined;
|
78
78
|
}
|
79
79
|
export declare class NamedDeclarationVariable_typeMember implements INamedDeclarationVariable {
|
80
|
-
readonly value: types.
|
80
|
+
readonly value: types.Field;
|
81
81
|
readonly kind = "type-member";
|
82
|
-
constructor(value: types.
|
82
|
+
constructor(value: types.Field);
|
83
83
|
getName(): Name;
|
84
84
|
getEntity(): VariableEntity;
|
85
85
|
isHidden(): EntityHidingLevel | undefined;
|
@@ -33,7 +33,6 @@ export declare abstract class SemanticContextValidatingNameConflictsBase extends
|
|
33
33
|
validateNameConflicts(diagnostics: DiagnosticAcceptor): void;
|
34
34
|
private getMemberEntityDictionary;
|
35
35
|
private validateNestedFunctionsConflicts;
|
36
|
-
private areNestedFunctionSignaturesEqual;
|
37
36
|
private createNamedDeclarations;
|
38
37
|
private createTypesOrContainerWithTypes;
|
39
38
|
}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export declare class ArrayUtils {
|
2
|
+
/**
|
3
|
+
* Удаляет элемент из массива по заданному индексу.
|
4
|
+
*
|
5
|
+
* Работает быстрее, чем `array.splice(index, 1)`, и не выделяет память для массива удалённых элементов.
|
6
|
+
*/
|
7
|
+
static removeElement<T>(array: T[], index: number): void;
|
8
|
+
}
|
@@ -114,35 +114,63 @@ export declare enum DiagnosticCode {
|
|
114
114
|
IncorrectBodyOfBasicAliasTypeMethod = 276,
|
115
115
|
TheFollowingDeclarationsAreNotTranslated0 = 277,
|
116
116
|
TheFollowingDeclarationAreNotTranslated0And1More = 278,
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
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,
|
146
174
|
CannotFindTsLibDirectoryBaseSearchPaths0 = 401,
|
147
175
|
SourceFile0IsNotPartOfThePackageAndWontBeLoaded = 402,
|
148
176
|
ProgramWithoutMainPackageCannotBeCompiled = 403,
|
@@ -44,7 +44,7 @@ export interface ComputedNameInfo {
|
|
44
44
|
*/
|
45
45
|
readonly affectsDeclaration: boolean;
|
46
46
|
/**
|
47
|
-
* Должны ли
|
47
|
+
* Должны ли расширенные (override-) члены производных типов использовать указанный символ в качестве ключа?
|
48
48
|
*/
|
49
49
|
readonly affectsDerivedMembers: boolean;
|
50
50
|
}
|
@@ -105,9 +105,9 @@ export declare class TypeOrExtensionEntityDetails {
|
|
105
105
|
isDefaultExport: boolean;
|
106
106
|
extendedType: TypeOrExtensionEntity | undefined;
|
107
107
|
/**
|
108
|
-
* Является ли имя члена типа вычисляемым (`details.hasComputedName`) может зависеть от
|
108
|
+
* Является ли имя члена типа вычисляемым (`details.hasComputedName`) может зависеть от переопределённых членов типа.
|
109
109
|
* Если `areOwnComputedNamesOfMembersResolved` === `true`, поля `details.hasComputedName` членов типа хранят
|
110
|
-
* актуальную для них самих информацию, и анализ
|
110
|
+
* актуальную для них самих информацию, и анализ переопределённых членов типа не требуется.
|
111
111
|
*/
|
112
112
|
areOwnComputedNamesOfMembersResolved: boolean;
|
113
113
|
}
|
@@ -72,7 +72,7 @@ export declare class PackageAliasTypeDeclarationEntity implements AliasTypeEntit
|
|
72
72
|
private readonly _aliasedType;
|
73
73
|
private readonly _typeParameters;
|
74
74
|
private readonly _members;
|
75
|
-
private
|
75
|
+
private _modifierFlags;
|
76
76
|
private get modifierFlags();
|
77
77
|
constructor(_analyzer: Analyzer, _node: PackageAliasTypeDeclaration);
|
78
78
|
getName(): Name;
|