brighterscript 0.66.0-alpha.1 → 0.66.0-alpha.10

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 (380) hide show
  1. package/CHANGELOG.md +215 -10
  2. package/README.md +13 -3
  3. package/bsconfig.schema.json +15 -0
  4. package/dist/ActionPipeline.d.ts +10 -0
  5. package/dist/ActionPipeline.js +40 -0
  6. package/dist/ActionPipeline.js.map +1 -0
  7. package/dist/AstValidationSegmenter.d.ts +25 -0
  8. package/dist/AstValidationSegmenter.js +150 -0
  9. package/dist/AstValidationSegmenter.js.map +1 -0
  10. package/dist/BsConfig.d.ts +13 -4
  11. package/dist/BusyStatusTracker.d.ts +31 -0
  12. package/dist/BusyStatusTracker.js +83 -0
  13. package/dist/BusyStatusTracker.js.map +1 -0
  14. package/dist/Cache.js +3 -3
  15. package/dist/Cache.js.map +1 -1
  16. package/dist/CacheVerifier.d.ts +0 -1
  17. package/dist/CodeActionUtil.d.ts +2 -2
  18. package/dist/CommentFlagProcessor.d.ts +4 -3
  19. package/dist/CommentFlagProcessor.js.map +1 -1
  20. package/dist/DiagnosticCollection.js +8 -5
  21. package/dist/DiagnosticCollection.js.map +1 -1
  22. package/dist/DiagnosticMessages.d.ts +34 -4
  23. package/dist/DiagnosticMessages.js +59 -4
  24. package/dist/DiagnosticMessages.js.map +1 -1
  25. package/dist/FunctionScope.d.ts +1 -1
  26. package/dist/LanguageServer.d.ts +23 -1
  27. package/dist/LanguageServer.js +139 -57
  28. package/dist/LanguageServer.js.map +1 -1
  29. package/dist/Logger.d.ts +3 -2
  30. package/dist/Logger.js +10 -2
  31. package/dist/Logger.js.map +1 -1
  32. package/dist/PluginInterface.d.ts +11 -2
  33. package/dist/PluginInterface.js +69 -10
  34. package/dist/PluginInterface.js.map +1 -1
  35. package/dist/Program.d.ts +138 -49
  36. package/dist/Program.js +637 -349
  37. package/dist/Program.js.map +1 -1
  38. package/dist/ProgramBuilder.d.ts +10 -4
  39. package/dist/ProgramBuilder.js +76 -74
  40. package/dist/ProgramBuilder.js.map +1 -1
  41. package/dist/Scope.d.ts +52 -49
  42. package/dist/Scope.js +298 -274
  43. package/dist/Scope.js.map +1 -1
  44. package/dist/SymbolTable.d.ts +35 -14
  45. package/dist/SymbolTable.js +90 -29
  46. package/dist/SymbolTable.js.map +1 -1
  47. package/dist/Throttler.d.ts +12 -0
  48. package/dist/Throttler.js +39 -0
  49. package/dist/Throttler.js.map +1 -1
  50. package/dist/XmlScope.d.ts +7 -4
  51. package/dist/XmlScope.js +52 -12
  52. package/dist/XmlScope.js.map +1 -1
  53. package/dist/astUtils/{AstEditor.d.ts → Editor.d.ts} +6 -1
  54. package/dist/astUtils/{AstEditor.js → Editor.js} +9 -3
  55. package/dist/astUtils/Editor.js.map +1 -0
  56. package/dist/astUtils/{AstEditor.spec.js → Editor.spec.js} +10 -6
  57. package/dist/astUtils/Editor.spec.js.map +1 -0
  58. package/dist/astUtils/creators.d.ts +3 -1
  59. package/dist/astUtils/creators.js +14 -4
  60. package/dist/astUtils/creators.js.map +1 -1
  61. package/dist/astUtils/reflection.d.ts +37 -9
  62. package/dist/astUtils/reflection.js +83 -14
  63. package/dist/astUtils/reflection.js.map +1 -1
  64. package/dist/astUtils/reflection.spec.js +87 -5
  65. package/dist/astUtils/reflection.spec.js.map +1 -1
  66. package/dist/astUtils/visitors.d.ts +14 -3
  67. package/dist/astUtils/visitors.js +22 -2
  68. package/dist/astUtils/visitors.js.map +1 -1
  69. package/dist/astUtils/visitors.spec.js +58 -7
  70. package/dist/astUtils/visitors.spec.js.map +1 -1
  71. package/dist/bscPlugin/BscPlugin.d.ts +10 -2
  72. package/dist/bscPlugin/BscPlugin.js +24 -4
  73. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  74. package/dist/bscPlugin/CallExpressionInfo.d.ts +3 -3
  75. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  76. package/dist/bscPlugin/FileWriter.d.ts +6 -0
  77. package/dist/bscPlugin/FileWriter.js +24 -0
  78. package/dist/bscPlugin/FileWriter.js.map +1 -0
  79. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +8 -8
  80. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  81. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +4 -4
  82. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  83. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +50 -1
  84. package/dist/bscPlugin/completions/CompletionsProcessor.js +442 -23
  85. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  86. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +1737 -0
  87. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
  88. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  89. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  90. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  91. package/dist/bscPlugin/hover/HoverProcessor.d.ts +7 -3
  92. package/dist/bscPlugin/hover/HoverProcessor.js +133 -103
  93. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  94. package/dist/bscPlugin/hover/HoverProcessor.spec.js +241 -29
  95. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  96. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +1 -0
  97. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +43 -0
  98. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  99. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +22 -0
  100. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  101. package/dist/bscPlugin/serialize/BslibInjector.spec.js +19 -0
  102. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
  103. package/dist/bscPlugin/serialize/BslibManager.d.ts +9 -0
  104. package/dist/bscPlugin/serialize/BslibManager.js +40 -0
  105. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  106. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  107. package/dist/bscPlugin/serialize/FileSerializer.js +72 -0
  108. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  109. package/dist/bscPlugin/transpile/{BrsFilePreTranspileProcessor.d.ts → BrsFileTranspileProcessor.d.ts} +4 -2
  110. package/dist/bscPlugin/transpile/{BrsFilePreTranspileProcessor.js → BrsFileTranspileProcessor.js} +29 -5
  111. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  112. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
  113. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +41 -0
  114. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
  115. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +2 -2
  116. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -1
  117. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +0 -4
  118. package/dist/bscPlugin/validation/BrsFileValidator.js +34 -29
  119. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  120. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +1 -1
  121. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  122. package/dist/bscPlugin/validation/ScopeValidator.d.ts +28 -7
  123. package/dist/bscPlugin/validation/ScopeValidator.js +393 -205
  124. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  125. package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
  126. package/dist/bscPlugin/validation/ScopeValidator.spec.js +2038 -0
  127. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
  128. package/dist/bscPlugin/validation/XmlFileValidator.js +2 -2
  129. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  130. package/dist/cli.js +104 -13
  131. package/dist/cli.js.map +1 -1
  132. package/dist/deferred.d.ts +3 -3
  133. package/dist/deferred.js.map +1 -1
  134. package/dist/diagnosticUtils.d.ts +8 -2
  135. package/dist/diagnosticUtils.js +45 -16
  136. package/dist/diagnosticUtils.js.map +1 -1
  137. package/dist/examples/plugins/removePrint.js +1 -1
  138. package/dist/examples/plugins/removePrint.js.map +1 -1
  139. package/dist/files/AssetFile.d.ts +26 -0
  140. package/dist/files/AssetFile.js +26 -0
  141. package/dist/files/AssetFile.js.map +1 -0
  142. package/dist/files/BrsFile.Class.spec.js +383 -56
  143. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  144. package/dist/files/BrsFile.d.ts +73 -46
  145. package/dist/files/BrsFile.js +370 -534
  146. package/dist/files/BrsFile.js.map +1 -1
  147. package/dist/files/BrsFile.spec.js +1139 -682
  148. package/dist/files/BrsFile.spec.js.map +1 -1
  149. package/dist/files/Factory.d.ts +25 -0
  150. package/dist/files/Factory.js +22 -0
  151. package/dist/files/Factory.js.map +1 -0
  152. package/dist/files/File.d.ts +106 -0
  153. package/dist/files/File.js +16 -0
  154. package/dist/files/File.js.map +1 -0
  155. package/dist/files/LazyFileData.d.ts +20 -0
  156. package/dist/files/LazyFileData.js +54 -0
  157. package/dist/files/LazyFileData.js.map +1 -0
  158. package/dist/files/LazyFileData.spec.d.ts +1 -0
  159. package/dist/files/LazyFileData.spec.js +27 -0
  160. package/dist/files/LazyFileData.spec.js.map +1 -0
  161. package/dist/files/XmlFile.d.ts +56 -23
  162. package/dist/files/XmlFile.js +88 -60
  163. package/dist/files/XmlFile.js.map +1 -1
  164. package/dist/files/XmlFile.spec.js +64 -93
  165. package/dist/files/XmlFile.spec.js.map +1 -1
  166. package/dist/files/tests/imports.spec.js +21 -8
  167. package/dist/files/tests/imports.spec.js.map +1 -1
  168. package/dist/files/tests/optionalChaning.spec.js +14 -14
  169. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  170. package/dist/globalCallables.js +88 -84
  171. package/dist/globalCallables.js.map +1 -1
  172. package/dist/index.d.ts +9 -1
  173. package/dist/index.js +9 -1
  174. package/dist/index.js.map +1 -1
  175. package/dist/interfaces.d.ts +389 -94
  176. package/dist/interfaces.js +13 -2
  177. package/dist/interfaces.js.map +1 -1
  178. package/dist/lexer/Lexer.d.ts +12 -0
  179. package/dist/lexer/Lexer.js +28 -8
  180. package/dist/lexer/Lexer.js.map +1 -1
  181. package/dist/lexer/Lexer.spec.js +40 -0
  182. package/dist/lexer/Lexer.spec.js.map +1 -1
  183. package/dist/lexer/Token.d.ts +4 -0
  184. package/dist/lexer/Token.js.map +1 -1
  185. package/dist/lexer/TokenKind.d.ts +5 -0
  186. package/dist/lexer/TokenKind.js +14 -2
  187. package/dist/lexer/TokenKind.js.map +1 -1
  188. package/dist/parser/AstNode.d.ts +9 -2
  189. package/dist/parser/AstNode.js +16 -0
  190. package/dist/parser/AstNode.js.map +1 -1
  191. package/dist/parser/BrsTranspileState.d.ts +3 -2
  192. package/dist/parser/BrsTranspileState.js +3 -2
  193. package/dist/parser/BrsTranspileState.js.map +1 -1
  194. package/dist/parser/Expression.d.ts +21 -5
  195. package/dist/parser/Expression.js +128 -35
  196. package/dist/parser/Expression.js.map +1 -1
  197. package/dist/parser/Parser.Class.spec.js +103 -1
  198. package/dist/parser/Parser.Class.spec.js.map +1 -1
  199. package/dist/parser/Parser.d.ts +7 -0
  200. package/dist/parser/Parser.js +117 -21
  201. package/dist/parser/Parser.js.map +1 -1
  202. package/dist/parser/Parser.spec.js +557 -5
  203. package/dist/parser/Parser.spec.js.map +1 -1
  204. package/dist/parser/SGParser.d.ts +4 -4
  205. package/dist/parser/SGParser.js +3 -3
  206. package/dist/parser/SGParser.js.map +1 -1
  207. package/dist/parser/SGParser.spec.js +2 -2
  208. package/dist/parser/SGParser.spec.js.map +1 -1
  209. package/dist/parser/SGTypes.d.ts +2 -2
  210. package/dist/parser/Statement.d.ts +37 -12
  211. package/dist/parser/Statement.js +153 -46
  212. package/dist/parser/Statement.js.map +1 -1
  213. package/dist/parser/tests/Parser.spec.js +2 -1
  214. package/dist/parser/tests/Parser.spec.js.map +1 -1
  215. package/dist/parser/tests/controlFlow/For.spec.js +16 -8
  216. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  217. package/dist/parser/tests/controlFlow/ForEach.spec.js +12 -6
  218. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  219. package/dist/parser/tests/controlFlow/While.spec.js +8 -4
  220. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  221. package/dist/parser/tests/expression/Call.spec.js +4 -4
  222. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  223. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +29 -29
  224. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  225. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
  226. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  227. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
  228. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  229. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +75 -36
  230. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  231. package/dist/parser/tests/expression/TernaryExpression.spec.js +36 -36
  232. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  233. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
  234. package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
  235. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
  236. package/dist/parser/tests/statement/ConstStatement.spec.js +71 -22
  237. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  238. package/dist/parser/tests/statement/Continue.spec.js +2 -2
  239. package/dist/parser/tests/statement/Continue.spec.js.map +1 -1
  240. package/dist/parser/tests/statement/Enum.spec.js +38 -285
  241. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  242. package/dist/parser/tests/statement/For.spec.js +6 -6
  243. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  244. package/dist/parser/tests/statement/ForEach.spec.js +4 -4
  245. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  246. package/dist/parser/tests/statement/InterfaceStatement.spec.js +26 -10
  247. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  248. package/dist/parser/tests/statement/PrintStatement.spec.js +16 -13
  249. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  250. package/dist/parser/tests/statement/ReturnStatement.spec.js +5 -3
  251. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  252. package/dist/parser/tests/statement/Set.spec.js +26 -13
  253. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  254. package/dist/preprocessor/Manifest.d.ts +1 -1
  255. package/dist/preprocessor/Manifest.js +2 -2
  256. package/dist/preprocessor/Manifest.js.map +1 -1
  257. package/dist/roku-types/data.json +243 -293
  258. package/dist/roku-types/index.d.ts +17 -38
  259. package/dist/types/ArrayType.d.ts +4 -1
  260. package/dist/types/ArrayType.js +46 -6
  261. package/dist/types/ArrayType.js.map +1 -1
  262. package/dist/types/ArrayType.spec.js +32 -3
  263. package/dist/types/ArrayType.spec.js.map +1 -1
  264. package/dist/types/AssociativeArrayType.d.ts +11 -0
  265. package/dist/types/AssociativeArrayType.js +52 -0
  266. package/dist/types/AssociativeArrayType.js.map +1 -0
  267. package/dist/types/BaseFunctionType.d.ts +9 -0
  268. package/dist/types/BaseFunctionType.js +25 -0
  269. package/dist/types/BaseFunctionType.js.map +1 -0
  270. package/dist/types/BooleanType.d.ts +2 -1
  271. package/dist/types/BooleanType.js +8 -2
  272. package/dist/types/BooleanType.js.map +1 -1
  273. package/dist/types/BscType.d.ts +10 -6
  274. package/dist/types/BscType.js +69 -16
  275. package/dist/types/BscType.js.map +1 -1
  276. package/dist/types/BscTypeKind.d.ts +3 -0
  277. package/dist/types/BscTypeKind.js +3 -0
  278. package/dist/types/BscTypeKind.js.map +1 -1
  279. package/dist/types/BuiltInInterfaceAdder.d.ts +23 -0
  280. package/dist/types/BuiltInInterfaceAdder.js +157 -0
  281. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  282. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
  283. package/dist/types/BuiltInInterfaceAdder.spec.js +116 -0
  284. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
  285. package/dist/types/ClassType.d.ts +10 -4
  286. package/dist/types/ClassType.js +32 -5
  287. package/dist/types/ClassType.js.map +1 -1
  288. package/dist/types/ClassType.spec.js +5 -3
  289. package/dist/types/ClassType.spec.js.map +1 -1
  290. package/dist/types/ComponentType.d.ts +26 -0
  291. package/dist/types/ComponentType.js +83 -0
  292. package/dist/types/ComponentType.js.map +1 -0
  293. package/dist/types/DoubleType.d.ts +2 -1
  294. package/dist/types/DoubleType.js +9 -2
  295. package/dist/types/DoubleType.js.map +1 -1
  296. package/dist/types/DynamicType.d.ts +2 -2
  297. package/dist/types/DynamicType.js +3 -1
  298. package/dist/types/DynamicType.js.map +1 -1
  299. package/dist/types/EnumType.d.ts +24 -6
  300. package/dist/types/EnumType.js +29 -7
  301. package/dist/types/EnumType.js.map +1 -1
  302. package/dist/types/FloatType.d.ts +2 -1
  303. package/dist/types/FloatType.js +9 -2
  304. package/dist/types/FloatType.js.map +1 -1
  305. package/dist/types/FunctionType.d.ts +8 -20
  306. package/dist/types/FunctionType.js +17 -45
  307. package/dist/types/FunctionType.js.map +1 -1
  308. package/dist/types/InheritableType.d.ts +7 -4
  309. package/dist/types/InheritableType.js +67 -3
  310. package/dist/types/InheritableType.js.map +1 -1
  311. package/dist/types/IntegerType.d.ts +2 -1
  312. package/dist/types/IntegerType.js +9 -2
  313. package/dist/types/IntegerType.js.map +1 -1
  314. package/dist/types/InterfaceType.d.ts +6 -4
  315. package/dist/types/InterfaceType.js +8 -11
  316. package/dist/types/InterfaceType.js.map +1 -1
  317. package/dist/types/InterfaceType.spec.js +30 -2
  318. package/dist/types/InterfaceType.spec.js.map +1 -1
  319. package/dist/types/InvalidType.d.ts +2 -1
  320. package/dist/types/InvalidType.js +7 -1
  321. package/dist/types/InvalidType.js.map +1 -1
  322. package/dist/types/LongIntegerType.d.ts +2 -1
  323. package/dist/types/LongIntegerType.js +9 -2
  324. package/dist/types/LongIntegerType.js.map +1 -1
  325. package/dist/types/NamespaceType.d.ts +2 -1
  326. package/dist/types/NamespaceType.js +3 -0
  327. package/dist/types/NamespaceType.js.map +1 -1
  328. package/dist/types/ObjectType.d.ts +2 -2
  329. package/dist/types/ObjectType.js +5 -10
  330. package/dist/types/ObjectType.js.map +1 -1
  331. package/dist/types/ReferenceType.d.ts +15 -3
  332. package/dist/types/ReferenceType.js +173 -24
  333. package/dist/types/ReferenceType.js.map +1 -1
  334. package/dist/types/ReferenceType.spec.js +21 -6
  335. package/dist/types/ReferenceType.spec.js.map +1 -1
  336. package/dist/types/StringType.d.ts +2 -1
  337. package/dist/types/StringType.js +9 -2
  338. package/dist/types/StringType.js.map +1 -1
  339. package/dist/types/TypedFunctionType.d.ts +33 -0
  340. package/dist/types/TypedFunctionType.js +106 -0
  341. package/dist/types/TypedFunctionType.js.map +1 -0
  342. package/dist/types/TypedFunctionType.spec.d.ts +1 -0
  343. package/dist/types/TypedFunctionType.spec.js +122 -0
  344. package/dist/types/TypedFunctionType.spec.js.map +1 -0
  345. package/dist/types/UninitializedType.d.ts +2 -1
  346. package/dist/types/UninitializedType.js +1 -1
  347. package/dist/types/UninitializedType.js.map +1 -1
  348. package/dist/types/UnionType.d.ts +4 -2
  349. package/dist/types/UnionType.js +36 -4
  350. package/dist/types/UnionType.js.map +1 -1
  351. package/dist/types/UnionType.spec.js +46 -19
  352. package/dist/types/UnionType.spec.js.map +1 -1
  353. package/dist/types/VoidType.d.ts +2 -1
  354. package/dist/types/VoidType.js +7 -2
  355. package/dist/types/VoidType.js.map +1 -1
  356. package/dist/types/helper.spec.js +15 -0
  357. package/dist/types/helper.spec.js.map +1 -1
  358. package/dist/types/helpers.d.ts +5 -0
  359. package/dist/types/helpers.js +50 -3
  360. package/dist/types/helpers.js.map +1 -1
  361. package/dist/types/index.d.ts +1 -1
  362. package/dist/types/index.js +1 -1
  363. package/dist/types/index.js.map +1 -1
  364. package/dist/util.d.ts +71 -15
  365. package/dist/util.js +578 -150
  366. package/dist/util.js.map +1 -1
  367. package/dist/validators/ClassValidator.d.ts +0 -1
  368. package/dist/validators/ClassValidator.js +0 -22
  369. package/dist/validators/ClassValidator.js.map +1 -1
  370. package/package.json +3 -2
  371. package/dist/astUtils/AstEditor.js.map +0 -1
  372. package/dist/astUtils/AstEditor.spec.js.map +0 -1
  373. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +0 -1
  374. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +0 -31
  375. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +0 -1
  376. package/dist/types/FunctionType.spec.js +0 -23
  377. package/dist/types/FunctionType.spec.js.map +0 -1
  378. /package/dist/astUtils/{AstEditor.spec.d.ts → Editor.spec.d.ts} +0 -0
  379. /package/dist/bscPlugin/{transpile/BrsFilePreTranspileProcessor.spec.d.ts → completions/CompletionsProcessor.spec.d.ts} +0 -0
  380. /package/dist/{types/FunctionType.spec.d.ts → bscPlugin/serialize/BslibInjector.spec.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TokenKind.js","sourceRoot":"","sources":["../../src/lexer/TokenKind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenKind.js","sourceRoot":"","sources":["../../src/lexer/TokenKind.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import type { BrsTranspileState } from './BrsTranspileState';
7
7
  import type { GetTypeOptions, TranspileResult } from '../interfaces';
8
8
  import type { AnnotationExpression } from './Expression';
9
9
  import type { BscType } from '../types/BscType';
10
+ import type { Token } from '../lexer/Token';
10
11
  /**
11
12
  * A BrightScript AST node
12
13
  */
@@ -58,6 +59,11 @@ export declare abstract class AstNode {
58
59
  * Links all child nodes to their parent AstNode, and the same with symbol tables. This performs a full AST walk, so you should use this sparingly
59
60
  */
60
61
  link(): void;
62
+ /**
63
+ * Walk upward and return the root node
64
+ */
65
+ getRoot(): AstNode;
66
+ getLeadingTrivia(): Token[];
61
67
  }
62
68
  export declare abstract class Statement extends AstNode {
63
69
  /**
@@ -67,7 +73,7 @@ export declare abstract class Statement extends AstNode {
67
73
  /**
68
74
  * Annotations for this statement
69
75
  */
70
- annotations: AnnotationExpression[];
76
+ annotations?: AnnotationExpression[];
71
77
  }
72
78
  /** A BrightScript expression */
73
79
  export declare abstract class Expression extends AstNode {
@@ -145,5 +151,6 @@ export declare enum AstNodeKind {
145
151
  ContinueStatement = "ContinueStatement",
146
152
  Block = "Block",
147
153
  TypeExpression = "TypeExpression",
148
- TypeCastExpression = "TypeCastExpression"
154
+ TypeCastExpression = "TypeCastExpression",
155
+ TypedArrayExpression = "TypedArrayExpression"
149
156
  }
@@ -91,6 +91,21 @@ class AstNode {
91
91
  walkMode: visitors_1.WalkMode.visitAllRecursive
92
92
  });
93
93
  }
