brighterscript 1.0.0-alpha.48 → 1.0.0-alpha.49
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/README.md +7 -10
- package/bsconfig.schema.json +34 -7
- package/dist/AstValidationSegmenter.js +12 -0
- package/dist/AstValidationSegmenter.js.map +1 -1
- package/dist/BsConfig.d.ts +6 -35
- package/dist/CrossScopeValidator.d.ts +1 -0
- package/dist/CrossScopeValidator.js +28 -4
- package/dist/CrossScopeValidator.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +1 -1
- package/dist/DiagnosticMessages.js +20 -6
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/LanguageServer.d.ts +3 -1
- package/dist/LanguageServer.js +32 -19
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Program.d.ts +9 -3
- package/dist/Program.js +111 -74
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +0 -2
- package/dist/ProgramBuilder.js +10 -28
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/SymbolTable.js +3 -2
- package/dist/SymbolTable.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +14 -2
- package/dist/astUtils/reflection.js +70 -18
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +2 -1
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.js +9 -3
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.js +3 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +34 -1
- package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/hover/HoverProcessor.spec.js +31 -0
- package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +3 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +5 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +71 -3
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +7 -7
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.js +10 -2
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js +99 -0
- package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +1 -0
- package/dist/bscPlugin/validation/ScopeValidator.js +19 -4
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.spec.js +334 -0
- package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
- package/dist/cli.js +11 -18
- package/dist/cli.js.map +1 -1
- package/dist/files/BrsFile.Class.spec.js +336 -200
- package/dist/files/BrsFile.Class.spec.js.map +1 -1
- package/dist/files/BrsFile.spec.js +61 -10
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +7 -0
- package/dist/files/XmlFile.js +36 -0
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/files/XmlFile.spec.js +7 -9
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/imports.spec.js +3 -3
- package/dist/files/tests/imports.spec.js.map +1 -1
- package/dist/files/tests/optionalChaning.spec.js +1 -1
- package/dist/files/tests/optionalChaning.spec.js.map +1 -1
- package/dist/interfaces.d.ts +12 -4
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +12 -2
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/TokenKind.js +6 -3
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/lsp/Project.js +1 -3
- package/dist/lsp/Project.js.map +1 -1
- package/dist/lsp/Project.spec.js +1 -1
- package/dist/lsp/Project.spec.js.map +1 -1
- package/dist/lsp/ProjectManager.d.ts +8 -0
- package/dist/lsp/ProjectManager.js +7 -5
- package/dist/lsp/ProjectManager.js.map +1 -1
- package/dist/lsp/ProjectManager.spec.js +128 -0
- package/dist/lsp/ProjectManager.spec.js.map +1 -1
- package/dist/lsp/worker/WorkerThreadProject.js +21 -16
- package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
- package/dist/lsp/worker/run.d.ts +1 -0
- package/dist/lsp/worker/run.js +14 -0
- package/dist/lsp/worker/run.js.map +1 -0
- package/dist/parser/AstNode.d.ts +8 -1
- package/dist/parser/AstNode.js +9 -0
- package/dist/parser/AstNode.js.map +1 -1
- package/dist/parser/AstNode.spec.js +1 -1
- package/dist/parser/AstNode.spec.js.map +1 -1
- package/dist/parser/Expression.d.ts +43 -0
- package/dist/parser/Expression.js +120 -7
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.Class.spec.js +25 -0
- package/dist/parser/Parser.Class.spec.js.map +1 -1
- package/dist/parser/Parser.d.ts +4 -0
- package/dist/parser/Parser.js +117 -7
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +200 -1
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/Statement.d.ts +32 -1
- package/dist/parser/Statement.js +126 -62
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/tests/statement/ConstStatement.spec.js +238 -0
- package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
- package/dist/roku-types/data.json +422 -64
- package/dist/roku-types/index.d.ts +50 -0
- package/dist/types/ArrayType.js +3 -0
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/BscType.d.ts +4 -3
- package/dist/types/BscType.js +2 -4
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BscTypeKind.d.ts +2 -0
- package/dist/types/BscTypeKind.js +2 -0
- package/dist/types/BscTypeKind.js.map +1 -1
- package/dist/types/CallFuncableType.d.ts +24 -0
- package/dist/types/CallFuncableType.js +91 -0
- package/dist/types/CallFuncableType.js.map +1 -0
- package/dist/types/ComponentType.d.ts +3 -15
- package/dist/types/ComponentType.js +2 -56
- package/dist/types/ComponentType.js.map +1 -1
- package/dist/types/DoubleType.js +1 -1
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/FloatType.js +1 -1
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/InlineInterfaceType.d.ts +5 -0
- package/dist/types/InlineInterfaceType.js +17 -0
- package/dist/types/InlineInterfaceType.js.map +1 -0
- package/dist/types/IntegerType.js +1 -1
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +2 -2
- package/dist/types/InterfaceType.js +5 -4
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/LongIntegerType.js +1 -1
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/ObjectType.d.ts +1 -0
- package/dist/types/ObjectType.js +3 -0
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ReferenceType.d.ts +3 -1
- package/dist/types/ReferenceType.js +41 -2
- package/dist/types/ReferenceType.js.map +1 -1
- package/dist/types/TypeStatementType.d.ts +18 -0
- package/dist/types/TypeStatementType.js +45 -0
- package/dist/types/TypeStatementType.js.map +1 -0
- package/dist/types/roFunctionType.d.ts +11 -0
- package/dist/types/roFunctionType.js +37 -0
- package/dist/types/roFunctionType.js.map +1 -0
- package/dist/types/roFunctionType.spec.d.ts +1 -0
- package/dist/types/roFunctionType.spec.js +20 -0
- package/dist/types/roFunctionType.spec.js.map +1 -0
- package/dist/util.d.ts +3 -94
- package/dist/util.js +53 -303
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.js +1 -1
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +3 -3
|
@@ -248,6 +248,71 @@ class BrsFilePreTranspileProcessor {
|
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* Recursively resolve a const or enum value until we get to the final resolved expression
|
|
253
|
+
* Returns an object with the resolved value and a flag indicating if a circular reference was detected
|
|
254
|
+
*/
|
|
255
|
+
resolveConstValue(value, scope, containingNamespace, visited = new Set()) {
|
|
256
|
+
var _a, _b, _c, _d;
|
|
257
|
+
// If it's already a literal, return it as-is
|
|
258
|
+
if ((0, reflection_1.isLiteralExpression)(value)) {
|
|
259
|
+
return { value: value, isCircular: false };
|
|
260
|
+
}
|
|
261
|
+
// If it's a variable expression, try to resolve it as a const or enum
|
|
262
|
+
if ((0, reflection_1.isVariableExpression)(value)) {
|
|
263
|
+
const entityName = value.tokens.name.text.toLowerCase();
|
|
264
|
+
// Prevent infinite recursion by tracking visited constants
|
|
265
|
+
if (visited.has(entityName)) {
|
|
266
|
+
return { value: value, isCircular: true }; // Return the original value to avoid infinite loop
|
|
267
|
+
}
|
|
268
|
+
visited.add(entityName);
|
|
269
|
+
// Try to resolve as const first
|
|
270
|
+
const constStatement = (_a = scope === null || scope === void 0 ? void 0 : scope.getConstFileLink(entityName, containingNamespace)) === null || _a === void 0 ? void 0 : _a.item;
|
|
271
|
+
if (constStatement) {
|
|
272
|
+
// Recursively resolve the const value
|
|
273
|
+
return this.resolveConstValue(constStatement.value, scope, containingNamespace, visited);
|
|
274
|
+
}
|
|
275
|
+
// Try to resolve as enum member
|
|
276
|
+
const enumInfo = this.getEnumInfo(entityName, containingNamespace, scope);
|
|
277
|
+
if (enumInfo === null || enumInfo === void 0 ? void 0 : enumInfo.value) {
|
|
278
|
+
// Enum values are already resolved to literals by getEnumInfo
|
|
279
|
+
return { value: enumInfo.value, isCircular: false };
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
// If it's a dotted get expression (e.g., namespace.const or namespace.enum.member), try to resolve it
|
|
283
|
+
if ((0, reflection_1.isDottedGetExpression)(value)) {
|
|
284
|
+
const parts = util_1.default.splitExpression(value);
|
|
285
|
+
const processedNames = [];
|
|
286
|
+
for (let part of parts) {
|
|
287
|
+
if ((0, reflection_1.isVariableExpression)(part) || (0, reflection_1.isDottedGetExpression)(part)) {
|
|
288
|
+
processedNames.push((_c = (_b = part === null || part === void 0 ? void 0 : part.tokens.name) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c.toLowerCase());
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
return { value: value, isCircular: false }; // Can't resolve further
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
const entityName = processedNames.join('.');
|
|
295
|
+
// Prevent infinite recursion
|
|
296
|
+
if (visited.has(entityName)) {
|
|
297
|
+
return { value: value, isCircular: true };
|
|
298
|
+
}
|
|
299
|
+
visited.add(entityName);
|
|
300
|
+
// Try to resolve as const first
|
|
301
|
+
const constStatement = (_d = scope === null || scope === void 0 ? void 0 : scope.getConstFileLink(entityName, containingNamespace)) === null || _d === void 0 ? void 0 : _d.item;
|
|
302
|
+
if (constStatement) {
|
|
303
|
+
// Recursively resolve the const value
|
|
304
|
+
return this.resolveConstValue(constStatement.value, scope, containingNamespace, visited);
|
|
305
|
+
}
|
|
306
|
+
// Try to resolve as enum member
|
|
307
|
+
const enumInfo = this.getEnumInfo(entityName, containingNamespace, scope);
|
|
308
|
+
if (enumInfo === null || enumInfo === void 0 ? void 0 : enumInfo.value) {
|
|
309
|
+
// Enum values are already resolved to literals by getEnumInfo
|
|
310
|
+
return { value: enumInfo.value, isCircular: false };
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// Return the value as-is if we can't resolve it further
|
|
314
|
+
return { value: value, isCircular: false };
|
|
315
|
+
}
|
|
251
316
|
processExpression(expression, scope) {
|
|
252
317
|
var _a, _b, _c, _d;
|
|
253
318
|
if (expression.findAncestor(reflection_1.isAliasStatement)) {
|
|
@@ -283,12 +348,15 @@ class BrsFilePreTranspileProcessor {
|
|
|
283
348
|
return;
|
|
284
349
|
}
|
|
285
350
|
let value;
|
|
351
|
+
let isCircular = false;
|
|
286
352
|
let constStatement = (_d = scope === null || scope === void 0 ? void 0 : scope.getConstFileLink(entityName, containingNamespace)) === null || _d === void 0 ? void 0 : _d.item;
|
|
287
353
|
let enumInfo = this.getEnumInfo(entityName, containingNamespace, scope);
|
|
288
354
|
let namespaceInfo = isAlias && this.getNamespaceInfo(entityName, scope);
|
|
289
355
|
if (constStatement) {
|
|
290
|
-
//
|
|
291
|
-
|
|
356
|
+
// Recursively resolve the const value to its final form
|
|
357
|
+
const resolved = this.resolveConstValue(constStatement.value, scope, containingNamespace);
|
|
358
|
+
value = resolved.value;
|
|
359
|
+
isCircular = resolved.isCircular;
|
|
292
360
|
}
|
|
293
361
|
else if (enumInfo === null || enumInfo === void 0 ? void 0 : enumInfo.value) {
|
|
294
362
|
//did we find an enum member? transpile that
|
|
@@ -302,7 +370,7 @@ class BrsFilePreTranspileProcessor {
|
|
|
302
370
|
// this was an aliased expression that is NOT am enum or namespace
|
|
303
371
|
value = actualNameExpression;
|
|
304
372
|
}
|
|
305
|
-
if (value) {
|
|
373
|
+
if (value && !isCircular) {
|
|
306
374
|
//override the transpile for this item.
|
|
307
375
|
this.event.editor.setProperty(part, 'transpile', (state) => {
|
|
308
376
|
if ((0, reflection_1.isLiteralExpression)(value) || isCall) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrsFileTranspileProcessor.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFileTranspileProcessor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BrsFileTranspileProcessor.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFileTranspileProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,10 +26,10 @@ describe('BrsFileTranspileProcessor', () => {
|
|
|
26
26
|
print a.b
|
|
27
27
|
end sub
|
|
28
28
|
`);
|
|
29
|
-
await program.build({
|
|
29
|
+
await program.build({ outDir: (0, util_1.standardizePath) `${testHelpers_spec_1.tempDir}/out` });
|
|
30
30
|
});
|
|
31
31
|
it('properly prefixes functions from bslib', async () => {
|
|
32
|
-
program.options.
|
|
32
|
+
program.options.outDir = (0, util_1.standardizePath) `${testHelpers_spec_1.tempDir}/staging`;
|
|
33
33
|
program.setFile('source/main.bs', `
|
|
34
34
|
sub main()
|
|
35
35
|
print true ? true : false
|
|
@@ -37,10 +37,10 @@ describe('BrsFileTranspileProcessor', () => {
|
|
|
37
37
|
`);
|
|
38
38
|
program.validate();
|
|
39
39
|
await program.build();
|
|
40
|
-
(0, chai_1.expect)(fsExtra.readFileSync(`${program.options.
|
|
40
|
+
(0, chai_1.expect)(fsExtra.readFileSync(`${program.options.outDir}/source/bslib.brs`).toString()).to.include('bslib_toString');
|
|
41
41
|
});
|
|
42
42
|
it('properly prefixes functions from bslib when found in roku_modules as `bslib`', async () => {
|
|
43
|
-
program.options.
|
|
43
|
+
program.options.outDir = (0, util_1.standardizePath) `${testHelpers_spec_1.tempDir}/staging`;
|
|
44
44
|
program.setFile('source/main.bs', `
|
|
45
45
|
sub main()
|
|
46
46
|
print true ? true : false
|
|
@@ -52,11 +52,11 @@ describe('BrsFileTranspileProcessor', () => {
|
|
|
52
52
|
`);
|
|
53
53
|
program.validate();
|
|
54
54
|
await program.build();
|
|
55
|
-
const parser = Parser_1.Parser.parse(fsExtra.readFileSync((0, util_1.standardizePath) `${program.options.
|
|
55
|
+
const parser = Parser_1.Parser.parse(fsExtra.readFileSync((0, util_1.standardizePath) `${program.options.outDir}/source/roku_modules/bslib/bslib.brs`).toString());
|
|
56
56
|
(0, chai_1.expect)(parser.ast.findChildren(reflection_1.isFunctionStatement).map(x => x.tokens.name.text)).to.include('bslib_toString');
|
|
57
57
|
});
|
|
58
58
|
it('properly prefixes functions from bslib when found in roku_modules as `rokucommunity_bslib`', async () => {
|
|
59
|
-
program.options.
|
|
59
|
+
program.options.outDir = (0, util_1.standardizePath) `${testHelpers_spec_1.tempDir}/staging`;
|
|
60
60
|
program.setFile('source/main.bs', `
|
|
61
61
|
sub main()
|
|
62
62
|
print true ? true : false
|
|
@@ -68,7 +68,7 @@ describe('BrsFileTranspileProcessor', () => {
|
|
|
68
68
|
`);
|
|
69
69
|
program.validate();
|
|
70
70
|
await program.build();
|
|
71
|
-
const parser = Parser_1.Parser.parse(fsExtra.readFileSync((0, util_1.standardizePath) `${program.options.
|
|
71
|
+
const parser = Parser_1.Parser.parse(fsExtra.readFileSync((0, util_1.standardizePath) `${program.options.outDir}/source/roku_modules/rokucommunity_bslib/bslib.brs`).toString());
|
|
72
72
|
(0, chai_1.expect)(parser.ast.findChildren(reflection_1.isFunctionStatement).map(x => x.tokens.name.text)).to.include('rokucommunity_bslib_toString');
|
|
73
73
|
});
|
|
74
74
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrsFileTranspileProcessor.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFileTranspileProcessor.spec.ts"],"names":[],"mappings":";;AAAA,iCAAsC;AACtC,oCAAoC;AACpC,2CAAwC;AACxC,qCAAkD;AAClD,6DAA0D;AAC1D,+BAA8B;AAC9B,gDAA6C;AAC7C,0DAAgE;AAEhE,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;AAE9B,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IAEvC,IAAI,OAAgB,CAAC;IAErB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,YAAY,CAAC,0BAAO,CAAC,CAAC;QAC9B,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,OAAO,EAAE,0BAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QAC/E,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE;;;;;SAKrC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"BrsFileTranspileProcessor.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFileTranspileProcessor.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ const AssociativeArrayType_1 = require("../../types/AssociativeArrayType");
|
|
|
12
12
|
const DynamicType_1 = require("../../types/DynamicType");
|
|
13
13
|
const util_1 = require("../../util");
|
|
14
14
|
const BrightScriptDocParser_1 = require("../../parser/BrightScriptDocParser");
|
|
15
|
+
const TypeStatementType_1 = require("../../types/TypeStatementType");
|
|
15
16
|
class BrsFileValidator {
|
|
16
17
|
constructor(event) {
|
|
17
18
|
this.event = event;
|
|
@@ -165,7 +166,7 @@ class BrsFileValidator {
|
|
|
165
166
|
// add param symbol at expression level, so it can be used as default value in other params
|
|
166
167
|
const funcExpr = node.findAncestor(reflection_1.isFunctionExpression);
|
|
167
168
|
const funcSymbolTable = funcExpr === null || funcExpr === void 0 ? void 0 : funcExpr.getSymbolTable();
|
|
168
|
-
funcSymbolTable === null || funcSymbolTable === void 0 ? void 0 : funcSymbolTable.addSymbol(paramName, { definingNode: node, isInstance: true, isFromDocComment: data.isFromDocComment }, nodeType, 1 /* SymbolTypeFlag.runtime */);
|
|
169
|
+
funcSymbolTable === null || funcSymbolTable === void 0 ? void 0 : funcSymbolTable.addSymbol(paramName, { definingNode: node, isInstance: true, isFromDocComment: data.isFromDocComment, description: data.description }, nodeType, 1 /* SymbolTypeFlag.runtime */);
|
|
169
170
|
//also add param symbol at block level, as it may be redefined, and if so, should show a union
|
|
170
171
|
(_c = funcExpr.body.getSymbolTable()) === null || _c === void 0 ? void 0 : _c.addSymbol(paramName, { definingNode: node, isInstance: true, isFromDocComment: data.isFromDocComment }, nodeType, 1 /* SymbolTypeFlag.runtime */);
|
|
171
172
|
},
|
|
@@ -265,6 +266,12 @@ class BrsFileValidator {
|
|
|
265
266
|
// eslint-disable-next-line no-bitwise
|
|
266
267
|
node.parent.getSymbolTable().addSymbol(node.tokens.name.text, { definingNode: node, doNotMerge: true, isAlias: true }, targetType, 1 /* SymbolTypeFlag.runtime */ | 2 /* SymbolTypeFlag.typetime */);
|
|
267
268
|
},
|
|
269
|
+
TypeStatement: (node) => {
|
|
270
|
+
this.validateDeclarationLocations(node, 'type', () => util_1.default.createBoundingRange(node.tokens.type, node.tokens.name));
|
|
271
|
+
const wrappedNodeType = node.getType({ flags: 1 /* SymbolTypeFlag.runtime */ });
|
|
272
|
+
const typeStmtType = new TypeStatementType_1.TypeStatementType(node.tokens.name.text, wrappedNodeType);
|
|
273
|
+
node.parent.getSymbolTable().addSymbol(node.tokens.name.text, { definingNode: node, isFromTypeStatement: true }, typeStmtType, 2 /* SymbolTypeFlag.typetime */);
|
|
274
|
+
},
|
|
268
275
|
IfStatement: (node) => {
|
|
269
276
|
this.setUpComplementSymbolTables(node, reflection_1.isIfStatement);
|
|
270
277
|
},
|
|
@@ -453,7 +460,8 @@ class BrsFileValidator {
|
|
|
453
460
|
!(0, reflection_1.isConditionalCompileConstStatement)(statement) &&
|
|
454
461
|
!(0, reflection_1.isConditionalCompileErrorStatement)(statement) &&
|
|
455
462
|
!(0, reflection_1.isConditionalCompileStatement)(statement) &&
|
|
456
|
-
!(0, reflection_1.isAliasStatement)(statement)
|
|
463
|
+
!(0, reflection_1.isAliasStatement)(statement) &&
|
|
464
|
+
!(0, reflection_1.isTypeStatement)(statement)) {
|
|
457
465
|
this.event.program.diagnostics.register(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unexpectedStatementOutsideFunction()), { location: statement.location }));
|
|
458
466
|
}
|
|
459
467
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrsFileValidator.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/BrsFileValidator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BrsFileValidator.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/BrsFileValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ const DynamicType_1 = require("../../types/DynamicType");
|
|
|
17
17
|
const TypedFunctionType_1 = require("../../types/TypedFunctionType");
|
|
18
18
|
const Parser_1 = require("../../parser/Parser");
|
|
19
19
|
const AssociativeArrayType_1 = require("../../types/AssociativeArrayType");
|
|
20
|
+
const types_1 = require("../../types");
|
|
21
|
+
const TypeStatementType_1 = require("../../types/TypeStatementType");
|
|
20
22
|
describe('BrsFileValidator', () => {
|
|
21
23
|
let program;
|
|
22
24
|
beforeEach(() => {
|
|
@@ -699,6 +701,103 @@ describe('BrsFileValidator', () => {
|
|
|
699
701
|
]);
|
|
700
702
|
});
|
|
701
703
|
});
|
|
704
|
+
describe('type statement', () => {
|
|
705
|
+
it('allows being at top of ast', () => {
|
|
706
|
+
program.setFile('source/main.bs', `
|
|
707
|
+
type x = string
|
|
708
|
+
sub noop(input as x)
|
|
709
|
+
print input
|
|
710
|
+
end sub
|
|
711
|
+
`);
|
|
712
|
+
program.validate();
|
|
713
|
+
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
714
|
+
});
|
|
715
|
+
it('no diagnostic if more than one usage per block', () => {
|
|
716
|
+
program.setFile('source/main.bs', `
|
|
717
|
+
type x = string
|
|
718
|
+
type y = integer
|
|
719
|
+
sub noop(input as x) as y
|
|
720
|
+
return input.len()
|
|
721
|
+
end sub
|
|
722
|
+
`);
|
|
723
|
+
program.validate();
|
|
724
|
+
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
725
|
+
});
|
|
726
|
+
it('has diagnostic if used not at top of file', () => {
|
|
727
|
+
program.setFile('source/main.bs', `
|
|
728
|
+
namespace alpha
|
|
729
|
+
sub noop()
|
|
730
|
+
type y = string
|
|
731
|
+
print "hello"
|
|
732
|
+
end sub
|
|
733
|
+
end namespace
|
|
734
|
+
`);
|
|
735
|
+
program.validate();
|
|
736
|
+
(0, testHelpers_spec_1.expectDiagnostics)(program, [
|
|
737
|
+
DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('type').message
|
|
738
|
+
]);
|
|
739
|
+
});
|
|
740
|
+
it('sets the type of the name', () => {
|
|
741
|
+
program.setFile('source/types.bs', `
|
|
742
|
+
interface Thing1
|
|
743
|
+
value as string
|
|
744
|
+
end interface
|
|
745
|
+
namespace alpha.beta
|
|
746
|
+
enum someEnum
|
|
747
|
+
up = "up"
|
|
748
|
+
down = "down"
|
|
749
|
+
end enum
|
|
750
|
+
end namespace
|
|
751
|
+
`);
|
|
752
|
+
const file = program.setFile('source/main.bs', `
|
|
753
|
+
import "types.bs"
|
|
754
|
+
type t = Thing1
|
|
755
|
+
type t2 = alpha.beta.someEnum
|
|
756
|
+
|
|
757
|
+
namespace ns1.ns2
|
|
758
|
+
function getDirection(x as t) as t2
|
|
759
|
+
if x.value = "go up" then
|
|
760
|
+
return alpha.beta.someEnum.up
|
|
761
|
+
else
|
|
762
|
+
return alpha.beta.someEnum.down
|
|
763
|
+
end if
|
|
764
|
+
end function
|
|
765
|
+
end namespace
|
|
766
|
+
`);
|
|
767
|
+
program.validate();
|
|
768
|
+
(0, testHelpers_spec_1.expectZeroDiagnostics)(program);
|
|
769
|
+
let func;
|
|
770
|
+
// find places in AST where "x" is assigned
|
|
771
|
+
file.ast.walk((0, visitors_1.createVisitor)({
|
|
772
|
+
FunctionStatement: (stmt) => {
|
|
773
|
+
if (stmt.getName(Parser_1.ParseMode.BrighterScript) === 'ns1.ns2.getDirection') {
|
|
774
|
+
func = stmt.func;
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
}), { walkMode: visitors_1.WalkMode.visitAllRecursive });
|
|
778
|
+
const symbolTable = func.getSymbolTable();
|
|
779
|
+
(0, testHelpers_spec_1.expectTypeToBe)(symbolTable.getSymbolType('t', { flags: 2 /* SymbolTypeFlag.typetime */ }), TypeStatementType_1.TypeStatementType);
|
|
780
|
+
const tType = symbolTable.getSymbolType('t', { flags: 2 /* SymbolTypeFlag.typetime */ });
|
|
781
|
+
(0, chai_config_spec_1.expect)(tType.name).to.eq('t');
|
|
782
|
+
(0, testHelpers_spec_1.expectTypeToBe)(tType.wrappedType, InterfaceType_1.InterfaceType);
|
|
783
|
+
(0, chai_config_spec_1.expect)(tType.wrappedType.name).to.eq('Thing1');
|
|
784
|
+
(0, testHelpers_spec_1.expectTypeToBe)(symbolTable.getSymbolType('t2', { flags: 2 /* SymbolTypeFlag.typetime */ }), TypeStatementType_1.TypeStatementType);
|
|
785
|
+
const t2Type = symbolTable.getSymbolType('t2', { flags: 2 /* SymbolTypeFlag.typetime */ });
|
|
786
|
+
(0, testHelpers_spec_1.expectTypeToBe)(t2Type.wrappedType, types_1.EnumType);
|
|
787
|
+
(0, chai_config_spec_1.expect)(t2Type.wrappedType.name).to.eq('alpha.beta.someEnum');
|
|
788
|
+
});
|
|
789
|
+
it('has diagnostic when rhs not found', () => {
|
|
790
|
+
program.setFile('source/main.bs', `
|
|
791
|
+
type x = notThere
|
|
792
|
+
sub noop()
|
|
793
|
+
end sub
|
|
794
|
+
`);
|
|
795
|
+
program.validate();
|
|
796
|
+
(0, testHelpers_spec_1.expectDiagnostics)(program, [
|
|
797
|
+
DiagnosticMessages_1.DiagnosticMessages.cannotFindName('notThere').message
|
|
798
|
+
]);
|
|
799
|
+
});
|
|
800
|
+
});
|
|
702
801
|
describe('conditional compile', () => {
|
|
703
802
|
it('allows top level definitions inside #if block', () => {
|
|
704
803
|
program.setFile('source/main.bs', `
|