brighterscript 0.58.0 → 0.60.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 (242) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +18 -9
  3. package/bsconfig.schema.json +11 -0
  4. package/dist/BsConfig.d.ts +11 -0
  5. package/dist/CommentFlagProcessor.d.ts +1 -1
  6. package/dist/CommentFlagProcessor.js +1 -1
  7. package/dist/DependencyGraph.d.ts +3 -2
  8. package/dist/DependencyGraph.js +3 -2
  9. package/dist/DependencyGraph.js.map +1 -1
  10. package/dist/DiagnosticFilterer.js +1 -2
  11. package/dist/DiagnosticFilterer.js.map +1 -1
  12. package/dist/DiagnosticMessages.d.ts +12 -2
  13. package/dist/DiagnosticMessages.js +12 -2
  14. package/dist/DiagnosticMessages.js.map +1 -1
  15. package/dist/FunctionScope.d.ts +1 -1
  16. package/dist/FunctionScope.js +1 -1
  17. package/dist/KeyedThrottler.d.ts +3 -3
  18. package/dist/KeyedThrottler.js +3 -3
  19. package/dist/KeyedThrottler.js.map +1 -1
  20. package/dist/LanguageServer.d.ts +0 -7
  21. package/dist/LanguageServer.js +0 -7
  22. package/dist/LanguageServer.js.map +1 -1
  23. package/dist/Program.d.ts +10 -8
  24. package/dist/Program.js +50 -238
  25. package/dist/Program.js.map +1 -1
  26. package/dist/ProgramBuilder.d.ts +0 -1
  27. package/dist/ProgramBuilder.js +1 -2
  28. package/dist/ProgramBuilder.js.map +1 -1
  29. package/dist/Scope.d.ts +35 -35
  30. package/dist/Scope.js +63 -42
  31. package/dist/Scope.js.map +1 -1
  32. package/dist/SymbolTable.d.ts +0 -3
  33. package/dist/SymbolTable.js +0 -3
  34. package/dist/SymbolTable.js.map +1 -1
  35. package/dist/Watcher.d.ts +0 -3
  36. package/dist/Watcher.js +0 -3
  37. package/dist/Watcher.js.map +1 -1
  38. package/dist/astUtils/AstEditor.d.ts +1 -1
  39. package/dist/astUtils/AstEditor.js +1 -1
  40. package/dist/astUtils/AstEditor.spec.js +58 -58
  41. package/dist/astUtils/AstEditor.spec.js.map +1 -1
  42. package/dist/astUtils/creators.spec.js +5 -5
  43. package/dist/astUtils/creators.spec.js.map +1 -1
  44. package/dist/astUtils/reflection.d.ts +3 -1
  45. package/dist/astUtils/reflection.js +10 -2
  46. package/dist/astUtils/reflection.js.map +1 -1
  47. package/dist/astUtils/reflection.spec.js +115 -110
  48. package/dist/astUtils/reflection.spec.js.map +1 -1
  49. package/dist/astUtils/stackedVisitor.spec.js +12 -12
  50. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  51. package/dist/astUtils/visitors.d.ts +6 -1
  52. package/dist/astUtils/visitors.js +4 -0
  53. package/dist/astUtils/visitors.js.map +1 -1
  54. package/dist/astUtils/visitors.spec.js +21 -21
  55. package/dist/astUtils/visitors.spec.js.map +1 -1
  56. package/dist/bscPlugin/CallExpressionInfo.d.ts +35 -0
  57. package/dist/bscPlugin/CallExpressionInfo.js +131 -0
  58. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  59. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  60. package/dist/bscPlugin/SignatureHelpUtil.js +135 -0
  61. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  62. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +12 -12
  63. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  64. package/dist/bscPlugin/hover/HoverProcessor.spec.js +48 -48
  65. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  66. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +4 -4
  67. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  68. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +1 -2
  69. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
  70. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +4 -5
  71. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -1
  72. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +2 -0
  73. package/dist/bscPlugin/validation/BrsFileValidator.js +59 -6
  74. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  75. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +39 -9
  76. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  77. package/dist/files/BrsFile.Class.spec.js +43 -45
  78. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  79. package/dist/files/BrsFile.d.ts +8 -20
  80. package/dist/files/BrsFile.js +16 -97
  81. package/dist/files/BrsFile.js.map +1 -1
  82. package/dist/files/BrsFile.spec.js +309 -262
  83. package/dist/files/BrsFile.spec.js.map +1 -1
  84. package/dist/files/XmlFile.d.ts +1 -4
  85. package/dist/files/XmlFile.js +1 -4
  86. package/dist/files/XmlFile.js.map +1 -1
  87. package/dist/files/XmlFile.spec.js +136 -169
  88. package/dist/files/XmlFile.spec.js.map +1 -1
  89. package/dist/files/tests/imports.spec.js +19 -21
  90. package/dist/files/tests/imports.spec.js.map +1 -1
  91. package/dist/files/tests/optionalChaning.spec.js +8 -11
  92. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  93. package/dist/lexer/Character.spec.js +5 -5
  94. package/dist/lexer/Character.spec.js.map +1 -1
  95. package/dist/lexer/Lexer.d.ts +0 -5
  96. package/dist/lexer/Lexer.js +0 -5
  97. package/dist/lexer/Lexer.js.map +1 -1
  98. package/dist/lexer/Lexer.spec.js +141 -135
  99. package/dist/lexer/Lexer.spec.js.map +1 -1
  100. package/dist/lexer/TokenKind.d.ts +1 -0
  101. package/dist/lexer/TokenKind.js +6 -2
  102. package/dist/lexer/TokenKind.js.map +1 -1
  103. package/dist/parser/AstNode.d.ts +1 -1
  104. package/dist/parser/AstNode.spec.js +8 -10
  105. package/dist/parser/AstNode.spec.js.map +1 -1
  106. package/dist/parser/Expression.js.map +1 -1
  107. package/dist/parser/Parser.Class.spec.js +60 -60
  108. package/dist/parser/Parser.Class.spec.js.map +1 -1
  109. package/dist/parser/Parser.d.ts +8 -4
  110. package/dist/parser/Parser.js +16 -7
  111. package/dist/parser/Parser.js.map +1 -1
  112. package/dist/parser/Parser.spec.js +229 -221
  113. package/dist/parser/Parser.spec.js.map +1 -1
  114. package/dist/parser/SGParser.spec.js +16 -17
  115. package/dist/parser/SGParser.spec.js.map +1 -1
  116. package/dist/parser/Statement.d.ts +16 -2
  117. package/dist/parser/Statement.js +40 -8
  118. package/dist/parser/Statement.js.map +1 -1
  119. package/dist/parser/Statement.spec.js +31 -14
  120. package/dist/parser/Statement.spec.js.map +1 -1
  121. package/dist/parser/tests/controlFlow/For.spec.js +15 -15
  122. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  123. package/dist/parser/tests/controlFlow/ForEach.spec.js +13 -13
  124. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  125. package/dist/parser/tests/controlFlow/If.spec.js +93 -93
  126. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  127. package/dist/parser/tests/controlFlow/While.spec.js +12 -12
  128. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  129. package/dist/parser/tests/expression/Additive.spec.js +8 -8
  130. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  131. package/dist/parser/tests/expression/ArrayLiterals.spec.js +26 -26
  132. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  133. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +27 -27
  134. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  135. package/dist/parser/tests/expression/Boolean.spec.js +8 -8
  136. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  137. package/dist/parser/tests/expression/Call.spec.js +45 -45
  138. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  139. package/dist/parser/tests/expression/Exponential.spec.js +5 -5
  140. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  141. package/dist/parser/tests/expression/Function.spec.js +36 -36
  142. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  143. package/dist/parser/tests/expression/Indexing.spec.js +29 -29
  144. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  145. package/dist/parser/tests/expression/Multiplicative.spec.js +9 -9
  146. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  147. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +34 -34
  148. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  149. package/dist/parser/tests/expression/PrefixUnary.spec.js +12 -12
  150. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  151. package/dist/parser/tests/expression/Primary.spec.js +12 -12
  152. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  153. package/dist/parser/tests/expression/Relational.spec.js +13 -13
  154. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  155. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +10 -10
  156. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  157. package/dist/parser/tests/expression/TernaryExpression.spec.js +53 -53
  158. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  159. package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
  160. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  161. package/dist/parser/tests/statement/ConstStatement.spec.js +12 -12
  162. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  163. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  164. package/dist/parser/tests/statement/Continue.spec.js +92 -0
  165. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  166. package/dist/parser/tests/statement/Declaration.spec.js +19 -19
  167. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  168. package/dist/parser/tests/statement/Dim.spec.js +22 -22
  169. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  170. package/dist/parser/tests/statement/Enum.spec.js +43 -19
  171. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  172. package/dist/parser/tests/statement/For.spec.js +3 -4
  173. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  174. package/dist/parser/tests/statement/ForEach.spec.js +4 -5
  175. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  176. package/dist/parser/tests/statement/Function.spec.js +35 -35
  177. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  178. package/dist/parser/tests/statement/Goto.spec.js +5 -5
  179. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  180. package/dist/parser/tests/statement/Increment.spec.js +20 -20
  181. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  182. package/dist/parser/tests/statement/InterfaceStatement.spec.js +4 -5
  183. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  184. package/dist/parser/tests/statement/LibraryStatement.spec.js +11 -11
  185. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  186. package/dist/parser/tests/statement/Misc.spec.js +20 -20
  187. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  188. package/dist/parser/tests/statement/PrintStatement.spec.js +19 -20
  189. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  190. package/dist/parser/tests/statement/ReturnStatement.spec.js +9 -9
  191. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  192. package/dist/parser/tests/statement/Set.spec.js +22 -22
  193. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  194. package/dist/parser/tests/statement/Stop.spec.js +6 -6
  195. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  196. package/dist/parser/tests/statement/Throw.spec.js +6 -6
  197. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  198. package/dist/parser/tests/statement/TryCatch.spec.js +15 -15
  199. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  200. package/dist/preprocessor/Manifest.spec.js +8 -8
  201. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  202. package/dist/preprocessor/Preprocessor.d.ts +2 -2
  203. package/dist/preprocessor/Preprocessor.js +2 -2
  204. package/dist/preprocessor/Preprocessor.spec.js +25 -25
  205. package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
  206. package/dist/preprocessor/PreprocessorParser.d.ts +1 -1
  207. package/dist/preprocessor/PreprocessorParser.js +1 -1
  208. package/dist/preprocessor/PreprocessorParser.spec.js +13 -13
  209. package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
  210. package/dist/types/ArrayType.spec.js +9 -9
  211. package/dist/types/ArrayType.spec.js.map +1 -1
  212. package/dist/types/BooleanType.spec.js +3 -3
  213. package/dist/types/BooleanType.spec.js.map +1 -1
  214. package/dist/types/DoubleType.spec.js +3 -3
  215. package/dist/types/DoubleType.spec.js.map +1 -1
  216. package/dist/types/DynamicType.d.ts +0 -1
  217. package/dist/types/DynamicType.js +0 -1
  218. package/dist/types/DynamicType.js.map +1 -1
  219. package/dist/types/DynamicType.spec.js +3 -3
  220. package/dist/types/DynamicType.spec.js.map +1 -1
  221. package/dist/types/FloatType.spec.js +3 -3
  222. package/dist/types/FloatType.spec.js.map +1 -1
  223. package/dist/types/FunctionType.spec.js +6 -6
  224. package/dist/types/FunctionType.spec.js.map +1 -1
  225. package/dist/types/IntegerType.spec.js +3 -3
  226. package/dist/types/IntegerType.spec.js.map +1 -1
  227. package/dist/types/InterfaceType.spec.js +8 -8
  228. package/dist/types/InterfaceType.spec.js.map +1 -1
  229. package/dist/types/InvalidType.spec.js +3 -3
  230. package/dist/types/InvalidType.spec.js.map +1 -1
  231. package/dist/types/LongIntegerType.spec.js +3 -3
  232. package/dist/types/LongIntegerType.spec.js.map +1 -1
  233. package/dist/types/ObjectType.spec.js +3 -3
  234. package/dist/types/ObjectType.spec.js.map +1 -1
  235. package/dist/types/StringType.spec.js +3 -3
  236. package/dist/types/StringType.spec.js.map +1 -1
  237. package/dist/types/VoidType.spec.js +3 -3
  238. package/dist/types/VoidType.spec.js.map +1 -1
  239. package/dist/util.d.ts +21 -43
  240. package/dist/util.js +33 -60
  241. package/dist/util.js.map +1 -1
  242. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"BrsFilePreTranspileProcessor.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFilePreTranspileProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrsFilePreTranspileProcessor.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFilePreTranspileProcessor.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,13 @@ const sinon_1 = require("sinon");