94
+ /**
95
+ * Walk upward and return the root node
96
+ */
97
+ getRoot() {
98
+ let node = this;
99
+ while (node) {
100
+ if (!node.parent) {
101
+ return node;
102
+ }
103
+ node = node.parent;
104
+ }
105
+ }
106
+ getLeadingTrivia() {
107
+ return [];
108
+ }
94
109
  }
95
110
  exports.AstNode = AstNode;
96
111
  class Statement extends AstNode {
@@ -185,5 +200,6 @@ var AstNodeKind;
185
200
  AstNodeKind["Block"] = "Block";
186
201
  AstNodeKind["TypeExpression"] = "TypeExpression";
187
202
  AstNodeKind["TypeCastExpression"] = "TypeCastExpression";
203
+ AstNodeKind["TypedArrayExpression"] = "TypedArrayExpression";
188
204
  })(AstNodeKind = exports.AstNodeKind || (exports.AstNodeKind = {}));
189
205
  //# sourceMappingURL=AstNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AstNode.js","sourceRoot":"","sources":["../../src/parser/AstNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AstNode.js","sourceRoot":"","sources":["../../src/parser/AstNode.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Range } from 'vscode-languageserver';
2
- import { AstEditor } from '../astUtils/AstEditor';
2
+ import { Editor } from '../astUtils/Editor';
3
3
  import type { BrsFile } from '../files/BrsFile';
