brighterscript 1.0.0-alpha.5 → 1.0.0-alpha.51

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 (652) hide show
  1. package/README.md +79 -138
  2. package/bsconfig.schema.json +196 -5
  3. package/dist/ActionPipeline.d.ts +10 -0
  4. package/dist/ActionPipeline.js +40 -0
  5. package/dist/ActionPipeline.js.map +1 -0
  6. package/dist/AstValidationSegmenter.d.ts +45 -0
  7. package/dist/AstValidationSegmenter.js +322 -0
  8. package/dist/AstValidationSegmenter.js.map +1 -0
  9. package/dist/BsConfig.d.ts +161 -43
  10. package/dist/BusyStatusTracker.d.ts +61 -0
  11. package/dist/BusyStatusTracker.js +148 -0
  12. package/dist/BusyStatusTracker.js.map +1 -0
  13. package/dist/Cache.d.ts +3 -8
  14. package/dist/Cache.js +9 -14
  15. package/dist/Cache.js.map +1 -1
  16. package/dist/CacheVerifier.d.ts +7 -0
  17. package/dist/CacheVerifier.js +20 -0
  18. package/dist/CacheVerifier.js.map +1 -0
  19. package/dist/CodeActionUtil.d.ts +29 -4
  20. package/dist/CodeActionUtil.js +22 -5
  21. package/dist/CodeActionUtil.js.map +1 -1
  22. package/dist/CommentFlagProcessor.d.ts +20 -15
  23. package/dist/CommentFlagProcessor.js +143 -58
  24. package/dist/CommentFlagProcessor.js.map +1 -1
  25. package/dist/CrossScopeValidator.d.ts +68 -0
  26. package/dist/CrossScopeValidator.js +650 -0
  27. package/dist/CrossScopeValidator.js.map +1 -0
  28. package/dist/DependencyGraph.d.ts +8 -3
  29. package/dist/DependencyGraph.js +49 -16
  30. package/dist/DependencyGraph.js.map +1 -1
  31. package/dist/DiagnosticCollection.d.ts +21 -5
  32. package/dist/DiagnosticCollection.js +77 -24
  33. package/dist/DiagnosticCollection.js.map +1 -1
  34. package/dist/DiagnosticFilterer.d.ts +27 -6
  35. package/dist/DiagnosticFilterer.js +273 -60
  36. package/dist/DiagnosticFilterer.js.map +1 -1
  37. package/dist/DiagnosticManager.d.ts +83 -0
  38. package/dist/DiagnosticManager.js +422 -0
  39. package/dist/DiagnosticManager.js.map +1 -0
  40. package/dist/DiagnosticMessages.d.ts +602 -196
  41. package/dist/DiagnosticMessages.js +926 -342
  42. package/dist/DiagnosticMessages.js.map +1 -1
  43. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  44. package/dist/DiagnosticSeverityAdjuster.js +45 -0
  45. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  46. package/dist/FunctionScope.d.ts +28 -0
  47. package/dist/FunctionScope.js +52 -0
  48. package/dist/FunctionScope.js.map +1 -0
  49. package/dist/KeyedThrottler.d.ts +3 -3
  50. package/dist/KeyedThrottler.js +3 -3
  51. package/dist/KeyedThrottler.js.map +1 -1
  52. package/dist/LanguageServer.d.ts +136 -104
  53. package/dist/LanguageServer.js +577 -741
  54. package/dist/LanguageServer.js.map +1 -1
  55. package/dist/Logger.d.ts +17 -13
  56. package/dist/Logger.js +64 -34
  57. package/dist/Logger.js.map +1 -1
  58. package/dist/PluginInterface.d.ts +32 -10
  59. package/dist/PluginInterface.js +117 -7
  60. package/dist/PluginInterface.js.map +1 -1
  61. package/dist/Program.d.ts +302 -98
  62. package/dist/Program.js +1613 -726
  63. package/dist/Program.js.map +1 -1
  64. package/dist/ProgramBuilder.d.ts +39 -22
  65. package/dist/ProgramBuilder.js +245 -179
  66. package/dist/ProgramBuilder.js.map +1 -1
  67. package/dist/Scope.d.ts +227 -106
  68. package/dist/Scope.js +609 -557
  69. package/dist/Scope.js.map +1 -1
  70. package/dist/ScopeNamespaceLookup.d.ts +73 -0
  71. package/dist/ScopeNamespaceLookup.js +242 -0
  72. package/dist/ScopeNamespaceLookup.js.map +1 -0
  73. package/dist/SemanticTokenUtils.js +5 -1
  74. package/dist/SemanticTokenUtils.js.map +1 -1
  75. package/dist/Stopwatch.d.ts +4 -0
  76. package/dist/Stopwatch.js +8 -1
  77. package/dist/Stopwatch.js.map +1 -1
  78. package/dist/SymbolTable.d.ts +145 -26
  79. package/dist/SymbolTable.js +575 -64
  80. package/dist/SymbolTable.js.map +1 -1
  81. package/dist/SymbolTypeFlag.d.ts +9 -0
  82. package/dist/SymbolTypeFlag.js +14 -0
  83. package/dist/SymbolTypeFlag.js.map +1 -0
  84. package/dist/Throttler.d.ts +12 -0
  85. package/dist/Throttler.js +39 -0
  86. package/dist/Throttler.js.map +1 -1
  87. package/dist/Watcher.d.ts +0 -3
  88. package/dist/Watcher.js +0 -3
  89. package/dist/Watcher.js.map +1 -1
  90. package/dist/XmlScope.d.ts +5 -15
  91. package/dist/XmlScope.js +34 -90
  92. package/dist/XmlScope.js.map +1 -1
  93. package/dist/astUtils/CachedLookups.d.ts +50 -0
  94. package/dist/astUtils/CachedLookups.js +337 -0
  95. package/dist/astUtils/CachedLookups.js.map +1 -0
  96. package/dist/astUtils/Editor.d.ts +69 -0
  97. package/dist/astUtils/Editor.js +245 -0
  98. package/dist/astUtils/Editor.js.map +1 -0
  99. package/dist/astUtils/creators.d.ts +54 -19
  100. package/dist/astUtils/creators.js +242 -42
  101. package/dist/astUtils/creators.js.map +1 -1
  102. package/dist/astUtils/reflection.d.ts +199 -85
  103. package/dist/astUtils/reflection.js +518 -145
  104. package/dist/astUtils/reflection.js.map +1 -1
  105. package/dist/astUtils/stackedVisitor.js.map +1 -1
  106. package/dist/astUtils/visitors.d.ts +117 -53
  107. package/dist/astUtils/visitors.js +95 -15
  108. package/dist/astUtils/visitors.js.map +1 -1
  109. package/dist/astUtils/xml.d.ts +9 -8
  110. package/dist/astUtils/xml.js +12 -7
  111. package/dist/astUtils/xml.js.map +1 -1
  112. package/dist/bscPlugin/BscPlugin.d.ts +26 -4
  113. package/dist/bscPlugin/BscPlugin.js +96 -4
  114. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  115. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  116. package/dist/bscPlugin/CallExpressionInfo.js +142 -0
  117. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  118. package/dist/bscPlugin/FileWriter.d.ts +19 -0
  119. package/dist/bscPlugin/FileWriter.js +79 -0
  120. package/dist/bscPlugin/FileWriter.js.map +1 -0
  121. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  122. package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
  123. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  124. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +109 -7
  125. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +676 -26
  126. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  127. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.d.ts +17 -0
  128. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js +66 -0
  129. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js.map +1 -0
  130. package/dist/bscPlugin/codeActions/codeActionHelpers.d.ts +18 -0
  131. package/dist/bscPlugin/codeActions/codeActionHelpers.js +31 -0
  132. package/dist/bscPlugin/codeActions/codeActionHelpers.js.map +1 -0
  133. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +65 -0
  134. package/dist/bscPlugin/completions/CompletionsProcessor.js +633 -0
  135. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  136. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  137. package/dist/bscPlugin/definition/DefinitionProvider.js +220 -0
  138. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  139. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  140. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  141. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  142. package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
  143. package/dist/bscPlugin/hover/HoverProcessor.js +238 -0
  144. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  145. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  146. package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
  147. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  148. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.d.ts +7 -0
  149. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js +77 -0
  150. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js.map +1 -0
  151. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
  152. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +164 -0
  153. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  154. package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
  155. package/dist/bscPlugin/serialize/BslibManager.js +46 -0
  156. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  157. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  158. package/dist/bscPlugin/serialize/FileSerializer.js +80 -0
  159. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  160. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  161. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  162. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  163. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  164. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  165. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  166. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  167. package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
  168. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  169. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +34 -0
  170. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +504 -0
  171. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  172. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  173. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  174. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  175. package/dist/bscPlugin/validation/BrsFileAfterValidator.d.ts +7 -0
  176. package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
  177. package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
  178. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +51 -0
  179. package/dist/bscPlugin/validation/BrsFileValidator.js +714 -0
  180. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  181. package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
  182. package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
  183. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  184. package/dist/bscPlugin/validation/ScopeValidator.d.ts +158 -0
  185. package/dist/bscPlugin/validation/ScopeValidator.js +1481 -0
  186. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  187. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  188. package/dist/bscPlugin/validation/XmlFileValidator.js +50 -0
  189. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  190. package/dist/cli.js +140 -28
  191. package/dist/cli.js.map +1 -1
  192. package/dist/common/Sequencer.d.ts +53 -0
  193. package/dist/common/Sequencer.js +233 -0
  194. package/dist/common/Sequencer.js.map +1 -0
  195. package/dist/deferred.d.ts +5 -3
  196. package/dist/deferred.js +10 -0
  197. package/dist/deferred.js.map +1 -1
  198. package/dist/diagnosticUtils.d.ts +61 -4
  199. package/dist/diagnosticUtils.js +285 -25
  200. package/dist/diagnosticUtils.js.map +1 -1
  201. package/dist/examples/plugins/removePrint.d.ts +2 -2
  202. package/dist/examples/plugins/removePrint.js +8 -12
  203. package/dist/examples/plugins/removePrint.js.map +1 -1
  204. package/dist/files/AssetFile.d.ts +24 -0
  205. package/dist/files/AssetFile.js +25 -0
  206. package/dist/files/AssetFile.js.map +1 -0
  207. package/dist/files/BrsFile.d.ts +161 -87
  208. package/dist/files/BrsFile.js +919 -936
  209. package/dist/files/BrsFile.js.map +1 -1
  210. package/dist/files/BscFile.d.ts +102 -0
  211. package/dist/files/BscFile.js +15 -0
  212. package/dist/files/BscFile.js.map +1 -0
  213. package/dist/files/Factory.d.ts +25 -0
  214. package/dist/files/Factory.js +22 -0
  215. package/dist/files/Factory.js.map +1 -0
  216. package/dist/files/LazyFileData.d.ts +21 -0
  217. package/dist/files/LazyFileData.js +54 -0
  218. package/dist/files/LazyFileData.js.map +1 -0
  219. package/dist/files/XmlFile.d.ts +80 -41
  220. package/dist/files/XmlFile.js +162 -137
  221. package/dist/files/XmlFile.js.map +1 -1
  222. package/dist/globalCallables.d.ts +3 -1
  223. package/dist/globalCallables.js +424 -184
  224. package/dist/globalCallables.js.map +1 -1
  225. package/dist/index.d.ts +32 -4
  226. package/dist/index.js +54 -7
  227. package/dist/index.js.map +1 -1
  228. package/dist/interfaces.d.ts +987 -125
  229. package/dist/interfaces.js +21 -0
  230. package/dist/interfaces.js.map +1 -1
  231. package/dist/lexer/Lexer.d.ts +51 -12
  232. package/dist/lexer/Lexer.js +214 -65
  233. package/dist/lexer/Lexer.js.map +1 -1
  234. package/dist/lexer/Token.d.ts +27 -11
  235. package/dist/lexer/Token.js +10 -2
  236. package/dist/lexer/Token.js.map +1 -1
  237. package/dist/lexer/TokenKind.d.ts +48 -2
  238. package/dist/lexer/TokenKind.js +167 -10
  239. package/dist/lexer/TokenKind.js.map +1 -1
  240. package/dist/logging.d.ts +14 -0
  241. package/dist/logging.js +29 -0
  242. package/dist/logging.js.map +1 -0
  243. package/dist/lsp/ActionQueue.d.ts +35 -0
  244. package/dist/lsp/ActionQueue.js +115 -0
  245. package/dist/lsp/ActionQueue.js.map +1 -0
  246. package/dist/lsp/DocumentManager.d.ts +63 -0
  247. package/dist/lsp/DocumentManager.js +122 -0
  248. package/dist/lsp/DocumentManager.js.map +1 -0
  249. package/dist/lsp/LspProject.d.ts +287 -0
  250. package/dist/lsp/LspProject.js +3 -0
  251. package/dist/lsp/LspProject.js.map +1 -0
  252. package/dist/lsp/PathFilterer.d.ts +75 -0
  253. package/dist/lsp/PathFilterer.js +196 -0
  254. package/dist/lsp/PathFilterer.js.map +1 -0
  255. package/dist/lsp/Project.d.ts +200 -0
  256. package/dist/lsp/Project.js +562 -0
  257. package/dist/lsp/Project.js.map +1 -0
  258. package/dist/lsp/ProjectManager.d.ts +288 -0
  259. package/dist/lsp/ProjectManager.js +967 -0
  260. package/dist/lsp/ProjectManager.js.map +1 -0
  261. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  262. package/dist/lsp/ReaderWriterManager.js +60 -0
  263. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  264. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  265. package/dist/lsp/worker/MessageHandler.js +138 -0
  266. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  267. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  268. package/dist/lsp/worker/WorkerPool.js +78 -0
  269. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  270. package/dist/lsp/worker/WorkerThreadProject.d.ts +168 -0
  271. package/dist/lsp/worker/WorkerThreadProject.js +205 -0
  272. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  273. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  274. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  275. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  276. package/dist/lsp/worker/run.js +14 -0
  277. package/dist/lsp/worker/run.js.map +1 -0
  278. package/dist/parser/AstNode.d.ts +205 -0
  279. package/dist/parser/AstNode.js +305 -0
  280. package/dist/parser/AstNode.js.map +1 -0
  281. package/dist/parser/BrightScriptDocParser.d.ts +56 -0
  282. package/dist/parser/BrightScriptDocParser.js +294 -0
  283. package/dist/parser/BrightScriptDocParser.js.map +1 -0
  284. package/dist/parser/BrsTranspileState.d.ts +22 -3
  285. package/dist/parser/BrsTranspileState.js +19 -0
  286. package/dist/parser/BrsTranspileState.js.map +1 -1
  287. package/dist/parser/Expression.d.ts +601 -220
  288. package/dist/parser/Expression.js +1516 -502
  289. package/dist/parser/Expression.js.map +1 -1
  290. package/dist/parser/Parser.d.ts +137 -121
  291. package/dist/parser/Parser.js +1808 -982
  292. package/dist/parser/Parser.js.map +1 -1
  293. package/dist/parser/SGParser.d.ts +30 -13
  294. package/dist/parser/SGParser.js +94 -56
  295. package/dist/parser/SGParser.js.map +1 -1
  296. package/dist/parser/SGTypes.d.ts +134 -46
  297. package/dist/parser/SGTypes.js +206 -115
  298. package/dist/parser/SGTypes.js.map +1 -1
  299. package/dist/parser/Statement.d.ts +854 -267
  300. package/dist/parser/Statement.js +2416 -621
  301. package/dist/parser/Statement.js.map +1 -1
  302. package/dist/parser/TranspileState.d.ts +30 -14
  303. package/dist/parser/TranspileState.js +124 -27
  304. package/dist/parser/TranspileState.js.map +1 -1
  305. package/dist/preprocessor/Manifest.d.ts +6 -6
  306. package/dist/preprocessor/Manifest.js +17 -38
  307. package/dist/preprocessor/Manifest.js.map +1 -1
  308. package/dist/roku-types/data.json +20554 -0
  309. package/dist/roku-types/index.d.ts +5726 -0
  310. package/dist/roku-types/index.js +11 -0
  311. package/dist/roku-types/index.js.map +1 -0
  312. package/dist/types/ArrayType.d.ts +12 -5
  313. package/dist/types/ArrayType.js +95 -25
  314. package/dist/types/ArrayType.js.map +1 -1
  315. package/dist/types/AssociativeArrayType.d.ts +15 -0
  316. package/dist/types/AssociativeArrayType.js +64 -0
  317. package/dist/types/AssociativeArrayType.js.map +1 -0
  318. package/dist/types/BaseFunctionType.d.ts +10 -0
  319. package/dist/types/BaseFunctionType.js +26 -0
  320. package/dist/types/BaseFunctionType.js.map +1 -0
  321. package/dist/types/BooleanType.d.ts +9 -5
  322. package/dist/types/BooleanType.js +19 -8
  323. package/dist/types/BooleanType.js.map +1 -1
  324. package/dist/types/BscType.d.ts +41 -3
  325. package/dist/types/BscType.js +152 -0
  326. package/dist/types/BscType.js.map +1 -1
  327. package/dist/types/BscTypeKind.d.ts +28 -0
  328. package/dist/types/BscTypeKind.js +33 -0
  329. package/dist/types/BscTypeKind.js.map +1 -0
  330. package/dist/types/BuiltInInterfaceAdder.d.ts +28 -0
  331. package/dist/types/BuiltInInterfaceAdder.js +212 -0
  332. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  333. package/dist/types/CallFuncableType.d.ts +24 -0
  334. package/dist/types/CallFuncableType.js +91 -0
  335. package/dist/types/CallFuncableType.js.map +1 -0
  336. package/dist/types/ClassType.d.ts +17 -0
  337. package/dist/types/ClassType.js +63 -0
  338. package/dist/types/ClassType.js.map +1 -0
  339. package/dist/types/ComponentType.d.ts +22 -0
  340. package/dist/types/ComponentType.js +110 -0
  341. package/dist/types/ComponentType.js.map +1 -0
  342. package/dist/types/DoubleType.d.ts +10 -5
  343. package/dist/types/DoubleType.js +21 -17
  344. package/dist/types/DoubleType.js.map +1 -1
  345. package/dist/types/DynamicType.d.ts +13 -5
  346. package/dist/types/DynamicType.js +26 -5
  347. package/dist/types/DynamicType.js.map +1 -1
  348. package/dist/types/EnumType.d.ts +42 -0
  349. package/dist/types/EnumType.js +101 -0
  350. package/dist/types/EnumType.js.map +1 -0
  351. package/dist/types/FloatType.d.ts +10 -5
  352. package/dist/types/FloatType.js +21 -17
  353. package/dist/types/FloatType.js.map +1 -1
  354. package/dist/types/FunctionType.d.ts +8 -22
  355. package/dist/types/FunctionType.js +25 -63
  356. package/dist/types/FunctionType.js.map +1 -1
  357. package/dist/types/InheritableType.d.ts +29 -0
  358. package/dist/types/InheritableType.js +173 -0
  359. package/dist/types/InheritableType.js.map +1 -0
  360. package/dist/types/InlineInterfaceType.d.ts +5 -0
  361. package/dist/types/InlineInterfaceType.js +17 -0
  362. package/dist/types/InlineInterfaceType.js.map +1 -0
  363. package/dist/types/IntegerType.d.ts +10 -5
  364. package/dist/types/IntegerType.js +21 -17
  365. package/dist/types/IntegerType.js.map +1 -1
  366. package/dist/types/InterfaceType.d.ts +14 -6
  367. package/dist/types/InterfaceType.js +30 -15
  368. package/dist/types/InterfaceType.js.map +1 -1
  369. package/dist/types/IntersectionType.d.ts +29 -0
  370. package/dist/types/IntersectionType.js +256 -0
  371. package/dist/types/IntersectionType.js.map +1 -0
  372. package/dist/types/InvalidType.d.ts +10 -5
  373. package/dist/types/InvalidType.js +21 -9
  374. package/dist/types/InvalidType.js.map +1 -1
  375. package/dist/types/LongIntegerType.d.ts +10 -5
  376. package/dist/types/LongIntegerType.js +21 -17
  377. package/dist/types/LongIntegerType.js.map +1 -1
  378. package/dist/types/NamespaceType.d.ts +12 -0
  379. package/dist/types/NamespaceType.js +28 -0
  380. package/dist/types/NamespaceType.js.map +1 -0
  381. package/dist/types/ObjectType.d.ts +12 -5
  382. package/dist/types/ObjectType.js +25 -8
  383. package/dist/types/ObjectType.js.map +1 -1
  384. package/dist/types/ReferenceType.d.ts +123 -0
  385. package/dist/types/ReferenceType.js +726 -0
  386. package/dist/types/ReferenceType.js.map +1 -0
  387. package/dist/types/StringType.d.ts +12 -5
  388. package/dist/types/StringType.js +23 -8
  389. package/dist/types/StringType.js.map +1 -1
  390. package/dist/types/TypeStatementType.d.ts +19 -0
  391. package/dist/types/TypeStatementType.js +56 -0
  392. package/dist/types/TypeStatementType.js.map +1 -0
  393. package/dist/types/TypedFunctionType.d.ts +34 -0
  394. package/dist/types/TypedFunctionType.js +157 -0
  395. package/dist/types/TypedFunctionType.js.map +1 -0
  396. package/dist/types/UninitializedType.d.ts +11 -6
  397. package/dist/types/UninitializedType.js +20 -11
  398. package/dist/types/UninitializedType.js.map +1 -1
  399. package/dist/types/UnionType.d.ts +27 -0
  400. package/dist/types/UnionType.js +196 -0
  401. package/dist/types/UnionType.js.map +1 -0
  402. package/dist/types/VoidType.d.ts +11 -5
  403. package/dist/types/VoidType.js +22 -8
  404. package/dist/types/VoidType.js.map +1 -1
  405. package/dist/types/helpers.d.ts +51 -0
  406. package/dist/types/helpers.js +329 -0
  407. package/dist/types/helpers.js.map +1 -0
  408. package/dist/types/index.d.ts +22 -0
  409. package/dist/types/index.js +39 -0
  410. package/dist/types/index.js.map +1 -0
  411. package/dist/types/roFunctionType.d.ts +11 -0
  412. package/dist/types/roFunctionType.js +37 -0
  413. package/dist/types/roFunctionType.js.map +1 -0
  414. package/dist/util.d.ts +325 -185
  415. package/dist/util.js +2135 -568
  416. package/dist/util.js.map +1 -1
  417. package/dist/validators/ClassValidator.d.ts +9 -15
  418. package/dist/validators/ClassValidator.js +93 -138
  419. package/dist/validators/ClassValidator.js.map +1 -1
  420. package/package.json +183 -138
  421. package/CHANGELOG.md +0 -1188
  422. package/dist/astUtils/creators.spec.js +0 -21
  423. package/dist/astUtils/creators.spec.js.map +0 -1
  424. package/dist/astUtils/index.d.ts +0 -7
  425. package/dist/astUtils/index.js +0 -26
  426. package/dist/astUtils/index.js.map +0 -1
  427. package/dist/astUtils/reflection.spec.d.ts +0 -1
  428. package/dist/astUtils/reflection.spec.js +0 -292
  429. package/dist/astUtils/reflection.spec.js.map +0 -1
  430. package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
  431. package/dist/astUtils/stackedVisitor.spec.js +0 -79
  432. package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
  433. package/dist/astUtils/visitors.spec.d.ts +0 -1
  434. package/dist/astUtils/visitors.spec.js +0 -854
  435. package/dist/astUtils/visitors.spec.js.map +0 -1
  436. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
  437. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -194
  438. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
  439. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  440. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
  441. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  442. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts +0 -1
  443. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +0 -45
  444. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
  445. package/dist/files/BrsFile.Class.spec.d.ts +0 -1
  446. package/dist/files/BrsFile.Class.spec.js +0 -1081
  447. package/dist/files/BrsFile.Class.spec.js.map +0 -1
  448. package/dist/files/BrsFile.spec.d.ts +0 -1
  449. package/dist/files/BrsFile.spec.js +0 -2524
  450. package/dist/files/BrsFile.spec.js.map +0 -1
  451. package/dist/files/XmlFile.spec.d.ts +0 -1
  452. package/dist/files/XmlFile.spec.js +0 -1065
  453. package/dist/files/XmlFile.spec.js.map +0 -1
  454. package/dist/files/tests/imports.spec.d.ts +0 -1
  455. package/dist/files/tests/imports.spec.js +0 -241
  456. package/dist/files/tests/imports.spec.js.map +0 -1
  457. package/dist/lexer/Character.spec.d.ts +0 -1
  458. package/dist/lexer/Character.spec.js +0 -27
  459. package/dist/lexer/Character.spec.js.map +0 -1
  460. package/dist/lexer/Lexer.spec.d.ts +0 -1
  461. package/dist/lexer/Lexer.spec.js +0 -1101
  462. package/dist/lexer/Lexer.spec.js.map +0 -1
  463. package/dist/lexer/index.d.ts +0 -3
  464. package/dist/lexer/index.js +0 -17
  465. package/dist/lexer/index.js.map +0 -1
  466. package/dist/parser/Parser.Class.spec.d.ts +0 -1
  467. package/dist/parser/Parser.Class.spec.js +0 -390
  468. package/dist/parser/Parser.Class.spec.js.map +0 -1
  469. package/dist/parser/Parser.spec.d.ts +0 -4
  470. package/dist/parser/Parser.spec.js +0 -1216
  471. package/dist/parser/Parser.spec.js.map +0 -1
  472. package/dist/parser/SGParser.spec.d.ts +0 -1
  473. package/dist/parser/SGParser.spec.js +0 -145
  474. package/dist/parser/SGParser.spec.js.map +0 -1
  475. package/dist/parser/SGTypes.spec.d.ts +0 -1
  476. package/dist/parser/SGTypes.spec.js +0 -351
  477. package/dist/parser/SGTypes.spec.js.map +0 -1
  478. package/dist/parser/Statement.spec.d.ts +0 -1
  479. package/dist/parser/Statement.spec.js +0 -94
  480. package/dist/parser/Statement.spec.js.map +0 -1
  481. package/dist/parser/index.d.ts +0 -3
  482. package/dist/parser/index.js +0 -16
  483. package/dist/parser/index.js.map +0 -1
  484. package/dist/parser/tests/Parser.spec.d.ts +0 -18
  485. package/dist/parser/tests/Parser.spec.js +0 -35
  486. package/dist/parser/tests/Parser.spec.js.map +0 -1
  487. package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
  488. package/dist/parser/tests/controlFlow/For.spec.js +0 -161
  489. package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
  490. package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
  491. package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -106
  492. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
  493. package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
  494. package/dist/parser/tests/controlFlow/If.spec.js +0 -551
  495. package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
  496. package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
  497. package/dist/parser/tests/controlFlow/While.spec.js +0 -107
  498. package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
  499. package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
  500. package/dist/parser/tests/expression/Additive.spec.js +0 -99
  501. package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
  502. package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
  503. package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -254
  504. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
  505. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
  506. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -266
  507. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
  508. package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
  509. package/dist/parser/tests/expression/Boolean.spec.js +0 -83
  510. package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
  511. package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
  512. package/dist/parser/tests/expression/Call.spec.js +0 -134
  513. package/dist/parser/tests/expression/Call.spec.js.map +0 -1
  514. package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
  515. package/dist/parser/tests/expression/Exponential.spec.js +0 -37
  516. package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
  517. package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
  518. package/dist/parser/tests/expression/Function.spec.js +0 -403
  519. package/dist/parser/tests/expression/Function.spec.js.map +0 -1
  520. package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
  521. package/dist/parser/tests/expression/Indexing.spec.js +0 -219
  522. package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
  523. package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
  524. package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
  525. package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
  526. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
  527. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -201
  528. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
  529. package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
  530. package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -105
  531. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
  532. package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
  533. package/dist/parser/tests/expression/Primary.spec.js +0 -149
  534. package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
  535. package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
  536. package/dist/parser/tests/expression/Relational.spec.js +0 -83
  537. package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
  538. package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
  539. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
  540. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
  541. package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
  542. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -202
  543. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
  544. package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
  545. package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -323
  546. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
  547. package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
  548. package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
  549. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
  550. package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
  551. package/dist/parser/tests/statement/Declaration.spec.js +0 -108
  552. package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
  553. package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
  554. package/dist/parser/tests/statement/Dim.spec.js +0 -73
  555. package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
  556. package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
  557. package/dist/parser/tests/statement/Function.spec.js +0 -332
  558. package/dist/parser/tests/statement/Function.spec.js.map +0 -1
  559. package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
  560. package/dist/parser/tests/statement/Goto.spec.js +0 -50
  561. package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
  562. package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
  563. package/dist/parser/tests/statement/Increment.spec.js +0 -117
  564. package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
  565. package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
  566. package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
  567. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
  568. package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
  569. package/dist/parser/tests/statement/Misc.spec.js +0 -333
  570. package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
  571. package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
  572. package/dist/parser/tests/statement/PrintStatement.spec.js +0 -181
  573. package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
  574. package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
  575. package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -94
  576. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
  577. package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
  578. package/dist/parser/tests/statement/Set.spec.js +0 -218
  579. package/dist/parser/tests/statement/Set.spec.js.map +0 -1
  580. package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
  581. package/dist/parser/tests/statement/Stop.spec.js +0 -37
  582. package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
  583. package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
  584. package/dist/parser/tests/statement/Throw.spec.js +0 -35
  585. package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
  586. package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
  587. package/dist/parser/tests/statement/TryCatch.spec.js +0 -140
  588. package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
  589. package/dist/preprocessor/Chunk.d.ts +0 -82
  590. package/dist/preprocessor/Chunk.js +0 -77
  591. package/dist/preprocessor/Chunk.js.map +0 -1
  592. package/dist/preprocessor/Manifest.spec.d.ts +0 -0
  593. package/dist/preprocessor/Manifest.spec.js +0 -105
  594. package/dist/preprocessor/Manifest.spec.js.map +0 -1
  595. package/dist/preprocessor/Preprocessor.d.ts +0 -60
  596. package/dist/preprocessor/Preprocessor.js +0 -156
  597. package/dist/preprocessor/Preprocessor.js.map +0 -1
  598. package/dist/preprocessor/Preprocessor.spec.d.ts +0 -1
  599. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  600. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  601. package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
  602. package/dist/preprocessor/PreprocessorParser.js +0 -194
  603. package/dist/preprocessor/PreprocessorParser.js.map +0 -1
  604. package/dist/preprocessor/PreprocessorParser.spec.d.ts +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/ArrayType.spec.d.ts +0 -1
  611. package/dist/types/ArrayType.spec.js +0 -30
  612. package/dist/types/ArrayType.spec.js.map +0 -1
  613. package/dist/types/BooleanType.spec.d.ts +0 -1
  614. package/dist/types/BooleanType.spec.js +0 -12
  615. package/dist/types/BooleanType.spec.js.map +0 -1
  616. package/dist/types/CustomType.d.ts +0 -10
  617. package/dist/types/CustomType.js +0 -35
  618. package/dist/types/CustomType.js.map +0 -1
  619. package/dist/types/DoubleType.spec.d.ts +0 -1
  620. package/dist/types/DoubleType.spec.js +0 -12
  621. package/dist/types/DoubleType.spec.js.map +0 -1
  622. package/dist/types/DynamicType.spec.d.ts +0 -1
  623. package/dist/types/DynamicType.spec.js +0 -12
  624. package/dist/types/DynamicType.spec.js.map +0 -1
  625. package/dist/types/FloatType.spec.d.ts +0 -1
  626. package/dist/types/FloatType.spec.js +0 -12
  627. package/dist/types/FloatType.spec.js.map +0 -1
  628. package/dist/types/FunctionType.spec.d.ts +0 -1
  629. package/dist/types/FunctionType.spec.js +0 -29
  630. package/dist/types/FunctionType.spec.js.map +0 -1
  631. package/dist/types/IntegerType.spec.d.ts +0 -1
  632. package/dist/types/IntegerType.spec.js +0 -12
  633. package/dist/types/IntegerType.spec.js.map +0 -1
  634. package/dist/types/InvalidType.spec.d.ts +0 -1
  635. package/dist/types/InvalidType.spec.js +0 -12
  636. package/dist/types/InvalidType.spec.js.map +0 -1
  637. package/dist/types/LazyType.d.ts +0 -15
  638. package/dist/types/LazyType.js +0 -32
  639. package/dist/types/LazyType.js.map +0 -1
  640. package/dist/types/LongIntegerType.spec.d.ts +0 -1
  641. package/dist/types/LongIntegerType.spec.js +0 -12
  642. package/dist/types/LongIntegerType.spec.js.map +0 -1
  643. package/dist/types/ObjectType.spec.d.ts +0 -1
  644. package/dist/types/ObjectType.spec.js +0 -12
  645. package/dist/types/ObjectType.spec.js.map +0 -1
  646. package/dist/types/StringType.spec.d.ts +0 -1
  647. package/dist/types/StringType.spec.js +0 -12
  648. package/dist/types/StringType.spec.js.map +0 -1
  649. package/dist/types/VoidType.spec.d.ts +0 -1
  650. package/dist/types/VoidType.spec.js +0 -12
  651. package/dist/types/VoidType.spec.js.map +0 -1
  652. /package/dist/{astUtils/creators.spec.d.ts → lsp/worker/run.d.ts} +0 -0
