brighterscript 0.66.0-alpha.8 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/CHANGELOG.md +120 -71
  2. package/README.md +14 -418
  3. package/dist/BsConfig.d.ts +25 -2
  4. package/dist/Cache.js +3 -3
  5. package/dist/Cache.js.map +1 -1
  6. package/dist/CodeActionUtil.d.ts +3 -3
  7. package/dist/CodeActionUtil.js.map +1 -1
  8. package/dist/CommentFlagProcessor.d.ts +3 -4
  9. package/dist/CommentFlagProcessor.js +4 -3
  10. package/dist/CommentFlagProcessor.js.map +1 -1
  11. package/dist/DependencyGraph.js +8 -8
  12. package/dist/DependencyGraph.js.map +1 -1
  13. package/dist/DiagnosticFilterer.d.ts +8 -4
  14. package/dist/DiagnosticFilterer.js +71 -38
  15. package/dist/DiagnosticFilterer.js.map +1 -1
  16. package/dist/DiagnosticMessages.d.ts +15 -36
  17. package/dist/DiagnosticMessages.js +15 -61
  18. package/dist/DiagnosticMessages.js.map +1 -1
  19. package/dist/DiagnosticSeverityAdjuster.js +3 -0
  20. package/dist/DiagnosticSeverityAdjuster.js.map +1 -1
  21. package/dist/FunctionScope.d.ts +2 -3
  22. package/dist/FunctionScope.js +0 -3
  23. package/dist/FunctionScope.js.map +1 -1
  24. package/dist/LanguageServer.d.ts +1 -2
  25. package/dist/LanguageServer.js +29 -35
  26. package/dist/LanguageServer.js.map +1 -1
  27. package/dist/Logger.d.ts +5 -9
  28. package/dist/Logger.js +18 -22
  29. package/dist/Logger.js.map +1 -1
  30. package/dist/PluginInterface.d.ts +13 -15
  31. package/dist/PluginInterface.js +16 -70
  32. package/dist/PluginInterface.js.map +1 -1
  33. package/dist/Program.d.ts +105 -138
  34. package/dist/Program.js +479 -702
  35. package/dist/Program.js.map +1 -1
  36. package/dist/ProgramBuilder.d.ts +8 -19
  37. package/dist/ProgramBuilder.js +82 -87
  38. package/dist/ProgramBuilder.js.map +1 -1
  39. package/dist/Scope.d.ts +56 -46
  40. package/dist/Scope.js +281 -217
  41. package/dist/Scope.js.map +1 -1
  42. package/dist/Stopwatch.js +1 -1
  43. package/dist/Stopwatch.js.map +1 -1
  44. package/dist/SymbolTable.d.ts +12 -68
  45. package/dist/SymbolTable.js +28 -213
  46. package/dist/SymbolTable.js.map +1 -1
  47. package/dist/XmlScope.d.ts +5 -7
  48. package/dist/XmlScope.js +36 -76
  49. package/dist/XmlScope.js.map +1 -1
  50. package/dist/astUtils/{Editor.d.ts → AstEditor.d.ts} +1 -6
  51. package/dist/astUtils/{Editor.js → AstEditor.js} +3 -9
  52. package/dist/astUtils/AstEditor.js.map +1 -0
  53. package/dist/astUtils/{Editor.spec.js → AstEditor.spec.js} +6 -10
  54. package/dist/astUtils/AstEditor.spec.js.map +1 -0
  55. package/dist/astUtils/creators.d.ts +8 -19
  56. package/dist/astUtils/creators.js +22 -54
  57. package/dist/astUtils/creators.js.map +1 -1
  58. package/dist/astUtils/creators.spec.js +0 -10
  59. package/dist/astUtils/creators.spec.js.map +1 -1
  60. package/dist/astUtils/reflection.d.ts +45 -81
  61. package/dist/astUtils/reflection.js +157 -220
  62. package/dist/astUtils/reflection.js.map +1 -1
  63. package/dist/astUtils/reflection.spec.js +19 -96
  64. package/dist/astUtils/reflection.spec.js.map +1 -1
  65. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  66. package/dist/astUtils/visitors.d.ts +14 -18
  67. package/dist/astUtils/visitors.js +9 -22
  68. package/dist/astUtils/visitors.js.map +1 -1
  69. package/dist/astUtils/visitors.spec.js +9 -62
  70. package/dist/astUtils/visitors.spec.js.map +1 -1
  71. package/dist/astUtils/xml.d.ts +9 -9
  72. package/dist/astUtils/xml.js +6 -6
  73. package/dist/astUtils/xml.js.map +1 -1
  74. package/dist/bscPlugin/BscPlugin.d.ts +8 -11
  75. package/dist/bscPlugin/BscPlugin.js +21 -29
  76. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  77. package/dist/bscPlugin/CallExpressionInfo.d.ts +6 -5
  78. package/dist/bscPlugin/CallExpressionInfo.js +2 -2
  79. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  80. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +11 -11
  81. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  82. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +4 -4
  83. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  84. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -49
  85. package/dist/bscPlugin/completions/CompletionsProcessor.js +23 -424
  86. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  87. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  88. package/dist/bscPlugin/definition/DefinitionProvider.js +200 -0
  89. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  90. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +87 -0
  91. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  92. package/dist/bscPlugin/hover/HoverProcessor.d.ts +3 -7
  93. package/dist/bscPlugin/hover/HoverProcessor.js +88 -128
  94. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  95. package/dist/bscPlugin/hover/HoverProcessor.spec.js +24 -336
  96. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  97. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  98. package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
  99. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  100. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  101. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  102. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +0 -1
  103. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +5 -49
  104. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  105. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -22
  106. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  107. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  108. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  109. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  110. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +290 -0
  111. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
  112. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  113. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  114. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  115. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
  116. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
  117. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  118. package/dist/bscPlugin/symbols/symbolUtils.js +140 -0
  119. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  120. package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.d.ts → BrsFilePreTranspileProcessor.d.ts} +2 -4
  121. package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.js → BrsFilePreTranspileProcessor.js} +15 -36
  122. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -0
  123. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +46 -0
  124. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -0
  125. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +1 -0
  126. package/dist/bscPlugin/validation/BrsFileValidator.js +30 -41
  127. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  128. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +2 -2
  129. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  130. package/dist/bscPlugin/validation/ProgramValidator.d.ts +3 -3
  131. package/dist/bscPlugin/validation/ProgramValidator.js +6 -6
  132. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -1
  133. package/dist/bscPlugin/validation/ScopeValidator.d.ts +6 -28
  134. package/dist/bscPlugin/validation/ScopeValidator.js +166 -387
  135. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  136. package/dist/bscPlugin/validation/XmlFileValidator.js +9 -9
  137. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  138. package/dist/diagnosticUtils.d.ts +2 -3
  139. package/dist/diagnosticUtils.js +5 -5
  140. package/dist/diagnosticUtils.js.map +1 -1
  141. package/dist/examples/plugins/removePrint.js +1 -1
  142. package/dist/examples/plugins/removePrint.js.map +1 -1
  143. package/dist/files/BrsFile.Class.spec.js +143 -114
  144. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  145. package/dist/files/BrsFile.d.ts +61 -83
  146. package/dist/files/BrsFile.js +552 -607
  147. package/dist/files/BrsFile.js.map +1 -1
  148. package/dist/files/BrsFile.spec.js +1365 -1201
  149. package/dist/files/BrsFile.spec.js.map +1 -1
  150. package/dist/files/XmlFile.d.ts +28 -56
  151. package/dist/files/XmlFile.js +103 -89
  152. package/dist/files/XmlFile.js.map +1 -1
  153. package/dist/files/XmlFile.spec.js +179 -122
  154. package/dist/files/XmlFile.spec.js.map +1 -1
  155. package/dist/files/tests/imports.spec.js +19 -29
  156. package/dist/files/tests/imports.spec.js.map +1 -1
  157. package/dist/files/tests/optionalChaning.spec.js +14 -14
  158. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  159. package/dist/globalCallables.js +83 -88
  160. package/dist/globalCallables.js.map +1 -1
  161. package/dist/index.d.ts +1 -9
  162. package/dist/index.js +1 -9
  163. package/dist/index.js.map +1 -1
  164. package/dist/interfaces.d.ts +173 -423
  165. package/dist/interfaces.js +0 -24
  166. package/dist/interfaces.js.map +1 -1
  167. package/dist/lexer/Lexer.d.ts +9 -15
  168. package/dist/lexer/Lexer.js +35 -46
  169. package/dist/lexer/Lexer.js.map +1 -1
  170. package/dist/lexer/Lexer.spec.js +48 -40
  171. package/dist/lexer/Lexer.spec.js.map +1 -1
  172. package/dist/lexer/Token.d.ts +1 -5
  173. package/dist/lexer/Token.js +1 -1
  174. package/dist/lexer/Token.js.map +1 -1
  175. package/dist/lexer/TokenKind.d.ts +0 -6
  176. package/dist/lexer/TokenKind.js +2 -14
  177. package/dist/lexer/TokenKind.js.map +1 -1
  178. package/dist/logging.d.ts +9 -0
  179. package/dist/logging.js +16 -0
  180. package/dist/logging.js.map +1 -0
  181. package/dist/parser/AstNode.d.ts +6 -90
  182. package/dist/parser/AstNode.js +5 -96
  183. package/dist/parser/AstNode.js.map +1 -1
  184. package/dist/parser/AstNode.spec.js.map +1 -1
  185. package/dist/parser/BrsTranspileState.d.ts +3 -4
  186. package/dist/parser/BrsTranspileState.js +2 -3
  187. package/dist/parser/BrsTranspileState.js.map +1 -1
  188. package/dist/parser/Expression.d.ts +114 -137
  189. package/dist/parser/Expression.js +244 -373
  190. package/dist/parser/Expression.js.map +1 -1
  191. package/dist/parser/Parser.Class.spec.js +19 -46
  192. package/dist/parser/Parser.Class.spec.js.map +1 -1
  193. package/dist/parser/Parser.d.ts +18 -14
  194. package/dist/parser/Parser.js +196 -175
  195. package/dist/parser/Parser.js.map +1 -1
  196. package/dist/parser/Parser.spec.d.ts +0 -2
  197. package/dist/parser/Parser.spec.js +10 -674
  198. package/dist/parser/Parser.spec.js.map +1 -1
  199. package/dist/parser/SGParser.d.ts +6 -44
  200. package/dist/parser/SGParser.js +198 -194
  201. package/dist/parser/SGParser.js.map +1 -1
  202. package/dist/parser/SGParser.spec.js +11 -14
  203. package/dist/parser/SGParser.spec.js.map +1 -1
  204. package/dist/parser/SGTypes.d.ts +52 -280
  205. package/dist/parser/SGTypes.js +185 -562
  206. package/dist/parser/SGTypes.js.map +1 -1
  207. package/dist/parser/Statement.d.ts +140 -172
  208. package/dist/parser/Statement.js +201 -337
  209. package/dist/parser/Statement.js.map +1 -1
  210. package/dist/parser/Statement.spec.js.map +1 -1
  211. package/dist/parser/TranspileState.d.ts +3 -2
  212. package/dist/parser/TranspileState.js +8 -10
  213. package/dist/parser/TranspileState.js.map +1 -1
  214. package/dist/parser/tests/Parser.spec.js +3 -5
  215. package/dist/parser/tests/Parser.spec.js.map +1 -1
  216. package/dist/parser/tests/controlFlow/For.spec.js +8 -16
  217. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  218. package/dist/parser/tests/controlFlow/ForEach.spec.js +6 -12
  219. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  220. package/dist/parser/tests/controlFlow/While.spec.js +4 -8
  221. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  222. package/dist/parser/tests/expression/Call.spec.js +4 -4
  223. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  224. package/dist/parser/tests/expression/Indexing.spec.js +25 -0
  225. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  226. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +73 -29
  227. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  228. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
  229. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  230. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
  231. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  232. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +47 -35
  233. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  234. package/dist/parser/tests/expression/TernaryExpression.spec.js +83 -36
  235. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  236. package/dist/parser/tests/expression/UnaryExpression.spec.js +2 -2
  237. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -1
  238. package/dist/parser/tests/statement/ConstStatement.spec.js +26 -27
  239. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  240. package/dist/parser/tests/statement/Continue.spec.js +2 -2
  241. package/dist/parser/tests/statement/Continue.spec.js.map +1 -1
  242. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  243. package/dist/parser/tests/statement/Enum.spec.js +393 -90
  244. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  245. package/dist/parser/tests/statement/For.spec.js +6 -6
  246. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  247. package/dist/parser/tests/statement/ForEach.spec.js +4 -4
  248. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  249. package/dist/parser/tests/statement/Function.spec.js +1 -1
  250. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  251. package/dist/parser/tests/statement/InterfaceStatement.spec.js +18 -18
  252. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  253. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  254. package/dist/parser/tests/statement/PrintStatement.spec.js +13 -16
  255. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  256. package/dist/parser/tests/statement/ReturnStatement.spec.js +3 -5
  257. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  258. package/dist/parser/tests/statement/Set.spec.js +13 -26
  259. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  260. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  261. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  262. package/dist/preprocessor/Chunk.js +1 -2
  263. package/dist/preprocessor/Chunk.js.map +1 -1
  264. package/dist/preprocessor/Preprocessor.d.ts +3 -4
  265. package/dist/preprocessor/Preprocessor.js +3 -3
  266. package/dist/preprocessor/Preprocessor.js.map +1 -1
  267. package/dist/preprocessor/PreprocessorParser.js +8 -1
  268. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  269. package/dist/roku-types/data.json +293 -243
  270. package/dist/roku-types/index.d.ts +38 -17
  271. package/dist/types/ArrayType.d.ts +4 -9
  272. package/dist/types/ArrayType.js +24 -72
  273. package/dist/types/ArrayType.js.map +1 -1
  274. package/dist/types/ArrayType.spec.js +10 -39
  275. package/dist/types/ArrayType.spec.js.map +1 -1
  276. package/dist/types/BooleanType.d.ts +4 -8
  277. package/dist/types/BooleanType.js +8 -19
  278. package/dist/types/BooleanType.js.map +1 -1
  279. package/dist/types/BooleanType.spec.js +3 -9
  280. package/dist/types/BooleanType.spec.js.map +1 -1
  281. package/dist/types/BscType.d.ts +2 -29
  282. package/dist/types/BscType.js +0 -113
  283. package/dist/types/BscType.js.map +1 -1
  284. package/dist/types/CustomType.d.ts +9 -0
  285. package/dist/types/CustomType.js +32 -0
  286. package/dist/types/CustomType.js.map +1 -0
  287. package/dist/types/DoubleType.d.ts +4 -8
  288. package/dist/types/DoubleType.js +20 -23
  289. package/dist/types/DoubleType.js.map +1 -1
  290. package/dist/types/DoubleType.spec.js +3 -11
  291. package/dist/types/DoubleType.spec.js.map +1 -1
  292. package/dist/types/DynamicType.d.ts +3 -9
  293. package/dist/types/DynamicType.js +2 -18
  294. package/dist/types/DynamicType.js.map +1 -1
  295. package/dist/types/DynamicType.spec.js +4 -15
  296. package/dist/types/DynamicType.spec.js.map +1 -1
  297. package/dist/types/FloatType.d.ts +4 -8
  298. package/dist/types/FloatType.js +20 -23
  299. package/dist/types/FloatType.js.map +1 -1
  300. package/dist/types/FloatType.spec.js +3 -3
  301. package/dist/types/FloatType.spec.js.map +1 -1
  302. package/dist/types/FunctionType.d.ts +20 -10
  303. package/dist/types/FunctionType.js +52 -27
  304. package/dist/types/FunctionType.js.map +1 -1
  305. package/dist/types/FunctionType.spec.js +23 -0
  306. package/dist/types/FunctionType.spec.js.map +1 -0
  307. package/dist/types/IntegerType.d.ts +4 -8
  308. package/dist/types/IntegerType.js +20 -23
  309. package/dist/types/IntegerType.js.map +1 -1
  310. package/dist/types/IntegerType.spec.js +3 -7
  311. package/dist/types/IntegerType.spec.js.map +1 -1
  312. package/dist/types/InterfaceType.d.ts +10 -12
  313. package/dist/types/InterfaceType.js +48 -23
  314. package/dist/types/InterfaceType.js.map +1 -1
  315. package/dist/types/InterfaceType.spec.js +45 -82
  316. package/dist/types/InterfaceType.spec.js.map +1 -1
  317. package/dist/types/InvalidType.d.ts +4 -7
  318. package/dist/types/InvalidType.js +8 -18
  319. package/dist/types/InvalidType.js.map +1 -1
  320. package/dist/types/InvalidType.spec.js +3 -7
  321. package/dist/types/InvalidType.spec.js.map +1 -1
  322. package/dist/types/LongIntegerType.d.ts +4 -8
  323. package/dist/types/LongIntegerType.js +20 -23
  324. package/dist/types/LongIntegerType.js.map +1 -1
  325. package/dist/types/LongIntegerType.spec.js +3 -9
  326. package/dist/types/LongIntegerType.spec.js.map +1 -1
  327. package/dist/types/ObjectType.d.ts +4 -8
  328. package/dist/types/ObjectType.js +7 -21
  329. package/dist/types/ObjectType.js.map +1 -1
  330. package/dist/types/ObjectType.spec.js +2 -2
  331. package/dist/types/ObjectType.spec.js.map +1 -1
  332. package/dist/types/StringType.d.ts +4 -11
  333. package/dist/types/StringType.js +8 -23
  334. package/dist/types/StringType.js.map +1 -1
  335. package/dist/types/StringType.spec.js +2 -2
  336. package/dist/types/StringType.spec.js.map +1 -1
  337. package/dist/types/UninitializedType.d.ts +3 -7
  338. package/dist/types/UninitializedType.js +3 -14
  339. package/dist/types/UninitializedType.js.map +1 -1
  340. package/dist/types/VoidType.d.ts +4 -8
  341. package/dist/types/VoidType.js +8 -18
  342. package/dist/types/VoidType.js.map +1 -1
  343. package/dist/types/VoidType.spec.js +2 -2
  344. package/dist/types/VoidType.spec.js.map +1 -1
  345. package/dist/util.d.ts +43 -104
  346. package/dist/util.js +243 -640
  347. package/dist/util.js.map +1 -1
  348. package/dist/validators/ClassValidator.d.ts +6 -1
  349. package/dist/validators/ClassValidator.js +61 -20
  350. package/dist/validators/ClassValidator.js.map +1 -1
  351. package/package.json +13 -12
  352. package/dist/ActionPipeline.d.ts +0 -10
  353. package/dist/ActionPipeline.js +0 -40
  354. package/dist/ActionPipeline.js.map +0 -1
  355. package/dist/AstValidationSegmenter.d.ts +0 -25
  356. package/dist/AstValidationSegmenter.js +0 -150
  357. package/dist/AstValidationSegmenter.js.map +0 -1
  358. package/dist/CacheVerifier.d.ts +0 -7
  359. package/dist/CacheVerifier.js +0 -20
  360. package/dist/CacheVerifier.js.map +0 -1
  361. package/dist/astUtils/Editor.js.map +0 -1
  362. package/dist/astUtils/Editor.spec.js.map +0 -1
  363. package/dist/bscPlugin/FileWriter.d.ts +0 -6
  364. package/dist/bscPlugin/FileWriter.js +0 -24
  365. package/dist/bscPlugin/FileWriter.js.map +0 -1
  366. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +0 -1658
  367. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +0 -1
  368. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +0 -9
  369. package/dist/bscPlugin/fileProviders/FileProvider.js +0 -51
  370. package/dist/bscPlugin/fileProviders/FileProvider.js.map +0 -1
  371. package/dist/bscPlugin/serialize/BslibInjector.spec.js +0 -19
  372. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +0 -1
  373. package/dist/bscPlugin/serialize/BslibManager.d.ts +0 -9
  374. package/dist/bscPlugin/serialize/BslibManager.js +0 -40
  375. package/dist/bscPlugin/serialize/BslibManager.js.map +0 -1
  376. package/dist/bscPlugin/serialize/FileSerializer.d.ts +0 -9
  377. package/dist/bscPlugin/serialize/FileSerializer.js +0 -72
  378. package/dist/bscPlugin/serialize/FileSerializer.js.map +0 -1
  379. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +0 -1
  380. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +0 -41
  381. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +0 -1
  382. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +0 -11
  383. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +0 -53
  384. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +0 -1
  385. package/dist/bscPlugin/validation/ScopeValidator.spec.js +0 -2004
  386. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +0 -1
  387. package/dist/files/AssetFile.d.ts +0 -26
  388. package/dist/files/AssetFile.js +0 -26
  389. package/dist/files/AssetFile.js.map +0 -1
  390. package/dist/files/Factory.d.ts +0 -25
  391. package/dist/files/Factory.js +0 -22
  392. package/dist/files/Factory.js.map +0 -1
  393. package/dist/files/File.d.ts +0 -106
  394. package/dist/files/File.js +0 -16
  395. package/dist/files/File.js.map +0 -1
  396. package/dist/files/LazyFileData.d.ts +0 -20
  397. package/dist/files/LazyFileData.js +0 -54
  398. package/dist/files/LazyFileData.js.map +0 -1
  399. package/dist/files/LazyFileData.spec.js +0 -27
  400. package/dist/files/LazyFileData.spec.js.map +0 -1
  401. package/dist/parser/tests/expression/TypeExpression.spec.js +0 -127
  402. package/dist/parser/tests/expression/TypeExpression.spec.js.map +0 -1
  403. package/dist/types/AssociativeArrayType.d.ts +0 -11
  404. package/dist/types/AssociativeArrayType.js +0 -52
  405. package/dist/types/AssociativeArrayType.js.map +0 -1
  406. package/dist/types/BaseFunctionType.d.ts +0 -9
  407. package/dist/types/BaseFunctionType.js +0 -25
  408. package/dist/types/BaseFunctionType.js.map +0 -1
  409. package/dist/types/BscTypeKind.d.ts +0 -25
  410. package/dist/types/BscTypeKind.js +0 -30
  411. package/dist/types/BscTypeKind.js.map +0 -1
  412. package/dist/types/BuiltInInterfaceAdder.d.ts +0 -23
  413. package/dist/types/BuiltInInterfaceAdder.js +0 -160
  414. package/dist/types/BuiltInInterfaceAdder.js.map +0 -1
  415. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +0 -1
  416. package/dist/types/BuiltInInterfaceAdder.spec.js +0 -116
  417. package/dist/types/BuiltInInterfaceAdder.spec.js.map +0 -1
  418. package/dist/types/ClassType.d.ts +0 -17
  419. package/dist/types/ClassType.js +0 -58
  420. package/dist/types/ClassType.js.map +0 -1
  421. package/dist/types/ClassType.spec.d.ts +0 -1
  422. package/dist/types/ClassType.spec.js +0 -77
  423. package/dist/types/ClassType.spec.js.map +0 -1
  424. package/dist/types/ComponentType.d.ts +0 -26
  425. package/dist/types/ComponentType.js +0 -83
  426. package/dist/types/ComponentType.js.map +0 -1
  427. package/dist/types/EnumType.d.ts +0 -40
  428. package/dist/types/EnumType.js +0 -81
  429. package/dist/types/EnumType.js.map +0 -1
  430. package/dist/types/EnumType.spec.d.ts +0 -1
  431. package/dist/types/EnumType.spec.js +0 -33
  432. package/dist/types/EnumType.spec.js.map +0 -1
  433. package/dist/types/InheritableType.d.ts +0 -28
  434. package/dist/types/InheritableType.js +0 -152
  435. package/dist/types/InheritableType.js.map +0 -1
  436. package/dist/types/NamespaceType.d.ts +0 -12
  437. package/dist/types/NamespaceType.js +0 -28
  438. package/dist/types/NamespaceType.js.map +0 -1
  439. package/dist/types/ReferenceType.d.ts +0 -63
  440. package/dist/types/ReferenceType.js +0 -423
  441. package/dist/types/ReferenceType.js.map +0 -1
  442. package/dist/types/ReferenceType.spec.d.ts +0 -1
  443. package/dist/types/ReferenceType.spec.js +0 -137
  444. package/dist/types/ReferenceType.spec.js.map +0 -1
  445. package/dist/types/TypedFunctionType.d.ts +0 -33
  446. package/dist/types/TypedFunctionType.js +0 -106
  447. package/dist/types/TypedFunctionType.js.map +0 -1
  448. package/dist/types/TypedFunctionType.spec.d.ts +0 -1
  449. package/dist/types/TypedFunctionType.spec.js +0 -122
  450. package/dist/types/TypedFunctionType.spec.js.map +0 -1
  451. package/dist/types/UnionType.d.ts +0 -20
  452. package/dist/types/UnionType.js +0 -123
  453. package/dist/types/UnionType.js.map +0 -1
  454. package/dist/types/UnionType.spec.d.ts +0 -1
  455. package/dist/types/UnionType.spec.js +0 -130
  456. package/dist/types/UnionType.spec.js.map +0 -1
  457. package/dist/types/helper.spec.d.ts +0 -1
  458. package/dist/types/helper.spec.js +0 -145
  459. package/dist/types/helper.spec.js.map +0 -1
  460. package/dist/types/helpers.d.ts +0 -24
  461. package/dist/types/helpers.js +0 -178
  462. package/dist/types/helpers.js.map +0 -1
  463. package/dist/types/index.d.ts +0 -22
  464. package/dist/types/index.js +0 -39
  465. package/dist/types/index.js.map +0 -1
  466. /package/dist/astUtils/{Editor.spec.d.ts → AstEditor.spec.d.ts} +0 -0
  467. /package/dist/bscPlugin/{completions/CompletionsProcessor.spec.d.ts → definition/DefinitionProvider.spec.d.ts} +0 -0
  468. /package/dist/bscPlugin/{serialize/BslibInjector.spec.d.ts → references/ReferencesProvider.spec.d.ts} +0 -0
  469. /package/dist/bscPlugin/{transpile/BrsFileTranspileProcessor.spec.d.ts → symbols/DocumentSymbolProcessor.spec.d.ts} +0 -0
  470. /package/dist/bscPlugin/{validation/ScopeValidator.spec.d.ts → symbols/WorkspaceSymbolProcessor.spec.d.ts} +0 -0
  471. /package/dist/{files/LazyFileData.spec.d.ts → bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts} +0 -0
  472. /package/dist/{parser/tests/expression/TypeExpression.spec.d.ts → types/FunctionType.spec.d.ts} +0 -0