4
4
  import type { ClassStatement } from './Statement';
5
5
  import { TranspileState } from './TranspileState';
@@ -23,6 +23,7 @@ export declare class BrsTranspileState extends TranspileState {
23
23
  classStatement?: ClassStatement;
24
24
  /**
25
25
  * An AST editor that can be used by the AST nodes to do various transformations to the AST which will be reverted at the end of the transpile cycle
26
+ * TODO remove this before file_api is merged
26
27
  */
27
- editor: AstEditor;
28
+ editor: Editor;
28
29
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BrsTranspileState = void 0;
4
- const AstEditor_1 = require("../astUtils/AstEditor");
4
+ const Editor_1 = require("../astUtils/Editor");
5
5
  const TranspileState_1 = require("./TranspileState");
6
6
  class BrsTranspileState extends TranspileState_1.TranspileState {
7
7
  constructor(file) {
@@ -14,8 +14,9 @@ class BrsTranspileState extends TranspileState_1.TranspileState {
14
14
  this.lineage = [];
15
15
  /**
16
16
  * An AST editor that can be used by the AST nodes to do various transformations to the AST which will be reverted at the end of the transpile cycle
17
+ * TODO remove this before file_api is merged
17
18
  */
18
- this.editor = new AstEditor_1.AstEditor();
19
+ this.editor = new Editor_1.Editor();
19
20
  this.bslibPrefix = this.file.program.bslibPrefix;
20
21
  }
21
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BrsTranspileState.js","sourceRoot":"","sources":["../../src/parser/BrsTranspileState.ts"],"names":[],"mappings":";;;AACA,qDAAkD;AAGlD,qDAAkD;AAElD,MAAa,iBAAkB,SAAQ,+BAAc;IACjD,YACW,IAAa;QAEpB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAFnC,SAAI,GAAJ,IAAI,CAAS;QAWxB;;;WAGG;QACH,YAAO,GAAG,EAER,CAAC;QAOH;;WAEG;QACI,WAAM,GAAG,IAAI,qBAAS,EAAE,CAAC;QAxB5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IACrD,CAAC;CAwBJ;AA9BD,8CA8BC"}
1
+ {"version":3,"file":"BrsTranspileState.js","sourceRoot":"","sources":["../../src/parser/BrsTranspileState.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAG5C,qDAAkD;AAElD,MAAa,iBAAkB,SAAQ,+BAAc;IACjD,YACW,IAAa;QAEpB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAFnC,SAAI,GAAJ,IAAI,CAAS;QAWxB;;;WAGG;QACH,YAAO,GAAG,EAER,CAAC;QAOH;;;WAGG;QACI,WAAM,GAAG,IAAI,eAAM,EAAE,CAAC;QAzBzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IACrD,CAAC;CAyBJ;AA/BD,8CA+BC"}
@@ -6,7 +6,7 @@ import { ParseMode } from './Parser';
6
6
  import type { WalkOptions, WalkVisitor } from '../astUtils/visitors';
7
7
  import type { GetTypeOptions, TranspileResult, TypedefProvider } from '../interfaces';
8
8
  import type { BscType } from '../types/BscType';
9
- import { FunctionType } from '../types/FunctionType';
9
+ import { TypedFunctionType } from '../types/TypedFunctionType';
10
10
  import { AstNodeKind, Expression } from './AstNode';
11
11
  import { SourceNode } from 'source-map';
12
12
  import type { TranspileState } from './TranspileState';
@@ -53,7 +53,7 @@ export declare class FunctionExpression extends Expression implements TypedefPro
53
53
  readonly leftParen: Token;
54
54
  readonly rightParen: Token;
55
55
  readonly asToken?: Token;
56
- readonly returnTypeExpression?: TypeExpression;
56
+ returnTypeExpression?: TypeExpression;
57
57
  constructor(parameters: FunctionParameterExpression[], body: Block, functionType: Token | null, end: Token, leftParen: Token, rightParen: Token, asToken?: Token, returnTypeExpression?: TypeExpression);
58
58
  readonly kind = AstNodeKind.FunctionExpression;
59
59
  /**
@@ -65,6 +65,7 @@ export declare class FunctionExpression extends Expression implements TypedefPro
65
65
  * If this function is part of a FunctionStatement, this will be set. Otherwise this will be undefined
66
66
  */
67
67
  functionStatement?: FunctionStatement;
68
+ getLeadingTrivia(): Token[];
68
69
  /**
69
70
  * The range of the function, starting at the 'f' in function or 's' in sub (or the open paren if the keyword is missing),
70
71
  * and ending with the last n' in 'end function' or 'b' in 'end sub'
@@ -73,7 +74,7 @@ export declare class FunctionExpression extends Expression implements TypedefPro
73
74
  transpile(state: BrsTranspileState, name?: Identifier, includeBody?: boolean): any[];
74
75
  getTypedef(state: BrsTranspileState): SourceNode[];
75
76
  walk(visitor: WalkVisitor, options: WalkOptions): void;
76
- getType(options: GetTypeOptions): FunctionType;
77
+ getType(options: GetTypeOptions): TypedFunctionType;
77
78
  }
78
79
  export declare class FunctionParameterExpression extends Expression {
79
80
  name: Identifier;
@@ -143,6 +144,7 @@ export declare class IndexedGetExpression extends Expression {
143
144
  readonly range: Range;
144
145
  transpile(state: BrsTranspileState): (string | SourceNode)[];
145
146
  walk(visitor: WalkVisitor, options: WalkOptions): void;
147
+ getType(options: GetTypeOptions): BscType;
146
148
  }
147
149
  export declare class GroupingExpression extends Expression {
148
150
  readonly tokens: {
@@ -165,7 +167,7 @@ export declare class LiteralExpression extends Expression {
165
167
  constructor(token: Token);
166
168
  readonly kind = AstNodeKind.LiteralExpression;
167
169
  get range(): Range;
168
- getType(options?: GetTypeOptions): DynamicType | import("..").FloatType | import("..").IntegerType | import("..").DoubleType | import("..").LongIntegerType | StringType | import("..").BooleanType | import("..").InvalidType | VoidType | FunctionType | import("..").ObjectType;
170
+ getType(options?: GetTypeOptions): DynamicType | import("../types").ObjectType | StringType | import("../types").IntegerType | import("../types").BooleanType | import("../types").FloatType | import("../types").DoubleType | import("../types").LongIntegerType | VoidType | import("../types/FunctionType").FunctionType;
169
171
  transpile(state: BrsTranspileState): SourceNode[];
170
172
  walk(visitor: WalkVisitor, options: WalkOptions): void;
171
173
  }
@@ -195,6 +197,7 @@ export declare class ArrayLiteralExpression extends Expression {
195
197
  readonly range: Range;
196
198
  transpile(state: BrsTranspileState): any[];
197
199
  walk(visitor: WalkVisitor, options: WalkOptions): void;
200
+ getType(options: GetTypeOptions): BscType;
198
201
  }
199
202
  export declare class AAMemberExpression extends Expression {
200
203
  keyToken: Token;
@@ -230,6 +233,7 @@ export declare class UnaryExpression extends Expression {
230
233
  readonly range: Range;
231
234
  transpile(state: BrsTranspileState): (string | SourceNode)[];
232
235
  walk(visitor: WalkVisitor, options: WalkOptions): void;
236
+ getType(options: GetTypeOptions): BscType;
233
237
  }
234
238
  export declare class VariableExpression extends Expression {
235
239
  readonly name: Identifier;
@@ -328,7 +332,7 @@ export declare class AnnotationExpression extends Expression {
328
332
  readonly nameToken: Token;
329
333
  constructor(atToken: Token, nameToken: Token);
330
334
  readonly kind = AstNodeKind.AnnotationExpression;
331
- range: Range;
335
+ get range(): Range;
332
336
  name: string;
333
337
  call: CallExpression;
334
338
  /**
@@ -336,6 +340,7 @@ export declare class AnnotationExpression extends Expression {
336
340
  * @param strict If false, keep Expression objects not corresponding to JS types
337
341
  */
338
342
  getArguments(strict?: boolean): ExpressionValue[];
343
+ getLeadingTrivia(): Token[];
339
344
  transpile(state: BrsTranspileState): any[];
340
345
  walk(visitor: WalkVisitor, options: WalkOptions): void;
341
346
  getTypedef(state: BrsTranspileState): any[];
@@ -407,4 +412,15 @@ export declare class TypeCastExpression extends Expression {
407
412
  walk(visitor: WalkVisitor, options: WalkOptions): void;
408
413
  getType(options: GetTypeOptions): BscType;
409
414
  }
415
+ export declare class TypedArrayExpression extends Expression {
416
+ innerType: Expression;
417
+ leftBracket: Token;
418
+ rightBracket: Token;
419
+ constructor(innerType: Expression, leftBracket: Token, rightBracket: Token);
420
+ readonly kind = AstNodeKind.TypedArrayExpression;
421
+ range: Range;
422
+ transpile(state: BrsTranspileState): TranspileResult;
423
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
424
+ getType(options: GetTypeOptions): BscType;
425
+ }
410
426
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypeCastExpression = exports.TypeExpression = exports.RegexLiteralExpression = exports.NullCoalescingExpression = exports.TernaryExpression = exports.AnnotationExpression = exports.TaggedTemplateStringExpression = exports.TemplateStringExpression = exports.TemplateStringQuasiExpression = exports.CallfuncExpression = exports.NewExpression = exports.SourceLiteralExpression = exports.VariableExpression = exports.UnaryExpression = exports.AALiteralExpression = exports.AAMemberExpression = exports.ArrayLiteralExpression = exports.EscapedCharCodeLiteralExpression = exports.LiteralExpression = exports.GroupingExpression = exports.IndexedGetExpression = exports.XmlAttributeGetExpression = exports.DottedGetExpression = exports.FunctionParameterExpression = exports.FunctionExpression = exports.CallExpression = exports.BinaryExpression = void 0;
3
+ exports.TypedArrayExpression = exports.TypeCastExpression = exports.TypeExpression = exports.RegexLiteralExpression = exports.NullCoalescingExpression = exports.TernaryExpression = exports.AnnotationExpression = exports.TaggedTemplateStringExpression = exports.TemplateStringExpression = exports.TemplateStringQuasiExpression = exports.CallfuncExpression = exports.NewExpression = exports.SourceLiteralExpression = exports.VariableExpression = exports.UnaryExpression = exports.AALiteralExpression = exports.AAMemberExpression = exports.ArrayLiteralExpression = exports.EscapedCharCodeLiteralExpression = exports.LiteralExpression = exports.GroupingExpression = exports.IndexedGetExpression = exports.XmlAttributeGetExpression = exports.DottedGetExpression = exports.FunctionParameterExpression = exports.FunctionExpression = exports.CallExpression = exports.BinaryExpression = void 0;
4
4
  const TokenKind_1 = require("../lexer/TokenKind");
5
5
  const util_1 = require("../util");
6
6
  const Parser_1 = require("./Parser");
@@ -10,7 +10,7 @@ const visitors_2 = require("../astUtils/visitors");
10
10
  const reflection_1 = require("../astUtils/reflection");
11
11
  const interfaces_1 = require("../interfaces");
12
12
  const SymbolTable_1 = require("../SymbolTable");
13
- const FunctionType_1 = require("../types/FunctionType");
13
+ const TypedFunctionType_1 = require("../types/TypedFunctionType");
14
14
  const AstNode_1 = require("./AstNode");
15
15
  const SymbolTable_2 = require("../SymbolTable");
16
16
  const source_map_1 = require("source-map");
@@ -19,6 +19,9 @@ const DynamicType_1 = require("../types/DynamicType");
19
19
  const VoidType_1 = require("../types/VoidType");
20
20
  const ReferenceType_1 = require("../types/ReferenceType");
21
21
  const UnionType_1 = require("../types/UnionType");
22
+ const types_1 = require("../types");
23
+ const AssociativeArrayType_1 = require("../types/AssociativeArrayType");
24
+ const creators_1 = require("../astUtils/creators");
22
25
  class BinaryExpression extends AstNode_1.Expression {
23
26
  constructor(left, operator, right) {
24
27
  super();
@@ -53,7 +56,9 @@ class BinaryExpression extends AstNode_1.Expression {
53
56
  //TODO: Intersection Types?, eg. case TokenKind.And:
54
57
  }
55
58
  }
56
- //TODO: figure out result type on +, *, or, and, etc!
59
+ else if (options.flags & SymbolTable_1.SymbolTypeFlag.runtime) {
60
+ return util_1.default.binaryOperatorResultType(this.left.getType(options), this.operator, this.right.getType(options));
61
+ }
57
62
  return DynamicType_1.DynamicType.instance;
58
63
  }
59
64
  }
@@ -102,15 +107,18 @@ class CallExpression extends AstNode_1.Expression {
102
107
  }
103
108
  }
104
109
  getType(options) {
105
- var _a;
110
+ var _a, _b;
106
111
  const calleeType = this.callee.getType(options);
112
+ if (options.ignoreCall) {
113
+ return calleeType;
114
+ }
107
115
  if ((0, reflection_1.isNewExpression)(this.parent)) {
108
116
  return calleeType;
109
117
  }
110
- if ((0, reflection_1.isFunctionType)(calleeType) && (!(0, reflection_1.isReferenceType)(calleeType.returnType) || calleeType.returnType.isResolvable())) {
118
+ if ((0, reflection_1.isCallableType)(calleeType) && (!(0, reflection_1.isReferenceType)(calleeType.returnType) || ((_a = calleeType.returnType) === null || _a === void 0 ? void 0 : _a.isResolvable()))) {
111
119
  return calleeType.returnType;
112
120
  }
113
- if (!(0, reflection_1.isReferenceType)(calleeType) && ((_a = calleeType.returnType) === null || _a === void 0 ? void 0 : _a.isResolvable())) {
121
+ if (!(0, reflection_1.isReferenceType)(calleeType) && ((_b = calleeType.returnType) === null || _b === void 0 ? void 0 : _b.isResolvable())) {
114
122
  return calleeType.returnType;
115
123
  }
116
124
  return new ReferenceType_1.TypePropertyReferenceType(calleeType, 'returnType');
@@ -141,6 +149,10 @@ class FunctionExpression extends AstNode_1.Expression {
141
149
  }
142
150
  this.symbolTable = new SymbolTable_2.SymbolTable('FunctionExpression', () => { var _a; return (_a = this.parent) === null || _a === void 0 ? void 0 : _a.getSymbolTable(); });
143
151
  }
152
+ getLeadingTrivia() {
153
+ var _a, _b;
154
+ return (_b = (_a = this.functionType) === null || _a === void 0 ? void 0 : _a.leadingTrivia) !== null && _b !== void 0 ? _b : [];
155
+ }
144
156
  /**
145
157
  * The range of the function, starting at the 'f' in function or 's' in sub (or the open paren if the keyword is missing),
146
158
  * and ending with the last n' in 'end function' or 'b' in 'end sub'
@@ -171,7 +183,7 @@ class FunctionExpression extends AstNode_1.Expression {
171
183
  //right paren
172
184
  results.push(state.transpileToken(this.rightParen));
173
185
  //as [Type]
174
- if (this.asToken && !state.options.removeParameterTypes) {
186
+ if (this.asToken && !state.options.removeParameterTypes && this.returnTypeExpression) {
175
187
  results.push(' ',
176
188
  //as
177
189
  state.transpileToken(this.asToken), ' ',
@@ -231,19 +243,35 @@ class FunctionExpression extends AstNode_1.Expression {
231
243
  }
232
244
  }
233
245
  getType(options) {
234
- var _a;
246
+ var _a, _b, _c;
235
247
  //if there's a defined return type, use that
236
- let returnType = (_a = this.returnTypeExpression) === null || _a === void 0 ? void 0 : _a.getType(options);
248
+ let returnType = (_a = this.returnTypeExpression) === null || _a === void 0 ? void 0 : _a.getType(Object.assign(Object.assign({}, options), { typeChain: undefined }));
237
249
  const isSub = this.functionType.kind === TokenKind_1.TokenKind.Sub;
238
250
  //if we don't have a return type and this is a sub, set the return type to `void`. else use `dynamic`
239
251
  if (!returnType) {
240
252
  returnType = isSub ? VoidType_1.VoidType.instance : DynamicType_1.DynamicType.instance;
241
253
  }
242
- const resultType = new FunctionType_1.FunctionType(returnType);
254
+ const resultType = new TypedFunctionType_1.TypedFunctionType(returnType);
243
255
  resultType.isSub = isSub;
244
256
  for (let param of this.parameters) {
245
- resultType.addParameter(param.name.text, param.getType(options), !!param.defaultValue);
257
+ resultType.addParameter(param.name.text, param.getType(Object.assign(Object.assign({}, options), { typeChain: undefined })), !!param.defaultValue);
258
+ }
259
+ // Figure out this function's name if we can
260
+ let funcName = '';
261
+ if ((0, reflection_1.isMethodStatement)(this.parent) || (0, reflection_1.isInterfaceMethodStatement)(this.parent)) {
262
+ funcName = this.parent.getName(Parser_1.ParseMode.BrighterScript);
263
+ if (options.typeChain) {
264
+ // Get the typechain info from the parent class
265
+ (_b = this.parent.parent) === null || _b === void 0 ? void 0 : _b.getType(options);
266
+ }
267
+ }
268
+ else if ((0, reflection_1.isFunctionStatement)(this.parent)) {
269
+ funcName = this.parent.getName(Parser_1.ParseMode.BrighterScript);
270
+ }
271
+ if (funcName) {
272
+ resultType.setName(funcName);
246
273
  }
274
+ (_c = options.typeChain) === null || _c === void 0 ? void 0 : _c.push(new interfaces_1.TypeChainEntry(funcName, resultType, options.flags, this.range));
247
275
  return resultType;
248
276
  }
249
277
  }
@@ -259,8 +287,10 @@ class FunctionParameterExpression extends AstNode_1.Expression {
259
287
  this.kind = AstNode_1.AstNodeKind.FunctionParameterExpression;
260
288
  }
261
289
  getType(options) {
262
- var _a, _b, _c, _d;
263
- return (_d = (_b = (_a = this.typeExpression) === null || _a === void 0 ? void 0 : _a.getType(Object.assign(Object.assign({}, options), { flags: SymbolTable_1.SymbolTypeFlag.typetime }))) !== null && _b !== void 0 ? _b : (_c = this.defaultValue) === null || _c === void 0 ? void 0 : _c.getType(Object.assign(Object.assign({}, options), { flags: SymbolTable_1.SymbolTypeFlag.runtime }))) !== null && _d !== void 0 ? _d : DynamicType_1.DynamicType.instance;
290
+ var _a, _b, _c, _d, _e;
291
+ const paramType = (_d = (_b = (_a = this.typeExpression) === null || _a === void 0 ? void 0 : _a.getType(Object.assign(Object.assign({}, options), { flags: SymbolTable_1.SymbolTypeFlag.typetime, typeChain: undefined }))) !== null && _b !== void 0 ? _b : (_c = this.defaultValue) === null || _c === void 0 ? void 0 : _c.getType(Object.assign(Object.assign({}, options), { flags: SymbolTable_1.SymbolTypeFlag.runtime, typeChain: undefined }))) !== null && _d !== void 0 ? _d : DynamicType_1.DynamicType.instance;
292
+ (_e = options.typeChain) === null || _e === void 0 ? void 0 : _e.push(new interfaces_1.TypeChainEntry(this.name.text, paramType, options.flags, this.range));
293
+ return paramType;
264
294
  }
265
295
  get range() {
266
296
  return util_1.default.createBoundingRange(this.name, this.asToken, this.typeExpression, this.defaultValue);
@@ -348,7 +378,7 @@ class DottedGetExpression extends AstNode_1.Expression {
348
378
  var _a, _b, _c, _d, _e, _f;
349
379
  const objType = (_a = this.obj) === null || _a === void 0 ? void 0 : _a.getType(options);
350
380
  const result = objType === null || objType === void 0 ? void 0 : objType.getMemberType((_b = this.name) === null || _b === void 0 ? void 0 : _b.text, options);
351
- (_c = options.typeChain) === null || _c === void 0 ? void 0 : _c.push(new interfaces_1.TypeChainEntry((_d = this.name) === null || _d === void 0 ? void 0 : _d.text, result, (_f = (_e = this.name) === null || _e === void 0 ? void 0 : _e.range) !== null && _f !== void 0 ? _f : this.range));
381
+ (_c = options.typeChain) === null || _c === void 0 ? void 0 : _c.push(new interfaces_1.TypeChainEntry((_d = this.name) === null || _d === void 0 ? void 0 : _d.text, result, options.flags, (_f = (_e = this.name) === null || _e === void 0 ? void 0 : _e.range) !== null && _f !== void 0 ? _f : this.range));
352
382
  if (result || options.flags & SymbolTable_1.SymbolTypeFlag.typetime) {
353
383
  // All types should be known at typetime
354
384
  return result;
@@ -421,6 +451,14 @@ class IndexedGetExpression extends AstNode_1.Expression {
421
451
  (0, visitors_2.walk)(this, 'index', visitor, options);
422
452
  }
423
453
  }
454
+ getType(options) {
455
+ const objType = this.obj.getType(options);
456
+ if ((0, reflection_1.isArrayType)(objType)) {
457
+ // This is used on an array. What is the default type of that array?
458
+ return objType.defaultType;
459
+ }
460
+ return super.getType(options);
461
+ }
424
462
  }
425
463
  exports.IndexedGetExpression = IndexedGetExpression;
426
464
  class GroupingExpression extends AstNode_1.Expression {
@@ -557,6 +595,10 @@ class ArrayLiteralExpression extends AstNode_1.Expression {
557
595
  (0, visitors_2.walkArray)(this.elements, visitor, options, this);
558
596
  }
559
597
  }
598
+ getType(options) {
599
+ const innerTypes = this.elements.filter(x => !(0, reflection_1.isCommentStatement)(x)).map(expr => expr.getType(options));
600
+ return new types_1.ArrayType(...innerTypes);
601
+ }
560
602
  }
561
603
  exports.ArrayLiteralExpression = ArrayLiteralExpression;
562
604
  class AAMemberExpression extends AstNode_1.Expression {
@@ -651,18 +693,13 @@ class AALiteralExpression extends AstNode_1.Expression {
651
693
  }
652
694
  }
653
695
  getType(options) {
654
- return super.getType(options);
655
- // TODO: create an AssocArray type, and populate its members:
656
- /*
657
- const resultType = new AssocArrayType();
696
+ const resultType = new AssociativeArrayType_1.AssociativeArrayType();
658
697
  for (const element of this.elements) {
659
- if (isAAMemberExpression(element)) {
660
- resultType.addMember(element.keyToken.text, element.range, element.getType(options), SymbolTypeFlags.runtime);
698
+ if ((0, reflection_1.isAAMemberExpression)(element)) {
699
+ resultType.addMember(element.keyToken.text, { definingNode: element }, element.getType(options), SymbolTable_1.SymbolTypeFlag.runtime);
661
700
  }
662
-
663
701
  }
664
702
  return resultType;
665
- */
666
703
  }
667
704
  }
668
705
  exports.AALiteralExpression = AALiteralExpression;
@@ -675,9 +712,19 @@ class UnaryExpression extends AstNode_1.Expression {
675
712
  this.range = util_1.default.createBoundingRange(this.operator, this.right);
676
713
  }
677
714
  transpile(state) {
715
+ let separatingWhitespace;
716
+ if ((0, reflection_1.isVariableExpression)(this.right)) {
717
+ separatingWhitespace = this.right.name.leadingWhitespace;
718
+ }
719
+ else if ((0, reflection_1.isLiteralExpression)(this.right)) {
720
+ separatingWhitespace = this.right.token.leadingWhitespace;
721
+ }
722
+ else {
723
+ separatingWhitespace = ' ';
724
+ }
678
725
  return [
679
726
  state.transpileToken(this.operator),
680
- ' ',
727
+ separatingWhitespace,
681
728
  ...this.right.transpile(state)
682
729
  ];
683
730
  }
@@ -686,6 +733,9 @@ class UnaryExpression extends AstNode_1.Expression {
686
733
  (0, visitors_2.walk)(this, 'right', visitor, options);
687
734
  }
688
735
  }
736
+ getType(options) {
737
+ return util_1.default.unaryOperatorResultType(this.operator, this.right.getType(options));
738
+ }
689
739
  }