@@ -1,7 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSGInterfaceFunction = exports.isSGInterfaceField = 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.isConditionalCompileConstStatement = exports.isConditionalCompileStatement = 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.isProject = exports.isProgram = exports.isXmlScope = exports.isBscFile = exports.isAssetFile = exports.isXmlFile = exports.isBrsFile = void 0;
4
+ exports.isRoIntType = exports.isIntegerType = exports.isBooleanTypeLike = exports.isRoBooleanType = exports.isBooleanType = exports.isFunctionTypeLike = exports.isRoFunctionType = exports.isFunctionType = exports.isTypedFunctionTypeLike = exports.isTypedFunctionType = exports.isStringTypeLike = exports.isRoStringType = exports.isStringType = exports.isTypedFunctionTypeExpression = exports.isInlineInterfaceMemberExpression = exports.isInlineInterfaceExpression = exports.isPrintSeparatorExpression = 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.isAAIndexedMemberExpression = 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.isTypeStatement = exports.isAliasStatement = exports.isTypecastStatement = exports.isAugmentedAssignmentStatement = exports.isConditionalCompileErrorStatement = void 0;
5
+ exports.isIntersectionTypeOf = exports.isUnionTypeOf = exports.isTypeStatementTypeOf = exports.isNativeType = exports.isBuiltInType = exports.isCallFuncableTypeLike = exports.isArrayTypeLike = exports.isAssociativeArrayTypeLike = exports.isPrimitiveTypeLike = exports.isPrimitiveType = exports.isNumberTypeLike = exports.isNumberType = exports.isAnyReferenceType = exports.isCallableType = exports.isCallFuncableType = exports.isInheritableType = exports.isTypeStatementType = exports.isAssociativeArrayType = exports.isArrayType = exports.isUninitializedType = exports.isIntersectionType = exports.isUnionType = exports.isNamespaceType = exports.isReferenceTypeWithDefault = exports.isParamTypeFromValueReferenceType = 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.isInvalidTypeLike = exports.isRoInvalidType = exports.isInvalidType = exports.isDoubleTypeLike = exports.isRoDoubleType = exports.isDoubleType = exports.isFloatTypeLike = exports.isRoFloatType = exports.isFloatType = exports.isLongIntegerTypeLike = exports.isRoLongIntegerType = exports.isLongIntegerType = exports.isIntegerTypeLike = void 0;
6
+ exports.isBsDiagnostic = exports.isLiteralDouble = exports.isLiteralFloat = exports.isLiteralLongInteger = exports.isLiteralInteger = exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isIterableType = exports.isCompoundType = exports.isCompoundTypeOf = void 0;
4
7
  const visitors_1 = require("./visitors");
