brighterscript 1.0.0-alpha.41 → 1.0.0-alpha.42

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 (210) hide show
  1. package/CHANGELOG.md +62 -2
  2. package/dist/AstValidationSegmenter.d.ts +3 -0
  3. package/dist/AstValidationSegmenter.js +62 -2
  4. package/dist/AstValidationSegmenter.js.map +1 -1
  5. package/dist/BsConfig.d.ts +7 -7
  6. package/dist/CrossScopeValidator.js +3 -3
  7. package/dist/CrossScopeValidator.js.map +1 -1
  8. package/dist/DiagnosticFilterer.d.ts +5 -1
  9. package/dist/DiagnosticFilterer.js +92 -33
  10. package/dist/DiagnosticFilterer.js.map +1 -1
  11. package/dist/DiagnosticManager.js +12 -9
  12. package/dist/DiagnosticManager.js.map +1 -1
  13. package/dist/DiagnosticMessages.d.ts +374 -225
  14. package/dist/DiagnosticMessages.js +641 -424
  15. package/dist/DiagnosticMessages.js.map +1 -1
  16. package/dist/DiagnosticSeverityAdjuster.js +4 -0
  17. package/dist/DiagnosticSeverityAdjuster.js.map +1 -1
  18. package/dist/LanguageServer.js +0 -7
  19. package/dist/LanguageServer.js.map +1 -1
  20. package/dist/PluginInterface.js +2 -0
  21. package/dist/PluginInterface.js.map +1 -1
  22. package/dist/Program.d.ts +22 -1
  23. package/dist/Program.js +206 -49
  24. package/dist/Program.js.map +1 -1
  25. package/dist/SymbolTable.d.ts +3 -0
  26. package/dist/SymbolTable.js +19 -1
  27. package/dist/SymbolTable.js.map +1 -1
  28. package/dist/XmlScope.js +3 -6
  29. package/dist/XmlScope.js.map +1 -1
  30. package/dist/astUtils/creators.d.ts +35 -3
  31. package/dist/astUtils/creators.js +52 -1
  32. package/dist/astUtils/creators.js.map +1 -1
  33. package/dist/astUtils/reflection.d.ts +4 -2
  34. package/dist/astUtils/reflection.js +12 -3
  35. package/dist/astUtils/reflection.js.map +1 -1
  36. package/dist/astUtils/visitors.d.ts +3 -2
  37. package/dist/astUtils/visitors.js +37 -14
  38. package/dist/astUtils/visitors.js.map +1 -1
  39. package/dist/astUtils/visitors.spec.js +172 -6
  40. package/dist/astUtils/visitors.spec.js.map +1 -1
  41. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +0 -1
  42. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +0 -13
  43. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  44. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +2 -1
  45. package/dist/bscPlugin/completions/CompletionsProcessor.js +5 -5
  46. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  47. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +106 -2
  48. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  49. package/dist/bscPlugin/hover/HoverProcessor.spec.js +51 -3
  50. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  51. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +1 -0
  52. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +149 -0
  53. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
  54. package/dist/bscPlugin/validation/BrsFileValidator.js +15 -8
  55. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  56. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +80 -9
  57. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  58. package/dist/bscPlugin/validation/ScopeValidator.d.ts +7 -0
  59. package/dist/bscPlugin/validation/ScopeValidator.js +149 -79
  60. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  61. package/dist/bscPlugin/validation/ScopeValidator.spec.js +1227 -27
  62. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  63. package/dist/bscPlugin/validation/XmlFileValidator.js +0 -8
  64. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  65. package/dist/diagnosticUtils.js +6 -5
  66. package/dist/diagnosticUtils.js.map +1 -1
  67. package/dist/files/BrsFile.Class.spec.js +87 -28
  68. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  69. package/dist/files/BrsFile.d.ts +1 -0
  70. package/dist/files/BrsFile.js +20 -8
  71. package/dist/files/BrsFile.js.map +1 -1
  72. package/dist/files/BrsFile.spec.js +133 -34
  73. package/dist/files/BrsFile.spec.js.map +1 -1
  74. package/dist/files/XmlFile.js +2 -2
  75. package/dist/files/XmlFile.js.map +1 -1
  76. package/dist/files/XmlFile.spec.js +3 -20
  77. package/dist/files/XmlFile.spec.js.map +1 -1
  78. package/dist/globalCallables.js +1 -1
  79. package/dist/index.d.ts +8 -3
  80. package/dist/index.js +24 -16
  81. package/dist/index.js.map +1 -1
  82. package/dist/interfaces.d.ts +18 -0
  83. package/dist/interfaces.js.map +1 -1
  84. package/dist/lexer/Lexer.js +17 -11
  85. package/dist/lexer/Lexer.js.map +1 -1
  86. package/dist/lexer/Lexer.spec.js +21 -3
  87. package/dist/lexer/Lexer.spec.js.map +1 -1
  88. package/dist/lexer/TokenKind.d.ts +9 -0
  89. package/dist/lexer/TokenKind.js +11 -1
  90. package/dist/lexer/TokenKind.js.map +1 -1
  91. package/dist/parser/AstNode.d.ts +2 -1
  92. package/dist/parser/AstNode.js +3 -2
  93. package/dist/parser/AstNode.js.map +1 -1
  94. package/dist/parser/Expression.d.ts +22 -2
  95. package/dist/parser/Expression.js +76 -48
  96. package/dist/parser/Expression.js.map +1 -1
  97. package/dist/parser/Parser.Class.spec.js +3 -3
  98. package/dist/parser/Parser.Class.spec.js.map +1 -1
  99. package/dist/parser/Parser.js +73 -61
  100. package/dist/parser/Parser.js.map +1 -1
  101. package/dist/parser/Parser.spec.js +198 -15
  102. package/dist/parser/Parser.spec.js.map +1 -1
  103. package/dist/parser/SGParser.js +9 -9
  104. package/dist/parser/SGParser.js.map +1 -1
  105. package/dist/parser/SGParser.spec.js +3 -2
  106. package/dist/parser/SGParser.spec.js.map +1 -1
  107. package/dist/parser/Statement.d.ts +16 -18
  108. package/dist/parser/Statement.js +136 -82
  109. package/dist/parser/Statement.js.map +1 -1
  110. package/dist/parser/tests/controlFlow/If.spec.js +1 -1
  111. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  112. package/dist/parser/tests/expression/ArrayLiterals.spec.js +3 -3
  113. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  114. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +3 -3
  115. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  116. package/dist/parser/tests/expression/Call.spec.js +9 -9
  117. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  118. package/dist/parser/tests/expression/Indexing.spec.js +3 -3
  119. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  120. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +1 -1
  121. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  122. package/dist/parser/tests/expression/TernaryExpression.spec.js +353 -71
  123. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  124. package/dist/parser/tests/statement/Dim.spec.js +10 -3
  125. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  126. package/dist/parser/tests/statement/Enum.spec.js +2 -2
  127. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  128. package/dist/parser/tests/statement/Increment.spec.js +3 -5
  129. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  130. package/dist/parser/tests/statement/PrintStatement.spec.js +3 -3
  131. package/dist/parser/tests/statement/TryCatch.spec.js +1 -1
  132. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  133. package/dist/roku-types/data.json +430 -235
  134. package/dist/roku-types/index.d.ts +30 -37
  135. package/dist/types/ArrayType.d.ts +2 -0
  136. package/dist/types/ArrayType.js +14 -4
  137. package/dist/types/ArrayType.js.map +1 -1
  138. package/dist/types/AssociativeArrayType.d.ts +1 -0
  139. package/dist/types/AssociativeArrayType.js +1 -0
  140. package/dist/types/AssociativeArrayType.js.map +1 -1
  141. package/dist/types/BaseFunctionType.d.ts +1 -0
  142. package/dist/types/BaseFunctionType.js +1 -0
  143. package/dist/types/BaseFunctionType.js.map +1 -1
  144. package/dist/types/BooleanType.d.ts +1 -0
  145. package/dist/types/BooleanType.js +1 -0
  146. package/dist/types/BooleanType.js.map +1 -1
  147. package/dist/types/BscType.d.ts +8 -1
  148. package/dist/types/BscType.js +12 -3
  149. package/dist/types/BscType.js.map +1 -1
  150. package/dist/types/BuiltInInterfaceAdder.js +10 -6
  151. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  152. package/dist/types/ClassType.d.ts +1 -0
  153. package/dist/types/ClassType.js +5 -2
  154. package/dist/types/ClassType.js.map +1 -1
  155. package/dist/types/ComponentType.d.ts +11 -4
  156. package/dist/types/ComponentType.js +100 -8
  157. package/dist/types/ComponentType.js.map +1 -1
  158. package/dist/types/DoubleType.d.ts +2 -0
  159. package/dist/types/DoubleType.js +2 -0
  160. package/dist/types/DoubleType.js.map +1 -1
  161. package/dist/types/DynamicType.d.ts +1 -0
  162. package/dist/types/DynamicType.js +4 -0
  163. package/dist/types/DynamicType.js.map +1 -1
  164. package/dist/types/EnumType.d.ts +2 -0
  165. package/dist/types/EnumType.js +20 -2
  166. package/dist/types/EnumType.js.map +1 -1
  167. package/dist/types/FloatType.d.ts +2 -0
  168. package/dist/types/FloatType.js +2 -0
  169. package/dist/types/FloatType.js.map +1 -1
  170. package/dist/types/InheritableType.js +8 -0
  171. package/dist/types/InheritableType.js.map +1 -1
  172. package/dist/types/IntegerType.d.ts +2 -0
  173. package/dist/types/IntegerType.js +2 -0
  174. package/dist/types/IntegerType.js.map +1 -1
  175. package/dist/types/InterfaceType.js +4 -1
  176. package/dist/types/InterfaceType.js.map +1 -1
  177. package/dist/types/InvalidType.d.ts +2 -1
  178. package/dist/types/InvalidType.js +1 -0
  179. package/dist/types/InvalidType.js.map +1 -1
  180. package/dist/types/LongIntegerType.d.ts +2 -0
  181. package/dist/types/LongIntegerType.js +2 -0
  182. package/dist/types/LongIntegerType.js.map +1 -1
  183. package/dist/types/ObjectType.d.ts +1 -0
  184. package/dist/types/ObjectType.js +1 -0
  185. package/dist/types/ObjectType.js.map +1 -1
  186. package/dist/types/ReferenceType.d.ts +20 -2
  187. package/dist/types/ReferenceType.js +106 -5
  188. package/dist/types/ReferenceType.js.map +1 -1
  189. package/dist/types/StringType.d.ts +1 -0
  190. package/dist/types/StringType.js +1 -0
  191. package/dist/types/StringType.js.map +1 -1
  192. package/dist/types/TypedFunctionType.d.ts +1 -1
  193. package/dist/types/TypedFunctionType.js +8 -2
  194. package/dist/types/TypedFunctionType.js.map +1 -1
  195. package/dist/types/UninitializedType.d.ts +2 -0
  196. package/dist/types/UninitializedType.js +5 -6
  197. package/dist/types/UninitializedType.js.map +1 -1
  198. package/dist/types/UnionType.js +8 -2
  199. package/dist/types/UnionType.js.map +1 -1
  200. package/dist/types/VoidType.d.ts +4 -1
  201. package/dist/types/VoidType.js +5 -0
  202. package/dist/types/VoidType.js.map +1 -1
  203. package/dist/types/helpers.js +8 -1
  204. package/dist/types/helpers.js.map +1 -1
  205. package/dist/util.d.ts +15 -5
  206. package/dist/util.js +281 -14
  207. package/dist/util.js.map +1 -1
  208. package/dist/validators/ClassValidator.js +13 -5
  209. package/dist/validators/ClassValidator.js.map +1 -1
  210. package/package.json +2 -2