690
740
  exports.UnaryExpression = UnaryExpression;
691
741
  class VariableExpression extends AstNode_1.Expression {
@@ -725,9 +775,9 @@ class VariableExpression extends AstNode_1.Expression {
725
775
  const nameKey = this.name.text;
726
776
  if (!resultType) {
727
777
  const symbolTable = this.getSymbolTable();
728
- resultType = symbolTable.getSymbolType(nameKey, Object.assign(Object.assign({}, options), { fullName: nameKey, tableProvider: () => this.getSymbolTable() }));
778
+ resultType = symbolTable === null || symbolTable === void 0 ? void 0 : symbolTable.getSymbolType(nameKey, Object.assign(Object.assign({}, options), { fullName: nameKey, tableProvider: () => this.getSymbolTable() }));
729
779
  }
730
- (_a = options.typeChain) === null || _a === void 0 ? void 0 : _a.push(new interfaces_1.TypeChainEntry(nameKey, resultType, this.range));
780
+ (_a = options.typeChain) === null || _a === void 0 ? void 0 : _a.push(new interfaces_1.TypeChainEntry(nameKey, resultType, options.flags, this.range));
731
781
  return resultType;
732
782
  }
733
783
  }
@@ -790,16 +840,10 @@ class SourceLiteralExpression extends AstNode_1.Expression {
790
840
  text = `"${locationUrl.substring(0, 4)}" + "${locationUrl.substring(4)}:${this.token.range.start.line + 1}"`;
791
841
  break;
792
842
  case TokenKind_1.TokenKind.PkgPathLiteral:
793
- let pkgPath1 = `pkg:/${state.file.pkgPath}`
794
- .replace(/\\/g, '/')
795
- .replace(/\.bs$/i, '.brs');
796
- text = `"${pkgPath1}"`;
843
+ text = `"${util_1.default.sanitizePkgPath(state.file.pkgPath)}"`;
797
844
  break;
798
845
  case TokenKind_1.TokenKind.PkgLocationLiteral:
799
- let pkgPath2 = `pkg:/${state.file.pkgPath}`
800
- .replace(/\\/g, '/')
801
- .replace(/\.bs$/i, '.brs');
802
- text = `"${pkgPath2}:" + str(LINE_NUM)`;
846
+ text = `"${util_1.default.sanitizePkgPath(state.file.pkgPath)}:" + str(LINE_NUM)`;
803
847
  break;
804
848
  case TokenKind_1.TokenKind.LineNumLiteral:
805
849
  default:
@@ -897,7 +941,29 @@ class CallfuncExpression extends AstNode_1.Expression {
897
941
  }
898
942
  }
