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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (652) hide show
  1. package/README.md +79 -138
  2. package/bsconfig.schema.json +196 -5
  3. package/dist/ActionPipeline.d.ts +10 -0
  4. package/dist/ActionPipeline.js +40 -0
  5. package/dist/ActionPipeline.js.map +1 -0
  6. package/dist/AstValidationSegmenter.d.ts +45 -0
  7. package/dist/AstValidationSegmenter.js +322 -0
  8. package/dist/AstValidationSegmenter.js.map +1 -0
  9. package/dist/BsConfig.d.ts +161 -43
  10. package/dist/BusyStatusTracker.d.ts +61 -0
  11. package/dist/BusyStatusTracker.js +148 -0
  12. package/dist/BusyStatusTracker.js.map +1 -0
  13. package/dist/Cache.d.ts +3 -8
  14. package/dist/Cache.js +9 -14
  15. package/dist/Cache.js.map +1 -1
  16. package/dist/CacheVerifier.d.ts +7 -0
  17. package/dist/CacheVerifier.js +20 -0
  18. package/dist/CacheVerifier.js.map +1 -0
  19. package/dist/CodeActionUtil.d.ts +29 -4
  20. package/dist/CodeActionUtil.js +22 -5
  21. package/dist/CodeActionUtil.js.map +1 -1
  22. package/dist/CommentFlagProcessor.d.ts +20 -15
  23. package/dist/CommentFlagProcessor.js +143 -58
  24. package/dist/CommentFlagProcessor.js.map +1 -1
  25. package/dist/CrossScopeValidator.d.ts +68 -0
  26. package/dist/CrossScopeValidator.js +650 -0
  27. package/dist/CrossScopeValidator.js.map +1 -0
  28. package/dist/DependencyGraph.d.ts +8 -3
  29. package/dist/DependencyGraph.js +49 -16
  30. package/dist/DependencyGraph.js.map +1 -1
  31. package/dist/DiagnosticCollection.d.ts +21 -5
  32. package/dist/DiagnosticCollection.js +77 -24
  33. package/dist/DiagnosticCollection.js.map +1 -1
  34. package/dist/DiagnosticFilterer.d.ts +27 -6
  35. package/dist/DiagnosticFilterer.js +273 -60
  36. package/dist/DiagnosticFilterer.js.map +1 -1
  37. package/dist/DiagnosticManager.d.ts +83 -0
  38. package/dist/DiagnosticManager.js +422 -0
  39. package/dist/DiagnosticManager.js.map +1 -0
  40. package/dist/DiagnosticMessages.d.ts +602 -196
  41. package/dist/DiagnosticMessages.js +926 -342
  42. package/dist/DiagnosticMessages.js.map +1 -1
  43. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  44. package/dist/DiagnosticSeverityAdjuster.js +45 -0
  45. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  46. package/dist/FunctionScope.d.ts +28 -0
  47. package/dist/FunctionScope.js +52 -0
  48. package/dist/FunctionScope.js.map +1 -0
  49. package/dist/KeyedThrottler.d.ts +3 -3
  50. package/dist/KeyedThrottler.js +3 -3
  51. package/dist/KeyedThrottler.js.map +1 -1
  52. package/dist/LanguageServer.d.ts +136 -104
  53. package/dist/LanguageServer.js +577 -741
  54. package/dist/LanguageServer.js.map +1 -1
  55. package/dist/Logger.d.ts +17 -13
  56. package/dist/Logger.js +64 -34
  57. package/dist/Logger.js.map +1 -1
  58. package/dist/PluginInterface.d.ts +32 -10
  59. package/dist/PluginInterface.js +117 -7
  60. package/dist/PluginInterface.js.map +1 -1
  61. package/dist/Program.d.ts +302 -98
  62. package/dist/Program.js +1613 -726
  63. package/dist/Program.js.map +1 -1
  64. package/dist/ProgramBuilder.d.ts +39 -22
  65. package/dist/ProgramBuilder.js +245 -179
  66. package/dist/ProgramBuilder.js.map +1 -1
  67. package/dist/Scope.d.ts +227 -106
  68. package/dist/Scope.js +609 -557
  69. package/dist/Scope.js.map +1 -1
  70. package/dist/ScopeNamespaceLookup.d.ts +73 -0
  71. package/dist/ScopeNamespaceLookup.js +242 -0
  72. package/dist/ScopeNamespaceLookup.js.map +1 -0
  73. package/dist/SemanticTokenUtils.js +5 -1
  74. package/dist/SemanticTokenUtils.js.map +1 -1
  75. package/dist/Stopwatch.d.ts +4 -0
  76. package/dist/Stopwatch.js +8 -1
  77. package/dist/Stopwatch.js.map +1 -1
  78. package/dist/SymbolTable.d.ts +145 -26
  79. package/dist/SymbolTable.js +575 -64
  80. package/dist/SymbolTable.js.map +1 -1
  81. package/dist/SymbolTypeFlag.d.ts +9 -0
  82. package/dist/SymbolTypeFlag.js +14 -0
  83. package/dist/SymbolTypeFlag.js.map +1 -0
  84. package/dist/Throttler.d.ts +12 -0
  85. package/dist/Throttler.js +39 -0
  86. package/dist/Throttler.js.map +1 -1
  87. package/dist/Watcher.d.ts +0 -3
  88. package/dist/Watcher.js +0 -3
  89. package/dist/Watcher.js.map +1 -1
  90. package/dist/XmlScope.d.ts +5 -15
  91. package/dist/XmlScope.js +34 -90
  92. package/dist/XmlScope.js.map +1 -1
  93. package/dist/astUtils/CachedLookups.d.ts +50 -0
  94. package/dist/astUtils/CachedLookups.js +337 -0
  95. package/dist/astUtils/CachedLookups.js.map +1 -0
  96. package/dist/astUtils/Editor.d.ts +69 -0
  97. package/dist/astUtils/Editor.js +245 -0
  98. package/dist/astUtils/Editor.js.map +1 -0
  99. package/dist/astUtils/creators.d.ts +54 -19
  100. package/dist/astUtils/creators.js +242 -42
  101. package/dist/astUtils/creators.js.map +1 -1
  102. package/dist/astUtils/reflection.d.ts +199 -85
  103. package/dist/astUtils/reflection.js +518 -145
  104. package/dist/astUtils/reflection.js.map +1 -1
  105. package/dist/astUtils/stackedVisitor.js.map +1 -1
  106. package/dist/astUtils/visitors.d.ts +117 -53
  107. package/dist/astUtils/visitors.js +95 -15
  108. package/dist/astUtils/visitors.js.map +1 -1
  109. package/dist/astUtils/xml.d.ts +9 -8
  110. package/dist/astUtils/xml.js +12 -7
  111. package/dist/astUtils/xml.js.map +1 -1
  112. package/dist/bscPlugin/BscPlugin.d.ts +26 -4
  113. package/dist/bscPlugin/BscPlugin.js +96 -4
  114. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  115. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  116. package/dist/bscPlugin/CallExpressionInfo.js +142 -0
  117. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  118. package/dist/bscPlugin/FileWriter.d.ts +19 -0
  119. package/dist/bscPlugin/FileWriter.js +79 -0
  120. package/dist/bscPlugin/FileWriter.js.map +1 -0
  121. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  122. package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
  123. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  124. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +109 -7
  125. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +676 -26
  126. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  127. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.d.ts +17 -0
  128. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js +66 -0
  129. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js.map +1 -0
  130. package/dist/bscPlugin/codeActions/codeActionHelpers.d.ts +18 -0
  131. package/dist/bscPlugin/codeActions/codeActionHelpers.js +31 -0
  132. package/dist/bscPlugin/codeActions/codeActionHelpers.js.map +1 -0
  133. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +65 -0
  134. package/dist/bscPlugin/completions/CompletionsProcessor.js +633 -0
  135. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  136. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  137. package/dist/bscPlugin/definition/DefinitionProvider.js +220 -0
  138. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  139. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  140. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  141. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  142. package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
  143. package/dist/bscPlugin/hover/HoverProcessor.js +238 -0
  144. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  145. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  146. package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
  147. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  148. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.d.ts +7 -0
  149. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js +77 -0
  150. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js.map +1 -0
  151. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
  152. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +164 -0
  153. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  154. package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
  155. package/dist/bscPlugin/serialize/BslibManager.js +46 -0
  156. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  157. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  158. package/dist/bscPlugin/serialize/FileSerializer.js +80 -0
  159. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  160. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  161. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  162. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  163. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  164. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  165. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  166. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  167. package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
  168. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  169. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +34 -0
  170. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +504 -0
  171. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  172. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  173. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  174. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  175. package/dist/bscPlugin/validation/BrsFileAfterValidator.d.ts +7 -0
  176. package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
  177. package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
  178. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +51 -0
  179. package/dist/bscPlugin/validation/BrsFileValidator.js +714 -0
  180. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  181. package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
  182. package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
  183. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  184. package/dist/bscPlugin/validation/ScopeValidator.d.ts +158 -0
  185. package/dist/bscPlugin/validation/ScopeValidator.js +1481 -0
  186. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  187. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  188. package/dist/bscPlugin/validation/XmlFileValidator.js +50 -0
  189. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  190. package/dist/cli.js +140 -28
  191. package/dist/cli.js.map +1 -1
  192. package/dist/common/Sequencer.d.ts +53 -0
  193. package/dist/common/Sequencer.js +233 -0
  194. package/dist/common/Sequencer.js.map +1 -0
  195. package/dist/deferred.d.ts +5 -3
  196. package/dist/deferred.js +10 -0
  197. package/dist/deferred.js.map +1 -1
  198. package/dist/diagnosticUtils.d.ts +61 -4
  199. package/dist/diagnosticUtils.js +285 -25
  200. package/dist/diagnosticUtils.js.map +1 -1
  201. package/dist/examples/plugins/removePrint.d.ts +2 -2
  202. package/dist/examples/plugins/removePrint.js +8 -12
  203. package/dist/examples/plugins/removePrint.js.map +1 -1
  204. package/dist/files/AssetFile.d.ts +24 -0
  205. package/dist/files/AssetFile.js +25 -0
  206. package/dist/files/AssetFile.js.map +1 -0
  207. package/dist/files/BrsFile.d.ts +161 -87
  208. package/dist/files/BrsFile.js +919 -936
  209. package/dist/files/BrsFile.js.map +1 -1
  210. package/dist/files/BscFile.d.ts +102 -0
  211. package/dist/files/BscFile.js +15 -0
  212. package/dist/files/BscFile.js.map +1 -0
  213. package/dist/files/Factory.d.ts +25 -0
  214. package/dist/files/Factory.js +22 -0
  215. package/dist/files/Factory.js.map +1 -0
  216. package/dist/files/LazyFileData.d.ts +21 -0
  217. package/dist/files/LazyFileData.js +54 -0
  218. package/dist/files/LazyFileData.js.map +1 -0
  219. package/dist/files/XmlFile.d.ts +80 -41
  220. package/dist/files/XmlFile.js +162 -137
  221. package/dist/files/XmlFile.js.map +1 -1
  222. package/dist/globalCallables.d.ts +3 -1
  223. package/dist/globalCallables.js +424 -184
  224. package/dist/globalCallables.js.map +1 -1
  225. package/dist/index.d.ts +32 -4
  226. package/dist/index.js +54 -7
  227. package/dist/index.js.map +1 -1
  228. package/dist/interfaces.d.ts +987 -125
  229. package/dist/interfaces.js +21 -0
  230. package/dist/interfaces.js.map +1 -1
  231. package/dist/lexer/Lexer.d.ts +51 -12
  232. package/dist/lexer/Lexer.js +214 -65
  233. package/dist/lexer/Lexer.js.map +1 -1
  234. package/dist/lexer/Token.d.ts +27 -11
  235. package/dist/lexer/Token.js +10 -2
  236. package/dist/lexer/Token.js.map +1 -1
  237. package/dist/lexer/TokenKind.d.ts +48 -2
  238. package/dist/lexer/TokenKind.js +167 -10
  239. package/dist/lexer/TokenKind.js.map +1 -1
  240. package/dist/logging.d.ts +14 -0
  241. package/dist/logging.js +29 -0
  242. package/dist/logging.js.map +1 -0
  243. package/dist/lsp/ActionQueue.d.ts +35 -0
  244. package/dist/lsp/ActionQueue.js +115 -0
  245. package/dist/lsp/ActionQueue.js.map +1 -0
  246. package/dist/lsp/DocumentManager.d.ts +63 -0
  247. package/dist/lsp/DocumentManager.js +122 -0
  248. package/dist/lsp/DocumentManager.js.map +1 -0
  249. package/dist/lsp/LspProject.d.ts +287 -0
  250. package/dist/lsp/LspProject.js +3 -0
  251. package/dist/lsp/LspProject.js.map +1 -0
  252. package/dist/lsp/PathFilterer.d.ts +75 -0
  253. package/dist/lsp/PathFilterer.js +196 -0
  254. package/dist/lsp/PathFilterer.js.map +1 -0
  255. package/dist/lsp/Project.d.ts +200 -0
  256. package/dist/lsp/Project.js +562 -0
  257. package/dist/lsp/Project.js.map +1 -0
  258. package/dist/lsp/ProjectManager.d.ts +288 -0
  259. package/dist/lsp/ProjectManager.js +967 -0
  260. package/dist/lsp/ProjectManager.js.map +1 -0
  261. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  262. package/dist/lsp/ReaderWriterManager.js +60 -0
  263. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  264. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  265. package/dist/lsp/worker/MessageHandler.js +138 -0
  266. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  267. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  268. package/dist/lsp/worker/WorkerPool.js +78 -0
  269. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  270. package/dist/lsp/worker/WorkerThreadProject.d.ts +168 -0
  271. package/dist/lsp/worker/WorkerThreadProject.js +205 -0
  272. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  273. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  274. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  275. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  276. package/dist/lsp/worker/run.js +14 -0
  277. package/dist/lsp/worker/run.js.map +1 -0
  278. package/dist/parser/AstNode.d.ts +205 -0
  279. package/dist/parser/AstNode.js +305 -0
  280. package/dist/parser/AstNode.js.map +1 -0
  281. package/dist/parser/BrightScriptDocParser.d.ts +56 -0
  282. package/dist/parser/BrightScriptDocParser.js +294 -0
  283. package/dist/parser/BrightScriptDocParser.js.map +1 -0
  284. package/dist/parser/BrsTranspileState.d.ts +22 -3
  285. package/dist/parser/BrsTranspileState.js +19 -0
  286. package/dist/parser/BrsTranspileState.js.map +1 -1
  287. package/dist/parser/Expression.d.ts +601 -220
  288. package/dist/parser/Expression.js +1516 -502
  289. package/dist/parser/Expression.js.map +1 -1
  290. package/dist/parser/Parser.d.ts +137 -121
  291. package/dist/parser/Parser.js +1808 -982
  292. package/dist/parser/Parser.js.map +1 -1
  293. package/dist/parser/SGParser.d.ts +30 -13
  294. package/dist/parser/SGParser.js +94 -56
  295. package/dist/parser/SGParser.js.map +1 -1
  296. package/dist/parser/SGTypes.d.ts +134 -46
  297. package/dist/parser/SGTypes.js +206 -115
  298. package/dist/parser/SGTypes.js.map +1 -1
  299. package/dist/parser/Statement.d.ts +854 -267
  300. package/dist/parser/Statement.js +2416 -621
  301. package/dist/parser/Statement.js.map +1 -1
  302. package/dist/parser/TranspileState.d.ts +30 -14
  303. package/dist/parser/TranspileState.js +124 -27
  304. package/dist/parser/TranspileState.js.map +1 -1
  305. package/dist/preprocessor/Manifest.d.ts +6 -6
  306. package/dist/preprocessor/Manifest.js +17 -38
  307. package/dist/preprocessor/Manifest.js.map +1 -1
  308. package/dist/roku-types/data.json +20554 -0
  309. package/dist/roku-types/index.d.ts +5726 -0
  310. package/dist/roku-types/index.js +11 -0
  311. package/dist/roku-types/index.js.map +1 -0
  312. package/dist/types/ArrayType.d.ts +12 -5
  313. package/dist/types/ArrayType.js +95 -25
  314. package/dist/types/ArrayType.js.map +1 -1
  315. package/dist/types/AssociativeArrayType.d.ts +15 -0
  316. package/dist/types/AssociativeArrayType.js +64 -0
  317. package/dist/types/AssociativeArrayType.js.map +1 -0
  318. package/dist/types/BaseFunctionType.d.ts +10 -0
  319. package/dist/types/BaseFunctionType.js +26 -0
  320. package/dist/types/BaseFunctionType.js.map +1 -0
  321. package/dist/types/BooleanType.d.ts +9 -5
  322. package/dist/types/BooleanType.js +19 -8
  323. package/dist/types/BooleanType.js.map +1 -1
  324. package/dist/types/BscType.d.ts +41 -3
  325. package/dist/types/BscType.js +152 -0
  326. package/dist/types/BscType.js.map +1 -1
  327. package/dist/types/BscTypeKind.d.ts +28 -0
  328. package/dist/types/BscTypeKind.js +33 -0
  329. package/dist/types/BscTypeKind.js.map +1 -0
  330. package/dist/types/BuiltInInterfaceAdder.d.ts +28 -0
  331. package/dist/types/BuiltInInterfaceAdder.js +212 -0
  332. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  333. package/dist/types/CallFuncableType.d.ts +24 -0
  334. package/dist/types/CallFuncableType.js +91 -0
  335. package/dist/types/CallFuncableType.js.map +1 -0
  336. package/dist/types/ClassType.d.ts +17 -0
  337. package/dist/types/ClassType.js +63 -0
  338. package/dist/types/ClassType.js.map +1 -0
  339. package/dist/types/ComponentType.d.ts +22 -0
  340. package/dist/types/ComponentType.js +110 -0
  341. package/dist/types/ComponentType.js.map +1 -0
  342. package/dist/types/DoubleType.d.ts +10 -5
  343. package/dist/types/DoubleType.js +21 -17
  344. package/dist/types/DoubleType.js.map +1 -1
  345. package/dist/types/DynamicType.d.ts +13 -5
  346. package/dist/types/DynamicType.js +26 -5
  347. package/dist/types/DynamicType.js.map +1 -1
  348. package/dist/types/EnumType.d.ts +42 -0
  349. package/dist/types/EnumType.js +101 -0
  350. package/dist/types/EnumType.js.map +1 -0
  351. package/dist/types/FloatType.d.ts +10 -5
  352. package/dist/types/FloatType.js +21 -17
  353. package/dist/types/FloatType.js.map +1 -1
  354. package/dist/types/FunctionType.d.ts +8 -22
  355. package/dist/types/FunctionType.js +25 -63
  356. package/dist/types/FunctionType.js.map +1 -1
  357. package/dist/types/InheritableType.d.ts +29 -0
  358. package/dist/types/InheritableType.js +173 -0
  359. package/dist/types/InheritableType.js.map +1 -0
  360. package/dist/types/InlineInterfaceType.d.ts +5 -0
  361. package/dist/types/InlineInterfaceType.js +17 -0
  362. package/dist/types/InlineInterfaceType.js.map +1 -0
  363. package/dist/types/IntegerType.d.ts +10 -5
  364. package/dist/types/IntegerType.js +21 -17
  365. package/dist/types/IntegerType.js.map +1 -1
  366. package/dist/types/InterfaceType.d.ts +14 -6
  367. package/dist/types/InterfaceType.js +30 -15
  368. package/dist/types/InterfaceType.js.map +1 -1
  369. package/dist/types/IntersectionType.d.ts +29 -0
  370. package/dist/types/IntersectionType.js +256 -0
  371. package/dist/types/IntersectionType.js.map +1 -0
  372. package/dist/types/InvalidType.d.ts +10 -5
  373. package/dist/types/InvalidType.js +21 -9
  374. package/dist/types/InvalidType.js.map +1 -1
  375. package/dist/types/LongIntegerType.d.ts +10 -5
  376. package/dist/types/LongIntegerType.js +21 -17
  377. package/dist/types/LongIntegerType.js.map +1 -1
  378. package/dist/types/NamespaceType.d.ts +12 -0
  379. package/dist/types/NamespaceType.js +28 -0
  380. package/dist/types/NamespaceType.js.map +1 -0
  381. package/dist/types/ObjectType.d.ts +12 -5
  382. package/dist/types/ObjectType.js +25 -8
  383. package/dist/types/ObjectType.js.map +1 -1
  384. package/dist/types/ReferenceType.d.ts +123 -0
  385. package/dist/types/ReferenceType.js +726 -0
  386. package/dist/types/ReferenceType.js.map +1 -0
  387. package/dist/types/StringType.d.ts +12 -5
  388. package/dist/types/StringType.js +23 -8
  389. package/dist/types/StringType.js.map +1 -1
  390. package/dist/types/TypeStatementType.d.ts +19 -0
  391. package/dist/types/TypeStatementType.js +56 -0
  392. package/dist/types/TypeStatementType.js.map +1 -0
  393. package/dist/types/TypedFunctionType.d.ts +34 -0
  394. package/dist/types/TypedFunctionType.js +157 -0
  395. package/dist/types/TypedFunctionType.js.map +1 -0
  396. package/dist/types/UninitializedType.d.ts +11 -6
  397. package/dist/types/UninitializedType.js +20 -11
  398. package/dist/types/UninitializedType.js.map +1 -1
  399. package/dist/types/UnionType.d.ts +27 -0
  400. package/dist/types/UnionType.js +196 -0
  401. package/dist/types/UnionType.js.map +1 -0
  402. package/dist/types/VoidType.d.ts +11 -5
  403. package/dist/types/VoidType.js +22 -8
  404. package/dist/types/VoidType.js.map +1 -1
  405. package/dist/types/helpers.d.ts +51 -0
  406. package/dist/types/helpers.js +329 -0
  407. package/dist/types/helpers.js.map +1 -0
  408. package/dist/types/index.d.ts +22 -0
  409. package/dist/types/index.js +39 -0
  410. package/dist/types/index.js.map +1 -0
  411. package/dist/types/roFunctionType.d.ts +11 -0
  412. package/dist/types/roFunctionType.js +37 -0
  413. package/dist/types/roFunctionType.js.map +1 -0
  414. package/dist/util.d.ts +325 -185
  415. package/dist/util.js +2135 -568
  416. package/dist/util.js.map +1 -1
  417. package/dist/validators/ClassValidator.d.ts +9 -15
  418. package/dist/validators/ClassValidator.js +93 -138
  419. package/dist/validators/ClassValidator.js.map +1 -1
  420. package/package.json +183 -138
  421. package/CHANGELOG.md +0 -1188
  422. package/dist/astUtils/creators.spec.js +0 -21
  423. package/dist/astUtils/creators.spec.js.map +0 -1
  424. package/dist/astUtils/index.d.ts +0 -7
  425. package/dist/astUtils/index.js +0 -26
  426. package/dist/astUtils/index.js.map +0 -1
  427. package/dist/astUtils/reflection.spec.d.ts +0 -1
  428. package/dist/astUtils/reflection.spec.js +0 -292
  429. package/dist/astUtils/reflection.spec.js.map +0 -1
  430. package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
  431. package/dist/astUtils/stackedVisitor.spec.js +0 -79
  432. package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
  433. package/dist/astUtils/visitors.spec.d.ts +0 -1
  434. package/dist/astUtils/visitors.spec.js +0 -854
  435. package/dist/astUtils/visitors.spec.js.map +0 -1
  436. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
  437. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -194
  438. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
  439. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  440. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
  441. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  442. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts +0 -1
  443. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +0 -45
  444. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
  445. package/dist/files/BrsFile.Class.spec.d.ts +0 -1
  446. package/dist/files/BrsFile.Class.spec.js +0 -1081
  447. package/dist/files/BrsFile.Class.spec.js.map +0 -1
  448. package/dist/files/BrsFile.spec.d.ts +0 -1
  449. package/dist/files/BrsFile.spec.js +0 -2524
  450. package/dist/files/BrsFile.spec.js.map +0 -1
  451. package/dist/files/XmlFile.spec.d.ts +0 -1
  452. package/dist/files/XmlFile.spec.js +0 -1065
  453. package/dist/files/XmlFile.spec.js.map +0 -1
  454. package/dist/files/tests/imports.spec.d.ts +0 -1
  455. package/dist/files/tests/imports.spec.js +0 -241
  456. package/dist/files/tests/imports.spec.js.map +0 -1
  457. package/dist/lexer/Character.spec.d.ts +0 -1
  458. package/dist/lexer/Character.spec.js +0 -27
  459. package/dist/lexer/Character.spec.js.map +0 -1
  460. package/dist/lexer/Lexer.spec.d.ts +0 -1
  461. package/dist/lexer/Lexer.spec.js +0 -1101
  462. package/dist/lexer/Lexer.spec.js.map +0 -1
  463. package/dist/lexer/index.d.ts +0 -3
  464. package/dist/lexer/index.js +0 -17
  465. package/dist/lexer/index.js.map +0 -1
  466. package/dist/parser/Parser.Class.spec.d.ts +0 -1
  467. package/dist/parser/Parser.Class.spec.js +0 -390
  468. package/dist/parser/Parser.Class.spec.js.map +0 -1
  469. package/dist/parser/Parser.spec.d.ts +0 -4
  470. package/dist/parser/Parser.spec.js +0 -1216
  471. package/dist/parser/Parser.spec.js.map +0 -1
  472. package/dist/parser/SGParser.spec.d.ts +0 -1
  473. package/dist/parser/SGParser.spec.js +0 -145
  474. package/dist/parser/SGParser.spec.js.map +0 -1
  475. package/dist/parser/SGTypes.spec.d.ts +0 -1
  476. package/dist/parser/SGTypes.spec.js +0 -351
  477. package/dist/parser/SGTypes.spec.js.map +0 -1
  478. package/dist/parser/Statement.spec.d.ts +0 -1
  479. package/dist/parser/Statement.spec.js +0 -94
  480. package/dist/parser/Statement.spec.js.map +0 -1
  481. package/dist/parser/index.d.ts +0 -3
  482. package/dist/parser/index.js +0 -16
  483. package/dist/parser/index.js.map +0 -1
  484. package/dist/parser/tests/Parser.spec.d.ts +0 -18
  485. package/dist/parser/tests/Parser.spec.js +0 -35
  486. package/dist/parser/tests/Parser.spec.js.map +0 -1
  487. package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
  488. package/dist/parser/tests/controlFlow/For.spec.js +0 -161
  489. package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
  490. package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
  491. package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -106
  492. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
  493. package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
  494. package/dist/parser/tests/controlFlow/If.spec.js +0 -551
  495. package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
  496. package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
  497. package/dist/parser/tests/controlFlow/While.spec.js +0 -107
  498. package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
  499. package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
  500. package/dist/parser/tests/expression/Additive.spec.js +0 -99
  501. package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
  502. package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
  503. package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -254
  504. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
  505. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
  506. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -266
  507. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
  508. package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
  509. package/dist/parser/tests/expression/Boolean.spec.js +0 -83
  510. package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
  511. package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
  512. package/dist/parser/tests/expression/Call.spec.js +0 -134
  513. package/dist/parser/tests/expression/Call.spec.js.map +0 -1
  514. package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
  515. package/dist/parser/tests/expression/Exponential.spec.js +0 -37
  516. package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
  517. package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
  518. package/dist/parser/tests/expression/Function.spec.js +0 -403
  519. package/dist/parser/tests/expression/Function.spec.js.map +0 -1
  520. package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
  521. package/dist/parser/tests/expression/Indexing.spec.js +0 -219
  522. package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
  523. package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
  524. package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
  525. package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
  526. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
  527. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -201
  528. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
  529. package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
  530. package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -105
  531. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
  532. package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
  533. package/dist/parser/tests/expression/Primary.spec.js +0 -149
  534. package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
  535. package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
  536. package/dist/parser/tests/expression/Relational.spec.js +0 -83
  537. package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
  538. package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
  539. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
  540. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
  541. package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
  542. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -202
  543. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
  544. package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
  545. package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -323
  546. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
  547. package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
  548. package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
  549. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
  550. package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
  551. package/dist/parser/tests/statement/Declaration.spec.js +0 -108
  552. package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
  553. package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
  554. package/dist/parser/tests/statement/Dim.spec.js +0 -73
  555. package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
  556. package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
  557. package/dist/parser/tests/statement/Function.spec.js +0 -332
  558. package/dist/parser/tests/statement/Function.spec.js.map +0 -1
  559. package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
  560. package/dist/parser/tests/statement/Goto.spec.js +0 -50
  561. package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
  562. package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
  563. package/dist/parser/tests/statement/Increment.spec.js +0 -117
  564. package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
  565. package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
  566. package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
  567. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
  568. package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
  569. package/dist/parser/tests/statement/Misc.spec.js +0 -333
  570. package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
  571. package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
  572. package/dist/parser/tests/statement/PrintStatement.spec.js +0 -181
  573. package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
  574. package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
  575. package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -94
  576. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
  577. package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
  578. package/dist/parser/tests/statement/Set.spec.js +0 -218
  579. package/dist/parser/tests/statement/Set.spec.js.map +0 -1
  580. package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
  581. package/dist/parser/tests/statement/Stop.spec.js +0 -37
  582. package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
  583. package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
  584. package/dist/parser/tests/statement/Throw.spec.js +0 -35
  585. package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
  586. package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
  587. package/dist/parser/tests/statement/TryCatch.spec.js +0 -140
  588. package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
  589. package/dist/preprocessor/Chunk.d.ts +0 -82
  590. package/dist/preprocessor/Chunk.js +0 -77
  591. package/dist/preprocessor/Chunk.js.map +0 -1
  592. package/dist/preprocessor/Manifest.spec.d.ts +0 -0
  593. package/dist/preprocessor/Manifest.spec.js +0 -105
  594. package/dist/preprocessor/Manifest.spec.js.map +0 -1
  595. package/dist/preprocessor/Preprocessor.d.ts +0 -60
  596. package/dist/preprocessor/Preprocessor.js +0 -156
  597. package/dist/preprocessor/Preprocessor.js.map +0 -1
  598. package/dist/preprocessor/Preprocessor.spec.d.ts +0 -1
  599. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  600. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  601. package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
  602. package/dist/preprocessor/PreprocessorParser.js +0 -194
  603. package/dist/preprocessor/PreprocessorParser.js.map +0 -1
  604. package/dist/preprocessor/PreprocessorParser.spec.d.ts +0 -1
  605. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  606. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  607. package/dist/preprocessor/index.d.ts +0 -3
  608. package/dist/preprocessor/index.js +0 -16
  609. package/dist/preprocessor/index.js.map +0 -1
  610. package/dist/types/ArrayType.spec.d.ts +0 -1
  611. package/dist/types/ArrayType.spec.js +0 -30
  612. package/dist/types/ArrayType.spec.js.map +0 -1
  613. package/dist/types/BooleanType.spec.d.ts +0 -1
  614. package/dist/types/BooleanType.spec.js +0 -12
  615. package/dist/types/BooleanType.spec.js.map +0 -1
  616. package/dist/types/CustomType.d.ts +0 -10
  617. package/dist/types/CustomType.js +0 -35
  618. package/dist/types/CustomType.js.map +0 -1
  619. package/dist/types/DoubleType.spec.d.ts +0 -1
  620. package/dist/types/DoubleType.spec.js +0 -12
  621. package/dist/types/DoubleType.spec.js.map +0 -1
  622. package/dist/types/DynamicType.spec.d.ts +0 -1
  623. package/dist/types/DynamicType.spec.js +0 -12
  624. package/dist/types/DynamicType.spec.js.map +0 -1
  625. package/dist/types/FloatType.spec.d.ts +0 -1
  626. package/dist/types/FloatType.spec.js +0 -12
  627. package/dist/types/FloatType.spec.js.map +0 -1
  628. package/dist/types/FunctionType.spec.d.ts +0 -1
  629. package/dist/types/FunctionType.spec.js +0 -29
  630. package/dist/types/FunctionType.spec.js.map +0 -1
  631. package/dist/types/IntegerType.spec.d.ts +0 -1
  632. package/dist/types/IntegerType.spec.js +0 -12
  633. package/dist/types/IntegerType.spec.js.map +0 -1
  634. package/dist/types/InvalidType.spec.d.ts +0 -1
  635. package/dist/types/InvalidType.spec.js +0 -12
  636. package/dist/types/InvalidType.spec.js.map +0 -1
  637. package/dist/types/LazyType.d.ts +0 -15
  638. package/dist/types/LazyType.js +0 -32
  639. package/dist/types/LazyType.js.map +0 -1
  640. package/dist/types/LongIntegerType.spec.d.ts +0 -1
  641. package/dist/types/LongIntegerType.spec.js +0 -12
  642. package/dist/types/LongIntegerType.spec.js.map +0 -1
  643. package/dist/types/ObjectType.spec.d.ts +0 -1
  644. package/dist/types/ObjectType.spec.js +0 -12
  645. package/dist/types/ObjectType.spec.js.map +0 -1
  646. package/dist/types/StringType.spec.d.ts +0 -1
  647. package/dist/types/StringType.spec.js +0 -12
  648. package/dist/types/StringType.spec.js.map +0 -1
  649. package/dist/types/VoidType.spec.d.ts +0 -1
  650. package/dist/types/VoidType.spec.js +0 -12
  651. package/dist/types/VoidType.spec.js.map +0 -1
  652. /package/dist/{astUtils/creators.spec.d.ts → lsp/worker/run.d.ts} +0 -0