8
+ const AstNode_1 = require("../parser/AstNode");
9
+ const BscTypeKind_1 = require("../types/BscTypeKind");
10
+ const TokenKind_1 = require("../lexer/TokenKind");
5
11
  // File reflection
6
12
  function isBrsFile(file) {
7
13
  return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'BrsFile';
@@ -11,13 +17,29 @@ function isXmlFile(file) {
11
17
  return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'XmlFile';
12
18
  }
13
19
  exports.isXmlFile = isXmlFile;
20
+ function isAssetFile(file) {
21
+ return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'AssetFile';
22
+ }
23
+ exports.isAssetFile = isAssetFile;
24
+ function isBscFile(file) {
25
+ return isBrsFile(file) || isXmlFile(file) || isAssetFile(file);
26
+ }
27
+ exports.isBscFile = isBscFile;
14
28
  function isXmlScope(scope) {
15
29
  return (scope === null || scope === void 0 ? void 0 : scope.constructor.name) === 'XmlScope';
16
30
  }
17
31
  exports.isXmlScope = isXmlScope;
32
+ function isProgram(arg) {
33
+ return (arg === null || arg === void 0 ? void 0 : arg.constructor.name) === 'Program';
34
+ }
35
+ exports.isProgram = isProgram;
36
+ function isProject(arg) {
37
+ return (arg === null || arg === void 0 ? void 0 : arg.constructor.name) === 'Project';
38
+ }
39
+ exports.isProject = isProject;
18
40
  // Statements reflection
19
41
  /**
20
- * Determine if the variable is a descendent of the Statement base class.
42
+ * Determine if the variablvalue is a descendent of the Statement base class.
21
43
  * Due to performance restrictions, this expects all statements to
22
44
  * directly extend Statement or FunctionStatement,
23
45
  * so it only checks the immediate parent's class name.
@@ -33,8 +55,7 @@ function isBody(element) {
33
55
  }
34
56
  exports.isBody = isBody;
35
57
  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';
58
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AssignmentStatement;
38
59
  }
39
60
  exports.isAssignmentStatement = isAssignmentStatement;
40
61
  function isBlock(element) {
@@ -43,126 +64,190 @@ function isBlock(element) {
43
64
  }
44
65
  exports.isBlock = isBlock;
45
66
  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';
67
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExpressionStatement;
48
68
  }
49
69
  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';
70
+ function isExitStatement(element) {
71
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExitStatement;
53
72
  }
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';
63
- }
64
- exports.isExitWhileStatement = isExitWhileStatement;
73
+ exports.isExitStatement = isExitStatement;
65
74
  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';
75
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionStatement;
68
76
  }
69
77
  exports.isFunctionStatement = isFunctionStatement;
70
78
  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';
79
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IfStatement;
73
80
  }
74
81
  exports.isIfStatement = isIfStatement;
75
82
  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';
83
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IncrementStatement;
78
84
  }
79
85
  exports.isIncrementStatement = isIncrementStatement;
80
86
  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';
87
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.PrintStatement;
83
88
  }
84
89
  exports.isPrintStatement = isPrintStatement;
85
90
  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';
91
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.GotoStatement;
88
92
  }
89
93
  exports.isGotoStatement = isGotoStatement;
90
94
  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';
95
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LabelStatement;
93
96
  }
94
97
  exports.isLabelStatement = isLabelStatement;
95
98
  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';
99
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ReturnStatement;
98
100
  }
99
101
  exports.isReturnStatement = isReturnStatement;
100
- function isEndStatement(element) {
102
+ function isTernaryExpression(element) {
101
103
  var _a;
102
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'EndStatement';
104
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'TernaryExpression';
105
+ }
106
+ exports.isTernaryExpression = isTernaryExpression;
107
+ function isNullCoalescingExpression(element) {
108
+ var _a;
109
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'NullCoalescingExpression';
110
+ }
111
+ exports.isNullCoalescingExpression = isNullCoalescingExpression;
112
+ function isEndStatement(element) {
113
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EndStatement;
103
114
  }
104
115
  exports.isEndStatement = isEndStatement;
105
116
  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';
117
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.StopStatement;
108
118
  }
109
119
  exports.isStopStatement = isStopStatement;
110
120
  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';
121
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ForStatement;
113
122
  }
114
123
  exports.isForStatement = isForStatement;
115
124
  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';
125
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ForEachStatement;
118
126
  }
119
127
  exports.isForEachStatement = isForEachStatement;
120
128
  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';
129
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.WhileStatement;
123
130
  }
124
131
  exports.isWhileStatement = isWhileStatement;
125
- function isDottedSetStatement(element) {
132
+ function isDimStatement(element) {
126
133
  var _a;
127
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'DottedSetStatement';
134
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'DimStatement';
135
+ }
136
+ exports.isDimStatement = isDimStatement;
137
+ function isDottedSetStatement(element) {
138
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.DottedSetStatement;
128
139
  }
129
140
  exports.isDottedSetStatement = isDottedSetStatement;
130
141
  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';
142
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IndexedSetStatement;
133
143
  }
134
144
  exports.isIndexedSetStatement = isIndexedSetStatement;
135
145
  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';
146
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LibraryStatement;
138
147
  }
139
148
  exports.isLibraryStatement = isLibraryStatement;
140
149
  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';
150
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.NamespaceStatement;
143
151
  }
144
152
  exports.isNamespaceStatement = isNamespaceStatement;
145
153
  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';
154
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ClassStatement;
148
155
  }
149
156
  exports.isClassStatement = isClassStatement;
150
157
  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';
158
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ImportStatement;
153
159
  }
154
160
  exports.isImportStatement = isImportStatement;
155
- function isClassMethodStatement(element) {
156
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ClassMethodStatement';
161
+ function isMethodStatement(element) {
162
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.MethodStatement;
163
+ }
164
+ exports.isMethodStatement = isMethodStatement;
165
+ function isFieldStatement(element) {
166
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FieldStatement;
167
+ }
168
+ exports.isFieldStatement = isFieldStatement;
169
+ function isInterfaceStatement(element) {
170
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceStatement;
171
+ }
172
+ exports.isInterfaceStatement = isInterfaceStatement;
173
+ function isInterfaceMethodStatement(element) {
174
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceMethodStatement;
175
+ }
176
+ exports.isInterfaceMethodStatement = isInterfaceMethodStatement;
177
+ function isInterfaceFieldStatement(element) {
178
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceFieldStatement;
179
+ }
180
+ exports.isInterfaceFieldStatement = isInterfaceFieldStatement;
181
+ function isMemberField(element) {
182
+ return isFieldStatement(element) || isInterfaceFieldStatement(element);
183
+ }
184
+ exports.isMemberField = isMemberField;
185
+ function isMemberMethod(element) {
186
+ return isMethodStatement(element) || isInterfaceMethodStatement(element);
187
+ }
188
+ exports.isMemberMethod = isMemberMethod;
189
+ function isEnumStatement(element) {
190
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EnumStatement;
191
+ }
192
+ exports.isEnumStatement = isEnumStatement;
193
+ function isEnumMemberStatement(element) {
194
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EnumMemberStatement;
195
+ }
196
+ exports.isEnumMemberStatement = isEnumMemberStatement;
197
+ function isConstStatement(element) {
198
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConstStatement;
199
+ }
200
+ exports.isConstStatement = isConstStatement;
201
+ function isContinueStatement(element) {
202
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ContinueStatement;
157
203
  }
158
- exports.isClassMethodStatement = isClassMethodStatement;
159
- function isClassFieldStatement(element) {
160
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ClassFieldStatement';
204
+ exports.isContinueStatement = isContinueStatement;
205
+ function isTryCatchStatement(element) {
206
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TryCatchStatement;
161
207
  }
162
- exports.isClassFieldStatement = isClassFieldStatement;
208
+ exports.isTryCatchStatement = isTryCatchStatement;
209
+ function isCatchStatement(element) {
210
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CatchStatement;
211
+ }
212
+ exports.isCatchStatement = isCatchStatement;
213
+ function isThrowStatement(element) {
214
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ThrowStatement;
215
+ }
216
+ exports.isThrowStatement = isThrowStatement;
217
+ function isConditionalCompileStatement(element) {
218
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConditionalCompileStatement;
219
+ }
220
+ exports.isConditionalCompileStatement = isConditionalCompileStatement;
221
+ function isConditionalCompileConstStatement(element) {
222
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConditionalCompileConstStatement;
223
+ }
224
+ exports.isConditionalCompileConstStatement = isConditionalCompileConstStatement;
225
+ function isConditionalCompileErrorStatement(element) {
226
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConditionalCompileErrorStatement;
227
+ }
228
+ exports.isConditionalCompileErrorStatement = isConditionalCompileErrorStatement;
229
+ function isAugmentedAssignmentStatement(element) {
230
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AugmentedAssignmentStatement;
231
+ }
232
+ exports.isAugmentedAssignmentStatement = isAugmentedAssignmentStatement;
233
+ function isTypecastStatement(element) {
234
+ var _a;
235
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'TypecastStatement';
236
+ }
237
+ exports.isTypecastStatement = isTypecastStatement;
238
+ function isAliasStatement(element) {
239
+ var _a;
240
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'AliasStatement';
241
+ }
242
+ exports.isAliasStatement = isAliasStatement;
243
+ function isTypeStatement(element) {
244
+ var _a;
245
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'TypeStatement';
246
+ }
247
+ exports.isTypeStatement = isTypeStatement;
163
248
  // Expressions reflection
164
249
  /**
165
- * Determine if the variable is a descendent of the Expression base class.
250
+ * Determine if the variablvalue is a descendent of the Expression base class.
166
251
  * Due to performance restrictions, this expects all statements to directly extend Expression,
167
252
  * so it only checks the immediate parent's class name. For example:
168
253
  * this will work for StringLiteralExpression -> Expression,
@@ -174,188 +259,476 @@ function isExpression(element) {
174
259
  }
175
260
  exports.isExpression = isExpression;
176
261
  function isBinaryExpression(element) {
177
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'BinaryExpression';
262
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.BinaryExpression;
178
263
  }
179
264
  exports.isBinaryExpression = isBinaryExpression;
180
265
  function isCallExpression(element) {
181
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CallExpression';
266
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CallExpression;
182
267
  }
183
268
  exports.isCallExpression = isCallExpression;
184
269
  function isFunctionExpression(element) {
185
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'FunctionExpression';
270
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionExpression;
186
271
  }
187
272
  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
273
  function isDottedGetExpression(element) {
193
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'DottedGetExpression';
274
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.DottedGetExpression;
194
275
  }
195
276
  exports.isDottedGetExpression = isDottedGetExpression;
196
277
  function isXmlAttributeGetExpression(element) {
197
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'XmlAttributeGetExpression';
278
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.XmlAttributeGetExpression;
198
279
  }
199
280
  exports.isXmlAttributeGetExpression = isXmlAttributeGetExpression;
200
281
  function isIndexedGetExpression(element) {
201
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'IndexedGetExpression';
282
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IndexedGetExpression;
202
283
  }
203
284
  exports.isIndexedGetExpression = isIndexedGetExpression;
204
285
  function isGroupingExpression(element) {
205
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'GroupingExpression';
286
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.GroupingExpression;
206
287
  }
207
288
  exports.isGroupingExpression = isGroupingExpression;
208
289
  function isLiteralExpression(element) {
209
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'LiteralExpression';
290
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LiteralExpression;
210
291
  }
211
292
  exports.isLiteralExpression = isLiteralExpression;
212
293
  function isEscapedCharCodeLiteralExpression(element) {
213
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'EscapedCharCodeLiteralExpression';
294
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EscapedCharCodeLiteralExpression;
214
295
  }
215
296
  exports.isEscapedCharCodeLiteralExpression = isEscapedCharCodeLiteralExpression;
216
297
  function isArrayLiteralExpression(element) {
217
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ArrayLiteralExpression';
298
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ArrayLiteralExpression;
218
299
  }
219
300
  exports.isArrayLiteralExpression = isArrayLiteralExpression;
220
301
  function isAALiteralExpression(element) {
221
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AALiteralExpression';
302
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AALiteralExpression;
222
303
  }
223
304
  exports.isAALiteralExpression = isAALiteralExpression;
305
+ function isAAMemberExpression(element) {
306
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AAMemberExpression;
307
+ }
308
+ exports.isAAMemberExpression = isAAMemberExpression;
309
+ function isAAIndexedMemberExpression(element) {
310
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AAIndexedMemberExpression';
311
+ }
312
+ exports.isAAIndexedMemberExpression = isAAIndexedMemberExpression;
224
313
  function isUnaryExpression(element) {
225
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'UnaryExpression';
314
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.UnaryExpression;
226
315
  }
227
316
  exports.isUnaryExpression = isUnaryExpression;
228
317
  function isVariableExpression(element) {
229
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'VariableExpression';
318
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.VariableExpression;
230
319
  }
231
320
  exports.isVariableExpression = isVariableExpression;
232
321
  function isSourceLiteralExpression(element) {
233
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'SourceLiteralExpression';
322
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.SourceLiteralExpression;
234
323
  }
235
324
  exports.isSourceLiteralExpression = isSourceLiteralExpression;
236
325
  function isNewExpression(element) {
237
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'NewExpression';
326
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.NewExpression;
238
327
  }
239
328
  exports.isNewExpression = isNewExpression;
240
329
  function isCallfuncExpression(element) {
241
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CallfuncExpression';
330
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CallfuncExpression;
242
331
  }
243
332
  exports.isCallfuncExpression = isCallfuncExpression;
244
333
  function isTemplateStringQuasiExpression(element) {
245
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TemplateStringQuasiExpression';
334
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TemplateStringQuasiExpression;
246
335
  }
247
336
  exports.isTemplateStringQuasiExpression = isTemplateStringQuasiExpression;
248
337
  function isTemplateStringExpression(element) {
249
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TemplateStringExpression';
338
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TemplateStringExpression;
250
339
  }
251
340
  exports.isTemplateStringExpression = isTemplateStringExpression;
252
341
  function isTaggedTemplateStringExpression(element) {
253
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TaggedTemplateStringExpression';
342
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TaggedTemplateStringExpression;
254
343
  }
255
344
  exports.isTaggedTemplateStringExpression = isTaggedTemplateStringExpression;
256
345
  function isFunctionParameterExpression(element) {
257
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'FunctionParameterExpression';
346
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionParameterExpression;
258
347
  }
259
348
  exports.isFunctionParameterExpression = isFunctionParameterExpression;
260
349
  function isAnnotationExpression(element) {
261
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AnnotationExpression';
350
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AnnotationExpression;
262
351
  }
263
352
  exports.isAnnotationExpression = isAnnotationExpression;
353
+ function isTypedefProvider(element) {
354
+ return 'getTypedef' in element;
355
+ }
356
+ exports.isTypedefProvider = isTypedefProvider;
357
+ function isTypeExpression(element) {
358
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypeExpression;
359
+ }
360
+ exports.isTypeExpression = isTypeExpression;
361
+ function isTypecastExpression(element) {
362
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypecastExpression;
363
+ }
364
+ exports.isTypecastExpression = isTypecastExpression;
365
+ function isTypedArrayExpression(element) {
366
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypedArrayExpression;
367
+ }
368
+ exports.isTypedArrayExpression = isTypedArrayExpression;
369
+ function isPrintSeparatorExpression(element) {
370
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.PrintSeparatorExpression;
371
+ }
372
+ exports.isPrintSeparatorExpression = isPrintSeparatorExpression;
373
+ function isInlineInterfaceExpression(element) {
374
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InlineInterfaceExpression;
375
+ }
376
+ exports.isInlineInterfaceExpression = isInlineInterfaceExpression;
377
+ function isInlineInterfaceMemberExpression(element) {
378
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InlineInterfaceMemberExpression;
379
+ }
380
+ exports.isInlineInterfaceMemberExpression = isInlineInterfaceMemberExpression;
381
+ function isTypedFunctionTypeExpression(element) {
382
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypedFunctionTypeExpression;
383
+ }
384
+ exports.isTypedFunctionTypeExpression = isTypedFunctionTypeExpression;
264
385
  // BscType reflection
265
- // Note: these are Hardcoded to avoid circular dependencies
266
386
  function isStringType(value) {
267
- return (value === null || value === void 0 ? void 0 : value.constructor.name) === 'StringType';
387
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.StringType;
268
388
  }
269
389
  exports.isStringType = isStringType;
270
- function isFunctionType(e) {
271
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'FunctionType';
390
+ function isRoStringType(value) {
391
+ return isBuiltInType(value, 'roString');
392
+ }
393
+ exports.isRoStringType = isRoStringType;
394
+ function isStringTypeLike(value) {
395
+ return isStringType(value) || isRoStringType(value) || isCompoundTypeOf(value, isStringTypeLike);
396
+ }
397
+ exports.isStringTypeLike = isStringTypeLike;
398
+ function isTypedFunctionType(value) {
399
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.TypedFunctionType;
400
+ }
401
+ exports.isTypedFunctionType = isTypedFunctionType;
402
+ function isTypedFunctionTypeLike(value) {
403
+ return isTypedFunctionType(value) || isTypeStatementTypeOf(value, isTypedFunctionTypeLike) || isUnionTypeOf(value, isTypedFunctionTypeLike);
404
+ }
405
+ exports.isTypedFunctionTypeLike = isTypedFunctionTypeLike;
406
+ function isFunctionType(value) {
407
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.FunctionType;
272
408
  }
273
409
  exports.isFunctionType = isFunctionType;
274
- function isBooleanType(e) {
275
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'BooleanType';
410
+ function isRoFunctionType(value) {
411
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.RoFunctionType || isBuiltInType(value, 'roFunction');
412
+ }
413
+ exports.isRoFunctionType = isRoFunctionType;
414
+ function isFunctionTypeLike(value) {
415
+ return isFunctionType(value) || isRoFunctionType(value) || isCompoundTypeOf(value, isFunctionTypeLike);
416
+ }
417
+ exports.isFunctionTypeLike = isFunctionTypeLike;
418
+ function isBooleanType(value) {
419
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.BooleanType;
276
420
  }
277
421
  exports.isBooleanType = isBooleanType;
278
- function isIntegerType(e) {
279
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'IntegerType';
422
+ function isRoBooleanType(value) {
423
+ return isBuiltInType(value, 'roBoolean');
424
+ }
425
+ exports.isRoBooleanType = isRoBooleanType;
426
+ function isBooleanTypeLike(value) {
427
+ return isBooleanType(value) || isRoBooleanType(value) || isCompoundTypeOf(value, isBooleanTypeLike);
428
+ }
429
+ exports.isBooleanTypeLike = isBooleanTypeLike;
430
+ function isIntegerType(value) {
431
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.IntegerType;
280
432
  }
281
433
  exports.isIntegerType = isIntegerType;
282
- function isLongIntegerType(e) {
283
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'LongIntegerType';
434
+ function isRoIntType(value) {
435
+ return isBuiltInType(value, 'roInt');
436
+ }
437
+ exports.isRoIntType = isRoIntType;
438
+ function isIntegerTypeLike(value) {
439
+ return isIntegerType(value) || isRoIntType(value) || isCompoundTypeOf(value, isIntegerTypeLike);
440
+ }
441
+ exports.isIntegerTypeLike = isIntegerTypeLike;
442
+ function isLongIntegerType(value) {
443
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.LongIntegerType;
284
444
  }
285
445
  exports.isLongIntegerType = isLongIntegerType;
286
- function isFloatType(e) {
287
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'FloatType';
446
+ function isRoLongIntegerType(value) {
447
+ return isBuiltInType(value, 'roLongInteger');
448
+ }
449
+ exports.isRoLongIntegerType = isRoLongIntegerType;
450
+ function isLongIntegerTypeLike(value) {
451
+ return isLongIntegerType(value) || isRoLongIntegerType(value) || isCompoundTypeOf(value, isLongIntegerTypeLike);
452
+ }
453
+ exports.isLongIntegerTypeLike = isLongIntegerTypeLike;
454
+ function isFloatType(value) {
455
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.FloatType;
288
456
  }
289
457
  exports.isFloatType = isFloatType;
290
- function isDoubleType(e) {
291
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'DoubleType';
458
+ function isRoFloatType(value) {
459
+ return isBuiltInType(value, 'roFloat');
460
+ }
461
+ exports.isRoFloatType = isRoFloatType;
462
+ function isFloatTypeLike(value) {
463
+ return isFloatType(value) || isRoFloatType(value) || isCompoundTypeOf(value, isFloatTypeLike);
464
+ }
465
+ exports.isFloatTypeLike = isFloatTypeLike;
466
+ function isDoubleType(value) {
467
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.DoubleType;
292
468
  }
293
469
  exports.isDoubleType = isDoubleType;
294
- function isInvalidType(e) {
295
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'InvalidType';
470
+ function isRoDoubleType(value) {
471
+ return isBuiltInType(value, 'roDouble');
472
+ }
473
+ exports.isRoDoubleType = isRoDoubleType;
474
+ function isDoubleTypeLike(value) {
475
+ return isDoubleType(value) || isRoDoubleType(value) || isCompoundTypeOf(value, isDoubleTypeLike);
476
+ }
477
+ exports.isDoubleTypeLike = isDoubleTypeLike;
478
+ function isInvalidType(value) {
479
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.InvalidType;
296
480
  }
297
481
  exports.isInvalidType = isInvalidType;
298
- function isVoidType(e) {
299
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'VoidType';
482
+ function isRoInvalidType(value) {
483
+ return isBuiltInType(value, 'roInvalid');
484
+ }
485
+ exports.isRoInvalidType = isRoInvalidType;
486
+ function isInvalidTypeLike(value) {
487
+ return isInvalidType(value) || isRoInvalidType(value) || isCompoundTypeOf(value, isInvalidTypeLike);
488
+ }
489
+ exports.isInvalidTypeLike = isInvalidTypeLike;
490
+ function isVoidType(value) {
491
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.VoidType;
300
492
  }
301
493
  exports.isVoidType = isVoidType;
302
- function isCustomType(e) {
303
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'CustomType';
494
+ function isClassType(value) {
495
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ClassType;
304
496
  }
305
- exports.isCustomType = isCustomType;
306
- function isUninitializedType(e) {
307
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'UninitializedType';
497
+ exports.isClassType = isClassType;
498
+ function isComponentType(value) {
499
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ComponentType;
308
500
  }
309
- exports.isUninitializedType = isUninitializedType;
310
- function isInterfaceType(e) {
311
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'InterfaceType';
501
+ exports.isComponentType = isComponentType;
502
+ function isDynamicType(value) {
503
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.DynamicType;
312
504
  }
313
- exports.isInterfaceType = isInterfaceType;
314
- function isArrayType(e) {
315
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'ArrayType';
505
+ exports.isDynamicType = isDynamicType;
506
+ function isInterfaceType(value) {
507
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.InterfaceType;
316
508
  }
317
- exports.isArrayType = isArrayType;
318
- function isObjectType(e) {
319
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'ObjectType';
509
+ exports.isInterfaceType = isInterfaceType;
510
+ function isObjectType(value) {
511
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ObjectType;
320
512
  }
321
513
  exports.isObjectType = isObjectType;
322
- function isDynamicType(e) {
323
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'DynamicType';
514
+ function isReferenceType(value) {
515
+ var _a;
516
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ReferenceType';
324
517
  }
325
- exports.isDynamicType = isDynamicType;
326
- const numberConstructorNames = [
327
- 'IntegerType',
328
- 'LongIntegerType',
329
- 'FloatType',
330
- 'DoubleType'
331
- ];
332
- function isNumberType(e) {
333
- return numberConstructorNames.includes(e === null || e === void 0 ? void 0 : e.constructor.name);
518
+ exports.isReferenceType = isReferenceType;
519
+ function isEnumType(value) {
520
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.EnumType;
521
+ }
522
+ exports.isEnumType = isEnumType;
523
+ function isEnumMemberType(value) {
524
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.EnumMemberType;
525
+ }
526
+ exports.isEnumMemberType = isEnumMemberType;
527
+ function isTypePropertyReferenceType(value) {
528
+ var _a;
529
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'TypePropertyReferenceType';
530
+ }
531
+ exports.isTypePropertyReferenceType = isTypePropertyReferenceType;
532
+ function isBinaryOperatorReferenceType(value) {
533
+ var _a;
534
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'BinaryOperatorReferenceType';
535
+ }
536
+ exports.isBinaryOperatorReferenceType = isBinaryOperatorReferenceType;
537
+ function isArrayDefaultTypeReferenceType(value) {
538
+ var _a;
539
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ArrayDefaultTypeReferenceType';
540
+ }
541
+ exports.isArrayDefaultTypeReferenceType = isArrayDefaultTypeReferenceType;
542
+ function isParamTypeFromValueReferenceType(value) {
543
+ var _a;
544
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ParamTypeFromValueReferenceType';
545
+ }
546
+ exports.isParamTypeFromValueReferenceType = isParamTypeFromValueReferenceType;
547
+ function isReferenceTypeWithDefault(value) {
548
+ var _a;
549
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ReferenceTypeWithDefault';
550
+ }
551
+ exports.isReferenceTypeWithDefault = isReferenceTypeWithDefault;
552
+ function isNamespaceType(value) {
553
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.NamespaceType;
554
+ }
555
+ exports.isNamespaceType = isNamespaceType;
556
+ function isUnionType(value) {
557
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.UnionType;
558
+ }
559
+ exports.isUnionType = isUnionType;
560
+ function isIntersectionType(value) {
561
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.IntersectionType;
562
+ }
563
+ exports.isIntersectionType = isIntersectionType;
564
+ function isUninitializedType(value) {
565
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.UninitializedType;
566
+ }
567
+ exports.isUninitializedType = isUninitializedType;
568
+ function isArrayType(value) {
569
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ArrayType;
570
+ }
571
+ exports.isArrayType = isArrayType;
572
+ function isAssociativeArrayType(value) {
573
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.AssociativeArrayType;
574
+ }
575
+ exports.isAssociativeArrayType = isAssociativeArrayType;
576
+ function isTypeStatementType(value) {
577
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.TypeStatementType;
578
+ }
579
+ exports.isTypeStatementType = isTypeStatementType;
580
+ function isInheritableType(target) {
581
+ return isClassType(target) || isInterfaceType(target) || isComponentType(target);
582
+ }
583
+ exports.isInheritableType = isInheritableType;
584
+ function isCallFuncableType(target) {
585
+ return isInterfaceType(target) || isComponentType(target) || isCompoundTypeOf(target, isCallFuncableType);
586
+ }
587
+ exports.isCallFuncableType = isCallFuncableType;
588
+ function isCallableType(target) {
589
+ return isFunctionTypeLike(target) ||
590
+ isTypedFunctionTypeLike(target) ||
591
+ isTypeStatementTypeOf(target, isCallableType) ||
592
+ isUnionTypeOf(target, isCallableType) ||
593
+ isObjectType(target) ||
594
+ (isDynamicType(target) && !isAnyReferenceType(target));
595
+ }
596
+ exports.isCallableType = isCallableType;
597
+ function isAnyReferenceType(target) {
598
+ var _a;
599
+ const name = (_a = target === null || target === void 0 ? void 0 : target.__reflection) === null || _a === void 0 ? void 0 : _a.name;
600
+ return name === 'ReferenceType' || name === 'TypePropertyReferenceType' || name === 'BinaryOperatorReferenceType' || name === 'ArrayDefaultTypeReferenceType' || name === 'ParamTypeFromValueReferenceType' || name === 'ReferenceTypeWithDefault';
601
+ }
602
+ exports.isAnyReferenceType = isAnyReferenceType;
603
+ function isNumberType(value) {
604
+ return isIntegerType(value) ||
605
+ isLongIntegerType(value) ||
606
+ isFloatType(value) ||
607
+ isDoubleType(value);
334
608
  }
335
609
  exports.isNumberType = isNumberType;
610
+ function isNumberTypeLike(value) {
611
+ return isIntegerTypeLike(value) ||
612
+ isLongIntegerTypeLike(value) ||
613
+ isFloatTypeLike(value) ||
614
+ isDoubleTypeLike(value) ||
615
+ isCompoundTypeOf(value, isNumberTypeLike);
616
+ }
617
+ exports.isNumberTypeLike = isNumberTypeLike;
618
+ function isPrimitiveType(value = false) {
619
+ return isNumberType(value) ||
620
+ isBooleanType(value) ||
621
+ isStringType(value);
622
+ }
623
+ exports.isPrimitiveType = isPrimitiveType;
624
+ function isPrimitiveTypeLike(value = false) {
625
+ return isNumberTypeLike(value) ||
626
+ isBooleanTypeLike(value) ||
627
+ isStringTypeLike(value) ||
628
+ isTypeStatementTypeOf(value, isPrimitiveTypeLike);
629
+ }
630
+ exports.isPrimitiveTypeLike = isPrimitiveTypeLike;
631
+ function isAssociativeArrayTypeLike(value) {
632
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.AssociativeArrayType || isBuiltInType(value, 'roAssociativeArray') || isCompoundTypeOf(value, isAssociativeArrayTypeLike);
633
+ }
634
+ exports.isAssociativeArrayTypeLike = isAssociativeArrayTypeLike;
635
+ function isArrayTypeLike(value) {
636
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ArrayType || isBuiltInType(value, 'roArray') || isCompoundTypeOf(value, isArrayTypeLike);
637
+ }
638
+ exports.isArrayTypeLike = isArrayTypeLike;
639
+ function isCallFuncableTypeLike(target) {
640
+ return isCallFuncableType(target) || isCompoundTypeOf(target, isCallFuncableTypeLike);
641
+ }
642
+ exports.isCallFuncableTypeLike = isCallFuncableTypeLike;
643
+ function isBuiltInType(value, name) {
644
+ return (isInterfaceType(value) && value.name.toLowerCase() === name.toLowerCase() && value.isBuiltIn) ||
645
+ (isTypeStatementType(value) && isBuiltInType(value.wrappedType, name));
646
+ }
647
+ exports.isBuiltInType = isBuiltInType;
648
+ const nativeTypeKinds = [
649
+ BscTypeKind_1.BscTypeKind.DynamicType,
650
+ BscTypeKind_1.BscTypeKind.ObjectType,
651
+ BscTypeKind_1.BscTypeKind.VoidType,
652
+ BscTypeKind_1.BscTypeKind.FunctionType
653
+ ];
654
+ function isNativeType(value) {
655
+ return isPrimitiveType(value) || nativeTypeKinds.includes(value === null || value === void 0 ? void 0 : value.kind);
656
+ }
657
+ exports.isNativeType = isNativeType;
658
+ function isTypeStatementTypeOf(value, typeGuard) {
659
+ return isTypeStatementType(value) && typeGuard(value.wrappedType);
660
+ }
661
+ exports.isTypeStatementTypeOf = isTypeStatementTypeOf;
662
+ function isUnionTypeOf(value, typeGuard) {
663
+ return isUnionType(value) && value.types.every(typeGuard);
664
+ }
665
+ exports.isUnionTypeOf = isUnionTypeOf;
666
+ function isIntersectionTypeOf(value, typeGuard) {
667
+ return isIntersectionType(value) && value.types.some(typeGuard);
668
+ }
669
+ exports.isIntersectionTypeOf = isIntersectionTypeOf;
670
+ function isCompoundTypeOf(value, typeGuard) {
671
+ return isTypeStatementTypeOf(value, typeGuard) ||
672
+ isUnionTypeOf(value, typeGuard) ||
673
+ isIntersectionTypeOf(value, typeGuard);
674
+ }
675
+ exports.isCompoundTypeOf = isCompoundTypeOf;
676
+ function isCompoundType(value) {
677
+ return isUnionType(value) || isIntersectionType(value);
678
+ }
679
+ exports.isCompoundType = isCompoundType;
680
+ function isIterableType(value) {
681
+ if (isDynamicType(value) || isObjectType(value)) {
682
+ return true;
683
+ }
684
+ if (isArrayTypeLike(value) || isAssociativeArrayTypeLike(value)) {
685
+ return true;
686
+ }
687
+ if (isCompoundTypeOf(value, isIterableType)) {
688
+ return true;
689
+ }
690
+ if (isBuiltInType(value, 'roByteArray') || isBuiltInType(value, 'roList') || isBuiltInType(value, 'roXMLList') || isBuiltInType(value, 'roMessagePort')) {
691
+ return true;
692
+ }
693
+ return false;
694
+ }
695
+ exports.isIterableType = isIterableType;
336
696
  // Literal reflection
337
- function isLiteralInvalid(e) {
338
- return isLiteralExpression(e) && isInvalidType(e.type);
697
+ function isLiteralInvalid(value) {
698
+ return isLiteralExpression(value) && value.tokens.value.kind === TokenKind_1.TokenKind.Invalid;
339
699
  }
340
700
  exports.isLiteralInvalid = isLiteralInvalid;
341
- function isLiteralBoolean(e) {
342
- return isLiteralExpression(e) && isBooleanType(e.type);
701
+ function isLiteralBoolean(value) {
702
+ return isLiteralExpression(value) && isBooleanType(value.getType());
343
703
  }
344
704
  exports.isLiteralBoolean = isLiteralBoolean;
345
- function isLiteralString(e) {
346
- return isLiteralExpression(e) && isStringType(e.type);
705
+ function isLiteralString(value) {
706
+ return isLiteralExpression(value) && isStringType(value.getType());
347
707
  }
348
708
  exports.isLiteralString = isLiteralString;
349
- function isLiteralNumber(e) {
350
- return isLiteralExpression(e) && isNumberType(e.type);
709
+ function isLiteralNumber(value) {
710
+ return isLiteralExpression(value) && isNumberType(value.getType());
351
711
  }
352
712
  exports.isLiteralNumber = isLiteralNumber;
353
- function isSGInterfaceField(e) {
354
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'SGInterfaceField';
713
+ function isLiteralInteger(value) {
714
+ return isLiteralExpression(value) && isIntegerType(value.getType());
715
+ }
716
+ exports.isLiteralInteger = isLiteralInteger;
717
+ function isLiteralLongInteger(value) {
718
+ return isLiteralExpression(value) && isLongIntegerType(value.getType());
719
+ }
720
+ exports.isLiteralLongInteger = isLiteralLongInteger;
721
+ function isLiteralFloat(value) {
722
+ return isLiteralExpression(value) && isFloatType(value.getType());
723
+ }
724
+ exports.isLiteralFloat = isLiteralFloat;
725
+ function isLiteralDouble(value) {
726
+ return isLiteralExpression(value) && isDoubleType(value.getType());
355
727
  }
356
- exports.isSGInterfaceField = isSGInterfaceField;
357
- function isSGInterfaceFunction(e) {
358
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'SGInterfaceFunction';
728
+ exports.isLiteralDouble = isLiteralDouble;
729
+ // Diagnostics
730
+ function isBsDiagnostic(value) {
731
+ return value.message;
359
732
  }
360
- exports.isSGInterfaceFunction = isSGInterfaceFunction;
733
+ exports.isBsDiagnostic = isBsDiagnostic;
361
734
  //# sourceMappingURL=reflection.js.map