@artel/artc 0.6.25222 → 0.6.25224
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 +635 -532
- package/build/{chunk-ODWG5ZXF.js → chunk-24QZJOMF.js} +4477 -3240
- package/build/{chunk-MBMOAUK7.js → chunk-62KHK23H.js} +2 -2
- package/build/{chunk-UZK7JCND.js → chunk-Y6DODJCG.js} +1 -1
- package/build/types/analysis/AnalyzedTranslationPackage.d.ts +1 -0
- package/build/types/analysis/Analyzer.d.ts +17 -11
- package/build/types/analysis/DiagnosticCollector.d.ts +1 -1
- package/build/types/analysis/ImportedPackageNameTree.d.ts +1 -0
- package/build/types/analysis/LocalizationContext.d.ts +2 -2
- package/build/types/analysis/Lookup.d.ts +4 -4
- package/build/types/analysis/NamedTypeResolver.d.ts +5 -1
- package/build/types/analysis/NamedTypeSpecifierResolver.d.ts +4 -1
- package/build/types/analysis/PropertyAccessExpressionMeaning.d.ts +9 -3
- package/build/types/analysis/Scope.d.ts +21 -44
- package/build/types/analysis/SemanticContext.d.ts +14 -1
- package/build/types/analysis/SemanticContextBuilder.d.ts +1 -0
- package/build/types/analysis/StatementBlockScopeBuilder.d.ts +1 -0
- package/build/types/analysis/TagMeaning.d.ts +4 -1
- package/build/types/analysis/TypeMemberLookup.d.ts +39 -11
- package/build/types/analysis/TypeNarrower.d.ts +49 -14
- package/build/types/analysis/Utils.d.ts +12 -0
- package/build/types/analysis/control-flow/GraphBuilder.d.ts +43 -0
- package/build/types/analysis/{ControlFlowGraphVisualizer.d.ts → control-flow/GraphVisualizer.d.ts} +3 -3
- package/build/types/analysis/control-flow/NarrowableExpression.d.ts +5 -0
- package/build/types/analysis/control-flow/Nodes.d.ts +91 -0
- package/build/types/analysis/control-flow/index.d.ts +4 -0
- package/build/types/common/HelperPhrases.d.ts +3 -2
- package/build/types/diagnostic/DiagnosticCode.d.ts +5 -5
- package/build/types/emitter/Entities.d.ts +5 -4
- package/build/types/emitter/ir/Nodes.d.ts +2 -2
- package/build/types/entities/index.d.ts +3 -0
- package/build/types/parser/Scanner.d.ts +1 -2
- package/build/types/services/CompletionService.d.ts +0 -1
- package/build/types/services/DisplayService.d.ts +11 -8
- package/build/types/services/NodeSemanticInfo.d.ts +11 -6
- package/build/types/services/source-generation/EntityToSyntax.d.ts +1 -0
- package/build/types/tree/NodeKind.d.ts +146 -144
- package/build/types/tree/green/Nodes.d.ts +28 -10
- package/build/types/tree/green/SyntaxFactory.d.ts +1 -0
- package/build/types/tree/green/SyntaxToCode.d.ts +5 -1
- package/build/types/tree/red/Nodes.d.ts +33 -8
- package/build/types/ts-interop/TsInteropContext.d.ts +1 -0
- package/build/types/types/IntersectionType.d.ts +20 -0
- package/build/types/types/ParameterType.d.ts +6 -3
- package/build/types/types/Type.d.ts +2 -1
- package/build/types/types/TypeFactory.d.ts +4 -1
- package/build/types/types/TypeMembers.d.ts +5 -0
- package/build/types/types/index.d.ts +1 -0
- package/package.json +1 -1
- package/build/types/analysis/ControlFlowGraphBuilder.d.ts +0 -121
package/package.json
CHANGED
@@ -1,121 +0,0 @@
|
|
1
|
-
import { Diagnostic } from '../diagnostic/Diagnostic.js';
|
2
|
-
import { SourceFile } from '../project/SourceFile.js';
|
3
|
-
import * as tree from '../tree/index.js';
|
4
|
-
export declare class ControlFlowGraphBuilder {
|
5
|
-
private readonly _sourceFile;
|
6
|
-
private readonly _controlFlowNodeByReference;
|
7
|
-
private readonly _unreachableCodeDiagnostics;
|
8
|
-
private _isInRebuildingFinallyClauseGraphMode;
|
9
|
-
private _currentPredecessor;
|
10
|
-
private _currentContinueLoopTarget;
|
11
|
-
private _currentBreakLoopTarget;
|
12
|
-
private _currentErrorTarget;
|
13
|
-
private _currentReturnTarget;
|
14
|
-
constructor(sourceFile: SourceFile);
|
15
|
-
build(): ControlFlowGraphBuildResult;
|
16
|
-
private visitNode;
|
17
|
-
private visitAssignmentStatement;
|
18
|
-
private visitIfStatement;
|
19
|
-
private visitWhileStatement;
|
20
|
-
private visitLoopStatement;
|
21
|
-
private visitForStatement;
|
22
|
-
private visitContinueLoopStatement;
|
23
|
-
private visitBreakLoopStatement;
|
24
|
-
private visitSwitchStatement;
|
25
|
-
private visitTryStatement;
|
26
|
-
private visitReturnStatement;
|
27
|
-
private visitErrorStatement;
|
28
|
-
private visitLocalVariableDeclaration;
|
29
|
-
private visitWhenTernaryExpression;
|
30
|
-
private visitCondition;
|
31
|
-
private visitBinaryExpression;
|
32
|
-
private visitPrefixUnaryExpressionInCondition;
|
33
|
-
private visitIsExpressionInCondition;
|
34
|
-
private setAssignmentAsCurrentPredecessor;
|
35
|
-
private visitChildren;
|
36
|
-
private addUnreachableCodeDiagnostic;
|
37
|
-
}
|
38
|
-
export declare class ControlFlowGraphBuildResult {
|
39
|
-
readonly controlFlowNodeByReference: ReadonlyMap<NarrowableReferenceExpression, ControlFlowNode>;
|
40
|
-
readonly unreachableCodeDiagnostics: readonly Diagnostic[];
|
41
|
-
constructor(controlFlowNodeByReference: ReadonlyMap<NarrowableReferenceExpression, ControlFlowNode>, unreachableCodeDiagnostics: readonly Diagnostic[]);
|
42
|
-
}
|
43
|
-
export type NarrowableExpression = tree.IdentifierExpression | tree.PropertyAccessExpression | tree.ObjectExpression;
|
44
|
-
export declare function isNarrowableExpression(node: tree.Node): node is tree.Expression;
|
45
|
-
export type NarrowableReferenceExpression = tree.IdentifierExpression | tree.PropertyAccessExpression | tree.ObjectExpression;
|
46
|
-
export declare function isNarrowableReferenceExpression(node: tree.Node): node is NarrowableReferenceExpression;
|
47
|
-
export type ControlFlowNode = ControlFlowNode.Start | ControlFlowNode.Condition | ControlFlowNode.Assignment | ControlFlowNode.Split | ControlFlowNode.Loop | ControlFlowNode.Unreachable;
|
48
|
-
export declare namespace ControlFlowNode {
|
49
|
-
abstract class ControlFlowNodeBase {
|
50
|
-
protected abstract thisAsNode: ControlFlowNode;
|
51
|
-
/**
|
52
|
-
* Для отладочных целей.
|
53
|
-
*/
|
54
|
-
generateVisualizationCode(): string;
|
55
|
-
}
|
56
|
-
/**
|
57
|
-
* Начальный узел, не имеющий предшественников.
|
58
|
-
*/
|
59
|
-
export class Start extends ControlFlowNodeBase {
|
60
|
-
readonly kind = "start";
|
61
|
-
get debuggerDisplay(): string;
|
62
|
-
protected get thisAsNode(): ControlFlowNode;
|
63
|
-
}
|
64
|
-
/**
|
65
|
-
* Хранит информацию об истинности некоторого условия. Например, если условие `а != пусто` истинно, то из типа
|
66
|
-
* переменной `а` необходимо исключить тип `Пусто`.
|
67
|
-
*/
|
68
|
-
export class Condition extends ControlFlowNodeBase {
|
69
|
-
readonly predecessor: ControlFlowNode;
|
70
|
-
readonly syntaxNode: ConditionControlFlowNodeExpression;
|
71
|
-
readonly isTrue: boolean;
|
72
|
-
readonly kind = "condition";
|
73
|
-
get debuggerDisplay(): string;
|
74
|
-
protected get thisAsNode(): ControlFlowNode;
|
75
|
-
constructor(predecessor: ControlFlowNode, syntaxNode: ConditionControlFlowNodeExpression, isTrue: boolean);
|
76
|
-
}
|
77
|
-
/**
|
78
|
-
* Создаётся в местах присваивания значений в переменную, а также объявления переменных с начальным значением.
|
79
|
-
* После присваивания тип переменной меняется на тип выражения справа от равно.
|
80
|
-
*/
|
81
|
-
export class Assignment extends ControlFlowNodeBase {
|
82
|
-
readonly predecessor: ControlFlowNode;
|
83
|
-
readonly syntaxNode: tree.AssignmentStatement | tree.LocalVariableDeclaration;
|
84
|
-
readonly kind = "assignment";
|
85
|
-
get debuggerDisplay(): string;
|
86
|
-
protected get thisAsNode(): ControlFlowNode;
|
87
|
-
constructor(predecessor: ControlFlowNode, syntaxNode: tree.AssignmentStatement | tree.LocalVariableDeclaration);
|
88
|
-
}
|
89
|
-
/**
|
90
|
-
* Вспомогательный узел, использующийся в местах, где происходит разветвление графа потока управления. Тип переменной
|
91
|
-
* для этого узла определяется как союзный тип из типов переменных в предшествующих узлах.
|
92
|
-
*/
|
93
|
-
export class Split extends ControlFlowNodeBase {
|
94
|
-
readonly predecessors: readonly ControlFlowNode[];
|
95
|
-
readonly kind = "split";
|
96
|
-
get debuggerDisplay(): string;
|
97
|
-
protected get thisAsNode(): ControlFlowNode;
|
98
|
-
constructor(predecessors: readonly ControlFlowNode[]);
|
99
|
-
}
|
100
|
-
/**
|
101
|
-
* Используется для циклов (пока, цикл - повтор пока, для-из). Отличается от узла `Split` тем, что предшествующие
|
102
|
-
* узлы, указанные в массиве `loopingPredecessors` образуют циклы в графе потока управления.
|
103
|
-
*/
|
104
|
-
export abstract class Loop extends ControlFlowNodeBase {
|
105
|
-
readonly kind = "loop";
|
106
|
-
get debuggerDisplay(): string;
|
107
|
-
protected get thisAsNode(): ControlFlowNode;
|
108
|
-
abstract predecessor: ControlFlowNode;
|
109
|
-
abstract loopingPredecessors: readonly ControlFlowNode[];
|
110
|
-
}
|
111
|
-
/**
|
112
|
-
* Обозначает недостижимый код.
|
113
|
-
*/
|
114
|
-
export class Unreachable extends ControlFlowNodeBase {
|
115
|
-
readonly kind = "unreachable";
|
116
|
-
get debuggerDisplay(): string;
|
117
|
-
protected get thisAsNode(): ControlFlowNode;
|
118
|
-
}
|
119
|
-
export {};
|
120
|
-
}
|
121
|
-
export type ConditionControlFlowNodeExpression = tree.BinaryExpression | tree.IsExpression;
|