899
943
  getType(options) {
900
- return this.callee.getType(options);
944
+ var _a;
945
+ let result = DynamicType_1.DynamicType.instance;
946
+ // a little hacky here with checking options.ignoreCall because callFuncExpression has the method name
947
+ // It's nicer for CallExpression, because it's a call on any expression.
948
+ const calleeType = this.callee.getType(Object.assign(Object.assign({}, options), { flags: SymbolTable_1.SymbolTypeFlag.runtime }));
949
+ if ((0, reflection_1.isComponentType)(calleeType) || (0, reflection_1.isReferenceType)(calleeType)) {
950
+ const funcType = calleeType.getCallFuncType(this.methodName.text, options);
951
+ (_a = options.typeChain) === null || _a === void 0 ? void 0 : _a.push(new interfaces_1.TypeChainEntry(this.methodName.text, funcType, options.flags, this.methodName.range, (0, creators_1.createToken)(TokenKind_1.TokenKind.Callfunc)));
952
+ if (options.ignoreCall) {
953
+ result = funcType;
954
+ }
955
+ /* TODO:
956
+ make callfunc return types work
957
+ else if (isCallableType(funcType) && (!isReferenceType(funcType.returnType) || funcType.returnType.isResolvable())) {
958
+ result = funcType.returnType;
959
+ } else if (!isReferenceType(funcType) && (funcType as any)?.returnType?.isResolvable()) {
960
+ result = (funcType as any).returnType;
961
+ } else {
962
+ return new TypePropertyReferenceType(funcType, 'returnType');
963
+ }
964
+ */
965
+ }
966
+ return result;
901
967
  }
