brighterscript 0.65.1 → 0.66.0-alpha.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 (249) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +8 -0
  3. package/dist/BsConfig.d.ts +5 -11
  4. package/dist/CacheVerifier.d.ts +8 -0
  5. package/dist/CacheVerifier.js +20 -0
  6. package/dist/CacheVerifier.js.map +1 -0
  7. package/dist/DiagnosticMessages.d.ts +9 -4
  8. package/dist/DiagnosticMessages.js +8 -3
  9. package/dist/DiagnosticMessages.js.map +1 -1
  10. package/dist/FunctionScope.d.ts +1 -0
  11. package/dist/FunctionScope.js +3 -0
  12. package/dist/FunctionScope.js.map +1 -1
  13. package/dist/PluginInterface.d.ts +0 -4
  14. package/dist/PluginInterface.js.map +1 -1
  15. package/dist/Program.d.ts +6 -39
  16. package/dist/Program.js +42 -44
  17. package/dist/Program.js.map +1 -1
  18. package/dist/ProgramBuilder.d.ts +4 -0
  19. package/dist/ProgramBuilder.js +12 -7
  20. package/dist/ProgramBuilder.js.map +1 -1
  21. package/dist/Scope.d.ts +1 -5
  22. package/dist/Scope.js +3 -28
  23. package/dist/Scope.js.map +1 -1
  24. package/dist/SymbolTable.d.ts +44 -6
  25. package/dist/SymbolTable.js +151 -25
  26. package/dist/SymbolTable.js.map +1 -1
  27. package/dist/XmlScope.js +11 -12
  28. package/dist/XmlScope.js.map +1 -1
  29. package/dist/astUtils/creators.d.ts +16 -6
  30. package/dist/astUtils/creators.js +39 -16
  31. package/dist/astUtils/creators.js.map +1 -1
  32. package/dist/astUtils/reflection.d.ts +46 -37
  33. package/dist/astUtils/reflection.js +145 -147
  34. package/dist/astUtils/reflection.js.map +1 -1
  35. package/dist/astUtils/reflection.spec.js +1 -6
  36. package/dist/astUtils/reflection.spec.js.map +1 -1
  37. package/dist/astUtils/visitors.d.ts +4 -11
  38. package/dist/astUtils/visitors.js +0 -7
  39. package/dist/astUtils/visitors.js.map +1 -1
  40. package/dist/astUtils/visitors.spec.js +4 -2
  41. package/dist/astUtils/visitors.spec.js.map +1 -1
  42. package/dist/astUtils/xml.d.ts +9 -9
  43. package/dist/astUtils/xml.js +6 -6
  44. package/dist/astUtils/xml.js.map +1 -1
  45. package/dist/bscPlugin/BscPlugin.js +4 -0
  46. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  47. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  48. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +2 -2
  49. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  50. package/dist/bscPlugin/hover/HoverProcessor.js +71 -59
  51. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  52. package/dist/bscPlugin/hover/HoverProcessor.spec.js +110 -10
  53. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  54. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +6 -5
  55. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  56. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +1 -1
  57. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
  58. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +11 -0
  59. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +53 -0
  60. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  61. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +4 -0
  62. package/dist/bscPlugin/validation/BrsFileValidator.js +72 -16
  63. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  64. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +1 -1
  65. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  66. package/dist/bscPlugin/validation/ScopeValidator.d.ts +1 -0
  67. package/dist/bscPlugin/validation/ScopeValidator.js +72 -18
  68. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  69. package/dist/bscPlugin/validation/XmlFileValidator.js +9 -9
  70. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  71. package/dist/files/BrsFile.Class.spec.js +9 -10
  72. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  73. package/dist/files/BrsFile.d.ts +8 -10
  74. package/dist/files/BrsFile.js +72 -52
  75. package/dist/files/BrsFile.js.map +1 -1
  76. package/dist/files/BrsFile.spec.js +56 -14
  77. package/dist/files/BrsFile.spec.js.map +1 -1
  78. package/dist/files/XmlFile.d.ts +19 -19
  79. package/dist/files/XmlFile.js +24 -42
  80. package/dist/files/XmlFile.js.map +1 -1
  81. package/dist/files/XmlFile.spec.js +61 -9
  82. package/dist/files/XmlFile.spec.js.map +1 -1
  83. package/dist/files/tests/imports.spec.js +8 -11
  84. package/dist/files/tests/imports.spec.js.map +1 -1
  85. package/dist/globalCallables.js +2 -1
  86. package/dist/globalCallables.js.map +1 -1
  87. package/dist/index.d.ts +2 -0
  88. package/dist/index.js +2 -0
  89. package/dist/index.js.map +1 -1
  90. package/dist/interfaces.d.ts +20 -1
  91. package/dist/interfaces.js +13 -0
  92. package/dist/interfaces.js.map +1 -1
  93. package/dist/lexer/TokenKind.d.ts +2 -0
  94. package/dist/lexer/TokenKind.js +5 -1
  95. package/dist/lexer/TokenKind.js.map +1 -1
  96. package/dist/parser/AstNode.d.ts +78 -1
  97. package/dist/parser/AstNode.js +80 -1
  98. package/dist/parser/AstNode.js.map +1 -1
  99. package/dist/parser/Expression.d.ts +87 -53
  100. package/dist/parser/Expression.js +243 -139
  101. package/dist/parser/Expression.js.map +1 -1
  102. package/dist/parser/Parser.Class.spec.js +10 -7
  103. package/dist/parser/Parser.Class.spec.js.map +1 -1
  104. package/dist/parser/Parser.d.ts +9 -5
  105. package/dist/parser/Parser.js +125 -78
  106. package/dist/parser/Parser.js.map +1 -1
  107. package/dist/parser/Parser.spec.d.ts +2 -0
  108. package/dist/parser/Parser.spec.js +117 -5
  109. package/dist/parser/Parser.spec.js.map +1 -1
  110. package/dist/parser/SGParser.d.ts +42 -4
  111. package/dist/parser/SGParser.js +191 -195
  112. package/dist/parser/SGParser.js.map +1 -1
  113. package/dist/parser/SGParser.spec.js +13 -10
  114. package/dist/parser/SGParser.spec.js.map +1 -1
  115. package/dist/parser/SGTypes.d.ts +279 -51
  116. package/dist/parser/SGTypes.js +562 -185
  117. package/dist/parser/SGTypes.js.map +1 -1
  118. package/dist/parser/Statement.d.ts +88 -70
  119. package/dist/parser/Statement.js +212 -136
  120. package/dist/parser/Statement.js.map +1 -1
  121. package/dist/parser/TranspileState.d.ts +1 -1
  122. package/dist/parser/TranspileState.js +5 -2
  123. package/dist/parser/TranspileState.js.map +1 -1
  124. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
  125. package/dist/parser/tests/expression/TypeExpression.spec.js +127 -0
  126. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
  127. package/dist/types/ArrayType.d.ts +6 -4
  128. package/dist/types/ArrayType.js +30 -22
  129. package/dist/types/ArrayType.js.map +1 -1
  130. package/dist/types/ArrayType.spec.js +8 -8
  131. package/dist/types/ArrayType.spec.js.map +1 -1
  132. package/dist/types/BooleanType.d.ts +7 -4
  133. package/dist/types/BooleanType.js +13 -8
  134. package/dist/types/BooleanType.js.map +1 -1
  135. package/dist/types/BooleanType.spec.js +9 -3
  136. package/dist/types/BooleanType.spec.js.map +1 -1
  137. package/dist/types/BscType.d.ts +25 -2
  138. package/dist/types/BscType.js +64 -0
  139. package/dist/types/BscType.js.map +1 -1
  140. package/dist/types/BscTypeKind.d.ts +22 -0
  141. package/dist/types/BscTypeKind.js +27 -0
  142. package/dist/types/BscTypeKind.js.map +1 -0
  143. package/dist/types/ClassType.d.ts +11 -0
  144. package/dist/types/ClassType.js +31 -0
  145. package/dist/types/ClassType.js.map +1 -0
  146. package/dist/types/ClassType.spec.d.ts +1 -0
  147. package/dist/types/ClassType.spec.js +75 -0
  148. package/dist/types/ClassType.spec.js.map +1 -0
  149. package/dist/types/DoubleType.d.ts +7 -4
  150. package/dist/types/DoubleType.js +16 -20
  151. package/dist/types/DoubleType.js.map +1 -1
  152. package/dist/types/DoubleType.spec.js +11 -3
  153. package/dist/types/DoubleType.spec.js.map +1 -1
  154. package/dist/types/DynamicType.d.ts +9 -3
  155. package/dist/types/DynamicType.js +16 -2
  156. package/dist/types/DynamicType.js.map +1 -1
  157. package/dist/types/DynamicType.spec.js +15 -4
  158. package/dist/types/DynamicType.spec.js.map +1 -1
  159. package/dist/types/EnumType.d.ts +22 -0
  160. package/dist/types/EnumType.js +59 -0
  161. package/dist/types/EnumType.js.map +1 -0
  162. package/dist/types/EnumType.spec.d.ts +1 -0
  163. package/dist/types/EnumType.spec.js +33 -0
  164. package/dist/types/EnumType.spec.js.map +1 -0
  165. package/dist/types/FloatType.d.ts +7 -4
  166. package/dist/types/FloatType.js +16 -20
  167. package/dist/types/FloatType.js.map +1 -1
  168. package/dist/types/FloatType.spec.js +3 -3
  169. package/dist/types/FloatType.spec.js.map +1 -1
  170. package/dist/types/FunctionType.d.ts +6 -4
  171. package/dist/types/FunctionType.js +22 -19
  172. package/dist/types/FunctionType.js.map +1 -1
  173. package/dist/types/FunctionType.spec.js +5 -5
  174. package/dist/types/FunctionType.spec.js.map +1 -1
  175. package/dist/types/InheritableType.d.ts +25 -0
  176. package/dist/types/InheritableType.js +88 -0
  177. package/dist/types/InheritableType.js.map +1 -0
  178. package/dist/types/IntegerType.d.ts +7 -4
  179. package/dist/types/IntegerType.js +16 -20
  180. package/dist/types/IntegerType.js.map +1 -1
  181. package/dist/types/IntegerType.spec.js +7 -3
  182. package/dist/types/IntegerType.spec.js.map +1 -1
  183. package/dist/types/InterfaceType.d.ts +10 -10
  184. package/dist/types/InterfaceType.js +24 -45
  185. package/dist/types/InterfaceType.js.map +1 -1
  186. package/dist/types/InterfaceType.spec.js +59 -45
  187. package/dist/types/InterfaceType.spec.js.map +1 -1
  188. package/dist/types/InvalidType.d.ts +6 -4
  189. package/dist/types/InvalidType.js +12 -8
  190. package/dist/types/InvalidType.js.map +1 -1
  191. package/dist/types/InvalidType.spec.js +7 -3
  192. package/dist/types/InvalidType.spec.js.map +1 -1
  193. package/dist/types/LongIntegerType.d.ts +7 -4
  194. package/dist/types/LongIntegerType.js +16 -20
  195. package/dist/types/LongIntegerType.js.map +1 -1
  196. package/dist/types/LongIntegerType.spec.js +9 -3
  197. package/dist/types/LongIntegerType.spec.js.map +1 -1
  198. package/dist/types/NamespaceType.d.ts +11 -0
  199. package/dist/types/NamespaceType.js +25 -0
  200. package/dist/types/NamespaceType.js.map +1 -0
  201. package/dist/types/ObjectType.d.ts +8 -4
  202. package/dist/types/ObjectType.js +26 -7
  203. package/dist/types/ObjectType.js.map +1 -1
  204. package/dist/types/ObjectType.spec.js +2 -2
  205. package/dist/types/ObjectType.spec.js.map +1 -1
  206. package/dist/types/ReferenceType.d.ts +51 -0
  207. package/dist/types/ReferenceType.js +274 -0
  208. package/dist/types/ReferenceType.js.map +1 -0
  209. package/dist/types/ReferenceType.spec.d.ts +1 -0
  210. package/dist/types/ReferenceType.spec.js +122 -0
  211. package/dist/types/ReferenceType.spec.js.map +1 -0
  212. package/dist/types/StringType.d.ts +10 -4
  213. package/dist/types/StringType.js +16 -8
  214. package/dist/types/StringType.js.map +1 -1
  215. package/dist/types/StringType.spec.js +2 -2
  216. package/dist/types/StringType.spec.js.map +1 -1
  217. package/dist/types/UninitializedType.d.ts +6 -3
  218. package/dist/types/UninitializedType.js +14 -3
  219. package/dist/types/UninitializedType.js.map +1 -1
  220. package/dist/types/UnionType.d.ts +18 -0
  221. package/dist/types/UnionType.js +91 -0
  222. package/dist/types/UnionType.js.map +1 -0
  223. package/dist/types/UnionType.spec.d.ts +1 -0
  224. package/dist/types/UnionType.spec.js +103 -0
  225. package/dist/types/UnionType.spec.js.map +1 -0
  226. package/dist/types/VoidType.d.ts +7 -4
  227. package/dist/types/VoidType.js +13 -8
  228. package/dist/types/VoidType.js.map +1 -1
  229. package/dist/types/VoidType.spec.js +2 -2
  230. package/dist/types/VoidType.spec.js.map +1 -1
  231. package/dist/types/helper.spec.d.ts +1 -0
  232. package/dist/types/helper.spec.js +130 -0
  233. package/dist/types/helper.spec.js.map +1 -0
  234. package/dist/types/helpers.d.ts +19 -0
  235. package/dist/types/helpers.js +131 -0
  236. package/dist/types/helpers.js.map +1 -0
  237. package/dist/types/index.d.ts +22 -0
  238. package/dist/types/index.js +39 -0
  239. package/dist/types/index.js.map +1 -0
  240. package/dist/util.d.ts +9 -8
  241. package/dist/util.js +78 -32
  242. package/dist/util.js.map +1 -1
  243. package/dist/validators/ClassValidator.d.ts +0 -4
  244. package/dist/validators/ClassValidator.js +6 -30
  245. package/dist/validators/ClassValidator.js.map +1 -1
  246. package/package.json +2 -1
  247. package/dist/types/CustomType.d.ts +0 -9
  248. package/dist/types/CustomType.js +0 -32
  249. package/dist/types/CustomType.js.map +0 -1