4
4
  const fsExtra = require("fs-extra");
5
5
  const Program_1 = require("../../Program");
6
6
  const util_1 = require("../../util");
7
+ const testHelpers_spec_1 = require("../../testHelpers.spec");
7
8
  const sinon = (0, sinon_1.createSandbox)();
8
9
  describe('BrsFile', () => {
9
- const tempDir = (0, util_1.standardizePath) `${process.cwd()}/.tmp`;
10
- const rootDir = (0, util_1.standardizePath) `${tempDir}/rootDir`;
11
10
  let program;
12
11
  beforeEach(() => {
13
- fsExtra.emptyDirSync(tempDir);
14
- program = new Program_1.Program({ rootDir: rootDir, sourceMap: true });
12
+ fsExtra.emptyDirSync(testHelpers_spec_1.tempDir);
13
+ program = new Program_1.Program({ rootDir: testHelpers_spec_1.rootDir, sourceMap: true });
15
14
  });
16
15
  afterEach(() => {
17
16
  sinon.restore();
@@ -25,7 +24,7 @@ describe('BrsFile', () => {
25
24
  print a.b
26
25
  end sub
27
26
  `);
28
- await program.transpile([], (0, util_1.standardizePath) `${tempDir}/out`);
27
+ await program.transpile([], (0, util_1.standardizePath) `${testHelpers_spec_1.tempDir}/out`);
29
28
  });
30
29
  });
31
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"BrsFilePreTranspileProcessor.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.ts"],"names":[],"mappings":";;AAAA,iCAAsC;AACtC,oCAAoC;AACpC,2CAAwC;AACxC,qCAAkD;AAClD,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;AAE9B,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,MAAM,OAAO,GAAG,IAAA,sBAAC,EAAA,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;IACzC,MAAM,OAAO,GAAG,IAAA,sBAAC,EAAA,GAAG,OAAO,UAAU,CAAC;IACtC,IAAI,OAAgB,CAAC;IAErB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,OAAO,EAAE,OAAO,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,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YAC/E,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE;;;;;aAKrC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,IAAA,sBAAC,EAAA,GAAG,OAAO,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"BrsFilePreTranspileProcessor.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.ts"],"names":[],"mappings":";;AAAA,iCAAsC;AACtC,oCAAoC;AACpC,2CAAwC;AACxC,qCAAkD;AAClD,6DAA0D;AAC1D,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;AAE9B,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IAErB,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,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YAC/E,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE;;;;;aAKrC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,IAAA,sBAAC,EAAA,GAAG,0BAAO,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -15,9 +15,11 @@ export declare class BrsFileValidator {
15
15
  private walk;
16
16
  private validateEnumDeclaration;
17
17
  private validateEnumValueTypes;
18
+ private validateNamespaceStatement;
18
19
  /**
19
20
  * Find statements defined at the top level (or inside a namespace body) that are not allowed to be there
20
21
  */
21
22
  private flagTopLevelStatements;
22
23
  private validateImportStatements;
24
+ private validateContinueStatement;
23
25
  }
@@ -102,6 +102,7 @@ class BrsFileValidator {
102
102
  (_a = node.parent.getSymbolTable()) === null || _a === void 0 ? void 0 : _a.addSymbol(node.item.text, node.item.range, DynamicType_1.DynamicType.instance);
103
103
  },
104
104
  NamespaceStatement: (node) => {
105
+ this.validateNamespaceStatement(node);
105
106
  node.parent.getSymbolTable().addSymbol(node.name.split('.')[0], node.nameExpression.range, DynamicType_1.DynamicType.instance);
106
107
  },
107
108
  FunctionStatement: (node) => {
@@ -134,6 +135,9 @@ class BrsFileValidator {
134
135
  if (node.identifier) {
135
136
  node.parent.getSymbolTable().addSymbol(node.identifier.text, node.identifier.range, DynamicType_1.DynamicType.instance);
136
137
  }
138
+ },
139
+ ContinueStatement: (node) => {
140
+ this.validateContinueStatement(node);
137
141
  }
138
142
  });
139
143
  this.event.file.ast.walk((node, parent) => {
@@ -166,14 +170,24 @@ class BrsFileValidator {
166
170
  }
167
171
  }
168
172
  validateEnumValueTypes(member, enumValueKind) {
169
- var _a, _b, _c, _d, _e, _f, _g, _h;
170
- const memberValueKind = (_b = (_a = member.value) === null || _a === void 0 ? void 0 : _a.token) === null || _b === void 0 ? void 0 : _b.kind;
173
+ var _a, _b, _c, _d, _e, _f, _g;
174
+ let memberValueKind;
175
+ let memberValue;
176
+ if ((0, reflection_1.isUnaryExpression)(member.value)) {
177
+ memberValueKind = (_c = (_b = (_a = member.value) === null || _a === void 0 ? void 0 : _a.right) === null || _b === void 0 ? void 0 : _b.token) === null || _c === void 0 ? void 0 : _c.kind;
178
+ memberValue = (_d = member.value) === null || _d === void 0 ? void 0 : _d.right;
179
+ }
180
+ else {
181
+ memberValueKind = (_f = (_e = member.value) === null || _e === void 0 ? void 0 : _e.token) === null || _f === void 0 ? void 0 : _f.kind;
182
+ memberValue = member.value;
183
+ }
184
+ const range = (_g = (memberValue !== null && memberValue !== void 0 ? memberValue : member)) === null || _g === void 0 ? void 0 : _g.range;
171
185
  if (
172
186
  //is integer enum, has value, that value type is not integer
173
187
  (enumValueKind === TokenKind_1.TokenKind.IntegerLiteral && memberValueKind && memberValueKind !== enumValueKind) ||
174
188
  //has value, that value is not a literal
175
- (member.value && !(0, reflection_1.isLiteralExpression)(member.value))) {
176
- this.event.file.addDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.enumValueMustBeType(enumValueKind.replace(/literal$/i, '').toLowerCase())), { range: (_d = ((_c = member.value) !== null && _c !== void 0 ? _c : member)) === null || _d === void 0 ? void 0 : _d.range }));
189
+ (memberValue && !(0, reflection_1.isLiteralExpression)(memberValue))) {
190
+ this.event.file.addDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.enumValueMustBeType(enumValueKind.replace(/literal$/i, '').toLowerCase())), { range: range }));
177
191
  }
178
192
  //is non integer value
179
193
  if (enumValueKind !== TokenKind_1.TokenKind.IntegerLiteral) {
@@ -181,13 +195,23 @@ class BrsFileValidator {
181
195
  if (memberValueKind) {
182
196
  //member value is same as enum
183
197
  if (memberValueKind !== enumValueKind) {
184
- this.event.file.addDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.enumValueMustBeType(enumValueKind.replace(/literal$/i, '').toLowerCase())), { range: (_f = ((_e = member.value) !== null && _e !== void 0 ? _e : member)) === null || _f === void 0 ? void 0 : _f.range }));
198
+ this.event.file.addDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.enumValueMustBeType(enumValueKind.replace(/literal$/i, '').toLowerCase())), { range: range }));
185
199
  }
186
200
  //default value missing
187
201
  }
188
202
  else {
189
- this.event.file.addDiagnostic(Object.assign(Object.assign({ file: this.event.file }, DiagnosticMessages_1.DiagnosticMessages.enumValueIsRequired(enumValueKind.replace(/literal$/i, '').toLowerCase())), { range: (_h = ((_g = member.value) !== null && _g !== void 0 ? _g : member)) === null || _h === void 0 ? void 0 : _h.range }));
203
+ this.event.file.addDiagnostic(Object.assign(Object.assign({ file: this.event.file }, DiagnosticMessages_1.DiagnosticMessages.enumValueIsRequired(enumValueKind.replace(/literal$/i, '').toLowerCase())), { range: range }));
204
+ }
205
+ }
206
+ }
207
+ validateNamespaceStatement(stmt) {
208
+ let parentNode = stmt.parent;
209
+ while (parentNode) {
210
+ if (!(0, reflection_1.isNamespaceStatement)(parentNode) && !(0, reflection_1.isBody)(parentNode)) {
211
+ this.event.file.addDiagnostic(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('namespace')), { range: stmt.range }));
212
+ break;
190
213
  }
214
+ parentNode = parentNode.parent;
191
215
  }
192
216
  }
193
217
  /**
@@ -250,6 +274,35 @@ class BrsFileValidator {
250
274
  }
251
275
  }
252
276
  }
277
+ validateContinueStatement(statement) {
278
+ const validateLoopTypeMatch = (loopType) => {
279
+ var _a;
280
+ //coerce ForEach to For
281
+ loopType = loopType === TokenKind_1.TokenKind.ForEach ? TokenKind_1.TokenKind.For : loopType;
282
+ if ((loopType === null || loopType === void 0 ? void 0 : loopType.toLowerCase()) !== ((_a = statement.tokens.loopType.text) === null || _a === void 0 ? void 0 : _a.toLowerCase())) {
283
+ this.event.file.addDiagnostic(Object.assign({ range: statement.tokens.loopType.range }, DiagnosticMessages_1.DiagnosticMessages.expectedToken(loopType)));
284
+ }
285
+ };
286
+ //find the parent loop statement
287
+ const parent = statement.findAncestor((node) => {
288
+ if ((0, reflection_1.isWhileStatement)(node)) {
289
+ validateLoopTypeMatch(node.tokens.while.kind);
290
+ return true;
291
+ }
292
+ else if ((0, reflection_1.isForStatement)(node)) {
293
+ validateLoopTypeMatch(node.forToken.kind);
294
+ return true;
295
+ }
296
+ else if ((0, reflection_1.isForEachStatement)(node)) {
297
+ validateLoopTypeMatch(node.tokens.forEach.kind);
298
+ return true;
299
+ }
300
+ });
301
+ //flag continue statements found outside of a loop
302
+ if (!parent) {
303
+ this.event.file.addDiagnostic(Object.assign({ range: statement.range }, DiagnosticMessages_1.DiagnosticMessages.illegalContinueStatement()));
304
+ }
305
+ }
253
306
  }
254
307
  exports.BrsFileValidator = BrsFileValidator;
255
308
  //# sourceMappingURL=BrsFileValidator.js.map
@@ -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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"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
3
+ const chai_config_spec_1 = require("../../chai-config.spec");
4
+ const DiagnosticMessages_1 = require("../../DiagnosticMessages");
5
+ const testHelpers_spec_1 = require("../../testHelpers.spec");
4
6
  const Program_1 = require("../../Program");
5
7
  describe('BrsFileValidator', () => {
6
8
  let program;
@@ -16,13 +18,13 @@ describe('BrsFileValidator', () => {
16
18
  program.validate();
17
19
  const func = file.parser.ast.statements[0];
18
20
  const print = func.func.body.statements[0];
19
- (0, chai_1.expect)(print.parent).to.equal(func.func.body);
21
+ (0, chai_config_spec_1.expect)(print.parent).to.equal(func.func.body);
20
22
  const charlie = print.expressions[0];
21
- (0, chai_1.expect)(charlie.parent).to.equal(print);
23
+ (0, chai_config_spec_1.expect)(charlie.parent).to.equal(print);
22
24
  const beta = charlie.obj;
23
- (0, chai_1.expect)(beta.parent).to.equal(charlie);
25
+ (0, chai_config_spec_1.expect)(beta.parent).to.equal(charlie);
24
26
  const aaLiteral = beta.obj;
25
- (0, chai_1.expect)(aaLiteral.parent).to.equal(beta);
27
+ (0, chai_config_spec_1.expect)(aaLiteral.parent).to.equal(beta);
26
28
  });
27
29
  it('links NamespacedVariableNameExpression dotted get parents', () => {
28
30
  const file = program.setFile('source/main.bs', `
@@ -36,13 +38,41 @@ describe('BrsFileValidator', () => {
36
38
  program.validate();
37
39
  const namespace = file.parser.ast.statements[0];
38
40
  const deltaClass = namespace.body.statements[0];
39
- (0, chai_1.expect)(deltaClass.parent).to.equal(namespace.body);
41
+ (0, chai_config_spec_1.expect)(deltaClass.parent).to.equal(namespace.body);
40
42
  const charlie = deltaClass.parentClassName.expression;
41
- (0, chai_1.expect)(charlie.parent).to.equal(deltaClass.parentClassName);
43
+ (0, chai_config_spec_1.expect)(charlie.parent).to.equal(deltaClass.parentClassName);
42
44
  const bravo = charlie.obj;
43
- (0, chai_1.expect)(bravo.parent).to.equal(charlie);
45
+ (0, chai_config_spec_1.expect)(bravo.parent).to.equal(charlie);
44
46
  const alpha = bravo.obj;
45
- (0, chai_1.expect)(alpha.parent).to.equal(bravo);
47
+ (0, chai_config_spec_1.expect)(alpha.parent).to.equal(bravo);
48
+ });
49
+ describe('namespace validation', () => {
50
+ it('succeeds if namespaces are defined inside other namespaces', () => {
51
+ program.setFile('source/main.bs', `
52
+ namespace alpha
53
+ ' random comment
54
+ namespace bravo
55
+ ' random comment
56
+ sub main()
57
+ end sub
58
+ end namespace
59
+ end namespace
60
+ `);
61
+ program.validate();
62
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
63
+ });
64
+ it('fails if namespaces are defined inside a function', () => {
65
+ program.setFile('source/main.bs', `
66
+ function f()
67
+ namespace alpha
68
+ end namespace
69
+ end function
70
+ `);
71
+ program.validate();
72
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
73
+ DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('namespace')
74
+ ]);
75
+ });
46
76
  });
47
77
  });
48
78
  //# sourceMappingURL=BrsFileValidator.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrsFileValidator.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/BrsFileValidator.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAI9B,2CAAwC;AAExC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,IAAI,OAAgB,CAAC;IACrB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;SAIvD,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,GAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAuB,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAmB,CAAC;QAC7D,IAAA,aAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAwB,CAAC;QAC5D,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAA0B,CAAC;QAChD,IAAA,aAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAA0B,CAAC;QAClD,IAAA,aAAM,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,gBAAgB,EAAE;;;;;;;SAOvD,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,SAAS,GAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAwB,CAAC;QACxE,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAmB,CAAC;QAClE,IAAA,aAAM,EAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAI,UAAU,CAAC,eAAe,CAAC,UAAkC,CAAC;QAC/E,IAAA,aAAM,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAA0B,CAAC;QACjD,IAAA,aAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEvC,MAAM,KAAK,GAAG,KAAK,CAAC,GAA0B,CAAC;QAC/C,IAAA,aAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"BrsFileValidator.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/BrsFileValidator.spec.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const sinonImport = require("sinon");
4
4
  const Program_1 = require("../Program");
5
- const chai_1 = require("chai");
5
+ const chai_config_spec_1 = require("../chai-config.spec");
6
6
  const DiagnosticMessages_1 = require("../DiagnosticMessages");
7
7
  const vscode_languageserver_1 = require("vscode-languageserver");
8
8
  const Parser_1 = require("../parser/Parser");
@@ -11,29 +11,27 @@ const util_1 = require("../util");
11
11
  const fsExtra = require("fs-extra");
12
12
  const BrsTranspileState_1 = require("../parser/BrsTranspileState");
13
13
  const assert_1 = require("assert");
14
+ const testHelpers_spec_2 = require("../testHelpers.spec");
14
15
  let sinon = sinonImport.createSandbox();
15
16
  describe('BrsFile BrighterScript classes', () => {
16
- let tmpPath = (0, util_1.standardizePath) `${process.cwd()}/.tmp`;
17
- let rootDir = (0, util_1.standardizePath) `${tmpPath}/rootDir`;
18
- const stagingDir = (0, util_1.standardizePath) `${tmpPath}/staging`;
19
17
  let program;
20
- let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, rootDir]);
18
+ let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, testHelpers_spec_2.rootDir]);
21
19
  beforeEach(() => {
22
- fsExtra.ensureDirSync(rootDir);
23
- fsExtra.emptyDirSync(tmpPath);
24
- program = new Program_1.Program({ rootDir: rootDir, stagingFolderPath: stagingDir });
20
+ fsExtra.ensureDirSync(testHelpers_spec_2.rootDir);
21
+ fsExtra.emptyDirSync(testHelpers_spec_2.tempDir);
22
+ program = new Program_1.Program({ rootDir: testHelpers_spec_2.rootDir, stagingDir: testHelpers_spec_2.stagingDir });
25
23
  });