@@ -1,12 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isGroupingExpression = exports.isIndexedGetExpression = exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isThrowStatement = exports.isCatchStatement = exports.isTryCatchStatement = exports.isContinueStatement = exports.isConstStatement = exports.isEnumMemberStatement = exports.isEnumStatement = exports.isInterfaceFieldStatement = exports.isInterfaceMethodStatement = exports.isInterfaceStatement = exports.isFieldStatement = exports.isMethodStatement = 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.isAssetFile = exports.isXmlFile = exports.isBrsFile = void 0;
4
- exports.isNativeType = exports.isPrimitiveType = exports.isNumberType = exports.isAnyReferenceType = exports.isCallableType = exports.isInheritableType = exports.isAssociativeArrayType = exports.isArrayType = exports.isUninitializedType = exports.isUnionType = exports.isNamespaceType = exports.isBinaryOperatorReferenceType = exports.isTypePropertyReferenceType = exports.isEnumMemberType = exports.isEnumType = exports.isReferenceType = exports.isObjectType = exports.isInterfaceType = exports.isDynamicType = exports.isComponentType = exports.isClassType = exports.isVoidType = exports.isInvalidType = exports.isDoubleType = exports.isFloatType = exports.isLongIntegerType = exports.isIntegerType = exports.isBooleanType = exports.isFunctionType = exports.isTypedFunctionType = exports.isStringType = exports.isTypedArrayExpression = exports.isTypeCastExpression = exports.isTypeExpression = exports.isTypedefProvider = exports.isAnnotationExpression = exports.isFunctionParameterExpression = exports.isTaggedTemplateStringExpression = exports.isTemplateStringExpression = exports.isTemplateStringQuasiExpression = exports.isCallfuncExpression = exports.isNewExpression = exports.isSourceLiteralExpression = exports.isVariableExpression = exports.isUnaryExpression = exports.isAAMemberExpression = exports.isAALiteralExpression = exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = void 0;
5
- exports.isLiteralDouble = exports.isLiteralFloat = exports.isLiteralLongInteger = exports.isLiteralInteger = exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = void 0;
3
+ exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isNamespacedVariableNameExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isThrowStatement = exports.isCatchStatement = exports.isTryCatchStatement = exports.isContinueStatement = exports.isConstStatement = exports.isEnumMemberStatement = exports.isEnumStatement = exports.isInterfaceFieldStatement = exports.isInterfaceMethodStatement = exports.isInterfaceStatement = exports.isClassFieldStatement = exports.isFieldStatement = exports.isClassMethodStatement = exports.isMethodStatement = 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;
4
+ exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isNumberType = exports.isObjectType = exports.isInterfaceType = exports.isDynamicType = exports.isCustomType = exports.isVoidType = exports.isInvalidType = exports.isDoubleType = exports.isFloatType = exports.isLongIntegerType = exports.isIntegerType = exports.isBooleanType = exports.isFunctionType = exports.isStringType = exports.isTypeCastExpression = exports.isTypedefProvider = exports.isAnnotationExpression = exports.isFunctionParameterExpression = exports.isTaggedTemplateStringExpression = exports.isTemplateStringExpression = exports.isTemplateStringQuasiExpression = exports.isCallfuncExpression = exports.isNewExpression = exports.isSourceLiteralExpression = exports.isVariableExpression = exports.isUnaryExpression = exports.isAAMemberExpression = exports.isAALiteralExpression = exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = exports.isGroupingExpression = exports.isIndexedGetExpression = void 0;
5
+ const InvalidType_1 = require("../types/InvalidType");
6
+ const VoidType_1 = require("../types/VoidType");
6
7
  const visitors_1 = require("./visitors");
