brighterscript 0.57.2 → 0.59.0

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 (124) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +16 -6
  3. package/bsconfig.schema.json +11 -0
  4. package/dist/BsConfig.d.ts +11 -0
  5. package/dist/DiagnosticMessages.d.ts +7 -2
  6. package/dist/DiagnosticMessages.js +7 -2
  7. package/dist/DiagnosticMessages.js.map +1 -1
  8. package/dist/Program.d.ts +12 -2
  9. package/dist/Program.js +69 -24
  10. package/dist/Program.js.map +1 -1
  11. package/dist/ProgramBuilder.js +1 -1
  12. package/dist/ProgramBuilder.js.map +1 -1
  13. package/dist/Scope.d.ts +6 -3
  14. package/dist/Scope.js +24 -17
  15. package/dist/Scope.js.map +1 -1
  16. package/dist/astUtils/AstEditor.d.ts +2 -3
  17. package/dist/astUtils/AstEditor.js.map +1 -1
  18. package/dist/astUtils/creators.d.ts +4 -4
  19. package/dist/astUtils/creators.js +6 -6
  20. package/dist/astUtils/creators.js.map +1 -1
  21. package/dist/astUtils/reflection.d.ts +67 -64
  22. package/dist/astUtils/reflection.js +10 -2
  23. package/dist/astUtils/reflection.js.map +1 -1
  24. package/dist/astUtils/reflection.spec.js +8 -3
  25. package/dist/astUtils/reflection.spec.js.map +1 -1
  26. package/dist/astUtils/visitors.d.ts +33 -31
  27. package/dist/astUtils/visitors.js.map +1 -1
  28. package/dist/astUtils/visitors.spec.js.map +1 -1
  29. package/dist/bscPlugin/BscPlugin.js +4 -0
  30. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  31. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +6 -6
  32. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  33. package/dist/bscPlugin/hover/HoverProcessor.spec.js +40 -34
  34. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  35. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +2 -2
  36. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  37. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +2 -2
  38. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  39. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +4 -5
  40. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -1
  41. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +2 -0
  42. package/dist/bscPlugin/validation/BrsFileValidator.js +166 -12
  43. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  44. package/dist/bscPlugin/validation/ScopeValidator.d.ts +21 -19
  45. package/dist/bscPlugin/validation/ScopeValidator.js +164 -179
  46. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  47. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  48. package/dist/bscPlugin/validation/XmlFileValidator.js +44 -0
  49. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  50. package/dist/files/BrsFile.Class.spec.js +33 -35
  51. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  52. package/dist/files/BrsFile.d.ts +11 -5
  53. package/dist/files/BrsFile.js +15 -47
  54. package/dist/files/BrsFile.js.map +1 -1
  55. package/dist/files/BrsFile.spec.js +107 -79
  56. package/dist/files/BrsFile.spec.js.map +1 -1
  57. package/dist/files/XmlFile.d.ts +9 -4
  58. package/dist/files/XmlFile.js +6 -30
  59. package/dist/files/XmlFile.js.map +1 -1
  60. package/dist/files/XmlFile.spec.js +57 -90
  61. package/dist/files/XmlFile.spec.js.map +1 -1
  62. package/dist/files/tests/imports.spec.js +13 -15
  63. package/dist/files/tests/imports.spec.js.map +1 -1
  64. package/dist/files/tests/optionalChaning.spec.js +10 -12
  65. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  66. package/dist/index.d.ts +1 -0
  67. package/dist/index.js +1 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/interfaces.d.ts +2 -3
  70. package/dist/lexer/Lexer.spec.js +6 -0
  71. package/dist/lexer/Lexer.spec.js.map +1 -1
  72. package/dist/lexer/TokenKind.d.ts +1 -0
  73. package/dist/lexer/TokenKind.js +6 -2
  74. package/dist/lexer/TokenKind.js.map +1 -1
  75. package/dist/parser/AstNode.d.ts +65 -0
  76. package/dist/parser/AstNode.js +93 -0
  77. package/dist/parser/AstNode.js.map +1 -0
  78. package/dist/parser/AstNode.spec.d.ts +1 -0
  79. package/dist/parser/AstNode.spec.js +42 -0
  80. package/dist/parser/AstNode.spec.js.map +1 -0
  81. package/dist/parser/Expression.d.ts +6 -43
  82. package/dist/parser/Expression.js +53 -81
  83. package/dist/parser/Expression.js.map +1 -1
  84. package/dist/parser/Parser.d.ts +15 -12
  85. package/dist/parser/Parser.js +130 -117
  86. package/dist/parser/Parser.js.map +1 -1
  87. package/dist/parser/Parser.spec.d.ts +1 -1
  88. package/dist/parser/Parser.spec.js.map +1 -1
  89. package/dist/parser/SGParser.spec.js +2 -3
  90. package/dist/parser/SGParser.spec.js.map +1 -1
  91. package/dist/parser/Statement.d.ts +28 -44
  92. package/dist/parser/Statement.js +118 -104
  93. package/dist/parser/Statement.js.map +1 -1
  94. package/dist/parser/Statement.spec.js +16 -10
  95. package/dist/parser/Statement.spec.js.map +1 -1
  96. package/dist/parser/tests/expression/ArrayLiterals.spec.js +37 -0
  97. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  98. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +41 -0
  99. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  100. package/dist/parser/tests/expression/Call.spec.js +109 -1
  101. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  102. package/dist/parser/tests/expression/Indexing.spec.js +49 -4
  103. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  104. package/dist/parser/tests/statement/ConstStatement.spec.js +7 -7
  105. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  106. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  107. package/dist/parser/tests/statement/Continue.spec.js +92 -0
  108. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  109. package/dist/parser/tests/statement/Enum.spec.js +36 -9
  110. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  111. package/dist/parser/tests/statement/For.spec.js +3 -4
  112. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  113. package/dist/parser/tests/statement/ForEach.spec.js +4 -5
  114. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  115. package/dist/parser/tests/statement/InterfaceStatement.spec.js +4 -5
  116. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  117. package/dist/parser/tests/statement/PrintStatement.spec.js +3 -4
  118. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  119. package/dist/util.d.ts +11 -5
  120. package/dist/util.js +57 -6
  121. package/dist/util.js.map +1 -1
  122. package/dist/validators/ClassValidator.js +22 -19
  123. package/dist/validators/ClassValidator.js.map +1 -1
  124. package/package.json +2 -2
