brighterscript 1.0.0-alpha.4 → 1.0.0-alpha.40

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 (620) hide show
  1. package/CHANGELOG.md +1387 -291
  2. package/README.md +72 -131
  3. package/bsconfig.schema.json +85 -1
  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 +42 -0
  8. package/dist/AstValidationSegmenter.js +237 -0
  9. package/dist/AstValidationSegmenter.js.map +1 -0
  10. package/dist/BsConfig.d.ts +56 -6
  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.d.ts +5 -6
  15. package/dist/Cache.js +12 -11
  16. package/dist/Cache.js.map +1 -1
  17. package/dist/CacheVerifier.d.ts +7 -0
  18. package/dist/CacheVerifier.js +20 -0
  19. package/dist/CacheVerifier.js.map +1 -0
  20. package/dist/CodeActionUtil.d.ts +6 -3
  21. package/dist/CodeActionUtil.js +19 -5
  22. package/dist/CodeActionUtil.js.map +1 -1
  23. package/dist/CommentFlagProcessor.d.ts +7 -6
  24. package/dist/CommentFlagProcessor.js +11 -8
  25. package/dist/CommentFlagProcessor.js.map +1 -1
  26. package/dist/CrossScopeValidator.d.ts +67 -0
  27. package/dist/CrossScopeValidator.js +617 -0
  28. package/dist/CrossScopeValidator.js.map +1 -0
  29. package/dist/DependencyGraph.d.ts +8 -3
  30. package/dist/DependencyGraph.js +49 -16
  31. package/dist/DependencyGraph.js.map +1 -1
  32. package/dist/DiagnosticCollection.d.ts +5 -3
  33. package/dist/DiagnosticCollection.js +21 -16
  34. package/dist/DiagnosticCollection.js.map +1 -1
  35. package/dist/DiagnosticFilterer.d.ts +8 -4
  36. package/dist/DiagnosticFilterer.js +90 -54
  37. package/dist/DiagnosticFilterer.js.map +1 -1
  38. package/dist/DiagnosticManager.d.ts +61 -0
  39. package/dist/DiagnosticManager.js +238 -0
  40. package/dist/DiagnosticManager.js.map +1 -0
  41. package/dist/DiagnosticMessages.d.ts +204 -24
  42. package/dist/DiagnosticMessages.js +266 -33
  43. package/dist/DiagnosticMessages.js.map +1 -1
  44. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  45. package/dist/DiagnosticSeverityAdjuster.js +41 -0
  46. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  47. package/dist/FunctionScope.d.ts +28 -0
  48. package/dist/FunctionScope.js +52 -0
  49. package/dist/FunctionScope.js.map +1 -0
  50. package/dist/KeyedThrottler.d.ts +3 -3
  51. package/dist/KeyedThrottler.js +3 -3
  52. package/dist/KeyedThrottler.js.map +1 -1
  53. package/dist/LanguageServer.d.ts +72 -47
  54. package/dist/LanguageServer.js +545 -314
  55. package/dist/LanguageServer.js.map +1 -1
  56. package/dist/Logger.d.ts +9 -10
  57. package/dist/Logger.js +36 -30
  58. package/dist/Logger.js.map +1 -1
  59. package/dist/PluginInterface.d.ts +29 -7
  60. package/dist/PluginInterface.js +90 -7
  61. package/dist/PluginInterface.js.map +1 -1
  62. package/dist/Program.d.ts +201 -100
  63. package/dist/Program.js +1079 -700
  64. package/dist/Program.js.map +1 -1
  65. package/dist/ProgramBuilder.d.ts +29 -18
  66. package/dist/ProgramBuilder.js +178 -141
  67. package/dist/ProgramBuilder.js.map +1 -1
  68. package/dist/Scope.d.ts +144 -109
  69. package/dist/Scope.js +533 -552
  70. package/dist/Scope.js.map +1 -1
  71. package/dist/SemanticTokenUtils.d.ts +14 -0
  72. package/dist/SemanticTokenUtils.js +85 -0
  73. package/dist/SemanticTokenUtils.js.map +1 -0
  74. package/dist/Stopwatch.d.ts +4 -0
  75. package/dist/Stopwatch.js +8 -1
  76. package/dist/Stopwatch.js.map +1 -1
  77. package/dist/SymbolTable.d.ts +91 -24
  78. package/dist/SymbolTable.js +291 -64
  79. package/dist/SymbolTable.js.map +1 -1
  80. package/dist/SymbolTypeFlag.d.ts +9 -0
  81. package/dist/SymbolTypeFlag.js +14 -0
  82. package/dist/SymbolTypeFlag.js.map +1 -0
  83. package/dist/Throttler.d.ts +12 -0
  84. package/dist/Throttler.js +39 -0
  85. package/dist/Throttler.js.map +1 -1
  86. package/dist/Watcher.d.ts +0 -3
  87. package/dist/Watcher.js +0 -3
  88. package/dist/Watcher.js.map +1 -1
  89. package/dist/XmlScope.d.ts +5 -15
  90. package/dist/XmlScope.js +35 -87
  91. package/dist/XmlScope.js.map +1 -1
  92. package/dist/astUtils/CachedLookups.d.ts +50 -0
  93. package/dist/astUtils/CachedLookups.js +335 -0
  94. package/dist/astUtils/CachedLookups.js.map +1 -0
  95. package/dist/astUtils/CachedLookups.spec.js +39 -0
  96. package/dist/astUtils/CachedLookups.spec.js.map +1 -0
  97. package/dist/astUtils/Editor.d.ts +69 -0
  98. package/dist/astUtils/Editor.js +245 -0
  99. package/dist/astUtils/Editor.js.map +1 -0
  100. package/dist/astUtils/Editor.spec.js +258 -0
  101. package/dist/astUtils/Editor.spec.js.map +1 -0
  102. package/dist/astUtils/creators.d.ts +36 -19
  103. package/dist/astUtils/creators.js +222 -43
  104. package/dist/astUtils/creators.js.map +1 -1
  105. package/dist/astUtils/creators.spec.js +5 -5
  106. package/dist/astUtils/creators.spec.js.map +1 -1
  107. package/dist/astUtils/reflection.d.ts +148 -82
  108. package/dist/astUtils/reflection.js +324 -137
  109. package/dist/astUtils/reflection.js.map +1 -1
  110. package/dist/astUtils/reflection.spec.js +267 -167
  111. package/dist/astUtils/reflection.spec.js.map +1 -1
  112. package/dist/astUtils/stackedVisitor.js.map +1 -1
  113. package/dist/astUtils/stackedVisitor.spec.js +14 -14
  114. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  115. package/dist/astUtils/visitors.d.ts +114 -53
  116. package/dist/astUtils/visitors.js +70 -13
  117. package/dist/astUtils/visitors.js.map +1 -1
  118. package/dist/astUtils/visitors.spec.js +463 -51
  119. package/dist/astUtils/visitors.spec.js.map +1 -1
  120. package/dist/astUtils/xml.d.ts +9 -8
  121. package/dist/astUtils/xml.js +10 -5
  122. package/dist/astUtils/xml.js.map +1 -1
  123. package/dist/bscPlugin/BscPlugin.d.ts +22 -1
  124. package/dist/bscPlugin/BscPlugin.js +88 -0
  125. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  126. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  127. package/dist/bscPlugin/CallExpressionInfo.js +135 -0
  128. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  129. package/dist/bscPlugin/FileWriter.d.ts +6 -0
  130. package/dist/bscPlugin/FileWriter.js +24 -0
  131. package/dist/bscPlugin/FileWriter.js.map +1 -0
  132. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  133. package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
  134. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  135. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +1 -1
  136. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +30 -18
  137. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  138. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +94 -21
  139. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  140. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +64 -0
  141. package/dist/bscPlugin/completions/CompletionsProcessor.js +626 -0
  142. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  143. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +2188 -0
  144. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
  145. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  146. package/dist/bscPlugin/definition/DefinitionProvider.js +212 -0
  147. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  148. package/dist/bscPlugin/definition/DefinitionProvider.spec.d.ts +1 -0
  149. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +87 -0
  150. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  151. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  152. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  153. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  154. package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
  155. package/dist/bscPlugin/hover/HoverProcessor.js +218 -0
  156. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  157. package/dist/bscPlugin/hover/HoverProcessor.spec.d.ts +1 -0
  158. package/dist/bscPlugin/hover/HoverProcessor.spec.js +786 -0
  159. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -0
  160. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  161. package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
  162. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  163. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +1 -0
  164. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  165. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  166. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
  167. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +154 -0
  168. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  169. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +1 -0
  170. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +530 -0
  171. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -0
  172. package/dist/bscPlugin/serialize/BslibInjector.spec.d.ts +1 -0
  173. package/dist/bscPlugin/serialize/BslibInjector.spec.js +33 -0
  174. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
  175. package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
  176. package/dist/bscPlugin/serialize/BslibManager.js +46 -0
  177. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  178. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  179. package/dist/bscPlugin/serialize/FileSerializer.js +75 -0
  180. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  181. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  182. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  183. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  184. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.d.ts +1 -0
  185. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +291 -0
  186. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
  187. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  188. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  189. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  190. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.d.ts +1 -0
  191. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
  192. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
  193. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  194. package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
  195. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  196. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +21 -0
  197. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +201 -0
  198. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  199. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
  200. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +75 -0
  201. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
  202. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  203. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  204. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  205. package/dist/bscPlugin/validation/BrsFileAfterValidator.d.ts +7 -0
  206. package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
  207. package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
  208. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +36 -0
  209. package/dist/bscPlugin/validation/BrsFileValidator.js +534 -0
  210. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  211. package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +1 -0
  212. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +1118 -0
  213. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -0
  214. package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
  215. package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
  216. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  217. package/dist/bscPlugin/validation/ScopeValidator.d.ts +126 -0
  218. package/dist/bscPlugin/validation/ScopeValidator.js +1039 -0
  219. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  220. package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
  221. package/dist/bscPlugin/validation/ScopeValidator.spec.js +3346 -0
  222. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
  223. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  224. package/dist/bscPlugin/validation/XmlFileValidator.js +44 -0
  225. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  226. package/dist/cli.js +117 -11
  227. package/dist/cli.js.map +1 -1
  228. package/dist/deferred.d.ts +3 -3
  229. package/dist/deferred.js.map +1 -1
  230. package/dist/diagnosticUtils.d.ts +10 -3
  231. package/dist/diagnosticUtils.js +62 -24
  232. package/dist/diagnosticUtils.js.map +1 -1
  233. package/dist/examples/plugins/removePrint.js +8 -12
  234. package/dist/examples/plugins/removePrint.js.map +1 -1
  235. package/dist/files/AssetFile.d.ts +24 -0
  236. package/dist/files/AssetFile.js +25 -0
  237. package/dist/files/AssetFile.js.map +1 -0
  238. package/dist/files/BrsFile.Class.spec.js +912 -153
  239. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  240. package/dist/files/BrsFile.d.ts +142 -85
  241. package/dist/files/BrsFile.js +845 -935
  242. package/dist/files/BrsFile.js.map +1 -1
  243. package/dist/files/BrsFile.spec.js +3778 -862
  244. package/dist/files/BrsFile.spec.js.map +1 -1
  245. package/dist/files/BscFile.d.ts +101 -0
  246. package/dist/files/BscFile.js +15 -0
  247. package/dist/files/BscFile.js.map +1 -0
  248. package/dist/files/Factory.d.ts +25 -0
  249. package/dist/files/Factory.js +22 -0
  250. package/dist/files/Factory.js.map +1 -0
  251. package/dist/files/LazyFileData.d.ts +20 -0
  252. package/dist/files/LazyFileData.js +54 -0
  253. package/dist/files/LazyFileData.js.map +1 -0
  254. package/dist/files/LazyFileData.spec.d.ts +1 -0
  255. package/dist/files/LazyFileData.spec.js +27 -0
  256. package/dist/files/LazyFileData.spec.js.map +1 -0
  257. package/dist/files/XmlFile.d.ts +73 -41
  258. package/dist/files/XmlFile.js +128 -138
  259. package/dist/files/XmlFile.js.map +1 -1
  260. package/dist/files/XmlFile.spec.js +451 -324
  261. package/dist/files/XmlFile.spec.js.map +1 -1
  262. package/dist/files/tests/imports.spec.js +62 -52
  263. package/dist/files/tests/imports.spec.js.map +1 -1
  264. package/dist/files/tests/optionalChaning.spec.d.ts +1 -0
  265. package/dist/files/tests/optionalChaning.spec.js +152 -0
  266. package/dist/files/tests/optionalChaning.spec.js.map +1 -0
  267. package/dist/globalCallables.d.ts +3 -1
  268. package/dist/globalCallables.js +417 -163
  269. package/dist/globalCallables.js.map +1 -1
  270. package/dist/index.d.ts +26 -3
  271. package/dist/index.js +44 -5
  272. package/dist/index.js.map +1 -1
  273. package/dist/interfaces.d.ts +783 -122
  274. package/dist/interfaces.js +21 -0
  275. package/dist/interfaces.js.map +1 -1
  276. package/dist/lexer/Character.spec.js +5 -5
  277. package/dist/lexer/Character.spec.js.map +1 -1
  278. package/dist/lexer/Lexer.d.ts +51 -12
  279. package/dist/lexer/Lexer.js +201 -57
  280. package/dist/lexer/Lexer.js.map +1 -1
  281. package/dist/lexer/Lexer.spec.js +781 -565
  282. package/dist/lexer/Lexer.spec.js.map +1 -1
  283. package/dist/lexer/Token.d.ts +27 -11
  284. package/dist/lexer/Token.js +10 -2
  285. package/dist/lexer/Token.js.map +1 -1
  286. package/dist/lexer/TokenKind.d.ts +31 -2
  287. package/dist/lexer/TokenKind.js +134 -10
  288. package/dist/lexer/TokenKind.js.map +1 -1
  289. package/dist/logging.d.ts +9 -0
  290. package/dist/logging.js +16 -0
  291. package/dist/logging.js.map +1 -0
  292. package/dist/parser/AstNode.d.ts +191 -0
  293. package/dist/parser/AstNode.js +269 -0
  294. package/dist/parser/AstNode.js.map +1 -0
  295. package/dist/parser/AstNode.spec.d.ts +1 -0
  296. package/dist/parser/AstNode.spec.js +1455 -0
  297. package/dist/parser/AstNode.spec.js.map +1 -0
  298. package/dist/parser/BrightScriptDocParser.d.ts +56 -0
  299. package/dist/parser/BrightScriptDocParser.js +294 -0
  300. package/dist/parser/BrightScriptDocParser.js.map +1 -0
  301. package/dist/parser/BrightScriptDocParser.spec.d.ts +1 -0
  302. package/dist/parser/BrightScriptDocParser.spec.js +310 -0
  303. package/dist/parser/BrightScriptDocParser.spec.js.map +1 -0
  304. package/dist/parser/BrsTranspileState.d.ts +22 -3
  305. package/dist/parser/BrsTranspileState.js +19 -0
  306. package/dist/parser/BrsTranspileState.js.map +1 -1
  307. package/dist/parser/Expression.d.ts +489 -221
  308. package/dist/parser/Expression.js +1206 -506
  309. package/dist/parser/Expression.js.map +1 -1
  310. package/dist/parser/Expression.spec.d.ts +1 -0
  311. package/dist/parser/Expression.spec.js +40 -0
  312. package/dist/parser/Expression.spec.js.map +1 -0
  313. package/dist/parser/Parser.Class.spec.js +230 -125
  314. package/dist/parser/Parser.Class.spec.js.map +1 -1
  315. package/dist/parser/Parser.d.ts +113 -124
  316. package/dist/parser/Parser.js +1510 -983
  317. package/dist/parser/Parser.js.map +1 -1
  318. package/dist/parser/Parser.spec.d.ts +3 -1
  319. package/dist/parser/Parser.spec.js +1533 -517
  320. package/dist/parser/Parser.spec.js.map +1 -1
  321. package/dist/parser/SGParser.d.ts +60 -7
  322. package/dist/parser/SGParser.js +225 -185
  323. package/dist/parser/SGParser.js.map +1 -1
  324. package/dist/parser/SGParser.spec.js +29 -32
  325. package/dist/parser/SGParser.spec.js.map +1 -1
  326. package/dist/parser/SGTypes.d.ts +295 -52
  327. package/dist/parser/SGTypes.js +540 -187
  328. package/dist/parser/SGTypes.js.map +1 -1
  329. package/dist/parser/Statement.d.ts +808 -261
  330. package/dist/parser/Statement.js +2232 -588
  331. package/dist/parser/Statement.js.map +1 -1
  332. package/dist/parser/Statement.spec.js +133 -36
  333. package/dist/parser/Statement.spec.js.map +1 -1
  334. package/dist/parser/TranspileState.d.ts +26 -12
  335. package/dist/parser/TranspileState.js +114 -15
  336. package/dist/parser/TranspileState.js.map +1 -1
  337. package/dist/parser/tests/Parser.spec.d.ts +3 -9
  338. package/dist/parser/tests/Parser.spec.js +7 -13
  339. package/dist/parser/tests/Parser.spec.js.map +1 -1
  340. package/dist/parser/tests/controlFlow/For.spec.js +83 -75
  341. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  342. package/dist/parser/tests/controlFlow/ForEach.spec.js +58 -51
  343. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  344. package/dist/parser/tests/controlFlow/If.spec.js +382 -239
  345. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  346. package/dist/parser/tests/controlFlow/While.spec.js +52 -45
  347. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  348. package/dist/parser/tests/expression/Additive.spec.js +51 -43
  349. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  350. package/dist/parser/tests/expression/ArrayLiterals.spec.js +192 -142
  351. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  352. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +236 -160
  353. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  354. package/dist/parser/tests/expression/Boolean.spec.js +41 -34
  355. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  356. package/dist/parser/tests/expression/Call.spec.js +173 -55
  357. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  358. package/dist/parser/tests/expression/Exponential.spec.js +20 -20
  359. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  360. package/dist/parser/tests/expression/Function.spec.js +291 -282
  361. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  362. package/dist/parser/tests/expression/Indexing.spec.js +193 -110
  363. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  364. package/dist/parser/tests/expression/Multiplicative.spec.js +42 -42
  365. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  366. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +213 -115
  367. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  368. package/dist/parser/tests/expression/PrefixUnary.spec.js +58 -52
  369. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  370. package/dist/parser/tests/expression/Primary.spec.js +76 -60
  371. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  372. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +1 -0
  373. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +171 -0
  374. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -0
  375. package/dist/parser/tests/expression/Relational.spec.js +50 -50
  376. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  377. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +31 -31
  378. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  379. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +235 -94
  380. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  381. package/dist/parser/tests/expression/TernaryExpression.spec.js +403 -174
  382. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  383. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
  384. package/dist/parser/tests/expression/TypeExpression.spec.js +126 -0
  385. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
  386. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
  387. package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
  388. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
  389. package/dist/parser/tests/statement/AssignmentOperators.spec.js +44 -44
  390. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  391. package/dist/parser/tests/statement/ConstStatement.spec.d.ts +1 -0
  392. package/dist/parser/tests/statement/ConstStatement.spec.js +262 -0
  393. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -0
  394. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  395. package/dist/parser/tests/statement/Continue.spec.js +119 -0
  396. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  397. package/dist/parser/tests/statement/Declaration.spec.js +61 -55
  398. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  399. package/dist/parser/tests/statement/Dim.spec.js +22 -22
  400. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  401. package/dist/parser/tests/statement/Enum.spec.d.ts +1 -0
  402. package/dist/parser/tests/statement/Enum.spec.js +744 -0
  403. package/dist/parser/tests/statement/Enum.spec.js.map +1 -0
  404. package/dist/parser/tests/statement/For.spec.d.ts +1 -0
  405. package/dist/parser/tests/statement/For.spec.js +45 -0
  406. package/dist/parser/tests/statement/For.spec.js.map +1 -0
  407. package/dist/parser/tests/statement/ForEach.spec.d.ts +1 -0
  408. package/dist/parser/tests/statement/ForEach.spec.js +36 -0
  409. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -0
  410. package/dist/parser/tests/statement/Function.spec.js +226 -215
  411. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  412. package/dist/parser/tests/statement/Goto.spec.js +16 -15
  413. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  414. package/dist/parser/tests/statement/Increment.spec.js +64 -59
  415. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  416. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +1 -0
  417. package/dist/parser/tests/statement/InterfaceStatement.spec.js +110 -0
  418. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -0
  419. package/dist/parser/tests/statement/LibraryStatement.spec.js +22 -22
  420. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  421. package/dist/parser/tests/statement/Misc.spec.js +127 -168
  422. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  423. package/dist/parser/tests/statement/PrintStatement.spec.js +133 -114
  424. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  425. package/dist/parser/tests/statement/ReturnStatement.spec.js +57 -54
  426. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  427. package/dist/parser/tests/statement/Set.spec.js +131 -117
  428. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  429. package/dist/parser/tests/statement/Stop.spec.js +14 -13
  430. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  431. package/dist/parser/tests/statement/Throw.spec.js +11 -8
  432. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  433. package/dist/parser/tests/statement/TryCatch.spec.js +26 -15
  434. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  435. package/dist/preprocessor/Manifest.d.ts +6 -6
  436. package/dist/preprocessor/Manifest.js +17 -38
  437. package/dist/preprocessor/Manifest.js.map +1 -1
  438. package/dist/preprocessor/Manifest.spec.d.ts +1 -0
  439. package/dist/preprocessor/Manifest.spec.js +78 -103
  440. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  441. package/dist/roku-types/data.json +19452 -0
  442. package/dist/roku-types/index.d.ts +5533 -0
  443. package/dist/roku-types/index.js +11 -0
  444. package/dist/roku-types/index.js.map +1 -0
  445. package/dist/types/ArrayType.d.ts +9 -5
  446. package/dist/types/ArrayType.js +73 -24
  447. package/dist/types/ArrayType.js.map +1 -1
  448. package/dist/types/ArrayType.spec.js +39 -11
  449. package/dist/types/ArrayType.spec.js.map +1 -1
  450. package/dist/types/AssociativeArrayType.d.ts +14 -0
  451. package/dist/types/AssociativeArrayType.js +60 -0
  452. package/dist/types/AssociativeArrayType.js.map +1 -0
  453. package/dist/types/BaseFunctionType.d.ts +9 -0
  454. package/dist/types/BaseFunctionType.js +25 -0
  455. package/dist/types/BaseFunctionType.js.map +1 -0
  456. package/dist/types/BooleanType.d.ts +10 -5
  457. package/dist/types/BooleanType.js +21 -9
  458. package/dist/types/BooleanType.js.map +1 -1
  459. package/dist/types/BooleanType.spec.js +10 -4
  460. package/dist/types/BooleanType.spec.js.map +1 -1
  461. package/dist/types/BscType.d.ts +29 -3
  462. package/dist/types/BscType.js +121 -0
  463. package/dist/types/BscType.js.map +1 -1
  464. package/dist/types/BscTypeKind.d.ts +25 -0
  465. package/dist/types/BscTypeKind.js +30 -0
  466. package/dist/types/BscTypeKind.js.map +1 -0
  467. package/dist/types/BuiltInInterfaceAdder.d.ts +25 -0
  468. package/dist/types/BuiltInInterfaceAdder.js +201 -0
  469. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  470. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
  471. package/dist/types/BuiltInInterfaceAdder.spec.js +115 -0
  472. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
  473. package/dist/types/ClassType.d.ts +16 -0
  474. package/dist/types/ClassType.js +57 -0
  475. package/dist/types/ClassType.js.map +1 -0
  476. package/dist/types/ClassType.spec.d.ts +1 -0
  477. package/dist/types/ClassType.spec.js +76 -0
  478. package/dist/types/ClassType.spec.js.map +1 -0
  479. package/dist/types/ComponentType.d.ts +27 -0
  480. package/dist/types/ComponentType.js +83 -0
  481. package/dist/types/ComponentType.js.map +1 -0
  482. package/dist/types/DoubleType.d.ts +10 -5
  483. package/dist/types/DoubleType.js +25 -18
  484. package/dist/types/DoubleType.js.map +1 -1
  485. package/dist/types/DoubleType.spec.js +12 -4
  486. package/dist/types/DoubleType.spec.js.map +1 -1
  487. package/dist/types/DynamicType.d.ts +12 -5
  488. package/dist/types/DynamicType.js +22 -6
  489. package/dist/types/DynamicType.js.map +1 -1
  490. package/dist/types/DynamicType.spec.js +16 -5
  491. package/dist/types/DynamicType.spec.js.map +1 -1
  492. package/dist/types/EnumType.d.ts +40 -0
  493. package/dist/types/EnumType.js +80 -0
  494. package/dist/types/EnumType.js.map +1 -0
  495. package/dist/types/EnumType.spec.d.ts +1 -0
  496. package/dist/types/EnumType.spec.js +33 -0
  497. package/dist/types/EnumType.spec.js.map +1 -0
  498. package/dist/types/FloatType.d.ts +10 -5
  499. package/dist/types/FloatType.js +25 -18
  500. package/dist/types/FloatType.js.map +1 -1
  501. package/dist/types/FloatType.spec.js +4 -4
  502. package/dist/types/FloatType.spec.js.map +1 -1
  503. package/dist/types/FunctionType.d.ts +10 -22
  504. package/dist/types/FunctionType.js +26 -63
  505. package/dist/types/FunctionType.js.map +1 -1
  506. package/dist/types/InheritableType.d.ts +28 -0
  507. package/dist/types/InheritableType.js +157 -0
  508. package/dist/types/InheritableType.js.map +1 -0
  509. package/dist/types/IntegerType.d.ts +10 -5
  510. package/dist/types/IntegerType.js +25 -18
  511. package/dist/types/IntegerType.js.map +1 -1
  512. package/dist/types/IntegerType.spec.js +8 -4
  513. package/dist/types/IntegerType.spec.js.map +1 -1
  514. package/dist/types/InterfaceType.d.ts +14 -6
  515. package/dist/types/InterfaceType.js +26 -15
  516. package/dist/types/InterfaceType.js.map +1 -1
  517. package/dist/types/InterfaceType.spec.d.ts +1 -0
  518. package/dist/types/InterfaceType.spec.js +227 -0
  519. package/dist/types/InterfaceType.spec.js.map +1 -0
  520. package/dist/types/InvalidType.d.ts +9 -5
  521. package/dist/types/InvalidType.js +20 -9
  522. package/dist/types/InvalidType.js.map +1 -1
  523. package/dist/types/InvalidType.spec.js +8 -4
  524. package/dist/types/InvalidType.spec.js.map +1 -1
  525. package/dist/types/LongIntegerType.d.ts +10 -5
  526. package/dist/types/LongIntegerType.js +25 -18
  527. package/dist/types/LongIntegerType.js.map +1 -1
  528. package/dist/types/LongIntegerType.spec.js +10 -4
  529. package/dist/types/LongIntegerType.spec.js.map +1 -1
  530. package/dist/types/NamespaceType.d.ts +12 -0
  531. package/dist/types/NamespaceType.js +28 -0
  532. package/dist/types/NamespaceType.js.map +1 -0
  533. package/dist/types/ObjectType.d.ts +10 -5
  534. package/dist/types/ObjectType.js +23 -9
  535. package/dist/types/ObjectType.js.map +1 -1
  536. package/dist/types/ObjectType.spec.js +3 -3
  537. package/dist/types/ObjectType.spec.js.map +1 -1
  538. package/dist/types/ReferenceType.d.ts +79 -0
  539. package/dist/types/ReferenceType.js +522 -0
  540. package/dist/types/ReferenceType.js.map +1 -0
  541. package/dist/types/ReferenceType.spec.d.ts +1 -0
  542. package/dist/types/ReferenceType.spec.js +151 -0
  543. package/dist/types/ReferenceType.spec.js.map +1 -0
  544. package/dist/types/StringType.d.ts +13 -5
  545. package/dist/types/StringType.js +25 -9
  546. package/dist/types/StringType.js.map +1 -1
  547. package/dist/types/StringType.spec.js +3 -3
  548. package/dist/types/StringType.spec.js.map +1 -1
  549. package/dist/types/TypedFunctionType.d.ts +33 -0
  550. package/dist/types/TypedFunctionType.js +106 -0
  551. package/dist/types/TypedFunctionType.js.map +1 -0
  552. package/dist/types/TypedFunctionType.spec.d.ts +1 -0
  553. package/dist/types/TypedFunctionType.spec.js +122 -0
  554. package/dist/types/TypedFunctionType.spec.js.map +1 -0
  555. package/dist/types/UninitializedType.d.ts +8 -6
  556. package/dist/types/UninitializedType.js +15 -9
  557. package/dist/types/UninitializedType.js.map +1 -1
  558. package/dist/types/UnionType.d.ts +20 -0
  559. package/dist/types/UnionType.js +127 -0
  560. package/dist/types/UnionType.js.map +1 -0
  561. package/dist/types/UnionType.spec.d.ts +1 -0
  562. package/dist/types/UnionType.spec.js +129 -0
  563. package/dist/types/UnionType.spec.js.map +1 -0
  564. package/dist/types/VoidType.d.ts +10 -5
  565. package/dist/types/VoidType.js +20 -9
  566. package/dist/types/VoidType.js.map +1 -1
  567. package/dist/types/VoidType.spec.js +3 -3
  568. package/dist/types/VoidType.spec.js.map +1 -1
  569. package/dist/types/helper.spec.d.ts +1 -0
  570. package/dist/types/helper.spec.js +144 -0
  571. package/dist/types/helper.spec.js.map +1 -0
  572. package/dist/types/helpers.d.ts +26 -0
  573. package/dist/types/helpers.js +191 -0
  574. package/dist/types/helpers.js.map +1 -0
  575. package/dist/types/index.d.ts +22 -0
  576. package/dist/types/index.js +39 -0
  577. package/dist/types/index.js.map +1 -0
  578. package/dist/util.d.ts +272 -117
  579. package/dist/util.js +1583 -343
  580. package/dist/util.js.map +1 -1
  581. package/dist/validators/ClassValidator.d.ts +9 -15
  582. package/dist/validators/ClassValidator.js +85 -138
  583. package/dist/validators/ClassValidator.js.map +1 -1
  584. package/package.json +174 -138
  585. package/dist/astUtils/index.d.ts +0 -7
  586. package/dist/astUtils/index.js +0 -26
  587. package/dist/astUtils/index.js.map +0 -1
  588. package/dist/lexer/index.d.ts +0 -3
  589. package/dist/lexer/index.js +0 -17
  590. package/dist/lexer/index.js.map +0 -1
  591. package/dist/parser/index.d.ts +0 -3
  592. package/dist/parser/index.js +0 -16
  593. package/dist/parser/index.js.map +0 -1
  594. package/dist/preprocessor/Chunk.d.ts +0 -82
  595. package/dist/preprocessor/Chunk.js +0 -77
  596. package/dist/preprocessor/Chunk.js.map +0 -1
  597. package/dist/preprocessor/Preprocessor.d.ts +0 -60
  598. package/dist/preprocessor/Preprocessor.js +0 -156
  599. package/dist/preprocessor/Preprocessor.js.map +0 -1
  600. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  601. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  602. package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
  603. package/dist/preprocessor/PreprocessorParser.js +0 -194
  604. package/dist/preprocessor/PreprocessorParser.js.map +0 -1
  605. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  606. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  607. package/dist/preprocessor/index.d.ts +0 -3
  608. package/dist/preprocessor/index.js +0 -16
  609. package/dist/preprocessor/index.js.map +0 -1
  610. package/dist/types/CustomType.d.ts +0 -10
  611. package/dist/types/CustomType.js +0 -35
  612. package/dist/types/CustomType.js.map +0 -1
  613. package/dist/types/FunctionType.spec.js +0 -29
  614. package/dist/types/FunctionType.spec.js.map +0 -1
  615. package/dist/types/LazyType.d.ts +0 -15
  616. package/dist/types/LazyType.js +0 -32
  617. package/dist/types/LazyType.js.map +0 -1
  618. /package/dist/{preprocessor/Preprocessor.spec.d.ts → astUtils/CachedLookups.spec.d.ts} +0 -0
  619. /package/dist/{preprocessor/PreprocessorParser.spec.d.ts → astUtils/Editor.spec.d.ts} +0 -0
  620. /package/dist/{types/FunctionType.spec.d.ts → bscPlugin/completions/CompletionsProcessor.spec.d.ts} +0 -0
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isNumberType = exports.isDynamicType = exports.isObjectType = exports.isArrayType = exports.isInterfaceType = exports.isUninitializedType = exports.isCustomType = exports.isVoidType = exports.isInvalidType = exports.isDoubleType = exports.isFloatType = exports.isLongIntegerType = exports.isIntegerType = exports.isBooleanType = exports.isFunctionType = exports.isStringType = exports.isAnnotationExpression = exports.isFunctionParameterExpression = exports.isTaggedTemplateStringExpression = exports.isTemplateStringExpression = exports.isTemplateStringQuasiExpression = exports.isCallfuncExpression = exports.isNewExpression = exports.isSourceLiteralExpression = exports.isVariableExpression = exports.isUnaryExpression = exports.isAALiteralExpression = exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = exports.isGroupingExpression = exports.isIndexedGetExpression = exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isNamespacedVariableNameExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isClassFieldStatement = exports.isClassMethodStatement = exports.isImportStatement = exports.isClassStatement = exports.isNamespaceStatement = exports.isLibraryStatement = exports.isIndexedSetStatement = exports.isDottedSetStatement = exports.isWhileStatement = exports.isForEachStatement = exports.isForStatement = exports.isStopStatement = exports.isEndStatement = exports.isReturnStatement = exports.isLabelStatement = exports.isGotoStatement = exports.isPrintStatement = exports.isIncrementStatement = exports.isIfStatement = exports.isFunctionStatement = exports.isExitWhileStatement = exports.isExitForStatement = exports.isCommentStatement = exports.isExpressionStatement = exports.isBlock = exports.isAssignmentStatement = exports.isBody = exports.isStatement = exports.isXmlScope = exports.isXmlFile = exports.isBrsFile = void 0;
3
+ exports.isConditionalCompileErrorStatement = exports.isConditionalCompileConstStatement = exports.isConditionalCompileStatement = exports.isTypecastStatement = exports.isThrowStatement = exports.isCatchStatement = exports.isTryCatchStatement = exports.isContinueStatement = exports.isConstStatement = exports.isEnumMemberStatement = exports.isEnumStatement = exports.isMemberMethod = exports.isMemberField = exports.isInterfaceFieldStatement = exports.isInterfaceMethodStatement = exports.isInterfaceStatement = exports.isFieldStatement = exports.isMethodStatement = exports.isImportStatement = exports.isClassStatement = exports.isNamespaceStatement = exports.isLibraryStatement = exports.isIndexedSetStatement = exports.isDottedSetStatement = exports.isDimStatement = exports.isWhileStatement = exports.isForEachStatement = exports.isForStatement = exports.isStopStatement = exports.isEndStatement = exports.isNullCoalescingExpression = exports.isTernaryExpression = exports.isReturnStatement = exports.isLabelStatement = exports.isGotoStatement = exports.isPrintStatement = exports.isIncrementStatement = exports.isIfStatement = exports.isFunctionStatement = exports.isExitStatement = exports.isExpressionStatement = exports.isBlock = exports.isAssignmentStatement = exports.isBody = exports.isStatement = exports.isXmlScope = exports.isBscFile = exports.isAssetFile = exports.isXmlFile = exports.isBrsFile = void 0;
4
+ exports.isArrayDefaultTypeReferenceType = exports.isBinaryOperatorReferenceType = exports.isTypePropertyReferenceType = exports.isEnumMemberType = exports.isEnumType = exports.isReferenceType = exports.isObjectType = exports.isInterfaceType = exports.isDynamicType = exports.isComponentType = exports.isClassType = exports.isVoidType = exports.isInvalidType = exports.isDoubleType = exports.isFloatType = exports.isLongIntegerType = exports.isIntegerType = exports.isBooleanType = exports.isFunctionType = exports.isTypedFunctionType = exports.isStringType = exports.isTypedArrayExpression = exports.isTypecastExpression = exports.isTypeExpression = exports.isTypedefProvider = exports.isAnnotationExpression = exports.isFunctionParameterExpression = exports.isTaggedTemplateStringExpression = exports.isTemplateStringExpression = exports.isTemplateStringQuasiExpression = exports.isCallfuncExpression = exports.isNewExpression = exports.isSourceLiteralExpression = exports.isVariableExpression = exports.isUnaryExpression = exports.isAAMemberExpression = exports.isAALiteralExpression = exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = exports.isGroupingExpression = exports.isIndexedGetExpression = exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isAugmentedAssignmentStatement = exports.isAliasStatement = void 0;
5
+ exports.isBsDiagnostic = exports.isLiteralDouble = exports.isLiteralFloat = exports.isLiteralLongInteger = exports.isLiteralInteger = exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isNativeType = exports.isPrimitiveType = exports.isNumberType = exports.isAnyReferenceType = exports.isCallableType = exports.isInheritableType = exports.isAssociativeArrayType = exports.isArrayType = exports.isUninitializedType = exports.isUnionType = exports.isNamespaceType = void 0;
4
6
  const visitors_1 = require("./visitors");