7
- const AstNode_1 = require("../parser/AstNode");
8
- const BscTypeKind_1 = require("../types/BscTypeKind");
9
- const TokenKind_1 = require("../lexer/TokenKind");
8
+ const FunctionType_1 = require("../types/FunctionType");
9
+ const StringType_1 = require("../types/StringType");
10
+ const BooleanType_1 = require("../types/BooleanType");
11
+ const IntegerType_1 = require("../types/IntegerType");
12
+ const LongIntegerType_1 = require("../types/LongIntegerType");
13
+ const FloatType_1 = require("../types/FloatType");
14
+ const DoubleType_1 = require("../types/DoubleType");
15
+ const CustomType_1 = require("../types/CustomType");
16
+ const DynamicType_1 = require("../types/DynamicType");
10
17
  // File reflection
11
18
  function isBrsFile(file) {
12
19
  return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'BrsFile';
@@ -16,17 +23,13 @@ function isXmlFile(file) {
16
23
  return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'XmlFile';
17
24
  }
18
25
  exports.isXmlFile = isXmlFile;
19
- function isAssetFile(file) {
20
- return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'AssetFile';
21
- }
22
- exports.isAssetFile = isAssetFile;
23
26
  function isXmlScope(scope) {
24
27
  return (scope === null || scope === void 0 ? void 0 : scope.constructor.name) === 'XmlScope';
25
28
  }
26
29
  exports.isXmlScope = isXmlScope;
27
30
  // Statements reflection
28
31
  /**
29
- * Determine if the variablvalue is a descendent of the Statement base class.
32
+ * Determine if the variable is a descendent of the Statement base class.
30
33
  * Due to performance restrictions, this expects all statements to
31
34
  * directly extend Statement or FunctionStatement,
32
35
  * so it only checks the immediate parent's class name.
@@ -42,7 +45,8 @@ function isBody(element) {
42
45
  }
43
46
  exports.isBody = isBody;
44
47
  function isAssignmentStatement(element) {
45
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AssignmentStatement;
48
+ var _a;
49
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'AssignmentStatement';
46
50
  }
47
51
  exports.isAssignmentStatement = isAssignmentStatement;
48
52
  function isBlock(element) {
@@ -51,144 +55,182 @@ function isBlock(element) {
51
55
  }
52
56
  exports.isBlock = isBlock;
53
57
  function isExpressionStatement(element) {
54
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExpressionStatement;
58
+ var _a;
59
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExpressionStatement';
55
60
  }
56
61
  exports.isExpressionStatement = isExpressionStatement;
57
62
  function isCommentStatement(element) {
58
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CommentStatement;
63
+ var _a;
64
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'CommentStatement';
59
65
  }
60
66
  exports.isCommentStatement = isCommentStatement;
61
67
  function isExitForStatement(element) {
62
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExitForStatement;
68
+ var _a;
69
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExitForStatement';
63
70
  }
64
71
  exports.isExitForStatement = isExitForStatement;
65
72
  function isExitWhileStatement(element) {
66
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExitWhileStatement;
73
+ var _a;
74
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExitWhileStatement';
67
75
  }
68
76
  exports.isExitWhileStatement = isExitWhileStatement;
69
77
  function isFunctionStatement(element) {
70
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionStatement;
78
+ var _a;
79
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'FunctionStatement';
71
80
  }
72
81
  exports.isFunctionStatement = isFunctionStatement;
73
82
  function isIfStatement(element) {
74
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IfStatement;
83
+ var _a;
84
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IfStatement';
75
85
  }
76
86
  exports.isIfStatement = isIfStatement;
77
87
  function isIncrementStatement(element) {
78
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IncrementStatement;
88
+ var _a;
89
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IncrementStatement';
79
90
  }
80
91
  exports.isIncrementStatement = isIncrementStatement;
81
92
  function isPrintStatement(element) {
82
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.PrintStatement;
93
+ var _a;
94
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'PrintStatement';
83
95
  }
84
96
  exports.isPrintStatement = isPrintStatement;
85
97
  function isGotoStatement(element) {
86
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.GotoStatement;
98
+ var _a;
99
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'GotoStatement';
87
100
  }
88
101
  exports.isGotoStatement = isGotoStatement;
89
102
  function isLabelStatement(element) {
90
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LabelStatement;
103
+ var _a;
104
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'LabelStatement';
91
105
  }
92
106
  exports.isLabelStatement = isLabelStatement;
93
107
  function isReturnStatement(element) {
94
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ReturnStatement;
108
+ var _a;
109
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ReturnStatement';
95
110
  }
96
111
  exports.isReturnStatement = isReturnStatement;
97
112
  function isEndStatement(element) {
98
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EndStatement;
113
+ var _a;
114
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'EndStatement';
99
115
  }
100
116
  exports.isEndStatement = isEndStatement;
101
117
  function isStopStatement(element) {
102
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.StopStatement;
118
+ var _a;
119
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'StopStatement';
103
120
  }
104
121
  exports.isStopStatement = isStopStatement;
105
122
  function isForStatement(element) {
106
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ForStatement;
123
+ var _a;
124
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ForStatement';
107
125
  }
108
126
  exports.isForStatement = isForStatement;
109
127
  function isForEachStatement(element) {
110
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ForEachStatement;
128
+ var _a;
129
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ForEachStatement';
111
130
  }
112
131
  exports.isForEachStatement = isForEachStatement;
113
132
  function isWhileStatement(element) {
114
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.WhileStatement;
133
+ var _a;
134
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'WhileStatement';
115
135
  }
116
136
  exports.isWhileStatement = isWhileStatement;
117
137
  function isDottedSetStatement(element) {
118
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.DottedSetStatement;
138
+ var _a;
139
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'DottedSetStatement';
119
140
  }
120
141
  exports.isDottedSetStatement = isDottedSetStatement;
121
142
  function isIndexedSetStatement(element) {
122
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IndexedSetStatement;
143
+ var _a;
144
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IndexedSetStatement';
123
145
  }
124
146
  exports.isIndexedSetStatement = isIndexedSetStatement;
125
147
  function isLibraryStatement(element) {
126
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LibraryStatement;
148
+ var _a;
149
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'LibraryStatement';
127
150
  }
128
151
  exports.isLibraryStatement = isLibraryStatement;
129
152
  function isNamespaceStatement(element) {
130
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.NamespaceStatement;
153
+ var _a;
154
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'NamespaceStatement';
131
155
  }
132
156
  exports.isNamespaceStatement = isNamespaceStatement;
133
157
  function isClassStatement(element) {
134
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ClassStatement;
158
+ var _a;
159
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ClassStatement';
135
160
  }
136
161
  exports.isClassStatement = isClassStatement;
137
162
  function isImportStatement(element) {
138
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ImportStatement;
163
+ var _a;
164
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ImportStatement';
139
165
  }
140
166
  exports.isImportStatement = isImportStatement;
141
167
  function isMethodStatement(element) {
142
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.MethodStatement;
168
+ const name = element === null || element === void 0 ? void 0 : element.constructor.name;
169
+ return name === 'MethodStatement' || name === 'ClassMethodStatement';
143
170
  }
144
171
  exports.isMethodStatement = isMethodStatement;
172
+ /**
173
+ * @deprecated use `isMethodStatement`
174
+ */
175
+ function isClassMethodStatement(element) {
176
+ return isMethodStatement(element);
177
+ }
178
+ exports.isClassMethodStatement = isClassMethodStatement;
145
179
  function isFieldStatement(element) {
146
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FieldStatement;
180
+ const name = element === null || element === void 0 ? void 0 : element.constructor.name;
181
+ return name === 'FieldStatement' || name === 'ClassFieldStatement';
147
182
  }
148
183
  exports.isFieldStatement = isFieldStatement;
184
+ /**
185
+ * @deprecated use `isFieldStatement`
186
+ */
187
+ function isClassFieldStatement(element) {
188
+ return isFieldStatement(element);
189
+ }
190
+ exports.isClassFieldStatement = isClassFieldStatement;
149
191
  function isInterfaceStatement(element) {
150
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceStatement;
192
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'InterfaceStatement';
151
193
  }
152
194
  exports.isInterfaceStatement = isInterfaceStatement;
153
195
  function isInterfaceMethodStatement(element) {
154
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceMethodStatement;
196
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'InterfaceMethodStatement';
155
197
  }
156
198
  exports.isInterfaceMethodStatement = isInterfaceMethodStatement;
157
199
  function isInterfaceFieldStatement(element) {
158
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceFieldStatement;
200
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'InterfaceFieldStatement';
159
201
  }
160
202
  exports.isInterfaceFieldStatement = isInterfaceFieldStatement;
161
203
  function isEnumStatement(element) {
162
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EnumStatement;
204
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'EnumStatement';
163
205
  }
164
206
  exports.isEnumStatement = isEnumStatement;
165
207
  function isEnumMemberStatement(element) {
166
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EnumMemberStatement;
208
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'EnumMemberStatement';
167
209
  }
168
210
  exports.isEnumMemberStatement = isEnumMemberStatement;
169
211
  function isConstStatement(element) {
170
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConstStatement;
212
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ConstStatement';
171
213
  }
172
214
  exports.isConstStatement = isConstStatement;
173
215
  function isContinueStatement(element) {
174
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ContinueStatement;
216
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ContinueStatement';
175
217
  }
176
218
  exports.isContinueStatement = isContinueStatement;
177
219
  function isTryCatchStatement(element) {
178
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TryCatchStatement;
220
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TryCatchStatement';
179
221
  }
180
222
  exports.isTryCatchStatement = isTryCatchStatement;
181
223
  function isCatchStatement(element) {
182
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CatchStatement;
224
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CatchStatement';
183
225
  }
184
226
  exports.isCatchStatement = isCatchStatement;
185
227
  function isThrowStatement(element) {
186
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ThrowStatement;
228
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ThrowStatement';
187
229
  }
188
230
  exports.isThrowStatement = isThrowStatement;
189
231
  // Expressions reflection
190
232
  /**
191
- * Determine if the variablvalue is a descendent of the Expression base class.
233
+ * Determine if the variable is a descendent of the Expression base class.
192
234
  * Due to performance restrictions, this expects all statements to directly extend Expression,
193
235
  * so it only checks the immediate parent's class name. For example:
194
236
  * this will work for StringLiteralExpression -> Expression,
@@ -200,288 +242,183 @@ function isExpression(element) {
200
242
  }
201
243
  exports.isExpression = isExpression;
202
244
  function isBinaryExpression(element) {
203
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.BinaryExpression;
245
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'BinaryExpression';
204
246
  }
205
247
  exports.isBinaryExpression = isBinaryExpression;
206
248
  function isCallExpression(element) {
207
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CallExpression;
249
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CallExpression';
208
250
  }
209
251
  exports.isCallExpression = isCallExpression;
210
252
  function isFunctionExpression(element) {
211
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionExpression;
253
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'FunctionExpression';
212
254
  }
213
255
  exports.isFunctionExpression = isFunctionExpression;
256
+ function isNamespacedVariableNameExpression(element) {
257
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'NamespacedVariableNameExpression';
258
+ }
259
+ exports.isNamespacedVariableNameExpression = isNamespacedVariableNameExpression;
214
260
  function isDottedGetExpression(element) {
215
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.DottedGetExpression;
261
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'DottedGetExpression';
216
262
  }
217
263
  exports.isDottedGetExpression = isDottedGetExpression;
218
264
  function isXmlAttributeGetExpression(element) {
219
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.XmlAttributeGetExpression;
265
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'XmlAttributeGetExpression';
220
266
  }
221
267
  exports.isXmlAttributeGetExpression = isXmlAttributeGetExpression;
222
268
  function isIndexedGetExpression(element) {
223
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IndexedGetExpression;
269
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'IndexedGetExpression';
224
270
  }
225
271
  exports.isIndexedGetExpression = isIndexedGetExpression;
226
272
  function isGroupingExpression(element) {
227
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.GroupingExpression;
273
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'GroupingExpression';
228
274
  }
229
275
  exports.isGroupingExpression = isGroupingExpression;
230
276
  function isLiteralExpression(element) {
231
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LiteralExpression;
277
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'LiteralExpression';
232
278
  }
233
279
  exports.isLiteralExpression = isLiteralExpression;
234
280
  function isEscapedCharCodeLiteralExpression(element) {
235
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EscapedCharCodeLiteralExpression;
281
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'EscapedCharCodeLiteralExpression';
236
282
  }
237
283
  exports.isEscapedCharCodeLiteralExpression = isEscapedCharCodeLiteralExpression;
238
284
  function isArrayLiteralExpression(element) {
239
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ArrayLiteralExpression;
285
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ArrayLiteralExpression';
240
286
  }
241
287
  exports.isArrayLiteralExpression = isArrayLiteralExpression;
242
288
  function isAALiteralExpression(element) {
243
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AALiteralExpression;
289
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AALiteralExpression';
244
290
  }
245
291
  exports.isAALiteralExpression = isAALiteralExpression;
246
292
  function isAAMemberExpression(element) {
247
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AAMemberExpression;
293
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AAMemberExpression';
248
294
  }
249
295
  exports.isAAMemberExpression = isAAMemberExpression;
250
296
  function isUnaryExpression(element) {
251
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.UnaryExpression;
297
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'UnaryExpression';
252
298
  }
253
299
  exports.isUnaryExpression = isUnaryExpression;
254
300
  function isVariableExpression(element) {
255
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.VariableExpression;
301
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'VariableExpression';
256
302
  }
257
303
  exports.isVariableExpression = isVariableExpression;
258
304
  function isSourceLiteralExpression(element) {
259
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.SourceLiteralExpression;
305
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'SourceLiteralExpression';
260
306
  }
261
307
  exports.isSourceLiteralExpression = isSourceLiteralExpression;
262
308
  function isNewExpression(element) {
263
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.NewExpression;
309
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'NewExpression';
264
310
  }
265
311
  exports.isNewExpression = isNewExpression;
266
312
  function isCallfuncExpression(element) {
267
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CallfuncExpression;
313
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CallfuncExpression';
268
314
  }
269
315
  exports.isCallfuncExpression = isCallfuncExpression;
270
316
  function isTemplateStringQuasiExpression(element) {
271
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TemplateStringQuasiExpression;
317
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TemplateStringQuasiExpression';
272
318
  }
273
319
  exports.isTemplateStringQuasiExpression = isTemplateStringQuasiExpression;
274
320
  function isTemplateStringExpression(element) {
275
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TemplateStringExpression;
321
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TemplateStringExpression';
276
322
  }
277
323
  exports.isTemplateStringExpression = isTemplateStringExpression;
278
324
  function isTaggedTemplateStringExpression(element) {
279
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TaggedTemplateStringExpression;
325
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TaggedTemplateStringExpression';
280
326
  }
281
327
  exports.isTaggedTemplateStringExpression = isTaggedTemplateStringExpression;
282
328
  function isFunctionParameterExpression(element) {
283
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionParameterExpression;
329
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'FunctionParameterExpression';
284
330
  }
285
331
  exports.isFunctionParameterExpression = isFunctionParameterExpression;
286
332
  function isAnnotationExpression(element) {
287
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AnnotationExpression;
333
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AnnotationExpression';
288
334
  }
289
335
  exports.isAnnotationExpression = isAnnotationExpression;
290
336
  function isTypedefProvider(element) {
291
337
  return 'getTypedef' in element;
292
338
  }
293
339
  exports.isTypedefProvider = isTypedefProvider;
294
- function isTypeExpression(element) {
295
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypeExpression;
296
- }
297
- exports.isTypeExpression = isTypeExpression;
298
340
  function isTypeCastExpression(element) {
299
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypeCastExpression;
341
+ return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TypeCastExpression';
300
342
  }
301
343
  exports.isTypeCastExpression = isTypeCastExpression;
302
- function isTypedArrayExpression(element) {
303
- return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypedArrayExpression;
304
- }
305
- exports.isTypedArrayExpression = isTypedArrayExpression;
306
344
  // BscType reflection
307
345
  function isStringType(value) {
308
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.StringType;
346
+ return (value === null || value === void 0 ? void 0 : value.constructor.name) === StringType_1.StringType.name;
309
347
  }
310
348
  exports.isStringType = isStringType;
311
- function isTypedFunctionType(value) {
312
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.TypedFunctionType;
313
- }
314
- exports.isTypedFunctionType = isTypedFunctionType;
315
- function isFunctionType(value) {
316
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.FunctionType;
349
+ function isFunctionType(e) {
350
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === FunctionType_1.FunctionType.name;
317
351
  }
318
352
  exports.isFunctionType = isFunctionType;
319
- function isBooleanType(value) {
320
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.BooleanType;
353
+ function isBooleanType(e) {
354
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === BooleanType_1.BooleanType.name;
321
355
  }
322
356
  exports.isBooleanType = isBooleanType;
323
- function isIntegerType(value) {
324
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.IntegerType;
357
+ function isIntegerType(e) {
358
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === IntegerType_1.IntegerType.name;
325
359
  }
326
360
  exports.isIntegerType = isIntegerType;
327
- function isLongIntegerType(value) {
328
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.LongIntegerType;
361
+ function isLongIntegerType(e) {
362
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === LongIntegerType_1.LongIntegerType.name;
329
363
  }
330
364
  exports.isLongIntegerType = isLongIntegerType;
331
- function isFloatType(value) {
332
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.FloatType;
365
+ function isFloatType(e) {
366
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === FloatType_1.FloatType.name;
333
367
  }
334
368
  exports.isFloatType = isFloatType;
335
- function isDoubleType(value) {
336
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.DoubleType;
369
+ function isDoubleType(e) {
370
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === DoubleType_1.DoubleType.name;
337
371
  }
338
372
  exports.isDoubleType = isDoubleType;
339
- function isInvalidType(value) {
340
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.InvalidType;
373
+ function isInvalidType(e) {
374
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === InvalidType_1.InvalidType.name;
341
375
  }
342
376
  exports.isInvalidType = isInvalidType;
343
- function isVoidType(value) {
344
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.VoidType;
377
+ function isVoidType(e) {
378
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === VoidType_1.VoidType.name;
345
379
  }
346
380
  exports.isVoidType = isVoidType;
347
- function isClassType(value) {
348
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ClassType;
349
- }
350
- exports.isClassType = isClassType;
351
- function isComponentType(value) {
352
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ComponentType;
381
+ function isCustomType(e) {
382
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === CustomType_1.CustomType.name;
353
383
  }
354
- exports.isComponentType = isComponentType;
355
- function isDynamicType(value) {
356
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.DynamicType;
384
+ exports.isCustomType = isCustomType;
385
+ function isDynamicType(e) {
386
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === DynamicType_1.DynamicType.name;
357
387
  }
358
388
  exports.isDynamicType = isDynamicType;
359
- function isInterfaceType(value) {
360
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.InterfaceType;
389
+ function isInterfaceType(e) {
390
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'InterfaceType';
361
391
  }
362
392
  exports.isInterfaceType = isInterfaceType;
363
- function isObjectType(value) {
364
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ObjectType;
393
+ function isObjectType(e) {
394
+ return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'ObjectType';
365
395
  }
366
396
  exports.isObjectType = isObjectType;
367
- function isReferenceType(value) {
368
- var _a;
369
- return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ReferenceType';
370
- }
371
- exports.isReferenceType = isReferenceType;
372
- function isEnumType(value) {
373
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.EnumType;
374
- }
375
- exports.isEnumType = isEnumType;
376
- function isEnumMemberType(value) {
377
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.EnumMemberType;
378
- }
379
- exports.isEnumMemberType = isEnumMemberType;
380
- function isTypePropertyReferenceType(value) {
381
- var _a;
382
- return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'TypePropertyReferenceType';
383
- }
384
- exports.isTypePropertyReferenceType = isTypePropertyReferenceType;
385
- function isBinaryOperatorReferenceType(value) {
386
- var _a;
387
- return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'BinaryOperatorReferenceType';
388
- }
389
- exports.isBinaryOperatorReferenceType = isBinaryOperatorReferenceType;
390
- function isNamespaceType(value) {
391
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.NamespaceType;
392
- }
393
- exports.isNamespaceType = isNamespaceType;
394
- function isUnionType(value) {
395
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.UnionType;
396
- }
397
- exports.isUnionType = isUnionType;
398
- function isUninitializedType(value) {
399
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.UninitializedType;
400
- }
401
- exports.isUninitializedType = isUninitializedType;
402
- function isArrayType(value) {
403
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ArrayType;
404
- }
405
- exports.isArrayType = isArrayType;
406
- function isAssociativeArrayType(value) {
407
- return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.AssociativeArrayType;
408
- }
409
- exports.isAssociativeArrayType = isAssociativeArrayType;
410
- function isInheritableType(target) {
411
- return isClassType(target) || isInterfaceType(target) || isComponentType(target);
412
- }
413
- exports.isInheritableType = isInheritableType;
414
- function isCallableType(target) {
415
- return isFunctionType(target) || isTypedFunctionType(target);
416
- }
417
- exports.isCallableType = isCallableType;
418
- function isAnyReferenceType(target) {
419
- var _a;
420
- const name = (_a = target === null || target === void 0 ? void 0 : target.__reflection) === null || _a === void 0 ? void 0 : _a.name;
421
- return name === 'ReferenceType' || name === 'TypePropertyReferenceType' || name === 'BinaryOperatorReferenceType';
422
- }
423
- exports.isAnyReferenceType = isAnyReferenceType;
424
- const numberTypeKinds = [
425
- BscTypeKind_1.BscTypeKind.IntegerType,
426
- BscTypeKind_1.BscTypeKind.LongIntegerType,
427
- BscTypeKind_1.BscTypeKind.FloatType,
428
- BscTypeKind_1.BscTypeKind.DoubleType
397
+ const numberConstructorNames = [
398
+ IntegerType_1.IntegerType.name,
399
+ LongIntegerType_1.LongIntegerType.name,
400
+ FloatType_1.FloatType.name,
401
+ DoubleType_1.DoubleType.name
429
402
  ];
430
- function isNumberType(value) {
431
- return numberTypeKinds.includes(value === null || value === void 0 ? void 0 : value.kind);
403
+ function isNumberType(e) {
404
+ return numberConstructorNames.includes(e === null || e === void 0 ? void 0 : e.constructor.name);
432
405
  }
433
406
  exports.isNumberType = isNumberType;
434
- const primitiveTypeKinds = [
435
- ...numberTypeKinds,
436
- BscTypeKind_1.BscTypeKind.BooleanType,
437
- BscTypeKind_1.BscTypeKind.StringType
438
- ];
439
- function isPrimitiveType(value) {
440
- return primitiveTypeKinds.includes(value === null || value === void 0 ? void 0 : value.kind);
441
- }
442
- exports.isPrimitiveType = isPrimitiveType;
443
- const nativeTypeKinds = [
444
- ...primitiveTypeKinds,
445
- BscTypeKind_1.BscTypeKind.DynamicType,
446
- BscTypeKind_1.BscTypeKind.ObjectType,
447
- BscTypeKind_1.BscTypeKind.VoidType,
448
- BscTypeKind_1.BscTypeKind.FunctionType
449
- ];
450
- function isNativeType(value) {
451
- return nativeTypeKinds.includes(value === null || value === void 0 ? void 0 : value.kind);
452
- }
453
- exports.isNativeType = isNativeType;
454
407
  // Literal reflection
455
- function isLiteralInvalid(value) {
456
- return isLiteralExpression(value) && value.token.kind === TokenKind_1.TokenKind.Invalid;
408
+ function isLiteralInvalid(e) {
409
+ return isLiteralExpression(e) && isInvalidType(e.type);
457
410
  }
458
411
  exports.isLiteralInvalid = isLiteralInvalid;
459
- function isLiteralBoolean(value) {
460
- return isLiteralExpression(value) && isBooleanType(value.getType());
412
+ function isLiteralBoolean(e) {
413
+ return isLiteralExpression(e) && isBooleanType(e.type);
461
414
  }
462
415
  exports.isLiteralBoolean = isLiteralBoolean;
463
- function isLiteralString(value) {
464
- return isLiteralExpression(value) && isStringType(value.getType());
416
+ function isLiteralString(e) {
417
+ return isLiteralExpression(e) && isStringType(e.type);
465
418
  }
466
419
  exports.isLiteralString = isLiteralString;
467
- function isLiteralNumber(value) {
468
- return isLiteralExpression(value) && isNumberType(value.getType());
420
+ function isLiteralNumber(e) {
421
+ return isLiteralExpression(e) && isNumberType(e.type);
469
422
  }
470
423
  exports.isLiteralNumber = isLiteralNumber;
471
- function isLiteralInteger(value) {
472
- return isLiteralExpression(value) && isIntegerType(value.getType());
473
- }
474
- exports.isLiteralInteger = isLiteralInteger;
475
- function isLiteralLongInteger(value) {
476
- return isLiteralExpression(value) && isLongIntegerType(value.getType());
477
- }
478
- exports.isLiteralLongInteger = isLiteralLongInteger;
479
- function isLiteralFloat(value) {
480
- return isLiteralExpression(value) && isFloatType(value.getType());
481
- }
482
- exports.isLiteralFloat = isLiteralFloat;
483
- function isLiteralDouble(value) {
484
- return isLiteralExpression(value) && isDoubleType(value.getType());
485
- }
486
- exports.isLiteralDouble = isLiteralDouble;
487
424
  //# sourceMappingURL=reflection.js.map