brighterscript 1.0.0-alpha.30 → 1.0.0-alpha.32
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/CHANGELOG.md +25 -0
- package/dist/AstValidationSegmenter.d.ts +10 -3
- package/dist/AstValidationSegmenter.js +73 -50
- package/dist/AstValidationSegmenter.js.map +1 -1
- package/dist/CrossScopeValidator.d.ts +67 -0
- package/dist/CrossScopeValidator.js +625 -0
- package/dist/CrossScopeValidator.js.map +1 -0
- package/dist/DiagnosticManager.d.ts +1 -0
- package/dist/DiagnosticManager.js +17 -13
- package/dist/DiagnosticManager.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +6 -6
- package/dist/DiagnosticMessages.js +8 -8
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/Program.d.ts +11 -17
- package/dist/Program.js +91 -96
- package/dist/Program.js.map +1 -1
- package/dist/Scope.js +18 -24
- package/dist/Scope.js.map +1 -1
- package/dist/SemanticTokenUtils.js +4 -0
- package/dist/SemanticTokenUtils.js.map +1 -1
- package/dist/SymbolTable.js +4 -1
- package/dist/SymbolTable.js.map +1 -1
- package/dist/SymbolTypeFlag.d.ts +2 -1
- package/dist/SymbolTypeFlag.js +1 -0
- package/dist/SymbolTypeFlag.js.map +1 -1
- package/dist/astUtils/CachedLookups.d.ts +2 -1
- package/dist/astUtils/CachedLookups.js +9 -2
- package/dist/astUtils/CachedLookups.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +4 -3
- package/dist/astUtils/reflection.js +7 -3
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +3 -2
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.js +2 -2
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.js +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +6 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +13 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +1 -4
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
- package/dist/bscPlugin/validation/{BrsFileAfterValidatior.js → BrsFileAfterValidator.js} +1 -1
- package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +3 -11
- package/dist/bscPlugin/validation/ScopeValidator.js +120 -191
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +111 -10
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
- package/dist/files/BrsFile.Class.spec.js +7 -7
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.d.ts +8 -5
- package/dist/files/BrsFile.js +63 -57
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +145 -19
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/interfaces.d.ts +3 -8
- package/dist/interfaces.js +3 -13
- package/dist/interfaces.js.map +1 -1
- package/dist/parser/AstNode.d.ts +2 -1
- package/dist/parser/AstNode.js +1 -0
- package/dist/parser/AstNode.js.map +1 -1
- package/dist/parser/Expression.d.ts +1 -1
- package/dist/parser/Parser.d.ts +1 -0
- package/dist/parser/Parser.js +42 -35
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Statement.d.ts +26 -4
- package/dist/parser/Statement.js +95 -64
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +2 -1
- package/dist/parser/TranspileState.js +9 -7
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +63 -2
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/InterfaceStatement.spec.js +1 -0
- package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
- package/dist/roku-types/data.json +20 -2
- package/dist/roku-types/index.d.ts +14 -0
- package/dist/types/BuiltInInterfaceAdder.d.ts +3 -1
- package/dist/types/BuiltInInterfaceAdder.js +34 -7
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
- package/dist/types/ClassType.d.ts +0 -1
- package/dist/types/ClassType.js +0 -1
- package/dist/types/ClassType.js.map +1 -1
- package/dist/types/ClassType.spec.js +2 -2
- package/dist/types/ReferenceType.d.ts +8 -0
- package/dist/types/ReferenceType.js +56 -1
- package/dist/types/ReferenceType.js.map +1 -1
- package/dist/types/UnionType.js +1 -1
- package/dist/types/UnionType.js.map +1 -1
- package/dist/types/helpers.d.ts +2 -0
- package/dist/types/helpers.js +14 -1
- package/dist/types/helpers.js.map +1 -1
- package/dist/util.d.ts +2 -0
- package/dist/util.js +41 -21
- package/dist/util.js.map +1 -1
- package/package.json +2 -2
- package/dist/bscPlugin/validation/BrsFileAfterValidatior.js.map +0 -1
- /package/dist/bscPlugin/validation/{BrsFileAfterValidatior.d.ts → BrsFileAfterValidator.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## [1.0.0-alpha.32](https://github.com/rokucommunity/brighterscript/compare/v1.0.0-alpha.31...v1.0.0-alpha.32) - 2024-06-05
|
|
10
|
+
### Fixed
|
|
11
|
+
- Elevate `thenby` to a prod dependency ([#1217](https://github.com/rokucommunity/brighterscript/pull/1217))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## [1.0.0-alpha.31](https://github.com/rokucommunity/brighterscript/compare/v1.0.0-alpha.30...v1.0.0-alpha.31) - 2024-06-04
|
|
16
|
+
### Added
|
|
17
|
+
- Adds AugmentedAssignmentStatement ([#1196](https://github.com/rokucommunity/brighterscript/pull/1196))
|
|
18
|
+
- Visualize deprecated items in editor ([#1213](https://github.com/rokucommunity/brighterscript/pull/1213))
|
|
19
|
+
### Changed
|
|
20
|
+
- Temporarily disable test-related-projects until they support v1 ([#1202](https://github.com/rokucommunity/brighterscript/pull/1202))
|
|
21
|
+
- Validate single scope ([#1123](https://github.com/rokucommunity/brighterscript/pull/1123))
|
|
22
|
+
- Removes 'duplicate enum' diagnostic and makes 'duplicate function' diagnostics better ([#1212](https://github.com/rokucommunity/brighterscript/pull/1212))
|
|
23
|
+
### Fixed
|
|
24
|
+
- Fixes some issues with comments and transpilation ([#1192](https://github.com/rokucommunity/brighterscript/pull/1192))
|
|
25
|
+
- Component field can be set with strings ([#1195](https://github.com/rokucommunity/brighterscript/pull/1195))
|
|
26
|
+
- Fix semantic token crash ([#1197](https://github.com/rokucommunity/brighterscript/pull/1197))
|
|
27
|
+
- Fix namespace crash ([#1201](https://github.com/rokucommunity/brighterscript/pull/1201))
|
|
28
|
+
- Document the deprecated ifMessagePort.setPort() method. ([#1210](https://github.com/rokucommunity/brighterscript/pull/1210))
|
|
29
|
+
- Refines ScopeValidator Diagnostics to use more specific Diagnostic tags ([#1211](https://github.com/rokucommunity/brighterscript/pull/1211))
|
|
30
|
+
- Fixes issue with enums in namespaces ([#1216](https://github.com/rokucommunity/brighterscript/pull/1216))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
9
34
|
## [1.0.0-alpha.30](https://github.com/rokucommunity/brighterscript/compare/v1.0.0-alpha.29...v1.0.0-alpha.30) - 2024-05-16
|
|
10
35
|
### Added
|
|
11
36
|
- alias completions ([#1188](https://github.com/rokucommunity/brighterscript/pull/1188))
|
|
@@ -3,33 +3,40 @@ import type { TypeChainEntry } from './interfaces';
|
|
|
3
3
|
import type { AstNode } from './parser/AstNode';
|
|
4
4
|
import { SymbolTypeFlag } from './SymbolTypeFlag';
|
|
5
5
|
import type { Token } from './lexer/Token';
|
|
6
|
+
import type { BrsFile } from './files/BrsFile';
|
|
6
7
|
export declare const InsideSegmentWalkMode: number;
|
|
7
8
|
export interface UnresolvedSymbol {
|
|
8
9
|
typeChain: TypeChainEntry[];
|
|
9
10
|
flags: SymbolTypeFlag;
|
|
10
11
|
endChainFlags: SymbolTypeFlag;
|
|
11
12
|
containingNamespaces: string[];
|
|
13
|
+
file: BrsFile;
|
|
14
|
+
lookups: string[];
|
|
12
15
|
}
|
|
13
16
|
export interface AssignedSymbol {
|
|
14
17
|
token: Token;
|
|
15
18
|
node: AstNode;
|
|
16
19
|
}
|
|
17
20
|
export declare class AstValidationSegmenter {
|
|
21
|
+
file: BrsFile;
|
|
18
22
|
validatedSegments: Map<AstNode, boolean>;
|
|
19
23
|
segmentsForValidation: AstNode[];
|
|
20
24
|
singleValidationSegments: Set<AstNode>;
|
|
21
25
|
unresolvedSegmentsSymbols: Map<AstNode, Set<UnresolvedSymbol>>;
|
|
22
26
|
assignedTokensInSegment: Map<AstNode, Set<AssignedSymbol>>;
|
|
23
27
|
ast: AstNode;
|
|
28
|
+
constructor(file: BrsFile);
|
|
24
29
|
reset(): void;
|
|
25
30
|
processTree(ast: AstNode): void;
|
|
26
|
-
checkExpressionForUnresolved(segment: AstNode, expression: VariableExpression | DottedGetExpression | TypeExpression, assignedSymbolsNames?: Set<string>):
|
|
31
|
+
checkExpressionForUnresolved(segment: AstNode, expression: VariableExpression | DottedGetExpression | TypeExpression, assignedSymbolsNames?: Set<string>): any;
|
|
27
32
|
private currentNamespaceStatement;
|
|
33
|
+
private currentClassStatement;
|
|
28
34
|
checkSegmentWalk(segment: AstNode): void;
|
|
29
|
-
|
|
35
|
+
getAllUnvalidatedSegments(): AstNode[];
|
|
36
|
+
getSegmentsWithChangedSymbols(changedSymbols: Map<SymbolTypeFlag, Set<string>>): AstNode[];
|
|
30
37
|
markSegmentAsValidated(segment: AstNode): void;
|
|
31
38
|
unValidateAllSegments(): void;
|
|
32
39
|
hasUnvalidatedSegments(): boolean;
|
|
33
|
-
|
|
40
|
+
checkIfSegmentNeedsRevalidation(segment: AstNode, changedSymbols: Map<SymbolTypeFlag, Set<string>>): boolean;
|
|
34
41
|
markSegmentsInvalidatedBySymbol(symbolName: string, flag: SymbolTypeFlag): void;
|
|
35
42
|
}
|
|
@@ -4,10 +4,12 @@ exports.AstValidationSegmenter = exports.InsideSegmentWalkMode = void 0;
|
|
|
4
4
|
const reflection_1 = require("./astUtils/reflection");
|
|
5
5
|
const visitors_1 = require("./astUtils/visitors");
|
|
6
6
|
const util_1 = require("./util");
|
|
7
|
+
const TokenKind_1 = require("./lexer/TokenKind");
|
|
7
8
|
// eslint-disable-next-line no-bitwise
|
|
8
9
|
exports.InsideSegmentWalkMode = visitors_1.WalkMode.visitStatements | visitors_1.WalkMode.visitExpressions | visitors_1.WalkMode.recurseChildFunctions;
|
|
9
10
|
class AstValidationSegmenter {
|
|
10
|
-
constructor() {
|
|
11
|
+
constructor(file) {
|
|
12
|
+
this.file = file;
|
|
11
13
|
this.validatedSegments = new Map();
|
|
12
14
|
this.segmentsForValidation = new Array();
|
|
13
15
|
this.singleValidationSegments = new Set();
|
|
@@ -29,16 +31,28 @@ class AstValidationSegmenter {
|
|
|
29
31
|
});
|
|
30
32
|
}
|
|
31
33
|
checkExpressionForUnresolved(segment, expression, assignedSymbolsNames) {
|
|
32
|
-
var _a, _b;
|
|
34
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
33
35
|
if (!expression) {
|
|
34
36
|
return false;
|
|
35
37
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
let startOfDottedGet = expression;
|
|
39
|
+
while ((0, reflection_1.isDottedGetExpression)(startOfDottedGet)) {
|
|
40
|
+
startOfDottedGet = startOfDottedGet.obj;
|
|
41
|
+
}
|
|
42
|
+
if ((0, reflection_1.isVariableExpression)(startOfDottedGet)) {
|
|
43
|
+
const firstTokenTextLower = startOfDottedGet.tokens.name.text.toLowerCase();
|
|
44
|
+
if (firstTokenTextLower === 'm' || (this.currentClassStatement && firstTokenTextLower === 'super')) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if ((0, reflection_1.isTypeExpression)(expression) && (0, reflection_1.isBinaryExpression)(expression.expression)) {
|
|
49
|
+
return this.checkExpressionForUnresolved(segment, expression.expression.left, assignedSymbolsNames) ||
|
|
50
|
+
this.checkExpressionForUnresolved(segment, expression.expression.right, assignedSymbolsNames);
|
|
38
51
|
}
|
|
39
52
|
const flag = util_1.util.isInTypeExpression(expression) ? 2 /* SymbolTypeFlag.typetime */ : 1 /* SymbolTypeFlag.runtime */;
|
|
40
|
-
|
|
41
|
-
const
|
|
53
|
+
let typeChain = [];
|
|
54
|
+
const extraData = {};
|
|
55
|
+
const options = { flags: flag, onlyCacheResolvedTypes: true, typeChain: typeChain, data: extraData };
|
|
42
56
|
const nodeType = expression.getType(options);
|
|
43
57
|
if (!(nodeType === null || nodeType === void 0 ? void 0 : nodeType.isResolvable())) {
|
|
44
58
|
let symbolsSet;
|
|
@@ -51,7 +65,32 @@ class AstValidationSegmenter {
|
|
|
51
65
|
symbolsSet = this.unresolvedSegmentsSymbols.get(segment);
|
|
52
66
|
}
|
|
53
67
|
this.validatedSegments.set(segment, false);
|
|
54
|
-
|
|
68
|
+
if (extraData.isAlias && (0, reflection_1.isAliasStatement)(extraData.definingNode)) {
|
|
69
|
+
//set the non-aliased version of this symbol as required.
|
|
70
|
+
const aliasTypeChain = [];
|
|
71
|
+
// eslint-disable-next-line no-bitwise
|
|
72
|
+
extraData.definingNode.value.getType(Object.assign(Object.assign({}, options), { flags: 1 /* SymbolTypeFlag.runtime */ | 2 /* SymbolTypeFlag.typetime */, typeChain: aliasTypeChain }));
|
|
73
|
+
typeChain = [...aliasTypeChain, ...typeChain.slice(1)];
|
|
74
|
+
}
|
|
75
|
+
const possibleNamespace = (_d = (_c = (_b = (_a = this.currentNamespaceStatement) === null || _a === void 0 ? void 0 : _a.getNameParts()) === null || _b === void 0 ? void 0 : _b.map(t => t.text)) === null || _c === void 0 ? void 0 : _c.join('.').toLowerCase()) !== null && _d !== void 0 ? _d : '';
|
|
76
|
+
const fullChainName = (_e = util_1.util.processTypeChain(typeChain).fullChainName) === null || _e === void 0 ? void 0 : _e.toLowerCase();
|
|
77
|
+
const possibleNamesLower = [];
|
|
78
|
+
let lastSymbol = '';
|
|
79
|
+
for (const chainPart of fullChainName.split('.')) {
|
|
80
|
+
lastSymbol += (lastSymbol ? `.${chainPart}` : chainPart);
|
|
81
|
+
possibleNamesLower.push(lastSymbol);
|
|
82
|
+
if (possibleNamespace) {
|
|
83
|
+
possibleNamesLower.push(possibleNamespace + '.' + lastSymbol);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
symbolsSet.add({
|
|
87
|
+
typeChain: typeChain,
|
|
88
|
+
flags: typeChain[0].data.flags,
|
|
89
|
+
endChainFlags: flag,
|
|
90
|
+
containingNamespaces: (_g = (_f = this.currentNamespaceStatement) === null || _f === void 0 ? void 0 : _f.getNameParts()) === null || _g === void 0 ? void 0 : _g.map(t => t.text),
|
|
91
|
+
file: this.file,
|
|
92
|
+
lookups: possibleNamesLower
|
|
93
|
+
});
|
|
55
94
|
}
|
|
56
95
|
return true;
|
|
57
96
|
}
|
|
@@ -61,6 +100,7 @@ class AstValidationSegmenter {
|
|
|
61
100
|
if ((0, reflection_1.isNamespaceStatement)(segment) || (0, reflection_1.isBody)(segment)) {
|
|
62
101
|
return;
|
|
63
102
|
}
|
|
103
|
+
this.currentNamespaceStatement = segment.findAncestor(reflection_1.isNamespaceStatement);
|
|
64
104
|
if ((0, reflection_1.isClassStatement)(segment)) {
|
|
65
105
|
if (segment.parentClassName) {
|
|
66
106
|
this.segmentsForValidation.push(segment.parentClassName);
|
|
@@ -89,11 +129,14 @@ class AstValidationSegmenter {
|
|
|
89
129
|
const skipper = new visitors_1.ChildrenSkipper();
|
|
90
130
|
const assignedSymbols = new Set();
|
|
91
131
|
const assignedSymbolsNames = new Set();
|
|
92
|
-
this.
|
|
132
|
+
this.currentClassStatement = segment.findAncestor(reflection_1.isClassStatement);
|
|
93
133
|
segment.walk((0, visitors_1.createVisitor)({
|
|
94
134
|
AssignmentStatement: (stmt) => {
|
|
95
|
-
|
|
96
|
-
|
|
135
|
+
if (stmt.tokens.equals.kind === TokenKind_1.TokenKind.Equal) {
|
|
136
|
+
// this is a straight assignment, not a compound assignment
|
|
137
|
+
assignedSymbols.add({ token: stmt.tokens.name, node: stmt });
|
|
138
|
+
assignedSymbolsNames.add(stmt.tokens.name.text.toLowerCase());
|
|
139
|
+
}
|
|
97
140
|
},
|
|
98
141
|
FunctionParameterExpression: (expr) => {
|
|
99
142
|
assignedSymbols.add({ token: expr.tokens.name, node: expr });
|
|
@@ -128,42 +171,30 @@ class AstValidationSegmenter {
|
|
|
128
171
|
if (!foundUnresolvedInSegment) {
|
|
129
172
|
this.singleValidationSegments.add(segment);
|
|
130
173
|
}
|
|
174
|
+
this.currentClassStatement = undefined;
|
|
175
|
+
this.currentClassStatement = undefined;
|
|
131
176
|
}
|
|
132
|
-
|
|
133
|
-
var _a, _b, _c;
|
|
177
|
+
getAllUnvalidatedSegments() {
|
|
134
178
|
const segmentsToWalkForValidation = [];
|
|
135
|
-
const allChangedSymbolNames = [...changedSymbols.get(1 /* SymbolTypeFlag.runtime */), ...changedSymbols.get(2 /* SymbolTypeFlag.typetime */)];
|
|
136
179
|
for (const segment of this.segmentsForValidation) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
const singleValidationSegmentAlreadyValidated = isSingleValidationSegment ? this.validatedSegments.get(segment) : false;
|
|
140
|
-
let segmentNeedsRevalidation = !singleValidationSegmentAlreadyValidated;
|
|
141
|
-
if (symbolsRequired) {
|
|
142
|
-
for (const requiredSymbol of symbolsRequired.values()) {
|
|
143
|
-
for (const flagType of [1 /* SymbolTypeFlag.runtime */, 2 /* SymbolTypeFlag.typetime */]) {
|
|
144
|
-
// eslint-disable-next-line no-bitwise
|
|
145
|
-
const runTimeOrTypeTimeSymbolFlag = requiredSymbol.flags & flagType;
|
|
146
|
-
const changeSymbolSetForFlag = changedSymbols.get(runTimeOrTypeTimeSymbolFlag);
|
|
147
|
-
if (!changeSymbolSetForFlag) {
|
|
148
|
-
// This symbol has no flag - it is of unknown usage
|
|
149
|
-
// This can happen when testing if a function exists
|
|
150
|
-
}
|
|
151
|
-
else if (util_1.util.setContainsUnresolvedSymbol(changeSymbolSetForFlag, requiredSymbol)) {
|
|
152
|
-
segmentsToWalkForValidation.push(segment);
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
180
|
+
if (this.validatedSegments.get(segment)) {
|
|
181
|
+
continue;
|
|
157
182
|
}
|
|
158
|
-
|
|
159
|
-
|
|
183
|
+
segmentsToWalkForValidation.push(segment);
|
|
184
|
+
}
|
|
185
|
+
return segmentsToWalkForValidation;
|
|
186
|
+
}
|
|
187
|
+
getSegmentsWithChangedSymbols(changedSymbols) {
|
|
188
|
+
const segmentsToWalkForValidation = [];
|
|
189
|
+
for (const segment of this.segmentsForValidation) {
|
|
190
|
+
if (this.validatedSegments.get(segment)) {
|
|
191
|
+
continue;
|
|
160
192
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
193
|
+
const symbolsRequired = this.unresolvedSegmentsSymbols.get(segment);
|
|
194
|
+
if (symbolsRequired) {
|
|
195
|
+
if (util_1.util.hasAnyRequiredSymbolChanged([...symbolsRequired], changedSymbols)) {
|
|
196
|
+
segmentsToWalkForValidation.push(segment);
|
|
197
|
+
continue;
|
|
167
198
|
}
|
|
168
199
|
}
|
|
169
200
|
}
|
|
@@ -180,18 +211,10 @@ class AstValidationSegmenter {
|
|
|
180
211
|
hasUnvalidatedSegments() {
|
|
181
212
|
return Array.from(this.validatedSegments.values()).includes(false);
|
|
182
213
|
}
|
|
183
|
-
|
|
214
|
+
checkIfSegmentNeedsRevalidation(segment, changedSymbols) {
|
|
184
215
|
if (!this.validatedSegments.get(segment)) {
|
|
185
216
|
return true;
|
|
186
217
|
}
|
|
187
|
-
const unresolved = this.unresolvedSegmentsSymbols.get(segment);
|
|
188
|
-
if ((unresolved === null || unresolved === void 0 ? void 0 : unresolved.size) > 0) {
|
|
189
|
-
return true;
|
|
190
|
-
} /*
|
|
191
|
-
const assignedTokens = this.assignedTokensInSegment.get(segment);
|
|
192
|
-
if (assignedTokens?.size > 0) {
|
|
193
|
-
return true;
|
|
194
|
-
}*/
|
|
195
218
|
return false;
|
|
196
219
|
}
|
|
197
220
|
markSegmentsInvalidatedBySymbol(symbolName, flag) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AstValidationSegmenter.js","sourceRoot":"","sources":["../src/AstValidationSegmenter.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"AstValidationSegmenter.js","sourceRoot":"","sources":["../src/AstValidationSegmenter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { UnresolvedSymbol } from './AstValidationSegmenter';
|
|
2
|
+
import type { Scope } from './Scope';
|
|
3
|
+
import type { BrsFile } from './files/BrsFile';
|
|
4
|
+
import type { Program } from './Program';
|
|
5
|
+
import { SymbolTypeFlag } from './SymbolTypeFlag';
|
|
6
|
+
import type { BscSymbol } from './SymbolTable';
|
|
7
|
+
import type { BscFile } from './files/BscFile';
|
|
8
|
+
interface FileSymbolPair {
|
|
9
|
+
file: BscFile;
|
|
10
|
+
symbol: BscSymbol;
|
|
11
|
+
}
|
|
12
|
+
interface SymbolLookupKeys {
|
|
13
|
+
potentialTypeKey: string;
|
|
14
|
+
key: string;
|
|
15
|
+
namespacedKey: string;
|
|
16
|
+
namespacedPotentialTypeKey: string;
|
|
17
|
+
}
|
|
18
|
+
export declare class ProvidedNode {
|
|
19
|
+
key: string;
|
|
20
|
+
private componentsMap?;
|
|
21
|
+
namespaces: Map<string, ProvidedNode>;
|
|
22
|
+
symbols: Map<string, FileSymbolPair>;
|
|
23
|
+
constructor(key?: string, componentsMap?: Map<string, FileSymbolPair>);
|
|
24
|
+
getSymbolByKey(symbolKeys: SymbolLookupKeys): FileSymbolPair;
|
|
25
|
+
getSymbol(symbolName: string): FileSymbolPair;
|
|
26
|
+
getNamespace(namespaceName: string): ProvidedNode;
|
|
27
|
+
getSymbolByNameParts(lowerSymbolNameParts: string[], root: ProvidedNode): FileSymbolPair;
|
|
28
|
+
getNamespaceByNameParts(lowerSymbolNameParts: string[]): ProvidedNode;
|
|
29
|
+
addSymbol(symbolName: string, symbolPair: FileSymbolPair): any;
|
|
30
|
+
private addSymbolByNameParts;
|
|
31
|
+
}
|
|
32
|
+
export declare class CrossScopeValidator {
|
|
33
|
+
program: Program;
|
|
34
|
+
constructor(program: Program);
|
|
35
|
+
private symbolMapKeys;
|
|
36
|
+
resolutionsMap: Map<UnresolvedSymbol, Set<{
|
|
37
|
+
scope: Scope;
|
|
38
|
+
sourceFile: BscFile;
|
|
39
|
+
providedSymbol: BscSymbol;
|
|
40
|
+
}>>;
|
|
41
|
+
providedTreeMap: Map<Scope, {
|
|
42
|
+
duplicatesMap: Map<string, Set<FileSymbolPair>>;
|
|
43
|
+
providedTree: ProvidedNode;
|
|
44
|
+
}>;
|
|
45
|
+
private componentsMap;
|
|
46
|
+
getRequiredMap(scope: Scope): Map<SymbolLookupKeys, UnresolvedSymbol>;
|
|
47
|
+
getProvidedTree(scope: Scope): {
|
|
48
|
+
duplicatesMap: Map<string, Set<FileSymbolPair>>;
|
|
49
|
+
providedTree: ProvidedNode;
|
|
50
|
+
};
|
|
51
|
+
getIssuesForScope(scope: Scope): {
|
|
52
|
+
missingSymbols: Set<UnresolvedSymbol>;
|
|
53
|
+
duplicatesMap: Map<string, Set<FileSymbolPair>>;
|
|
54
|
+
};
|
|
55
|
+
clearResolutionsForFile(file: BrsFile): void;
|
|
56
|
+
clearResolutionsForScopes(scopes: Scope[]): void;
|
|
57
|
+
getFilesRequiringChangedSymbol(scopes: Scope[], changedSymbols: Map<SymbolTypeFlag, Set<string>>): Set<BscFile>;
|
|
58
|
+
buildComponentsMap(): void;
|
|
59
|
+
addDiagnosticsForScopes(scopes: Scope[]): void;
|
|
60
|
+
getIncompatibleSymbolResolutions(): {
|
|
61
|
+
symbol: UnresolvedSymbol;
|
|
62
|
+
incompatibleScopes: Set<Scope>;
|
|
63
|
+
}[];
|
|
64
|
+
private getCannotFindDiagnostic;
|
|
65
|
+
private getParentTypeDescriptor;
|
|
66
|
+
}
|
|
67
|
+
export {};
|