@@ -414,7 +414,6 @@ export declare const nodes: {
414
414
  url: string;
415
415
  };
416
416
  infopane: {
417
- availableSince: string;
418
417
  description: string;
419
418
  events: any[];
420
419
  fields: any[];
@@ -485,7 +484,6 @@ export declare const nodes: {
485
484
  url: string;
486
485
  };
487
486
  labelbase: {
488
- availableSince: string;
489
487
  description: string;
490
488
  events: any[];
491
489
  extends: {
@@ -629,8 +627,16 @@ export declare const nodes: {
629
627
  name: string;
630
628
  url: string;
631
629
  };
632
- multistylelabel: {
630
+ monospacelabel: {
633
631
  availableSince: string;
632
+ description: string;
633
+ events: any[];
634
+ fields: any[];
635
+ interfaces: any[];
636
+ name: string;
637
+ url: string;
638
+ };
639
+ multistylelabel: {
634
640
  description: string;
635
641
  events: any[];
636
642
  extends: {
@@ -737,7 +743,13 @@ export declare const nodes: {
737
743
  parentalcontrolpinpad: {
738
744
  description: string;
739
745
  events: any[];
740
- fields: any[];
746
+ fields: {
747
+ accessPermission: string;
748
+ default: string;
749
+ description: string;
750
+ name: string;
751
+ type: string;
752
+ }[];
741
753
  interfaces: any[];
742
754
  name: string;
743
755
  url: string;
@@ -1026,7 +1038,6 @@ export declare const nodes: {
1026
1038
  url: string;
1027
1039
  };
1028
1040
  standarddialog: {
1029
- availableSince: string;
1030
1041
  description: string;
1031
1042
  events: any[];
1032
1043
  extends: {
@@ -1045,7 +1056,6 @@ export declare const nodes: {
1045
1056
  url: string;
1046
1057
  };
1047
1058
  standardkeyboarddialog: {
1048
- availableSince: string;
1049
1059
  description: string;
1050
1060
  events: any[];
1051
1061
  extends: {
@@ -1064,7 +1074,6 @@ export declare const nodes: {
1064
1074
  url: string;
1065
1075
  };
1066
1076
  standardmessagedialog: {
1067
- availableSince: string;
1068
1077
  description: string;
1069
1078
  events: any[];
1070
1079
  extends: {
@@ -1083,7 +1092,6 @@ export declare const nodes: {
1083
1092
  url: string;
1084
1093
  };
1085
1094
  standardpinpaddialog: {
1086
- availableSince: string;
1087
1095
  description: string;
1088
1096
  events: any[];
1089
1097
  extends: {
@@ -1102,7 +1110,6 @@ export declare const nodes: {
1102
1110
  url: string;
1103
1111
  };
1104
1112
  standardprogressdialog: {
1105
- availableSince: string;
1106
1113
  description: string;
1107
1114
  events: any[];
1108
1115
  extends: {
@@ -1121,7 +1128,6 @@ export declare const nodes: {
1121
1128
  url: string;
1122
1129
  };
1123
1130
  stddlgactioncarditem: {
1124
- availableSince: string;
1125
1131
  description: string;
1126
1132
  events: any[];
1127
1133
  extends: {
@@ -1140,7 +1146,6 @@ export declare const nodes: {
1140
1146
  url: string;
1141
1147
  };
1142
1148
  stddlgareabase: {
1143
- availableSince: string;
1144
1149
  description: string;
1145
1150
  events: any[];
1146
1151
  extends: {
@@ -1153,7 +1158,6 @@ export declare const nodes: {
1153
1158
  url: string;
1154
1159
  };
1155
1160
  stddlgbullettextitem: {
1156
- availableSince: string;
1157
1161
  description: string;
1158
1162
  events: any[];
1159
1163
  extends: {
@@ -1172,7 +1176,6 @@ export declare const nodes: {
1172
1176
  url: string;
1173
1177
  };
1174
1178
  stddlgbutton: {
1175
- availableSince: string;
1176
1179
  description: string;
1177
1180
  events: any[];
1178
1181
  extends: {
@@ -1191,7 +1194,6 @@ export declare const nodes: {
1191
1194
  url: string;
1192
1195
  };
1193
1196
  stddlgbuttonarea: {
1194
- availableSince: string;
1195
1197
  description: string;
1196
1198
  events: any[];
1197
1199
  extends: {
@@ -1204,7 +1206,6 @@ export declare const nodes: {
1204
1206
  url: string;
1205
1207
  };
1206
1208
  stddlgcontentarea: {
1207
- availableSince: string;
1208
1209
  description: string;
1209
1210
  events: any[];
1210
1211
  extends: {
@@ -1217,7 +1218,6 @@ export declare const nodes: {
1217
1218
  url: string;
1218
1219
  };
1219
1220
  stddlgcustomitem: {
1220
- availableSince: string;
1221
1221
  description: string;
1222
1222
  events: any[];
1223
1223
  extends: {
@@ -1236,7 +1236,6 @@ export declare const nodes: {
1236
1236
  url: string;
1237
1237
  };
1238
1238
  stddlgdeterminateprogressitem: {
1239
- availableSince: string;
1240
1239
  description: string;
1241
1240
  events: any[];
1242
1241
  extends: {
@@ -1255,7 +1254,6 @@ export declare const nodes: {
1255
1254
  url: string;
1256
1255
  };
1257
1256
  stddlggraphicitem: {
1258
- availableSince: string;
1259
1257
  description: string;
1260
1258
  events: any[];
1261
1259
  extends: {
@@ -1274,7 +1272,6 @@ export declare const nodes: {
1274
1272
  url: string;
1275
1273
  };
1276
1274
  stddlgitembase: {
1277
- availableSince: string;
1278
1275
  description: string;
1279
1276
  events: any[];
1280
1277
  extends: {
@@ -1293,7 +1290,6 @@ export declare const nodes: {
1293
1290
  url: string;
1294
1291
  };
1295
1292
  stddlgitemgroup: {
1296
- availableSince: string;
1297
1293
  description: string;
1298
1294
  events: any[];
1299
1295
  extends: {
@@ -1312,7 +1308,6 @@ export declare const nodes: {
1312
1308
  url: string;
1313
1309
  };
1314
1310
  stddlgkeyboarditem: {
1315
- availableSince: string;
1316
1311
  description: string;
1317
1312
  events: any[];
1318
1313
  extends: {
@@ -1331,7 +1326,6 @@ export declare const nodes: {
1331
1326
  url: string;
1332
1327
  };
1333
1328
  stddlgmultistyletextitem: {
1334
- availableSince: string;
1335
1329
  description: string;
1336
1330
  events: any[];
1337
1331
  extends: {
@@ -1350,7 +1344,6 @@ export declare const nodes: {
1350
1344
  url: string;
1351
1345
  };
1352
1346
  stddlgprogressitem: {
1353
- availableSince: string;
1354
1347
  description: string;
1355
1348
  events: any[];
1356
1349
  extends: {
@@ -1369,7 +1362,6 @@ export declare const nodes: {
1369
1362
  url: string;
1370
1363
  };
1371
1364
  stddlgsidecardarea: {
1372
- availableSince: string;
1373
1365
  description: string;
1374
1366
  events: any[];
1375
1367
  extends: {
@@ -1388,7 +1380,6 @@ export declare const nodes: {
1388
1380
  url: string;
1389
1381
  };
1390
1382
  stddlgtextitem: {
1391
- availableSince: string;
1392
1383
  description: string;
1393
1384
  events: any[];
1394
1385
  extends: {
@@ -1407,7 +1398,6 @@ export declare const nodes: {
1407
1398
  url: string;
1408
1399
  };
1409
1400
  stddlgtitlearea: {
1410
- availableSince: string;
1411
1401
  description: string;
1412
1402
  events: any[];
1413
1403
  extends: {
@@ -1649,7 +1639,6 @@ export declare const components: {
1649
1639
  url: string;
1650
1640
  };
1651
1641
  roappmemorymonitor: {
1652
- availableSince: string;
1653
1642
  constructors: any[];
1654
1643
  description: string;
1655
1644
  events: {
@@ -1926,7 +1915,6 @@ export declare const components: {
1926
1915
  url: string;
1927
1916
  };
1928
1917
  rodsa: {
1929
- availableSince: string;
1930
1918
  constructors: any[];
1931
1919
  description: string;
1932
1920
  events: any[];
@@ -2118,6 +2106,7 @@ export declare const components: {
2118
2106
  name: string;
2119
2107
  url: string;
2120
2108
  }[];
2109
+ methods: any[];
2121
2110
  name: string;
2122
2111
  url: string;
2123
2112
  };
@@ -3269,21 +3258,27 @@ export declare const interfaces: {
3269
3258
  deprecatedDescription?: undefined;
3270
3259
  isDeprecated?: undefined;
3271
3260
  } | {
3272
- deprecatedDescription: string;
3273
3261
  description: string;
3274
- isDeprecated: boolean;
3275
3262
  name: string;
3276
3263
  params: any[];
3277
- returnDescription: string;
3278
3264
  returnType: string;
3265
+ returnDescription?: undefined;
3266
+ deprecatedDescription?: undefined;
3267
+ isDeprecated?: undefined;
3279
3268
  } | {
3269
+ deprecatedDescription: string;
3280
3270
  description: string;
3271
+ isDeprecated: boolean;
3281
3272
  name: string;
3282
- params: any[];
3273
+ params: {
3274
+ default: any;
3275
+ description: string;
3276
+ isRequired: boolean;
3277
+ name: string;
3278
+ type: string;
3279
+ }[];
3280
+ returnDescription: string;
3283
3281
  returnType: string;
3284
- returnDescription?: undefined;
3285
- deprecatedDescription?: undefined;
3286
- isDeprecated?: undefined;
3287
3282
  })[];
3288
3283
  name: string;
3289
3284
  properties: any[];
@@ -3356,8 +3351,6 @@ export declare const interfaces: {
3356
3351
  url: string;
3357
3352
  };
3358
3353
  ifdsa: {
3359
- availableSince: string;
3360
- description: string;
3361
3354
  implementers: {
3362
3355
  description: string;
3363
3356
  name: string;
@@ -4,7 +4,9 @@ import { BscTypeKind } from './BscTypeKind';
4
4
  export declare class ArrayType extends BscType {
5
5
  constructor(...innerTypes: BscType[]);
6
6
  readonly kind = BscTypeKind.ArrayType;
7
+ isBuiltIn: boolean;
7
8
  innerTypes: BscType[];
9
+ _defaultType: BscType;
8
10
  get defaultType(): BscType;
9
11
  isTypeCompatible(targetType: BscType, data?: TypeCompatibilityData): boolean;
10
12
  toString(): string;
@@ -9,22 +9,32 @@ const DynamicType_1 = require("./DynamicType");
9
9
  const IntegerType_1 = require("./IntegerType");
10
10
  const UnionType_1 = require("./UnionType");
11
11
  const helpers_1 = require("./helpers");
12
+ const util_1 = require("../util");
12
13
  class ArrayType extends BscType_1.BscType {
13
14
  constructor(...innerTypes) {
14
15
  super();
15
16
  this.kind = BscTypeKind_1.BscTypeKind.ArrayType;
17
+ this.isBuiltIn = true;
16
18
  this.innerTypes = [];
17
19
  this.innerTypes = innerTypes;
18
20
  }
19
21
  get defaultType() {
20
- var _a, _b;
22
+ var _a, _b, _c;
23
+ if (this._defaultType) {
24
+ return this._defaultType;
25
+ }
21
26
  if (((_a = this.innerTypes) === null || _a === void 0 ? void 0 : _a.length) === 0) {
22
27
  return DynamicType_1.DynamicType.instance;
23
28
  }
24
- else if (((_b = this.innerTypes) === null || _b === void 0 ? void 0 : _b.length) === 1) {
25
- return this.innerTypes[0];
29
+ let resultType = this.innerTypes[0];
30
+ if (((_b = this.innerTypes) === null || _b === void 0 ? void 0 : _b.length) > 1) {
31
+ resultType = (0, helpers_1.getUniqueType)(this.innerTypes, UnionType_1.unionTypeFactory);
32
+ }
33
+ if ((0, reflection_1.isEnumMemberType)(resultType)) {
34
+ resultType = (_c = resultType.parentEnumType) !== null && _c !== void 0 ? _c : resultType;
26
35
  }
27
- return (0, helpers_1.getUniqueType)(this.innerTypes, UnionType_1.unionTypeFactory);
36
+ this._defaultType = util_1.util.getDefaultTypeFromValueType(this.innerTypes);
37
+ return resultType;
28
38
  }
29
39
  isTypeCompatible(targetType, data) {
30
40
  if ((0, reflection_1.isDynamicType)(targetType)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayType.js","sourceRoot":"","sources":["../../src/types/ArrayType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArrayType.js","sourceRoot":"","sources":["../../src/types/ArrayType.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { BscType } from './BscType';
4
4
  import { BscTypeKind } from './BscTypeKind';
5
5
  export declare class AssociativeArrayType extends BscType {
6
6
  readonly kind = BscTypeKind.AssociativeArrayType;
7
+ isBuiltIn: boolean;
7
8
  isTypeCompatible(targetType: BscType, data?: TypeCompatibilityData): boolean;
8
9
  toString(): string;
9
10
  toTypeString(): string;
@@ -11,6 +11,7 @@ class AssociativeArrayType extends BscType_1.BscType {
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this.kind = BscTypeKind_1.BscTypeKind.AssociativeArrayType;
14
+ this.isBuiltIn = true;
14
15
  }
15
16
  isTypeCompatible(targetType, data) {
16
17
  if ((0, reflection_1.isDynamicType)(targetType)) {
@@ -1 +1 @@
1
- {"version":3,"file":"AssociativeArrayType.js","sourceRoot":"","sources":["../../src/types/AssociativeArrayType.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAE7C,uDAA0G;AAE1G,uCAAoC;AACpC,+CAA4C;AAC5C,+CAA4C;AAC5C,uCAAkD;AAElD,MAAa,oBAAqB,SAAQ,iBAAO;IAAjD;;QAGoB,SAAI,GAAG,yBAAW,CAAC,oBAAoB,CAAC;IA+C5D,CAAC;IA7CU,gBAAgB,CAAC,UAAmB,EAAE,IAA4B;QACrE,IAAI,IAAA,0BAAa,EAAC,UAAU,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,+BAAqB,EAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YAChD,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,mCAAsB,EAAC,UAAU,CAAC,EAAE;YAC3C,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAI,CAAC,gCAAgC,CAAC,UAAU,kCAA0B,IAAI,CAAC,EAAE;YACxF,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,wBAAW,EAAC,UAAU,CAAC,EAAE;YAChC,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,QAAQ;QACX,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAEM,YAAY;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,OAAuB;;QAC/C,2EAA2E;QAC3E,OAAO,MAAA,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,mCAAI,yBAAW,CAAC,QAAQ,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,SAAkB;QACtB,OAAO,IAAA,mCAAsB,EAAC,SAAS,CAAC,IAAI,IAAI,CAAC,gCAAgC,CAAC,SAAS,iCAAyB,CAAC;IACzH,CAAC;IAID,qBAAqB;QACjB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAClC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,yBAAW,CAAC,GAAG,IAAI,CAAC,YAAY,mBAAmB,CAAC,CAAC;QACnF,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAEnC,CAAC;CACJ;AAlDD,oDAkDC"}
1
+ {"version":3,"file":"AssociativeArrayType.js","sourceRoot":"","sources":["../../src/types/AssociativeArrayType.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAE7C,uDAA0G;AAE1G,uCAAoC;AACpC,+CAA4C;AAC5C,+CAA4C;AAC5C,uCAAkD;AAElD,MAAa,oBAAqB,SAAQ,iBAAO;IAAjD;;QAGoB,SAAI,GAAG,yBAAW,CAAC,oBAAoB,CAAC;QAEjD,cAAS,GAAG,IAAI,CAAC;IA+C5B,CAAC;IA7CU,gBAAgB,CAAC,UAAmB,EAAE,IAA4B;QACrE,IAAI,IAAA,0BAAa,EAAC,UAAU,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,+BAAqB,EAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YAChD,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,mCAAsB,EAAC,UAAU,CAAC,EAAE;YAC3C,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAI,CAAC,gCAAgC,CAAC,UAAU,kCAA0B,IAAI,CAAC,EAAE;YACxF,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAA,wBAAW,EAAC,UAAU,CAAC,EAAE;YAChC,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,QAAQ;QACX,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAEM,YAAY;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,OAAuB;;QAC/C,2EAA2E;QAC3E,OAAO,MAAA,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,mCAAI,yBAAW,CAAC,QAAQ,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,SAAkB;QACtB,OAAO,IAAA,mCAAsB,EAAC,SAAS,CAAC,IAAI,IAAI,CAAC,gCAAgC,CAAC,SAAS,iCAAyB,CAAC;IACzH,CAAC;IAID,qBAAqB;QACjB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAClC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,yBAAW,CAAC,GAAG,IAAI,CAAC,YAAY,mBAAmB,CAAC,CAAC;QACnF,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAEnC,CAAC;CACJ;AApDD,oDAoDC"}
@@ -2,6 +2,7 @@ import type { TypeCompatibilityData } from '../interfaces';
2
2
  import { BscType } from './BscType';
3
3
  export declare abstract class BaseFunctionType extends BscType {
4
4
  returnType: BscType;
5
+ isBuiltIn: boolean;
5
6
  isTypeCompatible(targetType: BscType, data?: TypeCompatibilityData): boolean;
6
7
  toString(): string;
7
8
  toTypeString(): string;
@@ -7,6 +7,7 @@ class BaseFunctionType extends BscType_1.BscType {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  this.returnType = DynamicType_1.DynamicType.instance;
10
+ this.isBuiltIn = true;
10
11
  }
11
12
  isTypeCompatible(targetType, data) {
12
13
  throw new Error('Method not implemented.');
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFunctionType.js","sourceRoot":"","sources":["../../src/types/BaseFunctionType.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AACpC,+CAA4C;AAE5C,MAAsB,gBAAiB,SAAQ,iBAAO;IAAtD;;QAEW,eAAU,GAAY,yBAAW,CAAC,QAAQ,CAAC;IAkBtD,CAAC;IAhBU,gBAAgB,CAAC,UAAmB,EAAE,IAA4B;QACrE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAE/B,CAAC;IAEM,YAAY;QACf,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,UAAmB;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;CACJ;AApBD,4CAoBC"}
1
+ {"version":3,"file":"BaseFunctionType.js","sourceRoot":"","sources":["../../src/types/BaseFunctionType.ts"],"names":[],"mappings":";;;AACA,uCAAoC;AACpC,+CAA4C;AAE5C,MAAsB,gBAAiB,SAAQ,iBAAO;IAAtD;;QAEW,eAAU,GAAY,yBAAW,CAAC,QAAQ,CAAC;QAC3C,cAAS,GAAG,IAAI,CAAC;IAkB5B,CAAC;IAhBU,gBAAgB,CAAC,UAAmB,EAAE,IAA4B;QACrE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAE/B,CAAC;IAEM,YAAY;QACf,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,UAAmB;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;CACJ;AArBD,4CAqBC"}
@@ -5,6 +5,7 @@ export declare class BooleanType extends BscType {
5
5
  typeText?: string;
6
6
  constructor(typeText?: string);
7
7
  readonly kind = BscTypeKind.BooleanType;
8
+ isBuiltIn: boolean;
8
9
  static instance: BooleanType;
9
10
  isTypeCompatible(targetType: BscType, data?: TypeCompatibilityData): boolean;
10
11
  toString(): string;
@@ -11,6 +11,7 @@ class BooleanType extends BscType_1.BscType {
11
11
  super();
12
12
  this.typeText = typeText;
13
13
  this.kind = BscTypeKind_1.BscTypeKind.BooleanType;
14
+ this.isBuiltIn = true;
14
15
  }
15
16
  isTypeCompatible(targetType, data) {
16
17
  return ((0, reflection_1.isBooleanType)(targetType) ||
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanType.js","sourceRoot":"","sources":["../../src/types/BooleanType.ts"],"names":[],"mappings":";;;AAAA,uDAAoF;AACpF,uCAAoC;AACpC,+CAA4C;AAC5C,uCAA+E;AAC/E,mEAAgE;AAGhE,MAAa,WAAY,SAAQ,iBAAO;IACpC,YACW,QAAiB;QAExB,KAAK,EAAE,CAAC;QAFD,aAAQ,GAAR,QAAQ,CAAS;QAKZ,SAAI,GAAG,yBAAW,CAAC,WAAW,CAAC;IAF/C,CAAC;IAMM,gBAAgB,CAAC,UAAmB,EAAE,IAA4B;QACrE,OAAO,CACH,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,+BAAqB,EAAC,IAAI,EAAE,UAAU,CAAC;YACvC,IAAA,qCAA2B,EAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,CACnE,CAAC;IACN,CAAC;IAEM,QAAQ;;QACX,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,SAAS,CAAC;IACtC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,UAAmB;QACvB,OAAO,IAAA,0BAAa,EAAC,UAAU,CAAC,CAAC;IACrC,CAAC;;AA/BL,kCAgCC;AAvBiB,oBAAQ,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;AAyBxD,6CAAqB,CAAC,0BAA0B,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"BooleanType.js","sourceRoot":"","sources":["../../src/types/BooleanType.ts"],"names":[],"mappings":";;;AAAA,uDAAoF;AACpF,uCAAoC;AACpC,+CAA4C;AAC5C,uCAA+E;AAC/E,mEAAgE;AAGhE,MAAa,WAAY,SAAQ,iBAAO;IACpC,YACW,QAAiB;QAExB,KAAK,EAAE,CAAC;QAFD,aAAQ,GAAR,QAAQ,CAAS;QAKZ,SAAI,GAAG,yBAAW,CAAC,WAAW,CAAC;QACxC,cAAS,GAAG,IAAI,CAAC;IAHxB,CAAC;IAOM,gBAAgB,CAAC,UAAmB,EAAE,IAA4B;QACrE,OAAO,CACH,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,0BAAa,EAAC,UAAU,CAAC;YACzB,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,+BAAqB,EAAC,IAAI,EAAE,UAAU,CAAC;YACvC,IAAA,qCAA2B,EAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,CACnE,CAAC;IACN,CAAC;IAEM,QAAQ;;QACX,OAAO,MAAA,IAAI,CAAC,QAAQ,mCAAI,SAAS,CAAC;IACtC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,UAAmB;QACvB,OAAO,IAAA,0BAAa,EAAC,UAAU,CAAC,CAAC;IACrC,CAAC;;AAhCL,kCAiCC;AAvBiB,oBAAQ,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;AAyBxD,6CAAqB,CAAC,0BAA0B,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC"}
@@ -6,6 +6,7 @@ export declare abstract class BscType {
6
6
  readonly memberTable: SymbolTable;
7
7
  protected __identifier: string;
8
8
  protected hasAddedBuiltInInterfaces: boolean;
9
+ isBuiltIn: boolean;
9
10
  constructor(name?: string);
10
11
  pushMemberProvider(provider: SymbolTableProvider): void;
11
12
  popMemberProvider(): void;
@@ -28,6 +29,12 @@ export declare abstract class BscType {
28
29
  toString(): string;
29
30
  toTypeString(): string;
30
31
  isEqual(targetType: BscType, data?: TypeCompatibilityData): boolean;
31
- checkCompatibilityBasedOnMembers(targetType: BscType, flags: SymbolTypeFlag, data?: TypeCompatibilityData): boolean;
32
+ checkCompatibilityBasedOnMembers(targetType: BscType, flags: SymbolTypeFlag, data?: TypeCompatibilityData, memberTable?: SymbolTable, targetMemberTable?: SymbolTable): boolean;
32
33
  addBuiltInInterfaces(): void;
34
+ /**
35
+ * The level of priority of this type when in a binary operation
36
+ * For example Float is higher priority than integer, so Float + Int => Float
37
+ * Lower numbers have higher priority
38
+ */
39
+ readonly binaryOpPriorityLevel: number;
33
40
  }
@@ -7,6 +7,13 @@ const reflection_1 = require("../astUtils/reflection");
7
7
  class BscType {
8
8
  constructor(name = '') {
9
9
  this.hasAddedBuiltInInterfaces = false;
10
+ this.isBuiltIn = false;
11
+ /**
12
+ * The level of priority of this type when in a binary operation
13
+ * For example Float is higher priority than integer, so Float + Int => Float
14
+ * Lower numbers have higher priority
15
+ */
16
+ this.binaryOpPriorityLevel = 0;
10
17
  this.__identifier = `${this.constructor.name}${name ? ': ' + name : ''}`;
11
18
  this.memberTable = new SymbolTable_1.SymbolTable(this.__identifier);
12
19
  }
@@ -57,7 +64,7 @@ class BscType {
57
64
  isEqual(targetType, data = {}) {
58
65
  throw new Error('Method not implemented.');
59
66
  }
60
- checkCompatibilityBasedOnMembers(targetType, flags, data = {}) {
67
+ checkCompatibilityBasedOnMembers(targetType, flags, data = {}, memberTable, targetMemberTable) {
61
68
  var _a, _b;
62
69
  if (!targetType) {
63
70
  return false;
@@ -73,6 +80,7 @@ class BscType {
73
80
  return true;
74
81
  }
75
82
  if ((0, reflection_1.isReferenceType)(targetType) && !targetType.isResolvable()) {
83
+ data.unresolveableTarget = targetType.fullName;
76
84
  // we can't resolve the other type. Assume it does not fail on member checks
77
85
  return true;
78
86
  }
@@ -80,9 +88,10 @@ class BscType {
80
88
  // some sort of circular reference
81
89
  return false;
82
90
  }
83
- const mySymbols = (_a = this.getMemberTable()) === null || _a === void 0 ? void 0 : _a.getAllSymbols(flags);
91
+ const mySymbols = (_a = (memberTable !== null && memberTable !== void 0 ? memberTable : this.getMemberTable())) === null || _a === void 0 ? void 0 : _a.getAllSymbols(flags);
92
+ const targetTable = (targetMemberTable !== null && targetMemberTable !== void 0 ? targetMemberTable : targetType.getMemberTable());
84
93
  for (const memberSymbol of mySymbols) {
85
- const targetTypesOfSymbol = (_b = targetType.getMemberTable()
94
+ const targetTypesOfSymbol = (_b = targetTable
86
95
  .getSymbolTypes(memberSymbol.name, { flags: flags })) === null || _b === void 0 ? void 0 : _b.map(symbol => symbol.type);
87
96
  if (!targetTypesOfSymbol || targetTypesOfSymbol.length === 0) {
88
97
  // eslint-disable-next-line no-bitwise
@@ -1 +1 @@
1
- {"version":3,"file":"BscType.js","sourceRoot":"","sources":["../../src/types/BscType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BscType.js","sourceRoot":"","sources":["../../src/types/BscType.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,10 @@ const roku_types_1 = require("../roku-types");
5
5
  const Cache_1 = require("../Cache");
6
6
  const reflection_1 = require("../astUtils/reflection");
7
7
  const util_1 = require("../util");
8
+ const builtInSymbolData = {
9
+ completionPriority: 1,
10
+ isBuiltIn: true
11
+ };
8
12
  // eslint-disable-next-line @typescript-eslint/no-extraneous-class
9
13
  class BuiltInInterfaceAdder {
10
14
  static addBuiltInInterfacesToType(thisType, overrides) {
@@ -37,7 +41,7 @@ class BuiltInInterfaceAdder {
37
41
  if (method.isDeprecated) {
38
42
  flags |= 64 /* SymbolTypeFlag.deprecated */; // eslint-disable-line no-bitwise
39
43
  }
40
- builtInMemberTable.addSymbol(method.name, { description: method.description, completionPriority: 1 }, methodFuncType, flags);
44
+ builtInMemberTable.addSymbol(method.name, Object.assign(Object.assign({}, builtInSymbolData), { description: method.description }), methodFuncType, flags);
41
45
  }
42
46
  }
43
47
  for (const iface of interfacesToLoop) {
@@ -47,7 +51,7 @@ class BuiltInInterfaceAdder {
47
51
  // this type has interfaces - add them directly as members
48
52
  const ifaceType = (_d = this.getLookupTable()) === null || _d === void 0 ? void 0 : _d.getSymbolType(iface.name, { flags: 2 /* SymbolTypeFlag.typetime */ });
49
53
  if (ifaceType) {
50
- builtInMemberTable.addSymbol(iface.name, { completionPriority: 1 }, ifaceType, 1 /* SymbolTypeFlag.runtime */);
54
+ builtInMemberTable.addSymbol(iface.name, Object.assign({}, builtInSymbolData), ifaceType, 1 /* SymbolTypeFlag.runtime */);
51
55
  }
52
56
  }
53
57
  for (const method of (_e = ifaceData.methods) !== null && _e !== void 0 ? _e : []) {
@@ -56,11 +60,11 @@ class BuiltInInterfaceAdder {
56
60
  continue;
57
61
  }
58
62
  const methodFuncType = this.buildMethodFromDocData(method, overrides, thisType);
59
- builtInMemberTable.addSymbol(method.name, { description: method.description, completionPriority: 1 }, methodFuncType, 1 /* SymbolTypeFlag.runtime */);
63
+ builtInMemberTable.addSymbol(method.name, Object.assign(Object.assign({}, builtInSymbolData), { description: method.description }), methodFuncType, 1 /* SymbolTypeFlag.runtime */);
60
64
  }
61
65
  for (const property of (_f = ifaceData.properties) !== null && _f !== void 0 ? _f : []) {
62
66
  const override = overrides === null || overrides === void 0 ? void 0 : overrides.get(property.name.toLowerCase());
63
- builtInMemberTable.addSymbol(property.name, { description: property.description, completionPriority: 1 }, (_h = (_g = override === null || override === void 0 ? void 0 : override.type) !== null && _g !== void 0 ? _g : this.getPrimitiveType(property.type)) !== null && _h !== void 0 ? _h : this.getPrimitiveType('dynamic'), 1 /* SymbolTypeFlag.runtime */);
67
+ builtInMemberTable.addSymbol(property.name, Object.assign(Object.assign({}, builtInSymbolData), { description: property.description }), (_h = (_g = override === null || override === void 0 ? void 0 : override.type) !== null && _g !== void 0 ? _g : this.getPrimitiveType(property.type)) !== null && _h !== void 0 ? _h : this.getPrimitiveType('dynamic'), 1 /* SymbolTypeFlag.runtime */);
64
68
  }
65
69
  }
66
70
  }
@@ -183,7 +187,7 @@ class BuiltInInterfaceAdder {
183
187
  }
184
188
  const lookupTable = this.getLookupTable();
185
189
  for (const field of builtInNode.fields) {
186
- memberTable.addSymbol(field.name, { description: field.description, completionPriority: 1 }, util_1.util.getNodeFieldType(field.type, lookupTable), 1 /* SymbolTypeFlag.runtime */);
190
+ memberTable.addSymbol(field.name, Object.assign(Object.assign({}, builtInSymbolData), { description: field.description }), util_1.util.getNodeFieldType(field.type, lookupTable), 1 /* SymbolTypeFlag.runtime */);
187
191
  }
188
192
  for (const method of (_a = builtInNode.methods) !== null && _a !== void 0 ? _a : []) {
189
193
  const methodFuncType = this.buildMethodFromDocData(method, null, thisType);
@@ -192,7 +196,7 @@ class BuiltInInterfaceAdder {
192
196
  if (method.isDeprecated) {
193
197
  flags |= 64 /* SymbolTypeFlag.deprecated */; // eslint-disable-line no-bitwise
194
198
  }
195
- memberTable.addSymbol(method.name, { description: method.description, completionPriority: 1 }, methodFuncType, flags);
199
+ memberTable.addSymbol(method.name, Object.assign(Object.assign({}, builtInSymbolData), { description: method.description }), methodFuncType, flags);
196
200
  }
197
201
  }
198
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltInInterfaceAdder.js","sourceRoot":"","sources":["../../src/types/BuiltInInterfaceAdder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BuiltInInterfaceAdder.js","sourceRoot":"","sources":["../../src/types/BuiltInInterfaceAdder.ts"],"names":[],"mappings":"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"}
@@ -12,5 +12,6 @@ export declare class ClassType extends InheritableType {
12
12
  isEqual(targetType: BscType, data?: TypeCompatibilityData): boolean;
13
13
  private builtInMemberTable;
14
14
  getBuiltInMemberTable(): SymbolTable;
15
+ private hasStartedAddingBuiltInInterfaces;
15
16
  addBuiltInInterfaces(): void;
16
17
  }
@@ -12,12 +12,14 @@ class ClassType extends InheritableType_1.InheritableType {
12
12
  super(name, superClass);
13
13
  this.name = name;
14
14
  this.kind = BscTypeKind_1.BscTypeKind.ClassType;
15
+ this.hasStartedAddingBuiltInInterfaces = false;
15
16
  }
16
17
  isTypeCompatible(targetType, data) {
17
18
  if (this.isEqual(targetType, data)) {
18
19
  return true;
19
20
  }
20
- else if ((0, reflection_1.isDynamicType)(targetType) ||
21
+ else if ((0, reflection_1.isInvalidType)(targetType) ||
22
+ (0, reflection_1.isDynamicType)(targetType) ||
21
23
  (0, reflection_1.isObjectType)(targetType) ||
22
24
  (0, helpers_1.isUnionTypeCompatible)(this, targetType, data)) {
23
25
  return true;
@@ -44,7 +46,8 @@ class ClassType extends InheritableType_1.InheritableType {
44
46
  }
45
47
  }
46
48
  addBuiltInInterfaces() {
47
- if (!this.hasAddedBuiltInInterfaces) {
49
+ if (!this.hasAddedBuiltInInterfaces && !this.hasStartedAddingBuiltInInterfaces) {
50
+ this.hasStartedAddingBuiltInInterfaces = true;
48
51
  if (this.parentType) {
49
52
  this.parentType.addBuiltInInterfaces();
50
53
  }