26
24
  afterEach(() => {
27
25
  sinon.restore();
28
26
  program.dispose();
29
- fsExtra.ensureDirSync(tmpPath);
30
- fsExtra.emptyDirSync(tmpPath);
27
+ fsExtra.ensureDirSync(testHelpers_spec_2.tempDir);
28
+ fsExtra.emptyDirSync(testHelpers_spec_2.tempDir);
31
29
  });
32
30
  function addFile(relativePath, text) {
33
- return program.setFile({ src: `${rootDir}/${relativePath}`, dest: relativePath }, text);
31
+ return program.setFile({ src: `${testHelpers_spec_2.rootDir}/${relativePath}`, dest: relativePath }, text);
34
32
  }
35
33
  it('detects all classes after parse', () => {
36
- let file = program.setFile({ src: `${rootDir}/source/main.brs`, dest: 'source/main.brs' }, `
34
+ let file = program.setFile({ src: `${testHelpers_spec_2.rootDir}/source/main.brs`, dest: 'source/main.brs' }, `
37
35
  class Animal
38
36
  end class
39
37
  class Duck
@@ -41,17 +39,17 @@ describe('BrsFile BrighterScript classes', () => {
41
39
 
42
40
  end class
43
41
  `);
44
- (0, chai_1.expect)(file.parser.references.classStatements.map(x => x.getName(Parser_1.ParseMode.BrighterScript)).sort()).to.eql(['Animal', 'Duck']);
42
+ (0, chai_config_spec_1.expect)(file.parser.references.classStatements.map(x => x.getName(Parser_1.ParseMode.BrighterScript)).sort()).to.eql(['Animal', 'Duck']);
45
43
  });
46
44
  it('does not cause errors with incomplete class statement', () => {
47
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
45
+ program.setFile({ src: `${testHelpers_spec_2.rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
48
46
  class
49
47
  `);
50
48
  program.validate();
51
49
  //if no exception was thrown, this test passes
52
50
  });
53
51
  it('catches child class missing super call in constructor', () => {
54
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
52
+ program.setFile({ src: `${testHelpers_spec_2.rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
55
53
  class Person
56
54
  sub new()
57
55
  end sub
@@ -67,7 +65,7 @@ describe('BrsFile BrighterScript classes', () => {
67
65
  ]);
68
66
  });
69
67
  it('access modifier is option for override', () => {
70
- let file = program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
68
+ let file = program.setFile({ src: `${testHelpers_spec_2.rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
71
69
  class Animal
72
70
  sub move()
73
71
  end sub
@@ -81,11 +79,11 @@ describe('BrsFile BrighterScript classes', () => {
81
79
  program.validate();
82
80
  (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
83
81
  let duckClass = file.parser.references.classStatements.find(x => x.name.text.toLowerCase() === 'duck');
84
- (0, chai_1.expect)(duckClass).to.exist;
85
- (0, chai_1.expect)(duckClass.memberMap['move']).to.exist;
82
+ (0, chai_config_spec_1.expect)(duckClass).to.exist;
83
+ (0, chai_config_spec_1.expect)(duckClass.memberMap['move']).to.exist;
86
84
  });
87
85
  it('supports various namespace configurations', () => {
88
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
86
+ program.setFile({ src: `${testHelpers_spec_2.rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
89
87
  class Animal
90
88
  sub new()
91
89
  bigBird = new Birds.Bird()
@@ -185,9 +183,9 @@ describe('BrsFile BrighterScript classes', () => {
185
183
  end sub
186
184
  end class
187
185
  `);
188
- (0, chai_1.expect)(file.ast.statements[1].body[0].func.body.statements[0].expression.callee.name.text).to.eql('super');
189
- await program.transpile([], stagingDir);
190
- (0, chai_1.expect)(file.ast.statements[1].body[0].func.body.statements[0].expression.callee.name.text).to.eql('super');
186
+ (0, chai_config_spec_1.expect)(file.ast.statements[1].body[0].func.body.statements[0].expression.callee.name.text).to.eql('super');
187
+ await program.transpile([], testHelpers_spec_2.stagingDir);
188
+ (0, chai_config_spec_1.expect)(file.ast.statements[1].body[0].func.body.statements[0].expression.callee.name.text).to.eql('super');
191
189
  });
192
190
  it('follows correct sequence for property initializers', () => {
193
191
  testTranspile(`
@@ -549,7 +547,7 @@ describe('BrsFile BrighterScript classes', () => {
549
547
  `, undefined, undefined, false);
550
548
  //the AST should not be permanently modified
551
549
  const constructor = file.ast.statements[0].body[0];
552
- (0, chai_1.expect)(constructor.func.body.statements).to.be.lengthOf(0);
550
+ (0, chai_config_spec_1.expect)(constructor.func.body.statements).to.be.lengthOf(0);
553
551
  });
554
552
  it('adds field initializers', () => {
555
553
  const { file } = testTranspile(`
@@ -574,7 +572,7 @@ describe('BrsFile BrighterScript classes', () => {
574
572
  `);
575
573
  //the AST should not be permanently modified
576
574
  const constructor = file.ast.statements[0].body[0];
577
- (0, chai_1.expect)(constructor.func.body.statements).to.be.lengthOf(0);
575
+ (0, chai_config_spec_1.expect)(constructor.func.body.statements).to.be.lengthOf(0);
578
576
  });
579
577
  it('does not screw up local variable references', () => {
580
578
  testTranspile(`
@@ -735,7 +733,7 @@ describe('BrsFile BrighterScript classes', () => {
735
733
  });
736
734
  });
737
735
  it('detects using `new` keyword on non-classes', () => {
738
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.brs' }, `
736
+ program.setFile('source/main.bs', `
739
737
  sub quack()
740
738
  end sub
741
739
  sub main()
@@ -748,7 +746,7 @@ describe('BrsFile BrighterScript classes', () => {
748
746
  ]);
749
747
  });
750
748
  it('detects missing call to super', () => {
751
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.brs' }, `
749
+ program.setFile('source/main.bs', `
752
750
  class Animal
753
751
  sub new()
754
752
  end sub
@@ -764,7 +762,7 @@ describe('BrsFile BrighterScript classes', () => {
764
762
  ]);
765
763
  });
766
764
  it.skip('detects calls to unknown m methods', () => {
767
- program.setFile({ src: `${rootDir}/source/main.brs`, dest: 'source/main.brs' }, `
765
+ program.setFile('source/main.bs', `
768
766
  class Animal
769
767
  sub new()
770
768
  m.methodThatDoesNotExist()
@@ -786,7 +784,7 @@ describe('BrsFile BrighterScript classes', () => {
786
784
  end class
787
785
  `);
788
786
  program.validate();
789
- (0, chai_1.expect)(program.getDiagnostics().map(x => x.message).sort()).to.eql([
787
+ (0, chai_config_spec_1.expect)(program.getDiagnostics().map(x => x.message).sort()).to.eql([
790
788
  DiagnosticMessages_1.DiagnosticMessages.circularReferenceDetected(['Child', 'Parent', 'Child'], 'source').message,
791
789
  DiagnosticMessages_1.DiagnosticMessages.circularReferenceDetected(['Parent', 'Child', 'Parent'], 'source').message
792
790
  ]);
@@ -804,7 +802,7 @@ describe('BrsFile BrighterScript classes', () => {
804
802
  end class
805
803
  `);
806
804
  program.validate();
807
- (0, chai_1.expect)(program.getDiagnostics().map(x => x.message).sort()).to.eql([
805
+ (0, chai_config_spec_1.expect)(program.getDiagnostics().map(x => x.message).sort()).to.eql([
808
806
  DiagnosticMessages_1.DiagnosticMessages.circularReferenceDetected(['Child', 'Parent', 'Grandchild', 'Child'], 'source').message,
809
807
  DiagnosticMessages_1.DiagnosticMessages.circularReferenceDetected(['Grandchild', 'Child', 'Parent', 'Grandchild'], 'source').message,
810
808
  DiagnosticMessages_1.DiagnosticMessages.circularReferenceDetected(['Parent', 'Grandchild', 'Child', 'Parent'], 'source').message
@@ -824,10 +822,10 @@ describe('BrsFile BrighterScript classes', () => {
824
822
  end function
825
823
  end class
826
824
  `);
827
- await program.transpile([], stagingDir);
828
- fsExtra.emptyDirSync(stagingDir);
829
- await program.transpile([], stagingDir);
830
- (0, chai_1.expect)(fsExtra.readFileSync((0, util_1.standardizePath) `${stagingDir}/source/lib.brs`).toString().trimEnd()).to.eql((0, testHelpers_spec_1.trim) `
825
+ await program.transpile([], testHelpers_spec_2.stagingDir);
826
+ fsExtra.emptyDirSync(testHelpers_spec_2.stagingDir);
827
+ await program.transpile([], testHelpers_spec_2.stagingDir);
828
+ (0, chai_config_spec_1.expect)(fsExtra.readFileSync((0, util_1.standardizePath) `${testHelpers_spec_2.stagingDir}/source/lib.brs`).toString().trimEnd()).to.eql((0, testHelpers_spec_1.trim) `
831
829
  function __Being_builder()
832
830
  instance = {}
833
831
  instance.new = sub()
@@ -861,7 +859,7 @@ describe('BrsFile BrighterScript classes', () => {
861
859
  `);
862
860
  });
863
861
  it('detects duplicate member names', () => {
864
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
862
+ program.setFile('source/main.bs', `
865
863
  class Animal
866
864
  public name
867
865
  public name
@@ -878,7 +876,7 @@ describe('BrsFile BrighterScript classes', () => {
878
876
  (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateIdentifier('name')), { range: vscode_languageserver_1.Range.create(3, 23, 3, 27) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateIdentifier('name')), { range: vscode_languageserver_1.Range.create(4, 27, 4, 31) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateIdentifier('age')), { range: vscode_languageserver_1.Range.create(8, 27, 8, 30) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.duplicateIdentifier('age')), { range: vscode_languageserver_1.Range.create(10, 23, 10, 26) })]);
879
877
  });
880
878
  it('detects mismatched member type in child class', () => {
881
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
879
+ program.setFile('source/main.bs', `
882
880
  class Animal
883
881
  public name
884
882
  end class
@@ -894,7 +892,7 @@ describe('BrsFile BrighterScript classes', () => {
894
892
  ]);
895
893
  });
896
894
  it('allows untyped overridden field in child class', () => {
897
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
895
+ program.setFile('source/main.bs', `
898
896
  class Animal
899
897
  public name
900
898
  end class
@@ -939,7 +937,7 @@ describe('BrsFile BrighterScript classes', () => {
939
937
  ]);
940
938
  });
941
939
  it('detects overridden methods without override keyword', () => {
942
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.brs' }, `
940
+ program.setFile('source/main.bs', `
943
941
  class Animal
944
942
  sub speak()
945
943
  end sub
@@ -955,7 +953,7 @@ describe('BrsFile BrighterScript classes', () => {
955
953
  ]);
956
954
  });
957
955
  it('detects overridden methods with different visibility', () => {
958
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
956
+ program.setFile('source/main.bs', `
959
957
  class Animal
960
958
  sub speakInPublic()
961
959
  end sub
@@ -981,7 +979,7 @@ describe('BrsFile BrighterScript classes', () => {
981
979
  ]);
982
980
  });
983
981
  it('allows overridden methods with matching visibility', () => {
984
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
982
+ program.setFile('source/main.bs', `
985
983
  class Animal
986
984
  sub speakInPublic()
987
985
  end sub
@@ -1105,7 +1103,7 @@ describe('BrsFile BrighterScript classes', () => {
1105
1103
  ]);
1106
1104
  });
1107
1105
  it('supports newable class namespace inference', () => {
1108
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
1106
+ program.setFile('source/main.bs', `
1109
1107
  namespace NameA.NameB
1110
1108
  class Duck
1111
1109
  end class
@@ -1118,7 +1116,7 @@ describe('BrsFile BrighterScript classes', () => {
1118
1116
  (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
1119
1117
  });
1120
1118
  it('catches extending unknown namespaced class', () => {
1121
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
1119
+ program.setFile('source/main.bs', `
1122
1120
  namespace NameA.NameB
1123
1121
  class Animal
1124
1122
  end class
@@ -1132,7 +1130,7 @@ describe('BrsFile BrighterScript classes', () => {
1132
1130
  ]);
1133
1131
  });
1134
1132
  it('supports omitting namespace prefix for items in same namespace', () => {
1135
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
1133
+ program.setFile('source/main.bs', `
1136
1134
  namespace NameA.NameB
1137
1135
  class Animal
1138
1136
  end class
@@ -1144,7 +1142,7 @@ describe('BrsFile BrighterScript classes', () => {
1144
1142
  (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
1145
1143
  });
1146
1144
  it('catches duplicate root-level class declarations', () => {
1147
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
1145
+ program.setFile('source/main.bs', `
1148
1146
  class Animal
1149
1147
  end class
1150
1148
  class Animal
@@ -1156,7 +1154,7 @@ describe('BrsFile BrighterScript classes', () => {
1156
1154
  ]);
1157
1155
  });
1158
1156
  it('catches duplicate namespace-level class declarations', () => {
1159
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
1157
+ program.setFile('source/main.bs', `
1160
1158
  namespace NameA.NameB
1161
1159
  class Animal
1162
1160
  end class
@@ -1170,7 +1168,7 @@ describe('BrsFile BrighterScript classes', () => {
1170
1168
  ]);
1171
1169
  });
1172
1170
  it('catches namespaced class name which is the same as a global class', () => {
1173
- program.setFile({ src: `${rootDir}/source/main.bs`, dest: 'source/main.bs' }, `
1171
+ program.setFile('source/main.bs', `
1174
1172
  namespace NameA.NameB
1175
1173
  class Animal
1176
1174
  end class