@@ -1,19 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
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.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");
3
+ exports.isLiteralExpression = 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.isXmlFile = exports.isBrsFile = void 0;
4
+ exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isNumberType = exports.isInheritableType = exports.isArrayType = exports.isUninitializedType = exports.isUnionType = exports.isNamespaceType = exports.isTypePropertyReferenceType = exports.isEnumMemberType = exports.isEnumType = exports.isReferenceType = exports.isObjectType = exports.isInterfaceType = exports.isDynamicType = exports.isClassType = exports.isVoidType = exports.isInvalidType = exports.isDoubleType = exports.isFloatType = exports.isLongIntegerType = exports.isIntegerType = exports.isBooleanType = exports.isFunctionType = exports.isStringType = 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 = void 0;
7
5
  const visitors_1 = require("./visitors");
8
- const FunctionType_1 = require("../types/FunctionType");
9
- const StringType_1 = require("../types/StringType");
10
- const BooleanType_1 = require("../types/BooleanType");
11
6
  const IntegerType_1 = require("../types/IntegerType");
12
7
  const LongIntegerType_1 = require("../types/LongIntegerType");
13
8
  const FloatType_1 = require("../types/FloatType");
14
9
  const DoubleType_1 = require("../types/DoubleType");
15
- const CustomType_1 = require("../types/CustomType");
16
- const DynamicType_1 = require("../types/DynamicType");
10
+ const AstNode_1 = require("../parser/AstNode");
11
+ const BscTypeKind_1 = require("../types/BscTypeKind");
17
12
  // File reflection