7
+ const AstNode_1 = require("../parser/AstNode");
8
+ const BscTypeKind_1 = require("../types/BscTypeKind");
9
+ const TokenKind_1 = require("../lexer/TokenKind");
5
10
  // File reflection
6
11
  function isBrsFile(file) {
7
12
  return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'BrsFile';
@@ -11,13 +16,21 @@ function isXmlFile(file) {
11
16
  return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'XmlFile';
12
17
  }
13
18
  exports.isXmlFile = isXmlFile;
19
+ function isAssetFile(file) {
20
+ return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'AssetFile';
21
+ }
22
+ exports.isAssetFile = isAssetFile;
23
+ function isBscFile(file) {
24
+ return isBrsFile(file) || isXmlFile(file) || isAssetFile(file);
25
+ }
26
+ exports.isBscFile = isBscFile;
14
27
  function isXmlScope(scope) {
15
28
  return (scope === null || scope === void 0 ? void 0 : scope.constructor.name) === 'XmlScope';
16
29
  }
17
30
  exports.isXmlScope = isXmlScope;
18
31
  // Statements reflection
19
32
  /**
20
- * Determine if the variable is a descendent of the Statement base class.
33
+ * Determine if the variablvalue is a descendent of the Statement base class.
21
34
  * Due to performance restrictions, this expects all statements to
22
35
  * directly extend Statement or FunctionStatement,
23
36
  * so it only checks the immediate parent's class name.
@@ -33,8 +46,7 @@ function isBody(element) {
33
46
  }
34
47
  exports.isBody = isBody;
35
48
  function isAssignmentStatement(element) {
36
- var _a;
37
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'AssignmentStatement';
49
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AssignmentStatement;
38
50
  }
39
51
  exports.isAssignmentStatement = isAssignmentStatement;
40
52
  function isBlock(element) {
@@ -43,126 +55,183 @@ function isBlock(element) {
43
55
  }
44
56
  exports.isBlock = isBlock;
45
57
  function isExpressionStatement(element) {
46
- var _a;
47
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExpressionStatement';
58
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExpressionStatement;
48
59
  }
49
60
  exports.isExpressionStatement = isExpressionStatement;
50
- function isCommentStatement(element) {
51
- var _a;
52
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'CommentStatement';
53
- }
54
- exports.isCommentStatement = isCommentStatement;
55
- function isExitForStatement(element) {
56
- var _a;
57
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExitForStatement';
58
- }
59
- exports.isExitForStatement = isExitForStatement;
60
- function isExitWhileStatement(element) {
61
- var _a;
62
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExitWhileStatement';
61
+ function isExitStatement(element) {
62
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExitStatement;
63
63
  }
64
- exports.isExitWhileStatement = isExitWhileStatement;
64
+ exports.isExitStatement = isExitStatement;
65
65
  function isFunctionStatement(element) {
66
- var _a;
67
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'FunctionStatement';
66
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionStatement;
68
67
  }
69
68
  exports.isFunctionStatement = isFunctionStatement;
70
69
  function isIfStatement(element) {
71
- var _a;
72
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IfStatement';
70
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IfStatement;
73
71
  }
74
72
  exports.isIfStatement = isIfStatement;
75
73
  function isIncrementStatement(element) {
76
- var _a;
77
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IncrementStatement';
74
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IncrementStatement;
78
75
  }
79
76
  exports.isIncrementStatement = isIncrementStatement;
80
77
  function isPrintStatement(element) {
81
- var _a;
82
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'PrintStatement';
78
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.PrintStatement;
83
79
  }
84
80
  exports.isPrintStatement = isPrintStatement;
85
81
  function isGotoStatement(element) {
86
- var _a;
87
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'GotoStatement';
82
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.GotoStatement;
88
83
  }
89
84
  exports.isGotoStatement = isGotoStatement;
90
85
  function isLabelStatement(element) {
91
- var _a;
92
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'LabelStatement';
86
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LabelStatement;
93
87
  }
94
88
  exports.isLabelStatement = isLabelStatement;
95
89
  function isReturnStatement(element) {
96
- var _a;
97
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ReturnStatement';
90
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ReturnStatement;
98
91
  }
99
92
  exports.isReturnStatement = isReturnStatement;
100
- function isEndStatement(element) {
93
+ function isTernaryExpression(element) {
101
94
  var _a;
102
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'EndStatement';
95
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'TernaryExpression';
96
+ }
97
+ exports.isTernaryExpression = isTernaryExpression;
98
+ function isNullCoalescingExpression(element) {
99
+ var _a;
100
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'NullCoalescingExpression';
101
+ }
102
+ exports.isNullCoalescingExpression = isNullCoalescingExpression;
103
+ function isEndStatement(element) {
104
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EndStatement;
103
105
  }
104
106
  exports.isEndStatement = isEndStatement;
105
107
  function isStopStatement(element) {
106
- var _a;
107
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'StopStatement';
108
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.StopStatement;
108
109
  }
109
110
  exports.isStopStatement = isStopStatement;
110
111
  function isForStatement(element) {
111
- var _a;
112
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ForStatement';
112
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ForStatement;
113
113
  }
114
114
  exports.isForStatement = isForStatement;
115
115
  function isForEachStatement(element) {
116
- var _a;
117
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ForEachStatement';
116
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ForEachStatement;
118
117
  }
119
118
  exports.isForEachStatement = isForEachStatement;
120
119
  function isWhileStatement(element) {
121
- var _a;
122
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'WhileStatement';
120
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.WhileStatement;
123
121
  }
124
122
  exports.isWhileStatement = isWhileStatement;
125
- function isDottedSetStatement(element) {
123
+ function isDimStatement(element) {
126
124
  var _a;
127
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'DottedSetStatement';
125
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'DimStatement';
126
+ }
127
+ exports.isDimStatement = isDimStatement;
128
+ function isDottedSetStatement(element) {
129
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.DottedSetStatement;
128
130
  }
129
131
  exports.isDottedSetStatement = isDottedSetStatement;
130
132
  function isIndexedSetStatement(element) {
131
- var _a;
132
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IndexedSetStatement';
133
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IndexedSetStatement;
133
134
  }
134
135
  exports.isIndexedSetStatement = isIndexedSetStatement;
135
136
  function isLibraryStatement(element) {
136
- var _a;
137
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'LibraryStatement';
137
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LibraryStatement;
138
138
  }
139
139
  exports.isLibraryStatement = isLibraryStatement;
140
140
  function isNamespaceStatement(element) {
141
- var _a;
142
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'NamespaceStatement';
141
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.NamespaceStatement;
143
142
  }
144
143
  exports.isNamespaceStatement = isNamespaceStatement;
145
144
  function isClassStatement(element) {
146
- var _a;
147
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ClassStatement';
145
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ClassStatement;
148
146
  }
149
147
  exports.isClassStatement = isClassStatement;
150
148
  function isImportStatement(element) {
151
- var _a;
152
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ImportStatement';
149
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ImportStatement;
153
150
  }
154
151
  exports.isImportStatement = isImportStatement;
155
- function isClassMethodStatement(element) {
156
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ClassMethodStatement';
152
+ function isMethodStatement(element) {
153
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.MethodStatement;
154
+ }
155
+ exports.isMethodStatement = isMethodStatement;
156
+ function isFieldStatement(element) {
157
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FieldStatement;
158
+ }
159
+ exports.isFieldStatement = isFieldStatement;
160
+ function isInterfaceStatement(element) {
161
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceStatement;
162
+ }
163
+ exports.isInterfaceStatement = isInterfaceStatement;
164
+ function isInterfaceMethodStatement(element) {
165
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceMethodStatement;
166
+ }
167
+ exports.isInterfaceMethodStatement = isInterfaceMethodStatement;
168
+ function isInterfaceFieldStatement(element) {
169
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceFieldStatement;
170
+ }
171
+ exports.isInterfaceFieldStatement = isInterfaceFieldStatement;
172
+ function isMemberField(element) {
173
+ return isFieldStatement(element) || isInterfaceFieldStatement(element);
174
+ }
175
+ exports.isMemberField = isMemberField;
176
+ function isMemberMethod(element) {
177
+ return isMethodStatement(element) || isInterfaceMethodStatement(element);
178
+ }
179
+ exports.isMemberMethod = isMemberMethod;
180
+ function isEnumStatement(element) {
181
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EnumStatement;
182
+ }
183
+ exports.isEnumStatement = isEnumStatement;
184
+ function isEnumMemberStatement(element) {
185
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EnumMemberStatement;
186
+ }
187
+ exports.isEnumMemberStatement = isEnumMemberStatement;
188
+ function isConstStatement(element) {
189
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConstStatement;
190
+ }
191
+ exports.isConstStatement = isConstStatement;
192
+ function isContinueStatement(element) {
193
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ContinueStatement;
194
+ }
195
+ exports.isContinueStatement = isContinueStatement;
196
+ function isTryCatchStatement(element) {
197
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TryCatchStatement;
198
+ }
199
+ exports.isTryCatchStatement = isTryCatchStatement;
200
+ function isCatchStatement(element) {
201
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CatchStatement;
157
202
  }
158
- exports.isClassMethodStatement = isClassMethodStatement;
159
- function isClassFieldStatement(element) {
160
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ClassFieldStatement';
203
+ exports.isCatchStatement = isCatchStatement;
204
+ function isThrowStatement(element) {
205
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ThrowStatement;
161
206
  }
162
- exports.isClassFieldStatement = isClassFieldStatement;
207
+ exports.isThrowStatement = isThrowStatement;
208
+ function isTypecastStatement(element) {
209
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypecastStatement;
210
+ }
211
+ exports.isTypecastStatement = isTypecastStatement;
212
+ function isConditionalCompileStatement(element) {
213
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConditionalCompileStatement;
214
+ }
215
+ exports.isConditionalCompileStatement = isConditionalCompileStatement;
216
+ function isConditionalCompileConstStatement(element) {
217
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConditionalCompileConstStatement;
218
+ }
219
+ exports.isConditionalCompileConstStatement = isConditionalCompileConstStatement;
220
+ function isConditionalCompileErrorStatement(element) {
221
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConditionalCompileErrorStatement;
222
+ }
223
+ exports.isConditionalCompileErrorStatement = isConditionalCompileErrorStatement;
224
+ function isAliasStatement(element) {
225
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AliasStatement;
226
+ }
227
+ exports.isAliasStatement = isAliasStatement;
228
+ function isAugmentedAssignmentStatement(element) {
229
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AugmentedAssignmentStatement;
230
+ }
231
+ exports.isAugmentedAssignmentStatement = isAugmentedAssignmentStatement;
163
232
  // Expressions reflection
164
233
  /**
165
- * Determine if the variable is a descendent of the Expression base class.
234
+ * Determine if the variablvalue is a descendent of the Expression base class.
166
235
  * Due to performance restrictions, this expects all statements to directly extend Expression,
167
236
  * so it only checks the immediate parent's class name. For example:
168
237
  * this will work for StringLiteralExpression -> Expression,
@@ -174,180 +243,298 @@ function isExpression(element) {
174
243
  }
175
244
  exports.isExpression = isExpression;
176
245
  function isBinaryExpression(element) {
177
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'BinaryExpression';
246
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.BinaryExpression;
178
247
  }
179
248
  exports.isBinaryExpression = isBinaryExpression;
180
249
  function isCallExpression(element) {
181
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CallExpression';
250
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CallExpression;
182
251
  }
183
252
  exports.isCallExpression = isCallExpression;
184
253
  function isFunctionExpression(element) {
185
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'FunctionExpression';
254
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionExpression;
186
255
  }
187
256
  exports.isFunctionExpression = isFunctionExpression;
188
- function isNamespacedVariableNameExpression(element) {
189
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'NamespacedVariableNameExpression';
190
- }
191
- exports.isNamespacedVariableNameExpression = isNamespacedVariableNameExpression;
192
257
  function isDottedGetExpression(element) {
193
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'DottedGetExpression';
258
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.DottedGetExpression;
194
259
  }
195
260
  exports.isDottedGetExpression = isDottedGetExpression;
196
261
  function isXmlAttributeGetExpression(element) {
197
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'XmlAttributeGetExpression';
262
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.XmlAttributeGetExpression;
198
263
  }
199
264
  exports.isXmlAttributeGetExpression = isXmlAttributeGetExpression;
200
265
  function isIndexedGetExpression(element) {
201
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'IndexedGetExpression';
266
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IndexedGetExpression;
202
267
  }
203
268
  exports.isIndexedGetExpression = isIndexedGetExpression;
204
269
  function isGroupingExpression(element) {
205
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'GroupingExpression';
270
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.GroupingExpression;
206
271
  }
207
272
  exports.isGroupingExpression = isGroupingExpression;
208
273
  function isLiteralExpression(element) {
209
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'LiteralExpression';
274
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LiteralExpression;
210
275
  }
211
276
  exports.isLiteralExpression = isLiteralExpression;
212
277
  function isEscapedCharCodeLiteralExpression(element) {
213
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'EscapedCharCodeLiteralExpression';
278
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EscapedCharCodeLiteralExpression;
214
279
  }
215
280
  exports.isEscapedCharCodeLiteralExpression = isEscapedCharCodeLiteralExpression;
216
281
  function isArrayLiteralExpression(element) {
217
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ArrayLiteralExpression';
282
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ArrayLiteralExpression;
218
283
  }
219
284
  exports.isArrayLiteralExpression = isArrayLiteralExpression;
220
285
  function isAALiteralExpression(element) {
221
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AALiteralExpression';
286
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AALiteralExpression;
222
287
  }
223
288
  exports.isAALiteralExpression = isAALiteralExpression;
289
+ function isAAMemberExpression(element) {
290
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AAMemberExpression;
291
+ }
292
+ exports.isAAMemberExpression = isAAMemberExpression;
224
293
  function isUnaryExpression(element) {
225
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'UnaryExpression';
294
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.UnaryExpression;
226
295
  }
227
296
  exports.isUnaryExpression = isUnaryExpression;
228
297
  function isVariableExpression(element) {
229
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'VariableExpression';
298
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.VariableExpression;
230
299
  }
231
300
  exports.isVariableExpression = isVariableExpression;
232
301
  function isSourceLiteralExpression(element) {
233
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'SourceLiteralExpression';
302
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.SourceLiteralExpression;
234
303
  }
235
304
  exports.isSourceLiteralExpression = isSourceLiteralExpression;
236
305
  function isNewExpression(element) {
237
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'NewExpression';
306
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.NewExpression;
238
307
  }
239
308
  exports.isNewExpression = isNewExpression;
240
309
  function isCallfuncExpression(element) {
241
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CallfuncExpression';
310
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CallfuncExpression;
242
311
  }
243
312
  exports.isCallfuncExpression = isCallfuncExpression;
244
313
  function isTemplateStringQuasiExpression(element) {
245
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TemplateStringQuasiExpression';
314
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TemplateStringQuasiExpression;
246
315
  }
247
316
  exports.isTemplateStringQuasiExpression = isTemplateStringQuasiExpression;
248
317
  function isTemplateStringExpression(element) {
249
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TemplateStringExpression';
318
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TemplateStringExpression;
250
319
  }
251
320
  exports.isTemplateStringExpression = isTemplateStringExpression;
252
321
  function isTaggedTemplateStringExpression(element) {
253
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TaggedTemplateStringExpression';
322
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TaggedTemplateStringExpression;
254
323
  }
255
324
  exports.isTaggedTemplateStringExpression = isTaggedTemplateStringExpression;
256
325
  function isFunctionParameterExpression(element) {
257
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'FunctionParameterExpression';
326
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionParameterExpression;
258
327
  }
259
328
  exports.isFunctionParameterExpression = isFunctionParameterExpression;
260
329
  function isAnnotationExpression(element) {
261
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AnnotationExpression';
330
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AnnotationExpression;
262
331
  }
263
332
  exports.isAnnotationExpression = isAnnotationExpression;
333
+ function isTypedefProvider(element) {
334
+ return 'getTypedef' in element;
335
+ }
336
+ exports.isTypedefProvider = isTypedefProvider;
337
+ function isTypeExpression(element) {
338
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypeExpression;
339
+ }
340
+ exports.isTypeExpression = isTypeExpression;
341
+ function isTypecastExpression(element) {
342
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypecastExpression;
343
+ }
344
+ exports.isTypecastExpression = isTypecastExpression;
345
+ function isTypedArrayExpression(element) {
346
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypedArrayExpression;
347
+ }
348
+ exports.isTypedArrayExpression = isTypedArrayExpression;
264
349
  // BscType reflection
265
- // Note: these are Hardcoded to avoid circular dependencies
266
350
  function isStringType(value) {
267
- return (value === null || value === void 0 ? void 0 : value.constructor.name) === 'StringType';
351
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.StringType;
268
352
  }
269
353
  exports.isStringType = isStringType;
270
- function isFunctionType(e) {
271
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'FunctionType';
354
+ function isTypedFunctionType(value) {
355
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.TypedFunctionType;
356
+ }
357
+ exports.isTypedFunctionType = isTypedFunctionType;
358
+ function isFunctionType(value) {
359
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.FunctionType;
272
360
  }
273
361
  exports.isFunctionType = isFunctionType;
274
- function isBooleanType(e) {
275
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'BooleanType';
362
+ function isBooleanType(value) {
363
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.BooleanType;
276
364
  }
277
365
  exports.isBooleanType = isBooleanType;
278
- function isIntegerType(e) {
279
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'IntegerType';
366
+ function isIntegerType(value) {
367
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.IntegerType;
280
368
  }
281
369
  exports.isIntegerType = isIntegerType;
282
- function isLongIntegerType(e) {
283
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'LongIntegerType';
370
+ function isLongIntegerType(value) {
371
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.LongIntegerType;
284
372
  }
285
373
  exports.isLongIntegerType = isLongIntegerType;
286
- function isFloatType(e) {
287
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'FloatType';
374
+ function isFloatType(value) {
375
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.FloatType;
288
376
  }
289
377
  exports.isFloatType = isFloatType;
290
- function isDoubleType(e) {
291
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'DoubleType';
378
+ function isDoubleType(value) {
379
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.DoubleType;
292
380
  }
293
381
  exports.isDoubleType = isDoubleType;
294
- function isInvalidType(e) {
295
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'InvalidType';
382
+ function isInvalidType(value) {
383
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.InvalidType;
296
384
  }
297
385
  exports.isInvalidType = isInvalidType;
298
- function isVoidType(e) {
299
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'VoidType';
386
+ function isVoidType(value) {
387
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.VoidType;
300
388
  }
301
389
  exports.isVoidType = isVoidType;
302
- function isCustomType(e) {
303
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'CustomType';
390
+ function isClassType(value) {
391
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ClassType;
304
392
  }
305
- exports.isCustomType = isCustomType;
306
- function isUninitializedType(e) {
307
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'UninitializedType';
393
+ exports.isClassType = isClassType;
394
+ function isComponentType(value) {
395
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ComponentType;
308
396
  }
309
- exports.isUninitializedType = isUninitializedType;
310
- function isInterfaceType(e) {
311
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'InterfaceType';
397
+ exports.isComponentType = isComponentType;
398
+ function isDynamicType(value) {
399
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.DynamicType;
400
+ }
401
+ exports.isDynamicType = isDynamicType;
402
+ function isInterfaceType(value) {
403
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.InterfaceType;
312
404
  }
313
405
  exports.isInterfaceType = isInterfaceType;
314
- function isArrayType(e) {
315
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'ArrayType';
406
+ function isObjectType(value) {
407
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ObjectType;
408
+ }
409
+ exports.isObjectType = isObjectType;
410
+ function isReferenceType(value) {
411
+ var _a;
412
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ReferenceType';
413
+ }
414
+ exports.isReferenceType = isReferenceType;
415
+ function isEnumType(value) {
416
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.EnumType;
417
+ }
418
+ exports.isEnumType = isEnumType;
419
+ function isEnumMemberType(value) {
420
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.EnumMemberType;
421
+ }
422
+ exports.isEnumMemberType = isEnumMemberType;
423
+ function isTypePropertyReferenceType(value) {
424
+ var _a;
425
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'TypePropertyReferenceType';
426
+ }
427
+ exports.isTypePropertyReferenceType = isTypePropertyReferenceType;
428
+ function isBinaryOperatorReferenceType(value) {
429
+ var _a;
430
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'BinaryOperatorReferenceType';
431
+ }
432
+ exports.isBinaryOperatorReferenceType = isBinaryOperatorReferenceType;
433
+ function isArrayDefaultTypeReferenceType(value) {
434
+ var _a;
435
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ArrayDefaultTypeReferenceType';
436
+ }
437
+ exports.isArrayDefaultTypeReferenceType = isArrayDefaultTypeReferenceType;
438
+ function isNamespaceType(value) {
439
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.NamespaceType;
440
+ }
441
+ exports.isNamespaceType = isNamespaceType;
442
+ function isUnionType(value) {
443
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.UnionType;
444
+ }
445
+ exports.isUnionType = isUnionType;
446
+ function isUninitializedType(value) {
447
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.UninitializedType;
448
+ }
449
+ exports.isUninitializedType = isUninitializedType;
450
+ function isArrayType(value) {
451
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ArrayType;
316
452
  }
317
453
  exports.isArrayType = isArrayType;
318
- function isObjectType(e) {
319
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'ObjectType';
454
+ function isAssociativeArrayType(value) {
455
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.AssociativeArrayType;
320
456
  }
321
- exports.isObjectType = isObjectType;
322
- function isDynamicType(e) {
323
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'DynamicType';
457
+ exports.isAssociativeArrayType = isAssociativeArrayType;
458
+ function isInheritableType(target) {
459
+ return isClassType(target) || isInterfaceType(target) || isComponentType(target);
324
460
  }
325
- exports.isDynamicType = isDynamicType;
326
- const numberConstructorNames = [
327
- 'IntegerType',
328
- 'LongIntegerType',
329
- 'FloatType',
330
- 'DoubleType'
461
+ exports.isInheritableType = isInheritableType;
462
+ function isCallableType(target) {
463
+ return isFunctionType(target) || isTypedFunctionType(target);
464
+ }
465
+ exports.isCallableType = isCallableType;
466
+ function isAnyReferenceType(target) {
467
+ var _a;
468
+ const name = (_a = target === null || target === void 0 ? void 0 : target.__reflection) === null || _a === void 0 ? void 0 : _a.name;
469
+ return name === 'ReferenceType' || name === 'TypePropertyReferenceType' || name === 'BinaryOperatorReferenceType' || name === 'ArrayDefaultTypeReferenceType';
470
+ }
471
+ exports.isAnyReferenceType = isAnyReferenceType;
472
+ const numberTypeKinds = [
473
+ BscTypeKind_1.BscTypeKind.IntegerType,
474
+ BscTypeKind_1.BscTypeKind.LongIntegerType,
475
+ BscTypeKind_1.BscTypeKind.FloatType,
476
+ BscTypeKind_1.BscTypeKind.DoubleType
331
477
  ];
332
- function isNumberType(e) {
333
- return numberConstructorNames.includes(e === null || e === void 0 ? void 0 : e.constructor.name);
478
+ function isNumberType(value) {
479
+ return numberTypeKinds.includes(value === null || value === void 0 ? void 0 : value.kind);
334
480
  }
335
481
  exports.isNumberType = isNumberType;
482
+ const primitiveTypeKinds = [
483
+ ...numberTypeKinds,
484
+ BscTypeKind_1.BscTypeKind.BooleanType,
485
+ BscTypeKind_1.BscTypeKind.StringType
486
+ ];
487
+ function isPrimitiveType(value) {
488
+ return primitiveTypeKinds.includes(value === null || value === void 0 ? void 0 : value.kind);
489
+ }
490
+ exports.isPrimitiveType = isPrimitiveType;
491
+ const nativeTypeKinds = [
492
+ ...primitiveTypeKinds,
493
+ BscTypeKind_1.BscTypeKind.DynamicType,
494
+ BscTypeKind_1.BscTypeKind.ObjectType,
495
+ BscTypeKind_1.BscTypeKind.VoidType,
496
+ BscTypeKind_1.BscTypeKind.FunctionType
497
+ ];
498
+ function isNativeType(value) {
499
+ return nativeTypeKinds.includes(value === null || value === void 0 ? void 0 : value.kind);
500
+ }
501
+ exports.isNativeType = isNativeType;
336
502
  // Literal reflection
337
- function isLiteralInvalid(e) {
338
- return isLiteralExpression(e) && isInvalidType(e.type);
503
+ function isLiteralInvalid(value) {
504
+ return isLiteralExpression(value) && value.tokens.value.kind === TokenKind_1.TokenKind.Invalid;
339
505
  }
340
506
  exports.isLiteralInvalid = isLiteralInvalid;
341
- function isLiteralBoolean(e) {
342
- return isLiteralExpression(e) && isBooleanType(e.type);
507
+ function isLiteralBoolean(value) {
508
+ return isLiteralExpression(value) && isBooleanType(value.getType());
343
509
  }
344
510
  exports.isLiteralBoolean = isLiteralBoolean;
345
- function isLiteralString(e) {
346
- return isLiteralExpression(e) && isStringType(e.type);
511
+ function isLiteralString(value) {
512
+ return isLiteralExpression(value) && isStringType(value.getType());
347
513
  }
348
514
  exports.isLiteralString = isLiteralString;
349
- function isLiteralNumber(e) {
350
- return isLiteralExpression(e) && isNumberType(e.type);
515
+ function isLiteralNumber(value) {
516
+ return isLiteralExpression(value) && isNumberType(value.getType());
351
517
  }
352
518
  exports.isLiteralNumber = isLiteralNumber;
519
+ function isLiteralInteger(value) {
520
+ return isLiteralExpression(value) && isIntegerType(value.getType());
521
+ }
522
+ exports.isLiteralInteger = isLiteralInteger;
523
+ function isLiteralLongInteger(value) {
524
+ return isLiteralExpression(value) && isLongIntegerType(value.getType());
525
+ }
526
+ exports.isLiteralLongInteger = isLiteralLongInteger;
527
+ function isLiteralFloat(value) {
528
+ return isLiteralExpression(value) && isFloatType(value.getType());
529
+ }
530
+ exports.isLiteralFloat = isLiteralFloat;
531
+ function isLiteralDouble(value) {
532
+ return isLiteralExpression(value) && isDoubleType(value.getType());
533
+ }
534
+ exports.isLiteralDouble = isLiteralDouble;
535
+ // Diagnostics
536
+ function isBsDiagnostic(value) {
537
+ return value.message;
538
+ }
539
+ exports.isBsDiagnostic = isBsDiagnostic;
353
540
  //# sourceMappingURL=reflection.js.map