@@ -6,6 +6,9 @@ const Lexer_1 = require("../../../lexer/Lexer");
6
6
  const TokenKind_1 = require("../../../lexer/TokenKind");
7
7
  const Parser_spec_1 = require("../Parser.spec");
8
8
  const vscode_languageserver_1 = require("vscode-languageserver");
9
+ const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
10
+ const testHelpers_spec_1 = require("../../../testHelpers.spec");
11
+ const reflection_1 = require("../../../astUtils/reflection");
9
12
  describe('parser call expressions', () => {
10
13
  it('parses named function calls', () => {
11
14
  const { statements, diagnostics } = Parser_1.Parser.parse([
@@ -45,7 +48,10 @@ describe('parser call expressions', () => {
45
48
  `);
46
49
  const { statements, diagnostics } = Parser_1.Parser.parse(tokens);
47
50
  //there should only be 1 error
48
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(1);
51
+ (0, testHelpers_spec_1.expectDiagnostics)(diagnostics, [
52
+ DiagnosticMessages_1.DiagnosticMessages.unexpectedToken(':'),
53
+ DiagnosticMessages_1.DiagnosticMessages.expectedRightParenAfterFunctionCallArguments()
54
+ ]);
49
55
  (0, chai_1.expect)(statements).to.be.length.greaterThan(0);
50
56
  //the error should be BEFORE the `name = "bob"` statement
51
57
  (0, chai_1.expect)(diagnostics[0].range.end.character).to.be.lessThan(25);
@@ -62,6 +68,49 @@ describe('parser call expressions', () => {
62
68
  (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
63
69
  (0, chai_1.expect)(statements).to.be.length.greaterThan(0);
64
70
  });
71
+ it('includes partial statements and expressions', () => {
72
+ const { statements, diagnostics } = Parser_1.Parser.parse(`
73
+ function processData(data)
74
+ data.foo.bar. = "hello"
75
+ data.foo.func().
76
+ result = data.foo.
77
+ return result.
78
+ end function
79
+ `);
80
+ (0, chai_1.expect)(diagnostics).to.be.lengthOf(4);
81
+ (0, testHelpers_spec_1.expectDiagnostics)(diagnostics, [
82
+ DiagnosticMessages_1.DiagnosticMessages.expectedPropertyNameAfterPeriod(),
83
+ DiagnosticMessages_1.DiagnosticMessages.expectedPropertyNameAfterPeriod(),
84
+ DiagnosticMessages_1.DiagnosticMessages.expectedPropertyNameAfterPeriod(),
85
+ DiagnosticMessages_1.DiagnosticMessages.expectedPropertyNameAfterPeriod()
86
+ ]);
87
+ (0, chai_1.expect)(statements).to.be.lengthOf(1);
88
+ const bodyStatements = statements[0].func.body.statements;
89
+ (0, chai_1.expect)(bodyStatements).to.be.lengthOf(4); // each line is a statement
90
+ // first should be: data.foo.bar = "hello"
91
+ (0, chai_1.expect)((0, reflection_1.isDottedSetStatement)(bodyStatements[0])).to.be.true;
92
+ const setStmt = bodyStatements[0];
93
+ (0, chai_1.expect)(setStmt.name.text).to.equal('bar');
94
+ (0, chai_1.expect)(setStmt.obj.name.text).to.equal('foo');
95
+ (0, chai_1.expect)(setStmt.obj.obj.name.text).to.equal('data');
96
+ (0, chai_1.expect)(setStmt.value.token.text).to.equal('"hello"');
97
+ // 2nd should be: data.foo.func()
98
+ (0, chai_1.expect)((0, reflection_1.isExpressionStatement)(bodyStatements[1])).to.be.true;
99
+ (0, chai_1.expect)((0, reflection_1.isCallExpression)(bodyStatements[1].expression)).to.be.true;
100
+ const callExpr = bodyStatements[1].expression;
101
+ (0, chai_1.expect)(callExpr.callee.name.text).to.be.equal('func');
102
+ (0, chai_1.expect)(callExpr.callee.obj.name.text).to.be.equal('foo');
103
+ (0, chai_1.expect)(callExpr.callee.obj.obj.name.text).to.be.equal('data');
104
+ // 3rd should be: result = data.foo
105
+ (0, chai_1.expect)((0, reflection_1.isAssignmentStatement)(bodyStatements[2])).to.be.true;
106
+ const assignStmt = bodyStatements[2];
107
+ (0, chai_1.expect)(assignStmt.name.text).to.equal('result');
108
+ (0, chai_1.expect)(assignStmt.value.name.text).to.equal('foo');
109
+ // 4th should be: return result
110
+ (0, chai_1.expect)((0, reflection_1.isReturnStatement)(bodyStatements[3])).to.be.true;
111
+ const returnStmt = bodyStatements[3];
112
+ (0, chai_1.expect)(returnStmt.value.name.text).to.equal('result');
113
+ });
65
114
  it('accepts arguments', () => {
66
115
  const { statements, diagnostics } = Parser_1.Parser.parse([
67
116
  (0, Parser_spec_1.identifier)('add'),
@@ -131,5 +180,64 @@ describe('parser call expressions', () => {
131
180
  (0, chai_1.expect)(statements).to.be.lengthOf(1);
132
181
  (0, chai_1.expect)(statements[0].range).to.deep.include(vscode_languageserver_1.Range.create(0, 0, 0, 17));
133
182
  });
183
+ describe('unfinished', () => {
184
+ it('continues parsing inside unfinished function calls', () => {
185
+ const { statements, diagnostics } = Parser_1.Parser.parse(`
186
+ sub doSomething(data)
187
+ otherFunc(data.foo, data.bar[0]
188
+ end sub
189
+ `);
190
+ (0, chai_1.expect)(diagnostics).to.be.lengthOf(2);
191
+ (0, testHelpers_spec_1.expectDiagnostics)(diagnostics, [
192
+ DiagnosticMessages_1.DiagnosticMessages.expectedRightParenAfterFunctionCallArguments(),
193
+ DiagnosticMessages_1.DiagnosticMessages.expectedNewlineOrColon()
194
+ ]);
195
+ (0, chai_1.expect)(statements).to.be.lengthOf(1);
196
+ const bodyStatements = statements[0].func.body.statements;
197
+ (0, chai_1.expect)(bodyStatements).to.be.lengthOf(1);
198
+ // Function statement should still be parsed
199
+ (0, chai_1.expect)((0, reflection_1.isExpressionStatement)(bodyStatements[0])).to.be.true;
200
+ (0, chai_1.expect)((0, reflection_1.isCallExpression)(bodyStatements[0].expression)).to.be.true;
201
+ const callExpr = bodyStatements[0].expression;
202
+ (0, chai_1.expect)(callExpr.callee.name.text).to.equal('otherFunc');
203
+ // args should still be parsed, as well!
204
+ (0, chai_1.expect)(callExpr.args).to.be.lengthOf(2);
205
+ (0, chai_1.expect)((0, reflection_1.isDottedGetExpression)(callExpr.args[0])).to.be.true;
206
+ (0, chai_1.expect)((0, reflection_1.isIndexedGetExpression)(callExpr.args[1])).to.be.true;
207
+ });
208
+ it('gets correct diagnostic for missing close paren without args', () => {
209
+ let { diagnostics } = Parser_1.Parser.parse(`
210
+ sub process()
211
+ someFunc(
212
+ end sub
213
+ `);
214
+ (0, testHelpers_spec_1.expectDiagnosticsIncludes)(diagnostics, [
215
+ DiagnosticMessages_1.DiagnosticMessages.expectedRightParenAfterFunctionCallArguments()
216
+ ]);
217
+ });
218
+ it('gets correct diagnostic for missing close paren with args', () => {
219
+ let { diagnostics } = Parser_1.Parser.parse(`
220
+ sub process()
221
+ someFunc("hello"
222
+ end sub
223
+ `);
224
+ (0, testHelpers_spec_1.expectDiagnosticsIncludes)(diagnostics, [
225
+ DiagnosticMessages_1.DiagnosticMessages.expectedRightParenAfterFunctionCallArguments()
226
+ ]);
227
+ });
228
+ it('gets correct diagnostic for missing close paren with invalid expression as arg', () => {
229
+ let { diagnostics, statements } = Parser_1.Parser.parse(`
230
+ sub process(data)
231
+ someFunc(data.name. ,
232
+ end sub
233
+ `);
234
+ (0, testHelpers_spec_1.expectDiagnosticsIncludes)(diagnostics, [
235
+ DiagnosticMessages_1.DiagnosticMessages.expectedRightParenAfterFunctionCallArguments()
236
+ ]);
237
+ (0, chai_1.expect)(statements).to.be.lengthOf(1);
238
+ const bodyStatements = statements[0].func.body.statements;
239
+ (0, chai_1.expect)(bodyStatements).to.be.lengthOf(1);
240
+ });
241
+ });
134
242
  });
135
243
  //# sourceMappingURL=Call.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Call.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/Call.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Call.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/Call.spec.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ const Parser_spec_1 = require("../Parser.spec");
7
7
  const vscode_languageserver_1 = require("vscode-languageserver");
8
8
  const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
9
9
  const Statement_1 = require("../../Statement");
10
+ const testHelpers_spec_1 = require("../../../testHelpers.spec");
11
+ const reflection_1 = require("../../../astUtils/reflection");
10
12
  describe('parser indexing', () => {
11
13
  describe('one level', () => {
12
14
  it('dotted', () => {
@@ -52,8 +54,7 @@ describe('parser indexing', () => {
52
54
  (0, chai_1.expect)(statements[0]).to.be.instanceof(Statement_1.AssignmentStatement);
53
55
  });
54
56
  it('multiple dots', () => {
55
- var _a;
56
- let { diagnostics } = Parser_1.Parser.parse([
57
+ let { diagnostics, statements } = Parser_1.Parser.parse([
57
58
  (0, Parser_spec_1.identifier)('_'),
58
59
  (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Equal, '='),
59
60
  (0, Parser_spec_1.identifier)('foo'),
@@ -63,10 +64,17 @@ describe('parser indexing', () => {
63
64
  (0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftSquareBracket, '['),
64
65
  (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Integer, '2'),
65
66
  (0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightSquareBracket, ']'),
67
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline),
66
68
  Parser_spec_1.EOF
67
69
  ]);
68
- (0, chai_1.expect)(diagnostics.length).to.equal(1);
69
- (0, chai_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.exist.and.to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedPropertyNameAfterPeriod().message);
70
+ (0, chai_1.expect)(diagnostics.length).to.equal(3);
71
+ (0, testHelpers_spec_1.expectDiagnostics)(diagnostics, [
72
+ DiagnosticMessages_1.DiagnosticMessages.expectedPropertyNameAfterPeriod(),
73
+ DiagnosticMessages_1.DiagnosticMessages.expectedNewlineOrColon(),
74
+ DiagnosticMessages_1.DiagnosticMessages.unexpectedToken('.') // everything after the 2nd dot is ignored
75
+ ]);
76
+ // expect statement "_ = foo" to still be included
77
+ (0, chai_1.expect)(statements.length).to.equal(1);
70
78
  });
71
79
  });
72
80
  it('location tracking', () => {
@@ -215,5 +223,42 @@ describe('parser indexing', () => {
215
223
  (0, chai_1.expect)(statements).to.be.length.greaterThan(0);
216
224
  });
217
225
  });
226
+ describe('unfinished brackets', () => {
227
+ it('parses expression inside of brackets', () => {
228
+ let { statements, diagnostics } = Parser_1.Parser.parse(`_ = foo[bar.baz.`);
229
+ (0, chai_1.expect)(diagnostics.length).to.be.greaterThan(0);
230
+ (0, chai_1.expect)(statements).to.be.lengthOf(1);
231
+ (0, chai_1.expect)((0, reflection_1.isAssignmentStatement)(statements[0])).to.be.true;
232
+ const assignStmt = statements[0];
233
+ (0, chai_1.expect)(assignStmt.name.text).to.equal('_');
234
+ (0, chai_1.expect)((0, reflection_1.isIndexedGetExpression)(assignStmt.value)).to.be.true;
235
+ const indexedGetExpr = assignStmt.value;
236
+ (0, chai_1.expect)(indexedGetExpr.obj.name.text).to.equal('foo');
237
+ (0, chai_1.expect)((0, reflection_1.isDottedGetExpression)(indexedGetExpr.index)).to.be.true;
238
+ const dottedGetExpr = indexedGetExpr.index;
239
+ (0, chai_1.expect)(dottedGetExpr.name.text).to.equal('baz');
240
+ (0, chai_1.expect)((0, reflection_1.isVariableExpression)(dottedGetExpr.obj)).to.be.true;
241
+ });
242
+ it('gets correct diagnostic for missing square brace without index', () => {
243
+ let { diagnostics } = Parser_1.Parser.parse(`
244
+ sub setData(obj)
245
+ m.data = obj[
246
+ end sub
247
+ `);
248
+ (0, testHelpers_spec_1.expectDiagnosticsIncludes)(diagnostics, [
249
+ DiagnosticMessages_1.DiagnosticMessages.expectedRightSquareBraceAfterArrayOrObjectIndex()
250
+ ]);
251
+ });
252
+ it('gets correct diagnostic for missing square brace with index', () => {
253
+ let { diagnostics } = Parser_1.Parser.parse(`
254
+ sub setData(obj)
255
+ m.data = obj[1
256
+ end sub
257
+ `);
258
+ (0, testHelpers_spec_1.expectDiagnosticsIncludes)(diagnostics, [
259
+ DiagnosticMessages_1.DiagnosticMessages.expectedRightSquareBraceAfterArrayOrObjectIndex()
260
+ ]);
261
+ });
262
+ });
218
263
  });
219
264
  //# sourceMappingURL=Indexing.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Indexing.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/Indexing.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Indexing.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/Indexing.spec.ts"],"names":[],"mappings":"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"}
@@ -9,15 +9,15 @@ const chai_1 = require("chai");
9
9
  const TokenKind_1 = require("../../../lexer/TokenKind");
10
10
  const Expression_1 = require("../../Expression");
11
11
  const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
12
+ const testHelpers_spec_2 = require("../../../testHelpers.spec");
12
13
  const sinon = (0, sinon_1.createSandbox)();
13
14
  describe('ConstStatement', () => {
14
- let rootDir = (0, util_1.standardizePath) `${process.cwd()}/.tmp/rootDir`;
15
15
  let program;
16
16
  let parser;
17
- let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, rootDir]);
18
- let testGetTypedef = (0, testHelpers_spec_1.getTestGetTypedef)(() => [program, rootDir]);
17
+ let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, testHelpers_spec_2.rootDir]);
18
+ let testGetTypedef = (0, testHelpers_spec_1.getTestGetTypedef)(() => [program, testHelpers_spec_2.rootDir]);
19
19
  beforeEach(() => {
20
- program = new Program_1.Program({ rootDir: rootDir, sourceMap: true });
20
+ program = new Program_1.Program({ rootDir: testHelpers_spec_2.rootDir, sourceMap: true });
21
21
  parser = new Parser_1.Parser();
22
22
  });
23
23
  afterEach(() => {
@@ -50,7 +50,7 @@ describe('ConstStatement', () => {
50
50
  (0, chai_1.expect)(value).to.be.instanceof(Expression_1.LiteralExpression);
51
51
  (0, chai_1.expect)((_b = value.token) === null || _b === void 0 ? void 0 : _b.text).to.eql('"abc"');
52
52
  //ensure range is correct
53
- (0, chai_1.expect)(statement.range).to.eql(util_1.default.createRange(0, 0, 0, 21));
53
+ (0, chai_1.expect)(statement.range).to.eql(util_1.util.createRange(0, 0, 0, 21));
54
54
  });
55
55
  it('produces typedef', () => {
56
56
  testGetTypedef(`
@@ -187,7 +187,7 @@ describe('ConstStatement', () => {
187
187
  `);
188
188
  (0, testHelpers_spec_1.expectCompletionsIncludes)(
189
189
  // log(|)
190
- program.getCompletions('source/main.bs', util_1.default.createPosition(3, 24)), [{
190
+ program.getCompletions('source/main.bs', util_1.util.createPosition(3, 24)), [{
191
191
  label: 'API_KEY',
192
192
  kind: vscode_languageserver_protocol_1.CompletionItemKind.Constant
193
193
  }]);
@@ -203,7 +203,7 @@ describe('ConstStatement', () => {
203
203
  `);
204
204
  (0, testHelpers_spec_1.expectCompletionsIncludes)(
205
205
  // log(|)
206
- program.getCompletions('source/main.bs', util_1.default.createPosition(5, 34)), [{
206
+ program.getCompletions('source/main.bs', util_1.util.createPosition(5, 34)), [{
207
207
  label: 'API_KEY',
208
208
  kind: vscode_languageserver_protocol_1.CompletionItemKind.Constant
209
209
  }]);
@@ -1 +1 @@
1
- {"version":3,"file":"ConstStatement.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/ConstStatement.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConstStatement.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/ConstStatement.spec.ts"],"names":[],"mappings":";;AAAA,gEAAkI;AAClI,wCAAqC;AACrC,8CAA2C;AAC3C,iCAAsC;AACtC,yCAAiD;AACjD,+BAA8B;AAE9B,wDAAqD;AACrD,iDAAqD;AACrD,mFAAoE;AACpE,gEAAoD;AAEpD,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;AAE9B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,IAAI,OAAgB,CAAC;IACrB,IAAI,MAAc,CAAC;IACnB,IAAI,aAAa,GAAG,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,0BAAO,CAAC,CAAC,CAAC;IAC/D,IAAI,cAAc,GAAG,IAAA,oCAAiB,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,0BAAO,CAAC,CAAC,CAAC;IAEjE,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,OAAO,EAAE,0BAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAC1B,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,iEAAiE,EAAE,GAAG,EAAE;QACvE,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE;;;;;;;SAOlC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;;QAChC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1E,IAAA,wCAAqB,EAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAmB,CAAC;QAC7D,IAAA,aAAM,EAAC,MAAA,SAAS,CAAC,MAAM,CAAC,KAAK,0CAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAS,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAA,aAAM,EAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;YACrC,IAAI,EAAE,qBAAS,CAAC,UAAU;YAC1B,IAAI,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,KAA0B,CAAC;QACnD,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,8BAAiB,CAAC,CAAC;QAClD,IAAA,aAAM,EAAC,MAAA,KAAK,CAAC,KAAK,0CAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,yBAAyB;QACzB,IAAA,aAAM,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,WAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACxB,cAAc,CAAC;;;;SAId,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QAEvB,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAChC,aAAa,CAAC;;;;;aAKb,EAAE;;;;aAIF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACzB,aAAa,CAAC;;;;;;;;aAQb,EAAE;;;;;;;aAOF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC1B,aAAa,CAAC;;;;;;;;aAQb,EAAE;;;;;;;aAOF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,aAAa,CAAC;;;;;;;;;;aAUb,EAAE;;;;;;;;aAQF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACnD,aAAa,CAAC;;;;;;;aAOb,EAAE;;;;;;aAMF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC1C,aAAa,CAAC;;;;;aAKb,EAAE;;;;aAIF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,aAAa,CAAC;;;;;;;;;;aAUb,EAAE;;;;;;aAMF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;aAKjC,CAAC,CAAC;YAEH,IAAA,4CAAyB;YACrB,SAAS;YACT,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,WAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EACpE,CAAC;oBACG,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,mDAAkB,CAAC,QAAQ;iBACpC,CAAC,CACL,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;aAOjC,CAAC,CAAC;YAEH,IAAA,4CAAyB;YACrB,SAAS;YACT,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,WAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EACpE,CAAC;oBACG,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,mDAAkB,CAAC,QAAQ;iBACpC,CAAC,CACL,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const sinon_1 = require("sinon");
5
+ const reflection_1 = require("../../../astUtils/reflection");
6
+ const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
7
+ const TokenKind_1 = require("../../../lexer/TokenKind");
8
+ const Program_1 = require("../../../Program");
9
+ const testHelpers_spec_1 = require("../../../testHelpers.spec");
10
+ const testHelpers_spec_2 = require("../../../testHelpers.spec");
11
+ const sinon = (0, sinon_1.createSandbox)();
12
+ describe('parser continue statements', () => {
13
+ let program;
14
+ let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, testHelpers_spec_2.rootDir]);
15
+ beforeEach(() => {
16
+ program = new Program_1.Program({ rootDir: testHelpers_spec_2.rootDir, sourceMap: true });
17
+ });
18
+ afterEach(() => {
19
+ sinon.restore();
20
+ program.dispose();
21
+ });
22
+ it('parses standalone statement properly', () => {
23
+ const file = program.setFile('source/main.bs', `
24
+ sub main()
25
+ for i = 0 to 10
26
+ continue for
27
+ end for
28
+ end sub
29
+ `);
30
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
31
+ (0, chai_1.expect)(file.ast.findChild(reflection_1.isContinueStatement)).to.exist;
32
+ });
33
+ it('flags incorrect loop type', () => {
34
+ const file = program.setFile('source/main.bs', `
35
+ sub main()
36
+ for i = 0 to 10
37
+ continue while
38
+ end for
39
+ for each item in [1, 2, 3]
40
+ continue while
41
+ end for
42
+ while true
43
+ continue for
44
+ end while
45
+ end sub
46
+ `);
47
+ program.validate();
48
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
49
+ DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.For),
50
+ DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.For),
51
+ DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.While)
52
+ ]);
53
+ (0, chai_1.expect)(file.ast.findChild(reflection_1.isContinueStatement)).to.exist;
54
+ });
55
+ it('flags missing `for` or `while` but still creates the node', () => {
56
+ const file = program.setFile('source/main.bs', `
57
+ sub main()
58
+ for i = 0 to 10
59
+ continue
60
+ end for
61
+ end sub
62
+ `);
63
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
64
+ DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.While, TokenKind_1.TokenKind.For)
65
+ ]);
66
+ (0, chai_1.expect)(file.ast.findChild(reflection_1.isContinueStatement)).to.exist;
67
+ });
68
+ it('detects `continue` used outside of a loop', () => {
69
+ program.setFile('source/main.bs', `
70
+ sub main()
71
+ continue for
72
+ end sub
73
+ `);
74
+ program.validate();
75
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
76
+ DiagnosticMessages_1.DiagnosticMessages.illegalContinueStatement().message
77
+ ]);
78
+ });
79
+ it('transpiles properly', () => {
80
+ testTranspile(`
81
+ sub main()
82
+ while true
83
+ continue while
84
+ end while
85
+ for i = 0 to 10
86
+ continue for
87
+ end for
88
+ end sub
89
+ `);
90
+ });
91
+ });
92
+ //# sourceMappingURL=Continue.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Continue.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/Continue.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,iCAAsC;AACtC,6DAAmE;AACnE,oEAAiE;AACjE,wDAAqD;AACrD,8CAA2C;AAC3C,gEAAuG;AACvG,gEAAoD;AAEpD,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;AAE9B,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,IAAI,OAAgB,CAAC;IACrB,IAAI,aAAa,GAAG,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,0BAAO,CAAC,CAAC,CAAC;IAE/D,UAAU,CAAC,GAAG,EAAE;QACZ,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,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;;;SAMvD,CAAC,CAAC;QACH,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;QAC/B,IAAA,aAAM,EAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gCAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;;;;;;;;;SAYvD,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,aAAa,CAAC,qBAAS,CAAC,GAAG,CAAC;YAC/C,uCAAkB,CAAC,aAAa,CAAC,qBAAS,CAAC,GAAG,CAAC;YAC/C,uCAAkB,CAAC,aAAa,CAAC,qBAAS,CAAC,KAAK,CAAC;SACpD,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gCAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;;;SAMvD,CAAC,CAAC;QACH,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,aAAa,CAAC,qBAAS,CAAC,KAAK,EAAE,qBAAS,CAAC,GAAG,CAAC;SACnE,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gCAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;SAI1C,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,wBAAwB,EAAE,CAAC,OAAO;SACxD,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC3B,aAAa,CAAC;;;;;;;;;SASb,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -13,13 +13,13 @@ const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol
13
13
  const visitors_1 = require("../../../astUtils/visitors");
14
14
  const reflection_1 = require("../../../astUtils/reflection");
15
15
  const vscode_uri_1 = require("vscode-uri");
16
+ const testHelpers_spec_2 = require("../../../testHelpers.spec");
16
17
  const sinon = (0, sinon_1.createSandbox)();
17
18
  describe('EnumStatement', () => {
18
- let rootDir = (0, util_1.standardizePath) `${process.cwd()}/.tmp/rootDir`;
19
19
  let program;
20
- let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, rootDir]);
20
+ let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, testHelpers_spec_2.rootDir]);
21
21
  beforeEach(() => {
22
- program = new Program_1.Program({ rootDir: rootDir, sourceMap: true });
22
+ program = new Program_1.Program({ rootDir: testHelpers_spec_2.rootDir, sourceMap: true });
23
23
  });
24
24
  afterEach(() => {
25
25
  sinon.restore();
@@ -159,7 +159,7 @@ describe('EnumStatement', () => {
159
159
  (0, chai_1.expect)(parser.statements[1]).instanceof(Statement_1.EnumStatement);
160
160
  });
161
161
  it('allows enum in namespace', () => {
162
- const parser = Parser_1.Parser.parse(`
162
+ const file = program.setFile('source/types.bs', `
163
163
  namespace entities
164
164
  enum Person
165
165
  name
@@ -169,9 +169,10 @@ describe('EnumStatement', () => {
169
169
  enum Direction
170
170
  up
171
171
  end enum
172
- `, { mode: Parser_1.ParseMode.BrighterScript });
173
- (0, testHelpers_spec_1.expectZeroDiagnostics)(parser);
174
- (0, chai_1.expect)(parser.references.enumStatements.map(x => x.fullName)).to.eql([
172
+ `);
173
+ program.validate();
174
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
175
+ (0, chai_1.expect)(file.parser.references.enumStatements.map(x => x.fullName)).to.eql([
175
176
  'entities.Person',
176
177
  'Direction'
177
178
  ]);
@@ -189,7 +190,7 @@ describe('EnumStatement', () => {
189
190
  `);
190
191
  program.validate();
191
192
  (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateEnumDeclaration('source', 'Direction')), { relatedInformation: [{
192
- location: util_1.util.createLocation(vscode_uri_1.URI.file((0, util_1.standardizePath) `${rootDir}/source/main.bs`).toString(), util_1.util.createRange(1, 21, 1, 30)),
193
+ location: util_1.util.createLocation(vscode_uri_1.URI.file((0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/source/main.bs`).toString(), util_1.util.createRange(1, 21, 1, 30)),
193
194
  message: 'Enum declared here'
194
195
  }] })]);
195
196
  });
@@ -206,7 +207,7 @@ describe('EnumStatement', () => {
206
207
  `);
207
208
  program.validate();
208
209
  (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateEnumDeclaration('source', 'Direction')), { relatedInformation: [{
209
- location: util_1.util.createLocation(vscode_uri_1.URI.file((0, util_1.standardizePath) `${rootDir}/source/lib.bs`).toString(), util_1.util.createRange(1, 21, 1, 30)),
210
+ location: util_1.util.createLocation(vscode_uri_1.URI.file((0, util_1.standardizePath) `${testHelpers_spec_2.rootDir}/source/lib.bs`).toString(), util_1.util.createRange(1, 21, 1, 30)),
210
211
  message: 'Enum declared here'
211
212
  }] })]);
212
213
  });
@@ -299,6 +300,16 @@ describe('EnumStatement', () => {
299
300
  program.validate();
300
301
  (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.enumValueMustBeType('integer')), { range: util_1.util.createRange(2, 33, 2, 35) })]);
301
302
  });
303
+ it('considers -1 to be an integer', () => {
304
+ program.setFile('source/main.bs', `
305
+ enum AppConfig
306
+ alpha = 1
307
+ beta = -1
308
+ end enum
309
+ `);
310
+ program.validate();
311
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
312
+ });
302
313
  it('flags missing value for string enum where string is not first item', () => {
303
314
  program.setFile('source/main.bs', `
304
315
  enum Direction
@@ -412,6 +423,20 @@ describe('EnumStatement', () => {
412
423
  });
413
424
  });
414
425
  describe('transpile', () => {
426
+ it('transpiles negative number', () => {
427
+ testTranspile(`
428
+ sub main()
429
+ print Direction.up
430
+ end sub
431
+ enum Direction
432
+ up = -1
433
+ end enum
434
+ `, `
435
+ sub main()
436
+ print -1
437
+ end sub
438
+ `, undefined, undefined, false);
439
+ });
415
440
  it('includes original value when no value could be computed', () => {
416
441
  testTranspile(`
417
442
  sub main()
@@ -659,6 +684,7 @@ describe('EnumStatement', () => {
659
684
  end enum
660
685
  end namespace
661
686
  `);
687
+ program.validate();
662
688
  // enums.direction.|down
663
689
  (0, testHelpers_spec_1.expectCompletionsIncludes)(program.getCompletions('source/main.bs', util_1.util.createPosition(2, 36)), [{
664
690
  label: 'up',
@@ -696,6 +722,7 @@ describe('EnumStatement', () => {
696
722
  end enum
697
723
  end namespace
698
724
  `);
725
+ program.validate();
699
726
  //should NOT find Direction because it's not directly available at the top level (you need to go through `enums.` to get at it)
700
727
  // dire|ction.down
701
728
  (0, testHelpers_spec_1.expectCompletionsExcludes)(program.getCompletions('source/main.bs', util_1.util.createPosition(2, 24)), [{