18
13
  function isBrsFile(file) {
19
14
  return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'BrsFile';
@@ -29,7 +24,7 @@ function isXmlScope(scope) {
29
24
  exports.isXmlScope = isXmlScope;
30
25
  // Statements reflection
31
26
  /**
32
- * Determine if the variable is a descendent of the Statement base class.
27
+ * Determine if the variablvalue is a descendent of the Statement base class.
33
28
  * Due to performance restrictions, this expects all statements to
34
29
  * directly extend Statement or FunctionStatement,
35
30
  * so it only checks the immediate parent's class name.
@@ -45,8 +40,7 @@ function isBody(element) {
45
40
  }
46
41
  exports.isBody = isBody;
47
42
  function isAssignmentStatement(element) {
48
- var _a;
49
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'AssignmentStatement';
43
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AssignmentStatement;
50
44
  }
51
45
  exports.isAssignmentStatement = isAssignmentStatement;
52
46
  function isBlock(element) {
@@ -55,182 +49,144 @@ function isBlock(element) {
55
49
  }
56
50
  exports.isBlock = isBlock;
57
51
  function isExpressionStatement(element) {
58
- var _a;
59
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExpressionStatement';
52
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExpressionStatement;
60
53
  }
61
54
  exports.isExpressionStatement = isExpressionStatement;
62
55
  function isCommentStatement(element) {
63
- var _a;
64
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'CommentStatement';
56
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CommentStatement;
65
57
  }
66
58
  exports.isCommentStatement = isCommentStatement;
67
59
  function isExitForStatement(element) {
68
- var _a;
69
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExitForStatement';
60
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExitForStatement;
70
61
  }
71
62
  exports.isExitForStatement = isExitForStatement;
72
63
  function isExitWhileStatement(element) {
73
- var _a;
74
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExitWhileStatement';
64
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExitWhileStatement;
75
65
  }
76
66
  exports.isExitWhileStatement = isExitWhileStatement;
77
67
  function isFunctionStatement(element) {
78
- var _a;
79
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'FunctionStatement';
68
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionStatement;
80
69
  }
81
70
  exports.isFunctionStatement = isFunctionStatement;
82
71
  function isIfStatement(element) {
83
- var _a;
84
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IfStatement';
72
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IfStatement;
85
73
  }
86
74
  exports.isIfStatement = isIfStatement;
87
75
  function isIncrementStatement(element) {
88
- var _a;
89
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IncrementStatement';
76
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IncrementStatement;
90
77
  }
91
78
  exports.isIncrementStatement = isIncrementStatement;
92
79
  function isPrintStatement(element) {
93
- var _a;
94
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'PrintStatement';
80
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.PrintStatement;
95
81
  }
96
82
  exports.isPrintStatement = isPrintStatement;
97
83
  function isGotoStatement(element) {
98
- var _a;
99
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'GotoStatement';
84
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.GotoStatement;
100
85
  }
101
86
  exports.isGotoStatement = isGotoStatement;
102
87
  function isLabelStatement(element) {
103
- var _a;
104
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'LabelStatement';
88
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LabelStatement;
105
89
  }
106
90
  exports.isLabelStatement = isLabelStatement;
107
91
  function isReturnStatement(element) {
108
- var _a;
109
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ReturnStatement';
92
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ReturnStatement;
110
93
  }
111
94
  exports.isReturnStatement = isReturnStatement;
112
95
  function isEndStatement(element) {
113
- var _a;
114
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'EndStatement';
96
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EndStatement;
115
97
  }
116
98
  exports.isEndStatement = isEndStatement;
117
99
  function isStopStatement(element) {
118
- var _a;
119
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'StopStatement';
100
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.StopStatement;
120
101
  }
121
102
  exports.isStopStatement = isStopStatement;
122
103
  function isForStatement(element) {
123
- var _a;
124
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ForStatement';
104
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ForStatement;
125
105
  }
126
106
  exports.isForStatement = isForStatement;
127
107
  function isForEachStatement(element) {
128
- var _a;
129
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ForEachStatement';
108
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ForEachStatement;
130
109
  }
131
110
  exports.isForEachStatement = isForEachStatement;
132
111
  function isWhileStatement(element) {
133
- var _a;
134
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'WhileStatement';
112
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.WhileStatement;
135
113
  }
136
114
  exports.isWhileStatement = isWhileStatement;
137
115
  function isDottedSetStatement(element) {
138
- var _a;
139
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'DottedSetStatement';
116
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.DottedSetStatement;
140
117
  }
141
118
  exports.isDottedSetStatement = isDottedSetStatement;
142
119
  function isIndexedSetStatement(element) {
143
- var _a;
144
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IndexedSetStatement';
120
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IndexedSetStatement;
145
121
  }
146
122
  exports.isIndexedSetStatement = isIndexedSetStatement;
147
123
  function isLibraryStatement(element) {
148
- var _a;
149
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'LibraryStatement';
124
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LibraryStatement;
150
125
  }
151
126
  exports.isLibraryStatement = isLibraryStatement;
152
127
  function isNamespaceStatement(element) {
153
- var _a;
154
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'NamespaceStatement';
128
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.NamespaceStatement;
155
129
  }
156
130
  exports.isNamespaceStatement = isNamespaceStatement;
157
131
  function isClassStatement(element) {
158
- var _a;
159
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ClassStatement';
132
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ClassStatement;
160
133
  }
161
134
  exports.isClassStatement = isClassStatement;
162
135
  function isImportStatement(element) {
163
- var _a;
164
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ImportStatement';
136
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ImportStatement;
165
137
  }
166
138
  exports.isImportStatement = isImportStatement;
167
139
  function isMethodStatement(element) {
168
- const name = element === null || element === void 0 ? void 0 : element.constructor.name;
169
- return name === 'MethodStatement' || name === 'ClassMethodStatement';
140
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.MethodStatement;
170
141
  }
171
142
  exports.isMethodStatement = isMethodStatement;
172
- /**
173
- * @deprecated use `isMethodStatement`
174
- */
175
- function isClassMethodStatement(element) {
176
- return isMethodStatement(element);
177
- }
178
- exports.isClassMethodStatement = isClassMethodStatement;
179
143
  function isFieldStatement(element) {
180
- const name = element === null || element === void 0 ? void 0 : element.constructor.name;
181
- return name === 'FieldStatement' || name === 'ClassFieldStatement';
144
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FieldStatement;
182
145
  }
183
146
  exports.isFieldStatement = isFieldStatement;
184
- /**
185
- * @deprecated use `isFieldStatement`
186
- */
187
- function isClassFieldStatement(element) {
188
- return isFieldStatement(element);
189
- }
190
- exports.isClassFieldStatement = isClassFieldStatement;
191
147
  function isInterfaceStatement(element) {
192
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'InterfaceStatement';
148
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceStatement;
193
149
  }
194
150
  exports.isInterfaceStatement = isInterfaceStatement;
195
151
  function isInterfaceMethodStatement(element) {
196
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'InterfaceMethodStatement';
152
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceMethodStatement;
197
153
  }
198
154
  exports.isInterfaceMethodStatement = isInterfaceMethodStatement;
199
155
  function isInterfaceFieldStatement(element) {
200
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'InterfaceFieldStatement';
156
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceFieldStatement;
201
157
  }
202
158
  exports.isInterfaceFieldStatement = isInterfaceFieldStatement;
203
159
  function isEnumStatement(element) {
204
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'EnumStatement';
160
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EnumStatement;
205
161
  }
206
162
  exports.isEnumStatement = isEnumStatement;
207
163
  function isEnumMemberStatement(element) {
208
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'EnumMemberStatement';
164
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EnumMemberStatement;
209
165
  }
210
166
  exports.isEnumMemberStatement = isEnumMemberStatement;
211
167
  function isConstStatement(element) {
212
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ConstStatement';
168
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConstStatement;
213
169
  }
214
170
  exports.isConstStatement = isConstStatement;
215
171
  function isContinueStatement(element) {
216
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ContinueStatement';
172
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ContinueStatement;
217
173
  }
218
174
  exports.isContinueStatement = isContinueStatement;
219
175
  function isTryCatchStatement(element) {
220
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TryCatchStatement';
176
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TryCatchStatement;
221
177
  }
222
178
  exports.isTryCatchStatement = isTryCatchStatement;
223
179
  function isCatchStatement(element) {
224
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CatchStatement';
180
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CatchStatement;
225
181
  }
226
182
  exports.isCatchStatement = isCatchStatement;
227
183
  function isThrowStatement(element) {
228
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ThrowStatement';
184
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ThrowStatement;
229
185
  }
230
186
  exports.isThrowStatement = isThrowStatement;
231
187
  // Expressions reflection
232
188
  /**
233
- * Determine if the variable is a descendent of the Expression base class.
189
+ * Determine if the variablvalue is a descendent of the Expression base class.
234
190
  * Due to performance restrictions, this expects all statements to directly extend Expression,
235
191
  * so it only checks the immediate parent's class name. For example:
236
192
  * this will work for StringLiteralExpression -> Expression,
@@ -242,179 +198,221 @@ function isExpression(element) {
242
198
  }
243
199
  exports.isExpression = isExpression;
244
200
  function isBinaryExpression(element) {
245
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'BinaryExpression';
201
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.BinaryExpression;
246
202
  }
247
203
  exports.isBinaryExpression = isBinaryExpression;
248
204
  function isCallExpression(element) {
249
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CallExpression';
205
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CallExpression;
250
206
  }
251
207
  exports.isCallExpression = isCallExpression;
252
208
  function isFunctionExpression(element) {
253
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'FunctionExpression';
209
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionExpression;
254
210
  }
255
211
  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;
260
212
  function isDottedGetExpression(element) {
261
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'DottedGetExpression';
213
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.DottedGetExpression;
262
214
  }
263
215
  exports.isDottedGetExpression = isDottedGetExpression;
264
216
  function isXmlAttributeGetExpression(element) {
265
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'XmlAttributeGetExpression';
217
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.XmlAttributeGetExpression;
266
218
  }
267
219
  exports.isXmlAttributeGetExpression = isXmlAttributeGetExpression;
268
220
  function isIndexedGetExpression(element) {
269
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'IndexedGetExpression';
221
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IndexedGetExpression;
270
222
  }
271
223
  exports.isIndexedGetExpression = isIndexedGetExpression;
272
224
  function isGroupingExpression(element) {
273
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'GroupingExpression';
225
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.GroupingExpression;
274
226
  }
275
227
  exports.isGroupingExpression = isGroupingExpression;
276
228
  function isLiteralExpression(element) {
277
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'LiteralExpression';
229
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LiteralExpression;
278
230
  }
279
231
  exports.isLiteralExpression = isLiteralExpression;
280
232
  function isEscapedCharCodeLiteralExpression(element) {
281
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'EscapedCharCodeLiteralExpression';
233
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EscapedCharCodeLiteralExpression;
282
234
  }
283
235
  exports.isEscapedCharCodeLiteralExpression = isEscapedCharCodeLiteralExpression;
284
236
  function isArrayLiteralExpression(element) {
285
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ArrayLiteralExpression';
237
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ArrayLiteralExpression;
286
238
  }
287
239
  exports.isArrayLiteralExpression = isArrayLiteralExpression;
288
240
  function isAALiteralExpression(element) {
289
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AALiteralExpression';
241
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AALiteralExpression;
290
242
  }
291
243
  exports.isAALiteralExpression = isAALiteralExpression;
292
244
  function isAAMemberExpression(element) {
293
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AAMemberExpression';
245
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AAMemberExpression;
294
246
  }
295
247
  exports.isAAMemberExpression = isAAMemberExpression;
296
248
  function isUnaryExpression(element) {
297
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'UnaryExpression';
249
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.UnaryExpression;
298
250
  }
299
251
  exports.isUnaryExpression = isUnaryExpression;
300
252
  function isVariableExpression(element) {
301
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'VariableExpression';
253
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.VariableExpression;
302
254
  }
303
255
  exports.isVariableExpression = isVariableExpression;
304
256
  function isSourceLiteralExpression(element) {
305
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'SourceLiteralExpression';
257
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.SourceLiteralExpression;
306
258
  }
307
259
  exports.isSourceLiteralExpression = isSourceLiteralExpression;
308
260
  function isNewExpression(element) {
309
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'NewExpression';
261
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.NewExpression;
310
262
  }
311
263
  exports.isNewExpression = isNewExpression;
312
264
  function isCallfuncExpression(element) {
313
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CallfuncExpression';
265
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CallfuncExpression;
314
266
  }
315
267
  exports.isCallfuncExpression = isCallfuncExpression;
316
268
  function isTemplateStringQuasiExpression(element) {
317
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TemplateStringQuasiExpression';
269
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TemplateStringQuasiExpression;
318
270
  }
319
271
  exports.isTemplateStringQuasiExpression = isTemplateStringQuasiExpression;
320
272
  function isTemplateStringExpression(element) {
321
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TemplateStringExpression';
273
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TemplateStringExpression;
322
274
  }
323
275
  exports.isTemplateStringExpression = isTemplateStringExpression;
324
276
  function isTaggedTemplateStringExpression(element) {
325
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TaggedTemplateStringExpression';
277
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TaggedTemplateStringExpression;
326
278
  }
327
279
  exports.isTaggedTemplateStringExpression = isTaggedTemplateStringExpression;
328
280
  function isFunctionParameterExpression(element) {
329
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'FunctionParameterExpression';
281
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionParameterExpression;
330
282
  }
331
283
  exports.isFunctionParameterExpression = isFunctionParameterExpression;
332
284
  function isAnnotationExpression(element) {
333
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AnnotationExpression';
285
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AnnotationExpression;
334
286
  }
335
287
  exports.isAnnotationExpression = isAnnotationExpression;
336
288
  function isTypedefProvider(element) {
337
289
  return 'getTypedef' in element;
338
290
  }
339
291
  exports.isTypedefProvider = isTypedefProvider;
292
+ function isTypeExpression(element) {
293
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypeExpression;
294
+ }
295
+ exports.isTypeExpression = isTypeExpression;
296
+ function isTypeCastExpression(element) {
297
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypeCastExpression;
298
+ }
299
+ exports.isTypeCastExpression = isTypeCastExpression;
340
300
  // BscType reflection
341
301
  function isStringType(value) {
342
- return (value === null || value === void 0 ? void 0 : value.constructor.name) === StringType_1.StringType.name;
302
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.StringType;
343
303
  }
344
304
  exports.isStringType = isStringType;
345
- function isFunctionType(e) {
346
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === FunctionType_1.FunctionType.name;
305
+ function isFunctionType(value) {
306
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.FunctionType;
347
307
  }
348
308
  exports.isFunctionType = isFunctionType;
349
- function isBooleanType(e) {
350
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === BooleanType_1.BooleanType.name;
309
+ function isBooleanType(value) {
310
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.BooleanType;
351
311
  }
352
312
  exports.isBooleanType = isBooleanType;
353
- function isIntegerType(e) {
354
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === IntegerType_1.IntegerType.name;
313
+ function isIntegerType(value) {
314
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.IntegerType;
355
315
  }
356
316
  exports.isIntegerType = isIntegerType;
357
- function isLongIntegerType(e) {
358
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === LongIntegerType_1.LongIntegerType.name;
317
+ function isLongIntegerType(value) {
318
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.LongIntegerType;
359
319
  }
360
320
  exports.isLongIntegerType = isLongIntegerType;
361
- function isFloatType(e) {
362
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === FloatType_1.FloatType.name;
321
+ function isFloatType(value) {
322
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.FloatType;
363
323
  }
364
324
  exports.isFloatType = isFloatType;
365
- function isDoubleType(e) {
366
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === DoubleType_1.DoubleType.name;
325
+ function isDoubleType(value) {
326
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.DoubleType;
367
327
  }
368
328
  exports.isDoubleType = isDoubleType;
369
- function isInvalidType(e) {
370
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === InvalidType_1.InvalidType.name;
329
+ function isInvalidType(value) {
330
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.InvalidType;
371
331
  }
372
332
  exports.isInvalidType = isInvalidType;
373
- function isVoidType(e) {
374
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === VoidType_1.VoidType.name;
333
+ function isVoidType(value) {
334
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.VoidType;
375
335
  }
376
336
  exports.isVoidType = isVoidType;
377
- function isCustomType(e) {
378
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === CustomType_1.CustomType.name;
337
+ function isClassType(value) {
338
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ClassType;
379
339
  }
380
- exports.isCustomType = isCustomType;
381
- function isDynamicType(e) {
382
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === DynamicType_1.DynamicType.name;
340
+ exports.isClassType = isClassType;
341
+ function isDynamicType(value) {
342
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.DynamicType;
383
343
  }
384
344
  exports.isDynamicType = isDynamicType;
385
- function isInterfaceType(e) {
386
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'InterfaceType';
345
+ function isInterfaceType(value) {
346
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.InterfaceType;
387
347
  }
388
348
  exports.isInterfaceType = isInterfaceType;
389
- function isObjectType(e) {
390
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'ObjectType';
349
+ function isObjectType(value) {
350
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ObjectType;
391
351
  }
392
352
  exports.isObjectType = isObjectType;
353
+ function isReferenceType(value) {
354
+ var _a;
355
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ReferenceType';
356
+ }
357
+ exports.isReferenceType = isReferenceType;
358
+ function isEnumType(value) {
359
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.EnumType;
360
+ }
361
+ exports.isEnumType = isEnumType;
362
+ function isEnumMemberType(value) {
363
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.EnumMemberType;
364
+ }
365
+ exports.isEnumMemberType = isEnumMemberType;
366
+ function isTypePropertyReferenceType(value) {
367
+ var _a;
368
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'TypePropertyReferenceType';
369
+ }
370
+ exports.isTypePropertyReferenceType = isTypePropertyReferenceType;
371
+ function isNamespaceType(value) {
372
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.NamespaceType;
373
+ }
374
+ exports.isNamespaceType = isNamespaceType;
375
+ function isUnionType(value) {
376
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.UnionType;
377
+ }
378
+ exports.isUnionType = isUnionType;
379
+ function isUninitializedType(value) {
380
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.UninitializedType;
381
+ }
382
+ exports.isUninitializedType = isUninitializedType;
383
+ function isArrayType(value) {
384
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ArrayType;
385
+ }
386
+ exports.isArrayType = isArrayType;
387
+ function isInheritableType(target) {
388
+ return isClassType(target) || isInterfaceType(target);
389
+ }
390
+ exports.isInheritableType = isInheritableType;
393
391
  const numberConstructorNames = [
394
392
  IntegerType_1.IntegerType.name,
395
393
  LongIntegerType_1.LongIntegerType.name,
396
394
  FloatType_1.FloatType.name,
397
395
  DoubleType_1.DoubleType.name
398
396
  ];
399
- function isNumberType(e) {
400
- return numberConstructorNames.includes(e === null || e === void 0 ? void 0 : e.constructor.name);
397
+ function isNumberType(value) {
398
+ return numberConstructorNames.includes(value === null || value === void 0 ? void 0 : value.constructor.name);
401
399
  }
402
400
  exports.isNumberType = isNumberType;
403
401
  // Literal reflection
404
- function isLiteralInvalid(e) {
405
- return isLiteralExpression(e) && isInvalidType(e.type);
402
+ function isLiteralInvalid(value) {
403
+ return isLiteralExpression(value) && isInvalidType(value.getType());
406
404
  }
407
405
  exports.isLiteralInvalid = isLiteralInvalid;
408
- function isLiteralBoolean(e) {
409
- return isLiteralExpression(e) && isBooleanType(e.type);
406
+ function isLiteralBoolean(value) {
407
+ return isLiteralExpression(value) && isBooleanType(value.getType());
410
408
  }
411
409
  exports.isLiteralBoolean = isLiteralBoolean;
412
- function isLiteralString(e) {
413
- return isLiteralExpression(e) && isStringType(e.type);
410
+ function isLiteralString(value) {
411
+ return isLiteralExpression(value) && isStringType(value.getType());
414
412
  }
415
413
  exports.isLiteralString = isLiteralString;
416
- function isLiteralNumber(e) {
417
- return isLiteralExpression(e) && isNumberType(e.type);
414
+ function isLiteralNumber(value) {
415
+ return isLiteralExpression(value) && isNumberType(value.getType());
418
416
  }
419
417
  exports.isLiteralNumber = isLiteralNumber;
420
418
  //# sourceMappingURL=reflection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../src/astUtils/reflection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../src/astUtils/reflection.ts"],"names":[],"mappings":"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"}