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.
Files changed (100) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/AstValidationSegmenter.d.ts +10 -3
  3. package/dist/AstValidationSegmenter.js +73 -50
  4. package/dist/AstValidationSegmenter.js.map +1 -1
  5. package/dist/CrossScopeValidator.d.ts +67 -0
  6. package/dist/CrossScopeValidator.js +625 -0
  7. package/dist/CrossScopeValidator.js.map +1 -0
  8. package/dist/DiagnosticManager.d.ts +1 -0
  9. package/dist/DiagnosticManager.js +17 -13
  10. package/dist/DiagnosticManager.js.map +1 -1
  11. package/dist/DiagnosticMessages.d.ts +6 -6
  12. package/dist/DiagnosticMessages.js +8 -8
  13. package/dist/DiagnosticMessages.js.map +1 -1
  14. package/dist/Program.d.ts +11 -17
  15. package/dist/Program.js +91 -96
  16. package/dist/Program.js.map +1 -1
  17. package/dist/Scope.js +18 -24
  18. package/dist/Scope.js.map +1 -1
  19. package/dist/SemanticTokenUtils.js +4 -0
  20. package/dist/SemanticTokenUtils.js.map +1 -1
  21. package/dist/SymbolTable.js +4 -1
  22. package/dist/SymbolTable.js.map +1 -1
  23. package/dist/SymbolTypeFlag.d.ts +2 -1
  24. package/dist/SymbolTypeFlag.js +1 -0
  25. package/dist/SymbolTypeFlag.js.map +1 -1
  26. package/dist/astUtils/CachedLookups.d.ts +2 -1
  27. package/dist/astUtils/CachedLookups.js +9 -2
  28. package/dist/astUtils/CachedLookups.js.map +1 -1
  29. package/dist/astUtils/reflection.d.ts +4 -3
  30. package/dist/astUtils/reflection.js +7 -3
  31. package/dist/astUtils/reflection.js.map +1 -1
  32. package/dist/astUtils/visitors.d.ts +3 -2
  33. package/dist/astUtils/visitors.js.map +1 -1
  34. package/dist/bscPlugin/BscPlugin.js +2 -2
  35. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  36. package/dist/bscPlugin/hover/HoverProcessor.js +1 -1
  37. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  38. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +6 -0
  39. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  40. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +13 -0
  41. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  42. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +1 -4
  43. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
  44. package/dist/bscPlugin/validation/{BrsFileAfterValidatior.js → BrsFileAfterValidator.js} +1 -1
  45. package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
  46. package/dist/bscPlugin/validation/ScopeValidator.d.ts +3 -11
  47. package/dist/bscPlugin/validation/ScopeValidator.js +120 -191
  48. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  49. package/dist/bscPlugin/validation/ScopeValidator.spec.js +111 -10
  50. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  51. package/dist/files/BrsFile.Class.spec.js +7 -7
  52. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  53. package/dist/files/BrsFile.d.ts +8 -5
  54. package/dist/files/BrsFile.js +63 -57
  55. package/dist/files/BrsFile.js.map +1 -1
  56. package/dist/files/BrsFile.spec.js +145 -19
  57. package/dist/files/BrsFile.spec.js.map +1 -1
  58. package/dist/interfaces.d.ts +3 -8
  59. package/dist/interfaces.js +3 -13
  60. package/dist/interfaces.js.map +1 -1
  61. package/dist/parser/AstNode.d.ts +2 -1
  62. package/dist/parser/AstNode.js +1 -0
  63. package/dist/parser/AstNode.js.map +1 -1
  64. package/dist/parser/Expression.d.ts +1 -1
  65. package/dist/parser/Parser.d.ts +1 -0
  66. package/dist/parser/Parser.js +42 -35
  67. package/dist/parser/Parser.js.map +1 -1
  68. package/dist/parser/Statement.d.ts +26 -4
  69. package/dist/parser/Statement.js +95 -64
  70. package/dist/parser/Statement.js.map +1 -1
  71. package/dist/parser/TranspileState.d.ts +2 -1
  72. package/dist/parser/TranspileState.js +9 -7
  73. package/dist/parser/TranspileState.js.map +1 -1
  74. package/dist/parser/tests/statement/Enum.spec.js +63 -2
  75. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  76. package/dist/parser/tests/statement/InterfaceStatement.spec.js +1 -0
  77. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  78. package/dist/roku-types/data.json +20 -2
  79. package/dist/roku-types/index.d.ts +14 -0
  80. package/dist/types/BuiltInInterfaceAdder.d.ts +3 -1
  81. package/dist/types/BuiltInInterfaceAdder.js +34 -7
  82. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  83. package/dist/types/ClassType.d.ts +0 -1
  84. package/dist/types/ClassType.js +0 -1
  85. package/dist/types/ClassType.js.map +1 -1
  86. package/dist/types/ClassType.spec.js +2 -2
  87. package/dist/types/ReferenceType.d.ts +8 -0
  88. package/dist/types/ReferenceType.js +56 -1
  89. package/dist/types/ReferenceType.js.map +1 -1
  90. package/dist/types/UnionType.js +1 -1
  91. package/dist/types/UnionType.js.map +1 -1
  92. package/dist/types/helpers.d.ts +2 -0
  93. package/dist/types/helpers.js +14 -1
  94. package/dist/types/helpers.js.map +1 -1
  95. package/dist/util.d.ts +2 -0
  96. package/dist/util.js +41 -21
  97. package/dist/util.js.map +1 -1
  98. package/package.json +2 -2
  99. package/dist/bscPlugin/validation/BrsFileAfterValidatior.js.map +0 -1
  100. /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>): boolean;
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
- getSegments(changedSymbols: Map<SymbolTypeFlag, Set<string>>): AstNode[];
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
- checkIfSegmentNeedRevalidation(segment: AstNode): boolean;
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
- if ((0, reflection_1.isVariableExpression)(expression) && expression.tokens.name.text.toLowerCase() === 'm') {
37
- return false;
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
- const typeChain = [];
41
- const options = { flags: flag, onlyCacheResolvedTypes: true, typeChain: typeChain, data: {} };
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
- symbolsSet.add({ typeChain: typeChain, flags: typeChain[0].data.flags, endChainFlags: flag, containingNamespaces: (_b = (_a = this.currentNamespaceStatement) === null || _a === void 0 ? void 0 : _a.getNameParts()) === null || _b === void 0 ? void 0 : _b.map(t => t.text) });
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.currentNamespaceStatement = segment.findAncestor(reflection_1.isNamespaceStatement);
132
+ this.currentClassStatement = segment.findAncestor(reflection_1.isClassStatement);
93
133
  segment.walk((0, visitors_1.createVisitor)({
94
134
  AssignmentStatement: (stmt) => {
95
- assignedSymbols.add({ token: stmt.tokens.name, node: stmt });
96
- assignedSymbolsNames.add(stmt.tokens.name.text.toLowerCase());
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
- getSegments(changedSymbols) {
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
- const symbolsRequired = this.unresolvedSegmentsSymbols.get(segment);
138
- const isSingleValidationSegment = this.singleValidationSegments.has(segment);
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
- else if (segmentNeedsRevalidation) {
159
- segmentsToWalkForValidation.push(segment);
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
- else {
162
- for (let assignedToken of (_c = (_b = (_a = this.assignedTokensInSegment) === null || _a === void 0 ? void 0 : _a.get(segment)) === null || _b === void 0 ? void 0 : _b.values()) !== null && _c !== void 0 ? _c : []) {
163
- if (allChangedSymbolNames.includes(assignedToken.token.text.toLowerCase())) {
164
- segmentsToWalkForValidation.push(segment);
165
- break;
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
- checkIfSegmentNeedRevalidation(segment) {
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":"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"}
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 {};