902
968
  }
903
969
  exports.CallfuncExpression = CallfuncExpression;
@@ -1052,7 +1118,9 @@ class AnnotationExpression extends AstNode_1.Expression {
1052
1118
  this.nameToken = nameToken;
1053
1119
  this.kind = AstNode_1.AstNodeKind.AnnotationExpression;
1054
1120
  this.name = nameToken.text;
1055
- this.range = util_1.default.createBoundingRange(atToken, nameToken);
1121
+ }
1122
+ get range() {
1123
+ return util_1.default.createBoundingRange(this.atToken, this.nameToken, this.call);
1056
1124
  }
1057
1125
  /**
1058
1126
  * Convert annotation arguments to JavaScript types
@@ -1064,6 +1132,9 @@ class AnnotationExpression extends AstNode_1.Expression {
1064
1132
  }
1065
1133
  return this.call.args.map(e => expressionToValue(e, strict));
1066
1134
  }
1135
+ getLeadingTrivia() {
1136
+ return this.atToken.leadingTrivia;
1137
+ }
1067
1138
  transpile(state) {
1068
1139
  return [];
1069
1140
  }
@@ -1306,4 +1377,26 @@ class TypeCastExpression extends AstNode_1.Expression {
1306
1377
  }
1307
1378
  }
1308
1379
  exports.TypeCastExpression = TypeCastExpression;
1380
+ class TypedArrayExpression extends AstNode_1.Expression {
1381
+ constructor(innerType, leftBracket, rightBracket) {
1382
+ super();
1383
+ this.innerType = innerType;
1384
+ this.leftBracket = leftBracket;
1385
+ this.rightBracket = rightBracket;
1386
+ this.kind = AstNode_1.AstNodeKind.TypedArrayExpression;
1387
+ this.range = util_1.default.createBoundingRange(this.innerType, this.leftBracket, this.rightBracket);
1388
+ }
1389
+ transpile(state) {
1390
+ return [this.getType({ flags: SymbolTable_1.SymbolTypeFlag.typetime }).toTypeString()];
1391
+ }
1392
+ walk(visitor, options) {
1393
+ if (options.walkMode & visitors_2.InternalWalkMode.walkExpressions) {
1394
+ (0, visitors_2.walk)(this, 'innerType', visitor, options);
1395
+ }
1396
+ }
1397
+ getType(options) {
1398
+ return new types_1.ArrayType(this.innerType.getType(options));
1399
+ }
1400
+ }
1401
+ exports.TypedArrayExpression = TypedArrayExpression;
1309
1402
  //# sourceMappingURL=Expression.js.map