@@ -1,646 +1,1045 @@
1
1
  import type { Position } from 'vscode-languageserver';
2
2
  import { DiagnosticSeverity } from 'vscode-languageserver';
3
- import type { BsDiagnostic } from './interfaces';
4
- import type { TokenKind } from './lexer/TokenKind';
3
+ import type { BsDiagnostic, TypeCompatibilityData } from './interfaces';
4
+ import { TokenKind } from './lexer/TokenKind';
5
+ import { SymbolTypeFlag } from './SymbolTypeFlag';
6
+ import type { BscType } from './types/BscType';
7
+ export declare const DiagnosticCodeRegex: RegExp;
5
8
  /**
6
9
  * An object that keeps track of all possible error messages.
7
10
  */
8
11
  export declare let DiagnosticMessages: {
9
12
  genericParserMessage: (message: string) => {
10
13
  message: string;
11
- code: number;
14
+ legacyCode: number;
12
15
  severity: 1;
16
+ code: string;
13
17
  };
14
- callToUnknownFunction: (name: string, scopeName: string) => {
18
+ /**
19
+ *
20
+ * @param name for local vars, it's the var name. for namespaced parts, it's the specific part that's unknown (`alpha.beta.charlie` would result in "cannot find name 'charlie')
21
+ * @param fullName if a namespaced name, this is the full name `alpha.beta.charlie`, otherwise it's the same as `name`
22
+ * @param typeName if 'name' refers to a member, what is the the type it is a member of?
23
+ * @param typeDescriptor defaults to 'type' ... could also be 'namespace', etc.
24
+ */
25
+ cannotFindName: (name: string, fullName?: string, typeName?: string, typeDescriptor?: string) => {
15
26
  message: string;
16
- code: number;
27
+ legacyCode: number;
17
28
  data: {
18
- functionName: string;
29
+ name: string;
30
+ fullName: string;
31
+ typeName: string;
19
32
  };
20
33
  severity: 1;
34
+ code: string;
21
35
  };
22
36
  mismatchArgumentCount: (expectedCount: number | string, actualCount: number) => {
23
37
  message: string;
24
- code: number;
38
+ legacyCode: number;
25
39
  severity: 1;
40
+ code: string;
26
41
  };
27
- duplicateFunctionImplementation: (functionName: string, scopeName: string) => {
42
+ duplicateFunctionImplementation: (functionName: string) => {
28
43
  message: string;
29
- code: number;
44
+ legacyCode: number;
30
45
  severity: 1;
46
+ code: string;
31
47
  };
32
48
  referencedFileDoesNotExist: () => {
33
49
  message: string;
34
- code: number;
50
+ legacyCode: number;
35
51
  severity: 1;
52
+ code: string;
36
53
  };
37
54
  xmlComponentMissingComponentDeclaration: () => {
38
55
  message: string;
39
- code: number;
56
+ legacyCode: number;
40
57
  severity: 1;
58
+ code: string;
41
59
  };
42
60
  xmlComponentMissingNameAttribute: () => {
43
61
  message: string;
44
- code: number;
62
+ legacyCode: number;
45
63
  severity: 1;
64
+ code: string;
46
65
  };
47
66
  xmlComponentMissingExtendsAttribute: () => {
48
67
  message: string;
49
- code: number;
68
+ legacyCode: number;
50
69
  severity: 2;
70
+ code: string;
51
71
  };
52
- xmlGenericParseError: (message: string) => {
72
+ syntaxError: (message: string) => {
53
73
  message: string;
54
- code: number;
74
+ legacyCode: number;
55
75
  severity: 1;
76
+ code: string;
56
77
  };
57
78
  unnecessaryScriptImportInChildFromParent: (parentComponentName: string) => {
58
79
  message: string;
59
- code: number;
80
+ legacyCode: number;
60
81
  severity: 2;
82
+ code: string;
61
83
  };
62
84
  overridesAncestorFunction: (callableName: string, currentScopeName: string, parentFilePath: string, parentScopeName: string) => {
63
85
  message: string;
64
- code: number;
86
+ legacyCode: number;
65
87
  severity: 4;
88
+ code: string;
66
89
  };
67
90
  localVarFunctionShadowsParentFunction: (scopeName: 'stdlib' | 'scope') => {
68
91
  message: string;
69
- code: number;
92
+ legacyCode: number;
70
93
  severity: 2;
94
+ code: string;
71
95
  };
72
- scriptImportCaseMismatch: (correctFilePath: string) => {
96
+ scriptImportCaseMismatch: (correctFilePath: string, correctUri?: string) => {
73
97
  message: string;
74
- code: number;
98
+ legacyCode: number;
99
+ data: {
100
+ correctFilePath: string;
101
+ };
75
102
  severity: 2;
103
+ code: string;
76
104
  };
77
105
  fileNotReferencedByAnyOtherFile: () => {
78
106
  message: string;
79
- code: number;
107
+ legacyCode: number;
80
108
  severity: 2;
109
+ code: string;
81
110
  };
82
- unknownDiagnosticCode: (theUnknownCode: number) => {
111
+ unknownDiagnosticCode: (theUnknownCode: number | string) => {
83
112
  message: string;
84
- code: number;
113
+ legacyCode: number;
85
114
  severity: 2;
115
+ code: string;
86
116
  };
87
117
  scriptSrcCannotBeEmpty: () => {
88
118
  message: string;
89
- code: number;
119
+ legacyCode: number;
90
120
  severity: 1;
121
+ code: string;
91
122
  };
92
- expectedIdentifierAfterKeyword: (keywordText: string) => {
123
+ expectedIdentifier: (preceedingTokenText?: string) => {
93
124
  message: string;
94
- code: number;
125
+ legacyCode: number;
95
126
  severity: 1;
127
+ code: string;
96
128
  };
97
129
  missingCallableKeyword: () => {
98
130
  message: string;
99
- code: number;
131
+ legacyCode: number;
100
132
  severity: 1;
133
+ code: string;
101
134
  };
102
- expectedValidTypeToFollowAsKeyword: () => {
135
+ __unused12: () => {
103
136
  message: string;
104
- code: number;
137
+ legacyCode: number;
105
138
  severity: 1;
139
+ code: string;
106
140
  };
107
141
  bsFeatureNotSupportedInBrsFiles: (featureName: any) => {
108
142
  message: string;
109
- code: number;
143
+ legacyCode: number;
110
144
  severity: 1;
145
+ code: string;
111
146
  };
112
- brsConfigJsonIsDeprecated: () => {
147
+ __ununsed12: () => {
113
148
  message: string;
114
- code: number;
149
+ legacyCode: number;
115
150
  severity: 2;
151
+ code: string;
116
152
  };
117
153
  bsConfigJsonHasSyntaxErrors: (message: string) => {
118
154
  message: string;
119
- code: number;
155
+ legacyCode: number;
120
156
  severity: 1;
157
+ code: string;
121
158
  };
122
- namespacedClassCannotShareNamewithNonNamespacedClass: (nonNamespacedClassName: string) => {
159
+ itemIsDeprecated: (itemName?: string, deprecatedDescription?: string) => {
123
160
  message: string;
124
- code: number;
125
- severity: 1;
161
+ legacyCode: number;
162
+ severity: 4;
163
+ code: string;
126
164
  };
127
165
  cannotUseOverrideKeywordOnConstructorFunction: () => {
128
166
  message: string;
129
- code: number;
167
+ legacyCode: number;
130
168
  severity: 1;
169
+ code: string;
131
170
  };
132
- importStatementMustBeDeclaredAtTopOfFile: () => {
171
+ unexpectedStatementLocation: (statementKeyword: string, locationText: string) => {
133
172
  message: string;
134
- code: number;
173
+ legacyCode: number;
135
174
  severity: 1;
175
+ code: string;
136
176
  };
137
- methodDoesNotExistOnType: (methodName: string, className: string) => {
177
+ __unused8: (methodName: string, className: string) => {
138
178
  message: string;
139
- code: number;
179
+ legacyCode: number;
140
180
  severity: 1;
141
181
  };
142
182
  duplicateIdentifier: (memberName: string) => {
143
183
  message: string;
144
- code: number;
184
+ legacyCode: number;
145
185
  severity: 1;
186
+ code: string;
146
187
  };
147
188
  missingOverrideKeyword: (ancestorClassName: string) => {
148
189
  message: string;
149
- code: number;
190
+ legacyCode: number;
150
191
  severity: 1;
192
+ code: string;
151
193
  };
152
- duplicateClassDeclaration: (scopeName: string, className: string) => {
194
+ nameCollision: (thisThingKind: string, thatThingKind: string, thatThingName: string) => {
153
195
  message: string;
154
- code: number;
196
+ legacyCode: number;
155
197
  severity: 1;
198
+ code: string;
156
199
  };
157
- classCouldNotBeFound: (className: string, scopeName: string) => {
200
+ __unused9: (className: string, scopeName: string) => {
158
201
  message: string;
159
- code: number;
202
+ legacyCode: number;
160
203
  severity: 1;
161
204
  data: {
162
205
  className: string;
163
206
  };
164
207
  };
165
- expectedClassFieldIdentifier: () => {
208
+ __unused27: () => {
166
209
  message: string;
167
- code: number;
210
+ legacyCode: number;
168
211
  severity: 1;
212
+ code: string;
169
213
  };
170
214
  expressionIsNotConstructable: (expressionType: string) => {
171
215
  message: string;
172
- code: number;
216
+ legacyCode: number;
173
217
  severity: 1;
218
+ code: string;
174
219
  };
175
- expectedClassKeyword: () => {
220
+ expectedKeyword: (kind: TokenKind) => {
176
221
  message: string;
177
- code: number;
222
+ legacyCode: number;
178
223
  severity: 1;
224
+ code: string;
179
225
  };
180
- expectedLeftParenAfterCallable: (callableType: string) => {
226
+ __unused28: (callableType: string) => {
181
227
  message: string;
182
- code: number;
228
+ legacyCode: number;
183
229
  severity: 1;
230
+ code: string;
184
231
  };
185
- expectedNameAfterCallableKeyword: (callableType: string) => {
232
+ __unused29: (callableType: string) => {
186
233
  message: string;
187
- code: number;
234
+ legacyCode: number;
188
235
  severity: 1;
236
+ code: string;
189
237
  };
190
- expectedLeftParenAfterCallableName: (callableType: string) => {
238
+ __unused30: (callableType: string) => {
191
239
  message: string;
192
- code: number;
240
+ legacyCode: number;
193
241
  severity: 1;
242
+ code: string;
194
243
  };
195
244
  tooManyCallableParameters: (actual: number, max: number) => {
196
245
  message: string;
197
- code: number;
246
+ legacyCode: number;
198
247
  severity: 1;
248
+ code: string;
199
249
  };
200
- invalidFunctionReturnType: (typeText: string) => {
250
+ __unused: (typeText: string) => {
201
251
  message: string;
202
- code: number;
252
+ legacyCode: number;
203
253
  severity: 1;
204
254
  };
205
255
  requiredParameterMayNotFollowOptionalParameter: (parameterName: string) => {
206
256
  message: string;
207
- code: number;
257
+ legacyCode: number;
208
258
  severity: 1;
259
+ code: string;
209
260
  };
210
261
  expectedNewlineOrColon: () => {
211
262
  message: string;
212
- code: number;
263
+ legacyCode: number;
213
264
  severity: 1;
265
+ code: string;
214
266
  };
215
- functionNameCannotEndWithTypeDesignator: (callableType: string, name: string, designator: string) => {
267
+ invalidIdentifier: (name: string, character: string) => {
216
268
  message: string;
217
- code: number;
269
+ legacyCode: number;
218
270
  severity: 1;
271
+ code: string;
219
272
  };
220
- callableBlockMissingEndKeyword: (callableType: string) => {
273
+ __unused31: (callableType: string) => {
221
274
  message: string;
222
- code: number;
275
+ legacyCode: number;
223
276
  severity: 1;
277
+ code: string;
224
278
  };
225
- mismatchedEndCallableKeyword: (expectedCallableType: string, actualCallableType: string) => {
279
+ closingKeywordMismatch: (expectedCallableType: string, actualCallableType: string) => {
226
280
  message: string;
227
- code: number;
281
+ legacyCode: number;
228
282
  severity: 1;
283
+ code: string;
229
284
  };
230
285
  expectedParameterNameButFound: (text: string) => {
231
286
  message: string;
232
- code: number;
287
+ legacyCode: number;
233
288
  severity: 1;
289
+ code: string;
234
290
  };
235
- functionParameterTypeIsInvalid: (parameterName: string, typeText: string) => {
291
+ __unused2: (parameterName: string, typeText: string) => {
236
292
  message: string;
237
- code: number;
293
+ legacyCode: number;
238
294
  severity: 1;
239
295
  };
240
296
  cannotUseReservedWordAsIdentifier: (name: string) => {
241
297
  message: string;
242
- code: number;
298
+ legacyCode: number;
243
299
  severity: 1;
300
+ code: string;
244
301
  };
245
- expectedOperatorAfterIdentifier: (operators: TokenKind[], name: string) => {
302
+ expectedOperator: (operators: TokenKind[], name: string) => {
246
303
  message: string;
247
- code: number;
304
+ legacyCode: number;
248
305
  severity: 1;
306
+ code: string;
249
307
  };
250
308
  expectedInlineIfStatement: () => {
251
309
  message: string;
252
- code: number;
310
+ legacyCode: number;
253
311
  severity: 1;
312
+ code: string;
254
313
  };
255
314
  expectedFinalNewline: () => {
256
315
  message: string;
257
- code: number;
316
+ legacyCode: number;
258
317
  severity: 1;
318
+ code: string;
259
319
  };
260
320
  couldNotFindMatchingEndKeyword: (keyword: string) => {
261
321
  message: string;
262
- code: number;
322
+ legacyCode: number;
263
323
  severity: 1;
324
+ code: string;
264
325
  };
265
326
  expectedCatchBlockInTryCatch: () => {
266
327
  message: string;
267
- code: number;
328
+ legacyCode: number;
268
329
  severity: 1;
330
+ code: string;
269
331
  };
270
- expectedEndForOrNextToTerminateForLoop: () => {
332
+ expectedEndForOrNextToTerminateForLoop: (forLoopNameText?: string) => {
271
333
  message: string;
272
- code: number;
334
+ legacyCode: number;
273
335
  severity: 1;
336
+ code: string;
274
337
  };
275
- expectedInAfterForEach: (name: string) => {
338
+ __unused32: (name: string) => {
276
339
  message: string;
277
- code: number;
340
+ legacyCode: number;
278
341
  severity: 1;
342
+ code: string;
279
343
  };
280
344
  expectedExpressionAfterForEachIn: () => {
281
345
  message: string;
282
- code: number;
346
+ legacyCode: number;
283
347
  severity: 1;
348
+ code: string;
284
349
  };
285
350
  unexpectedColonBeforeIfStatement: () => {
286
351
  message: string;
287
- code: number;
352
+ legacyCode: number;
288
353
  severity: 1;
354
+ code: string;
289
355
  };
290
356
  expectedStringLiteralAfterKeyword: (keyword: string) => {
291
357
  message: string;
292
- code: number;
358
+ legacyCode: number;
293
359
  severity: 1;
360
+ code: string;
294
361
  };
295
362
  keywordMustBeDeclaredAtRootLevel: (keyword: string) => {
296
363
  message: string;
297
- code: number;
364
+ legacyCode: number;
365
+ severity: 1;
366
+ code: string;
367
+ };
368
+ __unused5: () => {
369
+ message: string;
370
+ legacyCode: number;
298
371
  severity: 1;
299
372
  };
300
- libraryStatementMustBeDeclaredAtTopOfFile: () => {
373
+ expectedTerminator: (expectedTerminators: string[] | string, statementType: string, blockDescriptor?: 'block' | 'statement') => {
301
374
  message: string;
302
- code: number;
303
375
  severity: 1;
376
+ code: string;
304
377
  };
305
- expectedEndIfElseIfOrElseToTerminateThenBlock: () => {
378
+ __unused14: () => {
306
379
  message: string;
307
- code: number;
380
+ legacyCode: number;
308
381
  severity: 1;
382
+ code: string;
309
383
  };
310
- expectedEndTryToTerminateTryCatch: () => {
384
+ __unused15: () => {
311
385
  message: string;
312
- code: number;
386
+ legacyCode: number;
313
387
  severity: 1;
388
+ code: string;
314
389
  };
315
- expectedEndIfToCloseIfStatement: (startingPosition: Position) => {
390
+ __unused16: (startingPosition: Position) => {
316
391
  message: string;
317
- code: number;
392
+ legacyCode: number;
318
393
  severity: 1;
394
+ code: string;
319
395
  };
320
- expectedStatementToFollowConditionalCondition: (conditionType: string) => {
396
+ expectedStatement: (conditionType?: string, extraDetail?: string) => {
321
397
  message: string;
322
- code: number;
323
398
  severity: 1;
399
+ code: string;
324
400
  };
325
- expectedStatementToFollowElse: () => {
401
+ __unused18: (conditionType: string) => {
326
402
  message: string;
327
- code: number;
403
+ legacyCode: number;
328
404
  severity: 1;
405
+ code: string;
329
406
  };
330
- consecutiveIncrementDecrementOperatorsAreNotAllowed: () => {
407
+ __unused19: () => {
331
408
  message: string;
332
- code: number;
409
+ legacyCode: number;
333
410
  severity: 1;
411
+ code: string;
334
412
  };
335
- incrementDecrementOperatorsAreNotAllowedAsResultOfFunctionCall: () => {
413
+ unexpectedOperator: () => {
336
414
  message: string;
337
- code: number;
415
+ legacyCode: number;
338
416
  severity: 1;
417
+ code: string;
418
+ };
419
+ __unused13: () => {
420
+ message: string;
421
+ legacyCode: number;
422
+ severity: 1;
423
+ code: string;
339
424
  };
340
425
  xmlUnexpectedTag: (tagName: string) => {
341
426
  message: string;
342
- code: number;
427
+ legacyCode: number;
343
428
  severity: 1;
429
+ code: string;
344
430
  };
345
- expectedStatementOrFunctionCallButReceivedExpression: () => {
431
+ expectedStatementOrFunctionCallButReceivedExpression: (expressionType?: string) => {
346
432
  message: string;
347
- code: number;
433
+ legacyCode: number;
348
434
  severity: 1;
435
+ code: string;
349
436
  };
350
437
  xmlFunctionNotFound: (name: string) => {
351
438
  message: string;
352
- code: number;
439
+ legacyCode: number;
353
440
  severity: 1;
441
+ code: string;
354
442
  };
355
443
  xmlInvalidFieldType: (name: string) => {
356
444
  message: string;
357
- code: number;
445
+ legacyCode: number;
358
446
  severity: 1;
447
+ code: string;
359
448
  };
360
449
  xmlUnexpectedChildren: (tagName: string) => {
361
450
  message: string;
362
- code: number;
451
+ legacyCode: number;
363
452
  severity: 1;
453
+ code: string;
364
454
  };
365
455
  xmlTagMissingAttribute: (tagName: string, attrName: string) => {
366
456
  message: string;
367
- code: number;
457
+ legacyCode: number;
368
458
  severity: 1;
459
+ code: string;
369
460
  };
370
461
  expectedLabelIdentifierAfterGotoKeyword: () => {
371
462
  message: string;
372
- code: number;
463
+ legacyCode: number;
373
464
  severity: 1;
465
+ code: string;
374
466
  };
375
- expectedRightSquareBraceAfterArrayOrObjectIndex: () => {
467
+ __unused26: () => {
376
468
  message: string;
377
- code: number;
469
+ legacyCode: number;
378
470
  severity: 1;
471
+ code: string;
379
472
  };
380
- expectedPropertyNameAfterPeriod: () => {
473
+ __unused21: () => {
381
474
  message: string;
382
- code: number;
475
+ legacyCode: number;
383
476
  severity: 1;
477
+ code: string;
384
478
  };
385
479
  tooManyCallableArguments: (actual: number, max: number) => {
386
480
  message: string;
387
- code: number;
481
+ legacyCode: number;
388
482
  severity: 1;
483
+ code: string;
389
484
  };
390
- expectedRightParenAfterFunctionCallArguments: () => {
485
+ /**
486
+ * @param unmatchedToken Should be one of '(', '[', or '{'
487
+ * @param afterDetail any additional message to describe what came before the unmatched token
488
+ */
489
+ unmatchedLeftToken: (unmatchedToken: string, afterDetail?: string) => {
391
490
  message: string;
392
- code: number;
491
+ legacyCode: number;
393
492
  severity: 1;
493
+ code: string;
394
494
  };
395
- unmatchedLeftParenAfterExpression: () => {
495
+ __unused23: () => {
396
496
  message: string;
397
- code: number;
497
+ legacyCode: number;
398
498
  severity: 1;
499
+ code: string;
399
500
  };
400
- unmatchedLeftSquareBraceAfterArrayLiteral: () => {
501
+ __unused24: () => {
401
502
  message: string;
402
- code: number;
503
+ legacyCode: number;
403
504
  severity: 1;
505
+ code: string;
404
506
  };
405
507
  unexpectedAAKey: () => {
406
508
  message: string;
407
- code: number;
509
+ legacyCode: number;
408
510
  severity: 1;
511
+ code: string;
409
512
  };
410
513
  expectedColonBetweenAAKeyAndvalue: () => {
411
514
  message: string;
412
- code: number;
515
+ legacyCode: number;
413
516
  severity: 1;
517
+ code: string;
414
518
  };
415
- unmatchedLeftCurlyAfterAALiteral: () => {
519
+ __unused25: () => {
416
520
  message: string;
417
- code: number;
521
+ legacyCode: number;
418
522
  severity: 1;
523
+ code: string;
419
524
  };
420
- foundUnexpectedToken: (text: string) => {
525
+ unexpectedToken: (text: string) => {
421
526
  message: string;
422
- code: number;
527
+ legacyCode: number;
423
528
  severity: 1;
529
+ code: string;
424
530
  };
425
531
  /**
426
532
  * Used in the lexer anytime we encounter an unsupported character
427
533
  */
428
534
  unexpectedCharacter: (text: string) => {
429
535
  message: string;
430
- code: number;
536
+ legacyCode: number;
431
537
  severity: 1;
538
+ code: string;
432
539
  };
433
- unterminatedStringAtEndOfLine: () => {
540
+ unterminatedString: () => {
434
541
  message: string;
435
- code: number;
542
+ legacyCode: number;
436
543
  severity: 1;
544
+ code: string;
437
545
  };
438
- unterminatedStringAtEndOfFile: () => {
546
+ __unused33: () => {
439
547
  message: string;
440
- code: number;
548
+ legacyCode: number;
441
549
  severity: 1;
550
+ code: string;
442
551
  };
443
- fractionalHexLiteralsAreNotSupported: () => {
552
+ __unused44: () => {
444
553
  message: string;
445
- code: number;
554
+ legacyCode: number;
446
555
  severity: 1;
556
+ code: string;
447
557
  };
448
558
  unexpectedConditionalCompilationString: () => {
449
559
  message: string;
450
- code: number;
560
+ legacyCode: number;
451
561
  severity: 1;
562
+ code: string;
452
563
  };
453
564
  duplicateConstDeclaration: (name: string) => {
454
565
  message: string;
455
- code: number;
566
+ legacyCode: number;
456
567
  severity: 1;
568
+ code: string;
457
569
  };
458
- constAliasDoesNotExist: (name: string) => {
570
+ __unused34: (name: string) => {
459
571
  message: string;
460
- code: number;
572
+ legacyCode: number;
461
573
  severity: 1;
574
+ code: string;
462
575
  };
463
576
  invalidHashConstValue: () => {
464
577
  message: string;
465
- code: number;
578
+ legacyCode: number;
466
579
  severity: 1;
580
+ code: string;
467
581
  };
468
- referencedConstDoesNotExist: () => {
582
+ hashConstDoesNotExist: () => {
469
583
  message: string;
470
- code: number;
584
+ legacyCode: number;
471
585
  severity: 1;
586
+ code: string;
472
587
  };
473
588
  invalidHashIfValue: () => {
474
589
  message: string;
475
- code: number;
590
+ legacyCode: number;
476
591
  severity: 1;
592
+ code: string;
477
593
  };
594
+ /**
595
+ * Treat #error directives like diagnostics, because the presence of `#error` even inside a runtime logical block that evaluates to false will 100% cause a compile error.
596
+ */
478
597
  hashError: (message: string) => {
479
598
  message: string;
480
- code: number;
599
+ legacyCode: number;
481
600
  severity: 1;
601
+ code: string;
482
602
  };
483
- expectedEqualAfterConstName: () => {
603
+ __unused43: () => {
484
604
  message: string;
485
- code: number;
605
+ legacyCode: number;
486
606
  severity: 1;
607
+ code: string;
487
608
  };
488
- expectedHashElseIfToCloseHashIf: (startingLine: number) => {
609
+ __unused17: (startingLine: number) => {
489
610
  message: string;
490
- code: number;
611
+ legacyCode: number;
491
612
  severity: 1;
613
+ code: string;
492
614
  };
493
- constNameCannotBeReservedWord: () => {
615
+ __unused35: () => {
494
616
  message: string;
495
- code: number;
617
+ legacyCode: number;
496
618
  severity: 1;
619
+ code: string;
497
620
  };
498
- expectedIdentifier: () => {
621
+ __unused22: () => {
499
622
  message: string;
500
- code: number;
623
+ legacyCode: number;
501
624
  severity: 1;
625
+ code: string;
502
626
  };
503
627
  expectedAttributeNameAfterAtSymbol: () => {
504
628
  message: string;
505
- code: number;
629
+ legacyCode: number;
506
630
  severity: 1;
631
+ code: string;
507
632
  };
508
633
  childFieldTypeNotAssignableToBaseProperty: (childTypeName: string, baseTypeName: string, fieldName: string, childFieldType: string, parentFieldType: string) => {
509
634
  message: string;
510
- code: number;
635
+ legacyCode: number;
511
636
  severity: 1;
637
+ code: string;
512
638
  };
513
- classChildMemberDifferentMemberTypeThanAncestor: (memberType: string, parentMemberType: string, parentClassName: string) => {
639
+ __unused36: (memberType: string, parentMemberType: string, parentClassName: string) => {
514
640
  message: string;
515
- code: number;
641
+ legacyCode: number;
516
642
  severity: 1;
643
+ code: string;
517
644
  };
518
645
  classConstructorMissingSuperCall: () => {
519
646
  message: string;
520
- code: number;
647
+ legacyCode: number;
521
648
  severity: 1;
649
+ code: string;
522
650
  };
523
651
  classConstructorIllegalUseOfMBeforeSuperCall: () => {
524
652
  message: string;
525
- code: number;
653
+ legacyCode: number;
526
654
  severity: 1;
655
+ code: string;
527
656
  };
528
657
  classFieldCannotBeOverridden: () => {
529
658
  message: string;
530
- code: number;
659
+ legacyCode: number;
531
660
  severity: 1;
661
+ code: string;
532
662
  };
533
663
  unusedAnnotation: () => {
534
664
  message: string;
535
- code: number;
665
+ legacyCode: number;
536
666
  severity: 1;
667
+ code: string;
537
668
  };
538
669
  localVarShadowedByScopedFunction: () => {
539
670
  message: string;
540
- code: number;
671
+ legacyCode: number;
541
672
  severity: 1;
673
+ code: string;
542
674
  };
543
675
  scopeFunctionShadowedByBuiltInFunction: () => {
544
676
  message: string;
545
- code: number;
677
+ legacyCode: number;
546
678
  severity: 1;
679
+ code: string;
547
680
  };
548
- localVarSameNameAsClass: (className: string) => {
681
+ __unused38: (className: string) => {
549
682
  message: string;
550
- code: number;
683
+ legacyCode: number;
551
684
  severity: 1;
685
+ code: string;
552
686
  };
553
687
  unnecessaryCodebehindScriptImport: () => {
554
688
  message: string;
555
- code: number;
689
+ legacyCode: number;
556
690
  severity: 2;
691
+ code: string;
557
692
  };
558
- expectedOpenParenToFollowCallfuncIdentifier: () => {
693
+ __unused37: () => {
559
694
  message: string;
560
- code: number;
695
+ legacyCode: number;
561
696
  severity: 1;
697
+ code: string;
562
698
  };
563
- expectedTokenAButFoundTokenB: (tokenA: string, tokenB: string) => {
699
+ expectedToken: (...tokenKinds: string[]) => {
564
700
  message: string;
565
- code: number;
701
+ legacyCode: number;
566
702
  severity: 1;
703
+ code: string;
567
704
  };
568
- parameterMayNotHaveSameNameAsNamespace: (paramName: string) => {
705
+ __unused10: (paramName: string) => {
569
706
  message: string;
570
- code: number;
707
+ legacyCode: number;
571
708
  severity: 1;
709
+ code: string;
572
710
  };
573
- variableMayNotHaveSameNameAsNamespace: (variableName: string) => {
711
+ __unused11: (variableName: string) => {
574
712
  message: string;
575
- code: number;
713
+ legacyCode: number;
576
714
  severity: 1;
715
+ code: string;
577
716
  };
578
- unterminatedTemplateStringAtEndOfFile: () => {
717
+ unterminatedTemplateString: () => {
579
718
  message: string;
580
- code: number;
719
+ legacyCode: number;
581
720
  severity: 1;
721
+ code: string;
582
722
  };
583
723
  unterminatedTemplateExpression: () => {
584
724
  message: string;
585
- code: number;
725
+ legacyCode: number;
586
726
  severity: 1;
727
+ code: string;
587
728
  };
588
729
  duplicateComponentName: (componentName: string) => {
589
730
  message: string;
590
- code: number;
731
+ legacyCode: number;
591
732
  severity: 1;
733
+ code: string;
592
734
  };
593
- functionCannotHaveSameNameAsClass: (className: string) => {
735
+ __unused6: (className: string) => {
594
736
  message: string;
595
- code: number;
737
+ legacyCode: number;
596
738
  severity: 1;
597
739
  };
598
- missingExceptionVarToFollowCatch: () => {
740
+ expectedExceptionVarToFollowCatch: () => {
599
741
  message: string;
600
- code: number;
742
+ legacyCode: number;
601
743
  severity: 1;
744
+ code: string;
602
745
  };
603
746
  missingExceptionExpressionAfterThrowKeyword: () => {
604
747
  message: string;
605
- code: number;
748
+ legacyCode: number;
606
749
  severity: 1;
750
+ code: string;
607
751
  };
608
- missingLeftSquareBracketAfterDimIdentifier: () => {
752
+ __unused42: () => {
609
753
  message: string;
610
- code: number;
754
+ legacyCode: number;
611
755
  severity: 1;
756
+ code: string;
612
757
  };
613
- missingRightSquareBracketAfterDimIdentifier: () => {
758
+ __unused39: () => {
614
759
  message: string;
615
- code: number;
760
+ legacyCode: number;
616
761
  severity: 1;
762
+ code: string;
617
763
  };
618
764
  missingExpressionsInDimStatement: () => {
619
765
  message: string;
620
- code: number;
766
+ legacyCode: number;
621
767
  severity: 1;
768
+ code: string;
622
769
  };
623
770
  mismatchedOverriddenMemberVisibility: (childClassName: string, memberName: string, childAccessModifier: string, ancestorAccessModifier: string, ancestorClassName: string) => {
624
771
  message: string;
625
- code: number;
772
+ legacyCode: number;
773
+ severity: 1;
774
+ code: string;
775
+ };
776
+ __unused3: (typeName: string) => {
777
+ message: string;
778
+ legacyCode: number;
779
+ severity: 1;
780
+ };
781
+ enumValueMustBeType: (expectedType: string) => {
782
+ message: string;
783
+ legacyCode: number;
784
+ severity: 1;
785
+ code: string;
786
+ };
787
+ enumValueIsRequired: (expectedType: string) => {
788
+ message: string;
789
+ legacyCode: number;
790
+ severity: 1;
791
+ code: string;
792
+ };
793
+ __unused40: (name: string, enumName: string) => {
794
+ message: string;
795
+ legacyCode: number;
796
+ severity: 1;
797
+ code: string;
798
+ };
799
+ __unused7: (scopeName: string, enumName: string) => {
800
+ message: string;
801
+ legacyCode: number;
802
+ severity: 1;
803
+ };
804
+ unknownRoSGNode: (nodeName: string) => {
805
+ message: string;
806
+ legacyCode: number;
807
+ severity: 1;
808
+ code: string;
809
+ };
810
+ unknownBrightScriptComponent: (componentName: string) => {
811
+ message: string;
812
+ legacyCode: number;
813
+ severity: 1;
814
+ code: string;
815
+ };
816
+ mismatchCreateObjectArgumentCount: (componentName: string, allowedArgCounts: number[], actualCount: number) => {
817
+ message: string;
818
+ legacyCode: number;
819
+ severity: 1;
820
+ code: string;
821
+ };
822
+ __unused41: (componentName: string, deprecatedDescription?: string) => {
823
+ message: string;
824
+ legacyCode: number;
825
+ severity: 1;
826
+ code: string;
827
+ };
828
+ circularReferenceDetected: (items?: string | string[]) => {
829
+ message: string;
830
+ legacyCode: number;
831
+ severity: 1;
832
+ code: string;
833
+ };
834
+ unexpectedStatementOutsideFunction: () => {
835
+ message: string;
836
+ legacyCode: number;
626
837
  severity: 1;
838
+ code: string;
627
839
  };
628
- cannotFindType: (typeName: string) => {
840
+ detectedTooDeepFileSource: (numberOfParentDirectories: number) => {
629
841
  message: string;
630
- code: number;
842
+ legacyCode: number;
631
843
  severity: 1;
844
+ code: string;
632
845
  };
633
- argumentTypeMismatch: (actualTypeString: string, expectedTypeString: string) => {
846
+ illegalContinueStatement: () => {
634
847
  message: string;
635
- code: number;
848
+ legacyCode: number;
636
849
  severity: 1;
850
+ code: string;
851
+ };
852
+ keywordMustBeDeclaredAtNamespaceLevel: (keyword: string) => {
853
+ message: string;
854
+ legacyCode: number;
855
+ severity: 1;
856
+ code: string;
857
+ };
858
+ itemCannotBeUsedAsVariable: (itemType: string) => {
859
+ message: string;
860
+ legacyCode: number;
861
+ severity: 1;
862
+ code: string;
863
+ };
864
+ callfuncHasToManyArgs: (numberOfArgs: number) => {
865
+ message: string;
866
+ legacyCode: number;
867
+ severity: 1;
868
+ code: string;
869
+ };
870
+ noOptionalChainingInLeftHandSideOfAssignment: () => {
871
+ message: string;
872
+ legacyCode: number;
873
+ severity: 1;
874
+ code: string;
875
+ };
876
+ /**
877
+ * @param name for function calls where we can't find the name of the function
878
+ * @param fullName if a namespaced name, this is the full name `alpha.beta.charlie`, otherwise it's the same as `name`
879
+ * @param typeName if 'name' refers to a member, what is the the type it is a member of?
880
+ * @param typeDescriptor defaults to 'type' ... could also be 'namespace', etc.
881
+ */
882
+ cannotFindFunction: (name: string, fullName?: string, typeName?: string, typeDescriptor?: string) => {
883
+ message: string;
884
+ legacyCode: number;
885
+ data: {
886
+ name: string;
887
+ fullName: string;
888
+ typeName: string;
889
+ };
890
+ severity: 1;
891
+ code: string;
892
+ };
893
+ voidFunctionMayNotReturnValue: (functionType?: string) => {
894
+ message: string;
895
+ legacyCode: number;
896
+ severity: 1;
897
+ code: string;
898
+ };
899
+ nonVoidFunctionMustReturnValue: (functionType?: string) => {
900
+ message: string;
901
+ legacyCode: number;
902
+ severity: 1;
903
+ code: string;
904
+ };
905
+ assignmentTypeMismatch: (actualTypeString: string, expectedTypeString: string, data?: TypeCompatibilityData) => {
906
+ message: string;
907
+ data: TypeCompatibilityData;
908
+ severity: 1;
909
+ code: string;
910
+ };
911
+ operatorTypeMismatch: (operatorString: string, firstType: string, secondType?: string) => {
912
+ message: string;
913
+ severity: 1;
914
+ code: string;
915
+ };
916
+ incompatibleSymbolDefinition: (symbol: string, options?: {
917
+ scopes?: string[];
918
+ isUnion?: boolean;
919
+ types?: BscType[];
920
+ data?: TypeCompatibilityData;
921
+ }) => {
922
+ message: string;
923
+ severity: 1;
924
+ code: string;
925
+ };
926
+ memberAccessibilityMismatch: (memberName: string, accessModifierFlag: SymbolTypeFlag, definingClassName: string) => {
927
+ message: string;
928
+ severity: 1;
929
+ code: string;
930
+ };
931
+ invalidTypecastStatementApplication: (foundApplication: string, isInFunctionBlock: boolean) => {
932
+ message: string;
933
+ severity: 1;
934
+ code: string;
935
+ };
936
+ itemCannotBeUsedAsType: (typeText: string) => {
937
+ message: string;
938
+ severity: 1;
939
+ code: string;
940
+ };
941
+ unsafeUnmatchedTerminatorInConditionalCompileBlock: (terminator: string) => {
942
+ message: string;
943
+ severity: 1;
944
+ code: string;
945
+ };
946
+ returnTypeCoercionMismatch: (returnType?: string) => {
947
+ message: string;
948
+ severity: 1;
949
+ code: string;
950
+ };
951
+ argumentTypeMismatch: (actualTypeString: string, expectedTypeString: string, data?: TypeCompatibilityData) => {
952
+ message: string;
953
+ data: TypeCompatibilityData;
954
+ severity: 1;
955
+ code: string;
956
+ };
957
+ returnTypeMismatch: (actualTypeString: string, expectedTypeString: string, data?: TypeCompatibilityData) => {
958
+ message: string;
959
+ data: TypeCompatibilityData;
960
+ severity: 1;
961
+ code: string;
962
+ };
963
+ cannotFindCallFuncFunction: (name: string, fullName: string, typeName: string) => {
964
+ message: string;
965
+ data: {
966
+ name: string;
967
+ fullName: string;
968
+ typeName: string;
969
+ isCallfunc: boolean;
970
+ };
971
+ severity: 1;
972
+ code: string;
973
+ };
974
+ notCallable: (name: string) => {
975
+ message: string;
976
+ severity: 1;
977
+ code: string;
978
+ };
979
+ notIterable: (typeName: string) => {
980
+ message: string;
981
+ severity: 1;
982
+ code: string;
983
+ };
984
+ propAccessNotPermittedAfterFunctionCallInExpressionStatement: (accessDescription: string) => {
985
+ message: string;
986
+ legacyCode: number;
987
+ severity: 1;
988
+ code: string;
989
+ };
990
+ computedPropertyKeyMustBeConstantExpression: () => {
991
+ message: string;
992
+ legacyCode: number;
993
+ severity: 1;
994
+ code: string;
995
+ };
996
+ computedAAKeyMustBeStringExpression: () => {
997
+ message: string;
998
+ legacyCode: number;
999
+ severity: 1;
1000
+ code: string;
1001
+ };
1002
+ featureRequiresMinFirmwareVersion: (featureName: string, minimumVersion: string, configuredVersion: string) => {
1003
+ message: string;
1004
+ legacyCode: number;
1005
+ severity: 1;
1006
+ code: string;
1007
+ };
1008
+ reservedBuiltinUsedAsValue: (name: string) => {
1009
+ message: string;
1010
+ legacyCode: number;
1011
+ severity: 1;
1012
+ code: string;
1013
+ };
1014
+ /**
1015
+ * Emitted when a block recovers from a wrong terminator (e.g. `while ... next` or `for ... end while`).
1016
+ * `expected` lists the legal terminators in preferred-first order; `found` is the actual text.
1017
+ * Quick fixes consume the structured `data` to build "Convert '<found>' to '<expected[i]>'" actions.
1018
+ */
1019
+ mismatchedEndingToken: (expected?: string[], found?: string) => {
1020
+ message: string;
1021
+ legacyCode: number;
1022
+ data: {
1023
+ expected: string[];
1024
+ found: string;
1025
+ };
1026
+ severity: 1;
1027
+ code: string;
637
1028
  };
638
1029
  };
639
- export declare const DiagnosticCodeMap: Record<"genericParserMessage" | "callToUnknownFunction" | "mismatchArgumentCount" | "duplicateFunctionImplementation" | "referencedFileDoesNotExist" | "xmlComponentMissingComponentDeclaration" | "xmlComponentMissingNameAttribute" | "xmlComponentMissingExtendsAttribute" | "xmlGenericParseError" | "unnecessaryScriptImportInChildFromParent" | "overridesAncestorFunction" | "localVarFunctionShadowsParentFunction" | "scriptImportCaseMismatch" | "fileNotReferencedByAnyOtherFile" | "unknownDiagnosticCode" | "scriptSrcCannotBeEmpty" | "expectedIdentifierAfterKeyword" | "missingCallableKeyword" | "expectedValidTypeToFollowAsKeyword" | "bsFeatureNotSupportedInBrsFiles" | "brsConfigJsonIsDeprecated" | "bsConfigJsonHasSyntaxErrors" | "namespacedClassCannotShareNamewithNonNamespacedClass" | "cannotUseOverrideKeywordOnConstructorFunction" | "importStatementMustBeDeclaredAtTopOfFile" | "methodDoesNotExistOnType" | "duplicateIdentifier" | "missingOverrideKeyword" | "duplicateClassDeclaration" | "classCouldNotBeFound" | "expectedClassFieldIdentifier" | "expressionIsNotConstructable" | "expectedClassKeyword" | "expectedLeftParenAfterCallable" | "expectedNameAfterCallableKeyword" | "expectedLeftParenAfterCallableName" | "tooManyCallableParameters" | "invalidFunctionReturnType" | "requiredParameterMayNotFollowOptionalParameter" | "expectedNewlineOrColon" | "functionNameCannotEndWithTypeDesignator" | "callableBlockMissingEndKeyword" | "mismatchedEndCallableKeyword" | "expectedParameterNameButFound" | "functionParameterTypeIsInvalid" | "cannotUseReservedWordAsIdentifier" | "expectedOperatorAfterIdentifier" | "expectedInlineIfStatement" | "expectedFinalNewline" | "couldNotFindMatchingEndKeyword" | "expectedCatchBlockInTryCatch" | "expectedEndForOrNextToTerminateForLoop" | "expectedInAfterForEach" | "expectedExpressionAfterForEachIn" | "unexpectedColonBeforeIfStatement" | "expectedStringLiteralAfterKeyword" | "keywordMustBeDeclaredAtRootLevel" | "libraryStatementMustBeDeclaredAtTopOfFile" | "expectedEndIfElseIfOrElseToTerminateThenBlock" | "expectedEndTryToTerminateTryCatch" | "expectedEndIfToCloseIfStatement" | "expectedStatementToFollowConditionalCondition" | "expectedStatementToFollowElse" | "consecutiveIncrementDecrementOperatorsAreNotAllowed" | "incrementDecrementOperatorsAreNotAllowedAsResultOfFunctionCall" | "xmlUnexpectedTag" | "expectedStatementOrFunctionCallButReceivedExpression" | "xmlFunctionNotFound" | "xmlInvalidFieldType" | "xmlUnexpectedChildren" | "xmlTagMissingAttribute" | "expectedLabelIdentifierAfterGotoKeyword" | "expectedRightSquareBraceAfterArrayOrObjectIndex" | "expectedPropertyNameAfterPeriod" | "tooManyCallableArguments" | "expectedRightParenAfterFunctionCallArguments" | "unmatchedLeftParenAfterExpression" | "unmatchedLeftSquareBraceAfterArrayLiteral" | "unexpectedAAKey" | "expectedColonBetweenAAKeyAndvalue" | "unmatchedLeftCurlyAfterAALiteral" | "foundUnexpectedToken" | "unexpectedCharacter" | "unterminatedStringAtEndOfLine" | "unterminatedStringAtEndOfFile" | "fractionalHexLiteralsAreNotSupported" | "unexpectedConditionalCompilationString" | "duplicateConstDeclaration" | "constAliasDoesNotExist" | "invalidHashConstValue" | "referencedConstDoesNotExist" | "invalidHashIfValue" | "hashError" | "expectedEqualAfterConstName" | "expectedHashElseIfToCloseHashIf" | "constNameCannotBeReservedWord" | "expectedIdentifier" | "expectedAttributeNameAfterAtSymbol" | "childFieldTypeNotAssignableToBaseProperty" | "classChildMemberDifferentMemberTypeThanAncestor" | "classConstructorMissingSuperCall" | "classConstructorIllegalUseOfMBeforeSuperCall" | "classFieldCannotBeOverridden" | "unusedAnnotation" | "localVarShadowedByScopedFunction" | "scopeFunctionShadowedByBuiltInFunction" | "localVarSameNameAsClass" | "unnecessaryCodebehindScriptImport" | "expectedOpenParenToFollowCallfuncIdentifier" | "expectedTokenAButFoundTokenB" | "parameterMayNotHaveSameNameAsNamespace" | "variableMayNotHaveSameNameAsNamespace" | "unterminatedTemplateStringAtEndOfFile" | "unterminatedTemplateExpression" | "duplicateComponentName" | "functionCannotHaveSameNameAsClass" | "missingExceptionVarToFollowCatch" | "missingExceptionExpressionAfterThrowKeyword" | "missingLeftSquareBracketAfterDimIdentifier" | "missingRightSquareBracketAfterDimIdentifier" | "missingExpressionsInDimStatement" | "mismatchedOverriddenMemberVisibility" | "cannotFindType" | "argumentTypeMismatch", number>;
640
- export declare let diagnosticCodes: number[];
1030
+ export declare const defaultMaximumTruncationLength = 160;
1031
+ export declare function typeCompatibilityMessage(actualTypeString: string, expectedTypeString: string, data: TypeCompatibilityData): string;
1032
+ export declare function incompatibleSymbolMessage(symbolName: string, options: {
1033
+ scopes?: string[];
1034
+ isUnion?: boolean;
1035
+ data?: TypeCompatibilityData;
1036
+ }): string;
1037
+ export declare const DiagnosticCodeMap: Record<"genericParserMessage" | "cannotFindName" | "mismatchArgumentCount" | "duplicateFunctionImplementation" | "referencedFileDoesNotExist" | "xmlComponentMissingComponentDeclaration" | "xmlComponentMissingNameAttribute" | "xmlComponentMissingExtendsAttribute" | "syntaxError" | "unnecessaryScriptImportInChildFromParent" | "overridesAncestorFunction" | "localVarFunctionShadowsParentFunction" | "scriptImportCaseMismatch" | "fileNotReferencedByAnyOtherFile" | "unknownDiagnosticCode" | "scriptSrcCannotBeEmpty" | "expectedIdentifier" | "missingCallableKeyword" | "__unused12" | "bsFeatureNotSupportedInBrsFiles" | "__ununsed12" | "bsConfigJsonHasSyntaxErrors" | "itemIsDeprecated" | "cannotUseOverrideKeywordOnConstructorFunction" | "unexpectedStatementLocation" | "__unused8" | "duplicateIdentifier" | "missingOverrideKeyword" | "nameCollision" | "__unused9" | "__unused27" | "expressionIsNotConstructable" | "expectedKeyword" | "__unused28" | "__unused29" | "__unused30" | "tooManyCallableParameters" | "__unused" | "requiredParameterMayNotFollowOptionalParameter" | "expectedNewlineOrColon" | "invalidIdentifier" | "__unused31" | "closingKeywordMismatch" | "expectedParameterNameButFound" | "__unused2" | "cannotUseReservedWordAsIdentifier" | "expectedOperator" | "expectedInlineIfStatement" | "expectedFinalNewline" | "couldNotFindMatchingEndKeyword" | "expectedCatchBlockInTryCatch" | "expectedEndForOrNextToTerminateForLoop" | "__unused32" | "expectedExpressionAfterForEachIn" | "unexpectedColonBeforeIfStatement" | "expectedStringLiteralAfterKeyword" | "keywordMustBeDeclaredAtRootLevel" | "__unused5" | "expectedTerminator" | "__unused14" | "__unused15" | "__unused16" | "expectedStatement" | "__unused18" | "__unused19" | "unexpectedOperator" | "__unused13" | "xmlUnexpectedTag" | "expectedStatementOrFunctionCallButReceivedExpression" | "xmlFunctionNotFound" | "xmlInvalidFieldType" | "xmlUnexpectedChildren" | "xmlTagMissingAttribute" | "expectedLabelIdentifierAfterGotoKeyword" | "__unused26" | "__unused21" | "tooManyCallableArguments" | "unmatchedLeftToken" | "__unused23" | "__unused24" | "unexpectedAAKey" | "expectedColonBetweenAAKeyAndvalue" | "__unused25" | "unexpectedToken" | "unexpectedCharacter" | "unterminatedString" | "__unused33" | "__unused44" | "unexpectedConditionalCompilationString" | "duplicateConstDeclaration" | "__unused34" | "invalidHashConstValue" | "hashConstDoesNotExist" | "invalidHashIfValue" | "hashError" | "__unused43" | "__unused17" | "__unused35" | "__unused22" | "expectedAttributeNameAfterAtSymbol" | "childFieldTypeNotAssignableToBaseProperty" | "__unused36" | "classConstructorMissingSuperCall" | "classConstructorIllegalUseOfMBeforeSuperCall" | "classFieldCannotBeOverridden" | "unusedAnnotation" | "localVarShadowedByScopedFunction" | "scopeFunctionShadowedByBuiltInFunction" | "__unused38" | "unnecessaryCodebehindScriptImport" | "__unused37" | "expectedToken" | "__unused10" | "__unused11" | "unterminatedTemplateString" | "unterminatedTemplateExpression" | "duplicateComponentName" | "__unused6" | "expectedExceptionVarToFollowCatch" | "missingExceptionExpressionAfterThrowKeyword" | "__unused42" | "__unused39" | "missingExpressionsInDimStatement" | "mismatchedOverriddenMemberVisibility" | "__unused3" | "enumValueMustBeType" | "enumValueIsRequired" | "__unused40" | "__unused7" | "unknownRoSGNode" | "unknownBrightScriptComponent" | "mismatchCreateObjectArgumentCount" | "__unused41" | "circularReferenceDetected" | "unexpectedStatementOutsideFunction" | "detectedTooDeepFileSource" | "illegalContinueStatement" | "keywordMustBeDeclaredAtNamespaceLevel" | "itemCannotBeUsedAsVariable" | "callfuncHasToManyArgs" | "noOptionalChainingInLeftHandSideOfAssignment" | "cannotFindFunction" | "voidFunctionMayNotReturnValue" | "nonVoidFunctionMustReturnValue" | "assignmentTypeMismatch" | "operatorTypeMismatch" | "incompatibleSymbolDefinition" | "memberAccessibilityMismatch" | "invalidTypecastStatementApplication" | "itemCannotBeUsedAsType" | "unsafeUnmatchedTerminatorInConditionalCompileBlock" | "returnTypeCoercionMismatch" | "argumentTypeMismatch" | "returnTypeMismatch" | "cannotFindCallFuncFunction" | "notCallable" | "notIterable" | "propAccessNotPermittedAfterFunctionCallInExpressionStatement" | "computedPropertyKeyMustBeConstantExpression" | "computedAAKeyMustBeStringExpression" | "featureRequiresMinFirmwareVersion" | "reservedBuiltinUsedAsValue" | "mismatchedEndingToken", string>;
1038
+ export declare const DiagnosticLegacyCodeMap: Record<"genericParserMessage" | "cannotFindName" | "mismatchArgumentCount" | "duplicateFunctionImplementation" | "referencedFileDoesNotExist" | "xmlComponentMissingComponentDeclaration" | "xmlComponentMissingNameAttribute" | "xmlComponentMissingExtendsAttribute" | "syntaxError" | "unnecessaryScriptImportInChildFromParent" | "overridesAncestorFunction" | "localVarFunctionShadowsParentFunction" | "scriptImportCaseMismatch" | "fileNotReferencedByAnyOtherFile" | "unknownDiagnosticCode" | "scriptSrcCannotBeEmpty" | "expectedIdentifier" | "missingCallableKeyword" | "__unused12" | "bsFeatureNotSupportedInBrsFiles" | "__ununsed12" | "bsConfigJsonHasSyntaxErrors" | "itemIsDeprecated" | "cannotUseOverrideKeywordOnConstructorFunction" | "unexpectedStatementLocation" | "__unused8" | "duplicateIdentifier" | "missingOverrideKeyword" | "nameCollision" | "__unused9" | "__unused27" | "expressionIsNotConstructable" | "expectedKeyword" | "__unused28" | "__unused29" | "__unused30" | "tooManyCallableParameters" | "__unused" | "requiredParameterMayNotFollowOptionalParameter" | "expectedNewlineOrColon" | "invalidIdentifier" | "__unused31" | "closingKeywordMismatch" | "expectedParameterNameButFound" | "__unused2" | "cannotUseReservedWordAsIdentifier" | "expectedOperator" | "expectedInlineIfStatement" | "expectedFinalNewline" | "couldNotFindMatchingEndKeyword" | "expectedCatchBlockInTryCatch" | "expectedEndForOrNextToTerminateForLoop" | "__unused32" | "expectedExpressionAfterForEachIn" | "unexpectedColonBeforeIfStatement" | "expectedStringLiteralAfterKeyword" | "keywordMustBeDeclaredAtRootLevel" | "__unused5" | "expectedTerminator" | "__unused14" | "__unused15" | "__unused16" | "expectedStatement" | "__unused18" | "__unused19" | "unexpectedOperator" | "__unused13" | "xmlUnexpectedTag" | "expectedStatementOrFunctionCallButReceivedExpression" | "xmlFunctionNotFound" | "xmlInvalidFieldType" | "xmlUnexpectedChildren" | "xmlTagMissingAttribute" | "expectedLabelIdentifierAfterGotoKeyword" | "__unused26" | "__unused21" | "tooManyCallableArguments" | "unmatchedLeftToken" | "__unused23" | "__unused24" | "unexpectedAAKey" | "expectedColonBetweenAAKeyAndvalue" | "__unused25" | "unexpectedToken" | "unexpectedCharacter" | "unterminatedString" | "__unused33" | "__unused44" | "unexpectedConditionalCompilationString" | "duplicateConstDeclaration" | "__unused34" | "invalidHashConstValue" | "hashConstDoesNotExist" | "invalidHashIfValue" | "hashError" | "__unused43" | "__unused17" | "__unused35" | "__unused22" | "expectedAttributeNameAfterAtSymbol" | "childFieldTypeNotAssignableToBaseProperty" | "__unused36" | "classConstructorMissingSuperCall" | "classConstructorIllegalUseOfMBeforeSuperCall" | "classFieldCannotBeOverridden" | "unusedAnnotation" | "localVarShadowedByScopedFunction" | "scopeFunctionShadowedByBuiltInFunction" | "__unused38" | "unnecessaryCodebehindScriptImport" | "__unused37" | "expectedToken" | "__unused10" | "__unused11" | "unterminatedTemplateString" | "unterminatedTemplateExpression" | "duplicateComponentName" | "__unused6" | "expectedExceptionVarToFollowCatch" | "missingExceptionExpressionAfterThrowKeyword" | "__unused42" | "__unused39" | "missingExpressionsInDimStatement" | "mismatchedOverriddenMemberVisibility" | "__unused3" | "enumValueMustBeType" | "enumValueIsRequired" | "__unused40" | "__unused7" | "unknownRoSGNode" | "unknownBrightScriptComponent" | "mismatchCreateObjectArgumentCount" | "__unused41" | "circularReferenceDetected" | "unexpectedStatementOutsideFunction" | "detectedTooDeepFileSource" | "illegalContinueStatement" | "keywordMustBeDeclaredAtNamespaceLevel" | "itemCannotBeUsedAsVariable" | "callfuncHasToManyArgs" | "noOptionalChainingInLeftHandSideOfAssignment" | "cannotFindFunction" | "voidFunctionMayNotReturnValue" | "nonVoidFunctionMustReturnValue" | "assignmentTypeMismatch" | "operatorTypeMismatch" | "incompatibleSymbolDefinition" | "memberAccessibilityMismatch" | "invalidTypecastStatementApplication" | "itemCannotBeUsedAsType" | "unsafeUnmatchedTerminatorInConditionalCompileBlock" | "returnTypeCoercionMismatch" | "argumentTypeMismatch" | "returnTypeMismatch" | "cannotFindCallFuncFunction" | "notCallable" | "notIterable" | "propAccessNotPermittedAfterFunctionCallInExpressionStatement" | "computedPropertyKeyMustBeConstantExpression" | "computedAAKeyMustBeStringExpression" | "featureRequiresMinFirmwareVersion" | "reservedBuiltinUsedAsValue" | "mismatchedEndingToken", number>;
1039
+ export declare let diagnosticCodes: string[];
641
1040
  export interface DiagnosticInfo {
642
1041
  message: string;
643
- code: number;
1042
+ legacyCode: number;
644
1043
  severity: DiagnosticSeverity;
645
1044
  }
646
1045
  /**
@@ -648,4 +1047,11 @@ export interface DiagnosticInfo {
648
1047
  * The second type parameter is optional, but allows plugins to pass in their own
649
1048
  * DiagnosticMessages-like object in order to get the same type support
650
1049
  */
651
- export declare type DiagnosticMessageType<K extends keyof D, D extends Record<string, (...args: any) => any> = typeof DiagnosticMessages> = ReturnType<D[K]> & Pick<BsDiagnostic, 'range' | 'file' | 'relatedInformation' | 'tags'>;
1050
+ export declare type DiagnosticMessageType<K extends keyof D, D extends Record<string, (...args: any) => any> = typeof DiagnosticMessages> = ReturnType<D[K]> & Pick<BsDiagnostic, 'code' | 'location' | 'relatedInformation' | 'tags'>;
1051
+ /**
1052
+ * Refines a diagnostic to its concrete `DiagnosticMessageType<K>` shape (including the typed `data`
1053
+ * payload) when its code matches `DiagnosticCodeMap[key]`.
1054
+ */
1055
+ export declare function isDiagnosticOfType<K extends keyof typeof DiagnosticMessages>(diagnostic: {
1056
+ code?: number | string;
1057
+ }, key: K): diagnostic is DiagnosticMessageType<K>;