brighterscript 1.0.0-alpha.5 → 1.0.0-alpha.50

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 (715) hide show
  1. package/README.md +76 -138
  2. package/bsconfig.schema.json +121 -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 +72 -39
  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 +12 -4
  20. package/dist/CodeActionUtil.js +22 -5
  21. package/dist/CodeActionUtil.js.map +1 -1
  22. package/dist/CommentFlagProcessor.d.ts +7 -6
  23. package/dist/CommentFlagProcessor.js +11 -8
  24. package/dist/CommentFlagProcessor.js.map +1 -1
  25. package/dist/CrossScopeValidator.d.ts +68 -0
  26. package/dist/CrossScopeValidator.js +642 -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 +82 -0
  38. package/dist/DiagnosticManager.js +406 -0
  39. package/dist/DiagnosticManager.js.map +1 -0
  40. package/dist/DiagnosticMessages.d.ts +558 -196
  41. package/dist/DiagnosticMessages.js +870 -340
  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 +100 -105
  53. package/dist/LanguageServer.js +444 -745
  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 +241 -98
  62. package/dist/Program.js +1432 -717
  63. package/dist/Program.js.map +1 -1
  64. package/dist/ProgramBuilder.d.ts +47 -23
  65. package/dist/ProgramBuilder.js +224 -178
  66. package/dist/ProgramBuilder.js.map +1 -1
  67. package/dist/Scope.d.ts +149 -109
  68. package/dist/Scope.js +557 -550
  69. package/dist/Scope.js.map +1 -1
  70. package/dist/SemanticTokenUtils.js +5 -1
  71. package/dist/SemanticTokenUtils.js.map +1 -1
  72. package/dist/Stopwatch.d.ts +4 -0
  73. package/dist/Stopwatch.js +8 -1
  74. package/dist/Stopwatch.js.map +1 -1
  75. package/dist/SymbolTable.d.ts +136 -24
  76. package/dist/SymbolTable.js +565 -64
  77. package/dist/SymbolTable.js.map +1 -1
  78. package/dist/SymbolTypeFlag.d.ts +9 -0
  79. package/dist/SymbolTypeFlag.js +14 -0
  80. package/dist/SymbolTypeFlag.js.map +1 -0
  81. package/dist/Throttler.d.ts +12 -0
  82. package/dist/Throttler.js +39 -0
  83. package/dist/Throttler.js.map +1 -1
  84. package/dist/Watcher.d.ts +0 -3
  85. package/dist/Watcher.js +0 -3
  86. package/dist/Watcher.js.map +1 -1
  87. package/dist/XmlScope.d.ts +5 -15
  88. package/dist/XmlScope.js +34 -90
  89. package/dist/XmlScope.js.map +1 -1
  90. package/dist/astUtils/CachedLookups.d.ts +50 -0
  91. package/dist/astUtils/CachedLookups.js +334 -0
  92. package/dist/astUtils/CachedLookups.js.map +1 -0
  93. package/dist/astUtils/CachedLookups.spec.js +39 -0
  94. package/dist/astUtils/CachedLookups.spec.js.map +1 -0
  95. package/dist/astUtils/Editor.d.ts +69 -0
  96. package/dist/astUtils/Editor.js +245 -0
  97. package/dist/astUtils/Editor.js.map +1 -0
  98. package/dist/astUtils/Editor.spec.js +258 -0
  99. package/dist/astUtils/Editor.spec.js.map +1 -0
  100. package/dist/astUtils/creators.d.ts +54 -19
  101. package/dist/astUtils/creators.js +242 -42
  102. package/dist/astUtils/creators.js.map +1 -1
  103. package/dist/astUtils/creators.spec.js +5 -5
  104. package/dist/astUtils/creators.spec.js.map +1 -1
  105. package/dist/astUtils/reflection.d.ts +196 -85
  106. package/dist/astUtils/reflection.js +497 -144
  107. package/dist/astUtils/reflection.js.map +1 -1
  108. package/dist/astUtils/reflection.spec.js +267 -167
  109. package/dist/astUtils/reflection.spec.js.map +1 -1
  110. package/dist/astUtils/stackedVisitor.js.map +1 -1
  111. package/dist/astUtils/stackedVisitor.spec.js +14 -14
  112. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  113. package/dist/astUtils/visitors.d.ts +116 -53
  114. package/dist/astUtils/visitors.js +95 -15
  115. package/dist/astUtils/visitors.js.map +1 -1
  116. package/dist/astUtils/visitors.spec.js +629 -51
  117. package/dist/astUtils/visitors.spec.js.map +1 -1
  118. package/dist/astUtils/xml.d.ts +9 -8
  119. package/dist/astUtils/xml.js +12 -7
  120. package/dist/astUtils/xml.js.map +1 -1
  121. package/dist/bscPlugin/BscPlugin.d.ts +24 -4
  122. package/dist/bscPlugin/BscPlugin.js +88 -4
  123. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  124. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  125. package/dist/bscPlugin/CallExpressionInfo.js +143 -0
  126. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  127. package/dist/bscPlugin/FileWriter.d.ts +6 -0
  128. package/dist/bscPlugin/FileWriter.js +24 -0
  129. package/dist/bscPlugin/FileWriter.js.map +1 -0
  130. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  131. package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
  132. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  133. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +6 -5
  134. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +173 -27
  135. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  136. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +138 -21
  137. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  138. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +65 -0
  139. package/dist/bscPlugin/completions/CompletionsProcessor.js +633 -0
  140. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  141. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +2512 -0
  142. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
  143. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  144. package/dist/bscPlugin/definition/DefinitionProvider.js +212 -0
  145. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  146. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +87 -0
  147. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  148. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  149. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  150. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  151. package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
  152. package/dist/bscPlugin/hover/HoverProcessor.js +230 -0
  153. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  154. package/dist/bscPlugin/hover/HoverProcessor.spec.js +991 -0
  155. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -0
  156. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  157. package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
  158. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  159. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +1 -0
  160. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  161. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  162. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
  163. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +164 -0
  164. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  165. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +1 -0
  166. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +564 -0
  167. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -0
  168. package/dist/bscPlugin/serialize/BslibInjector.spec.d.ts +1 -0
  169. package/dist/bscPlugin/serialize/BslibInjector.spec.js +33 -0
  170. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
  171. package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
  172. package/dist/bscPlugin/serialize/BslibManager.js +46 -0
  173. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  174. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  175. package/dist/bscPlugin/serialize/FileSerializer.js +75 -0
  176. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  177. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  178. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  179. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  180. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.d.ts +1 -0
  181. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +291 -0
  182. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
  183. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  184. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  185. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  186. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.d.ts +1 -0
  187. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
  188. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
  189. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  190. package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
  191. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  192. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +27 -0
  193. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +418 -0
  194. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  195. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
  196. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +75 -0
  197. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
  198. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  199. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  200. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  201. package/dist/bscPlugin/validation/BrsFileAfterValidator.d.ts +7 -0
  202. package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
  203. package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
  204. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +37 -0
  205. package/dist/bscPlugin/validation/BrsFileValidator.js +638 -0
  206. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  207. package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +1 -0
  208. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +1517 -0
  209. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -0
  210. package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
  211. package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
  212. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  213. package/dist/bscPlugin/validation/ScopeValidator.d.ts +141 -0
  214. package/dist/bscPlugin/validation/ScopeValidator.js +1323 -0
  215. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  216. package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
  217. package/dist/bscPlugin/validation/ScopeValidator.spec.js +6135 -0
  218. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
  219. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  220. package/dist/bscPlugin/validation/XmlFileValidator.js +36 -0
  221. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  222. package/dist/cli.js +126 -27
  223. package/dist/cli.js.map +1 -1
  224. package/dist/common/Sequencer.d.ts +53 -0
  225. package/dist/common/Sequencer.js +233 -0
  226. package/dist/common/Sequencer.js.map +1 -0
  227. package/dist/common/Sequencer.spec.d.ts +1 -0
  228. package/dist/common/Sequencer.spec.js +75 -0
  229. package/dist/common/Sequencer.spec.js.map +1 -0
  230. package/dist/deferred.d.ts +5 -3
  231. package/dist/deferred.js +10 -0
  232. package/dist/deferred.js.map +1 -1
  233. package/dist/diagnosticUtils.d.ts +10 -3
  234. package/dist/diagnosticUtils.js +64 -25
  235. package/dist/diagnosticUtils.js.map +1 -1
  236. package/dist/examples/plugins/removePrint.d.ts +2 -2
  237. package/dist/examples/plugins/removePrint.js +8 -12
  238. package/dist/examples/plugins/removePrint.js.map +1 -1
  239. package/dist/files/AssetFile.d.ts +24 -0
  240. package/dist/files/AssetFile.js +25 -0
  241. package/dist/files/AssetFile.js.map +1 -0
  242. package/dist/files/BrsFile.Class.spec.js +1213 -259
  243. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  244. package/dist/files/BrsFile.d.ts +145 -87
  245. package/dist/files/BrsFile.js +836 -934
  246. package/dist/files/BrsFile.js.map +1 -1
  247. package/dist/files/BrsFile.spec.js +4226 -902
  248. package/dist/files/BrsFile.spec.js.map +1 -1
  249. package/dist/files/BscFile.d.ts +102 -0
  250. package/dist/files/BscFile.js +15 -0
  251. package/dist/files/BscFile.js.map +1 -0
  252. package/dist/files/Factory.d.ts +25 -0
  253. package/dist/files/Factory.js +22 -0
  254. package/dist/files/Factory.js.map +1 -0
  255. package/dist/files/LazyFileData.d.ts +21 -0
  256. package/dist/files/LazyFileData.js +54 -0
  257. package/dist/files/LazyFileData.js.map +1 -0
  258. package/dist/files/LazyFileData.spec.d.ts +1 -0
  259. package/dist/files/LazyFileData.spec.js +27 -0
  260. package/dist/files/LazyFileData.spec.js.map +1 -0
  261. package/dist/files/XmlFile.d.ts +80 -41
  262. package/dist/files/XmlFile.js +161 -137
  263. package/dist/files/XmlFile.js.map +1 -1
  264. package/dist/files/XmlFile.spec.js +444 -336
  265. package/dist/files/XmlFile.spec.js.map +1 -1
  266. package/dist/files/tests/imports.spec.js +62 -52
  267. package/dist/files/tests/imports.spec.js.map +1 -1
  268. package/dist/files/tests/optionalChaning.spec.d.ts +1 -0
  269. package/dist/files/tests/optionalChaning.spec.js +152 -0
  270. package/dist/files/tests/optionalChaning.spec.js.map +1 -0
  271. package/dist/globalCallables.d.ts +3 -1
  272. package/dist/globalCallables.js +424 -184
  273. package/dist/globalCallables.js.map +1 -1
  274. package/dist/index.d.ts +32 -4
  275. package/dist/index.js +54 -7
  276. package/dist/index.js.map +1 -1
  277. package/dist/interfaces.d.ts +942 -125
  278. package/dist/interfaces.js +21 -0
  279. package/dist/interfaces.js.map +1 -1
  280. package/dist/lexer/Character.spec.js +5 -5
  281. package/dist/lexer/Character.spec.js.map +1 -1
  282. package/dist/lexer/Lexer.d.ts +51 -12
  283. package/dist/lexer/Lexer.js +215 -65
  284. package/dist/lexer/Lexer.js.map +1 -1
  285. package/dist/lexer/Lexer.spec.js +812 -568
  286. package/dist/lexer/Lexer.spec.js.map +1 -1
  287. package/dist/lexer/Token.d.ts +27 -11
  288. package/dist/lexer/Token.js +10 -2
  289. package/dist/lexer/Token.js.map +1 -1
  290. package/dist/lexer/TokenKind.d.ts +40 -2
  291. package/dist/lexer/TokenKind.js +147 -10
  292. package/dist/lexer/TokenKind.js.map +1 -1
  293. package/dist/logging.d.ts +14 -0
  294. package/dist/logging.js +29 -0
  295. package/dist/logging.js.map +1 -0
  296. package/dist/lsp/ActionQueue.d.ts +35 -0
  297. package/dist/lsp/ActionQueue.js +115 -0
  298. package/dist/lsp/ActionQueue.js.map +1 -0
  299. package/dist/lsp/ActionQueue.spec.d.ts +1 -0
  300. package/dist/lsp/ActionQueue.spec.js +80 -0
  301. package/dist/lsp/ActionQueue.spec.js.map +1 -0
  302. package/dist/lsp/DocumentManager.d.ts +63 -0
  303. package/dist/lsp/DocumentManager.js +122 -0
  304. package/dist/lsp/DocumentManager.js.map +1 -0
  305. package/dist/lsp/DocumentManager.spec.d.ts +1 -0
  306. package/dist/lsp/DocumentManager.spec.js +103 -0
  307. package/dist/lsp/DocumentManager.spec.js.map +1 -0
  308. package/dist/lsp/LspProject.d.ts +239 -0
  309. package/dist/lsp/LspProject.js +3 -0
  310. package/dist/lsp/LspProject.js.map +1 -0
  311. package/dist/lsp/PathFilterer.d.ts +75 -0
  312. package/dist/lsp/PathFilterer.js +196 -0
  313. package/dist/lsp/PathFilterer.js.map +1 -0
  314. package/dist/lsp/PathFilterer.spec.d.ts +1 -0
  315. package/dist/lsp/PathFilterer.spec.js +182 -0
  316. package/dist/lsp/PathFilterer.spec.js.map +1 -0
  317. package/dist/lsp/Project.d.ts +168 -0
  318. package/dist/lsp/Project.js +437 -0
  319. package/dist/lsp/Project.js.map +1 -0
  320. package/dist/lsp/Project.spec.d.ts +1 -0
  321. package/dist/lsp/Project.spec.js +267 -0
  322. package/dist/lsp/Project.spec.js.map +1 -0
  323. package/dist/lsp/ProjectManager.d.ts +242 -0
  324. package/dist/lsp/ProjectManager.js +824 -0
  325. package/dist/lsp/ProjectManager.js.map +1 -0
  326. package/dist/lsp/ProjectManager.spec.d.ts +1 -0
  327. package/dist/lsp/ProjectManager.spec.js +913 -0
  328. package/dist/lsp/ProjectManager.spec.js.map +1 -0
  329. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  330. package/dist/lsp/ReaderWriterManager.js +60 -0
  331. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  332. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  333. package/dist/lsp/worker/MessageHandler.js +138 -0
  334. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  335. package/dist/lsp/worker/MessageHandler.spec.d.ts +1 -0
  336. package/dist/lsp/worker/MessageHandler.spec.js +64 -0
  337. package/dist/lsp/worker/MessageHandler.spec.js.map +1 -0
  338. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  339. package/dist/lsp/worker/WorkerPool.js +78 -0
  340. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  341. package/dist/lsp/worker/WorkerPool.spec.d.ts +1 -0
  342. package/dist/lsp/worker/WorkerPool.spec.js +59 -0
  343. package/dist/lsp/worker/WorkerPool.spec.js.map +1 -0
  344. package/dist/lsp/worker/WorkerThreadProject.d.ts +143 -0
  345. package/dist/lsp/worker/WorkerThreadProject.js +189 -0
  346. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  347. package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +2 -0
  348. package/dist/lsp/worker/WorkerThreadProject.spec.js +71 -0
  349. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +1 -0
  350. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  351. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  352. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  353. package/dist/lsp/worker/run.d.ts +1 -0
  354. package/dist/lsp/worker/run.js +14 -0
  355. package/dist/lsp/worker/run.js.map +1 -0
  356. package/dist/parser/AstNode.d.ts +203 -0
  357. package/dist/parser/AstNode.js +303 -0
  358. package/dist/parser/AstNode.js.map +1 -0
  359. package/dist/parser/AstNode.spec.d.ts +1 -0
  360. package/dist/parser/AstNode.spec.js +1455 -0
  361. package/dist/parser/AstNode.spec.js.map +1 -0
  362. package/dist/parser/BrightScriptDocParser.d.ts +56 -0
  363. package/dist/parser/BrightScriptDocParser.js +294 -0
  364. package/dist/parser/BrightScriptDocParser.js.map +1 -0
  365. package/dist/parser/BrightScriptDocParser.spec.d.ts +1 -0
  366. package/dist/parser/BrightScriptDocParser.spec.js +310 -0
  367. package/dist/parser/BrightScriptDocParser.spec.js.map +1 -0
  368. package/dist/parser/BrsTranspileState.d.ts +22 -3
  369. package/dist/parser/BrsTranspileState.js +19 -0
  370. package/dist/parser/BrsTranspileState.js.map +1 -1
  371. package/dist/parser/Expression.d.ts +553 -221
  372. package/dist/parser/Expression.js +1414 -505
  373. package/dist/parser/Expression.js.map +1 -1
  374. package/dist/parser/Expression.spec.d.ts +1 -0
  375. package/dist/parser/Expression.spec.js +40 -0
  376. package/dist/parser/Expression.spec.js.map +1 -0
  377. package/dist/parser/Parser.Class.spec.js +255 -125
  378. package/dist/parser/Parser.Class.spec.js.map +1 -1
  379. package/dist/parser/Parser.d.ts +117 -124
  380. package/dist/parser/Parser.js +1669 -982
  381. package/dist/parser/Parser.js.map +1 -1
  382. package/dist/parser/Parser.spec.d.ts +3 -1
  383. package/dist/parser/Parser.spec.js +2111 -525
  384. package/dist/parser/Parser.spec.js.map +1 -1
  385. package/dist/parser/SGParser.d.ts +29 -13
  386. package/dist/parser/SGParser.js +85 -56
  387. package/dist/parser/SGParser.js.map +1 -1
  388. package/dist/parser/SGParser.spec.js +30 -45
  389. package/dist/parser/SGParser.spec.js.map +1 -1
  390. package/dist/parser/SGTypes.d.ts +134 -46
  391. package/dist/parser/SGTypes.js +206 -115
  392. package/dist/parser/SGTypes.js.map +1 -1
  393. package/dist/parser/Statement.d.ts +849 -267
  394. package/dist/parser/Statement.js +2412 -625
  395. package/dist/parser/Statement.js.map +1 -1
  396. package/dist/parser/Statement.spec.js +133 -36
  397. package/dist/parser/Statement.spec.js.map +1 -1
  398. package/dist/parser/TranspileState.d.ts +26 -12
  399. package/dist/parser/TranspileState.js +115 -24
  400. package/dist/parser/TranspileState.js.map +1 -1
  401. package/dist/parser/tests/Parser.spec.d.ts +3 -9
  402. package/dist/parser/tests/Parser.spec.js +7 -13
  403. package/dist/parser/tests/Parser.spec.js.map +1 -1
  404. package/dist/parser/tests/controlFlow/For.spec.js +83 -75
  405. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  406. package/dist/parser/tests/controlFlow/ForEach.spec.js +85 -51
  407. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  408. package/dist/parser/tests/controlFlow/If.spec.js +382 -239
  409. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  410. package/dist/parser/tests/controlFlow/While.spec.js +52 -45
  411. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  412. package/dist/parser/tests/expression/Additive.spec.js +51 -43
  413. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  414. package/dist/parser/tests/expression/ArrayLiterals.spec.js +192 -142
  415. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  416. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +236 -160
  417. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  418. package/dist/parser/tests/expression/Boolean.spec.js +41 -34
  419. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  420. package/dist/parser/tests/expression/Call.spec.js +173 -55
  421. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  422. package/dist/parser/tests/expression/Exponential.spec.js +20 -20
  423. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  424. package/dist/parser/tests/expression/Function.spec.js +291 -282
  425. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  426. package/dist/parser/tests/expression/Indexing.spec.js +193 -110
  427. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  428. package/dist/parser/tests/expression/Multiplicative.spec.js +42 -42
  429. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  430. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +260 -115
  431. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  432. package/dist/parser/tests/expression/PrefixUnary.spec.js +58 -52
  433. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  434. package/dist/parser/tests/expression/Primary.spec.js +76 -60
  435. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  436. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +1 -0
  437. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +171 -0
  438. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -0
  439. package/dist/parser/tests/expression/Relational.spec.js +50 -50
  440. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  441. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +31 -31
  442. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  443. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +281 -94
  444. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  445. package/dist/parser/tests/expression/TernaryExpression.spec.js +747 -192
  446. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  447. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
  448. package/dist/parser/tests/expression/TypeExpression.spec.js +126 -0
  449. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
  450. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
  451. package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
  452. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
  453. package/dist/parser/tests/statement/AssignmentOperators.spec.js +44 -44
  454. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  455. package/dist/parser/tests/statement/ConstStatement.spec.d.ts +1 -0
  456. package/dist/parser/tests/statement/ConstStatement.spec.js +500 -0
  457. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -0
  458. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  459. package/dist/parser/tests/statement/Continue.spec.js +119 -0
  460. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  461. package/dist/parser/tests/statement/Declaration.spec.js +61 -55
  462. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  463. package/dist/parser/tests/statement/Dim.spec.js +29 -22
  464. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  465. package/dist/parser/tests/statement/Enum.spec.d.ts +1 -0
  466. package/dist/parser/tests/statement/Enum.spec.js +744 -0
  467. package/dist/parser/tests/statement/Enum.spec.js.map +1 -0
  468. package/dist/parser/tests/statement/For.spec.d.ts +1 -0
  469. package/dist/parser/tests/statement/For.spec.js +45 -0
  470. package/dist/parser/tests/statement/For.spec.js.map +1 -0
  471. package/dist/parser/tests/statement/ForEach.spec.d.ts +1 -0
  472. package/dist/parser/tests/statement/ForEach.spec.js +36 -0
  473. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -0
  474. package/dist/parser/tests/statement/Function.spec.js +226 -215
  475. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  476. package/dist/parser/tests/statement/Goto.spec.js +16 -15
  477. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  478. package/dist/parser/tests/statement/Increment.spec.js +64 -61
  479. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  480. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +1 -0
  481. package/dist/parser/tests/statement/InterfaceStatement.spec.js +110 -0
  482. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -0
  483. package/dist/parser/tests/statement/LibraryStatement.spec.js +22 -22
  484. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  485. package/dist/parser/tests/statement/Misc.spec.js +127 -168
  486. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  487. package/dist/parser/tests/statement/PrintStatement.spec.js +133 -114
  488. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  489. package/dist/parser/tests/statement/ReturnStatement.spec.js +57 -54
  490. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  491. package/dist/parser/tests/statement/Set.spec.js +131 -117
  492. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  493. package/dist/parser/tests/statement/Stop.spec.js +14 -13
  494. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  495. package/dist/parser/tests/statement/Throw.spec.js +11 -8
  496. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  497. package/dist/parser/tests/statement/TryCatch.spec.js +26 -15
  498. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  499. package/dist/preprocessor/Manifest.d.ts +6 -6
  500. package/dist/preprocessor/Manifest.js +17 -38
  501. package/dist/preprocessor/Manifest.js.map +1 -1
  502. package/dist/preprocessor/Manifest.spec.d.ts +1 -0
  503. package/dist/preprocessor/Manifest.spec.js +78 -103
  504. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  505. package/dist/roku-types/data.json +20347 -0
  506. package/dist/roku-types/index.d.ts +5726 -0
  507. package/dist/roku-types/index.js +11 -0
  508. package/dist/roku-types/index.js.map +1 -0
  509. package/dist/types/ArrayType.d.ts +12 -5
  510. package/dist/types/ArrayType.js +89 -24
  511. package/dist/types/ArrayType.js.map +1 -1
  512. package/dist/types/ArrayType.spec.js +39 -11
  513. package/dist/types/ArrayType.spec.js.map +1 -1
  514. package/dist/types/AssociativeArrayType.d.ts +15 -0
  515. package/dist/types/AssociativeArrayType.js +64 -0
  516. package/dist/types/AssociativeArrayType.js.map +1 -0
  517. package/dist/types/BaseFunctionType.d.ts +10 -0
  518. package/dist/types/BaseFunctionType.js +26 -0
  519. package/dist/types/BaseFunctionType.js.map +1 -0
  520. package/dist/types/BooleanType.d.ts +9 -5
  521. package/dist/types/BooleanType.js +19 -8
  522. package/dist/types/BooleanType.js.map +1 -1
  523. package/dist/types/BooleanType.spec.js +10 -4
  524. package/dist/types/BooleanType.spec.js.map +1 -1
  525. package/dist/types/BscType.d.ts +41 -3
  526. package/dist/types/BscType.js +152 -0
  527. package/dist/types/BscType.js.map +1 -1
  528. package/dist/types/BscTypeKind.d.ts +28 -0
  529. package/dist/types/BscTypeKind.js +33 -0
  530. package/dist/types/BscTypeKind.js.map +1 -0
  531. package/dist/types/BuiltInInterfaceAdder.d.ts +28 -0
  532. package/dist/types/BuiltInInterfaceAdder.js +212 -0
  533. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  534. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
  535. package/dist/types/BuiltInInterfaceAdder.spec.js +115 -0
  536. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
  537. package/dist/types/CallFuncableType.d.ts +24 -0
  538. package/dist/types/CallFuncableType.js +91 -0
  539. package/dist/types/CallFuncableType.js.map +1 -0
  540. package/dist/types/ClassType.d.ts +17 -0
  541. package/dist/types/ClassType.js +60 -0
  542. package/dist/types/ClassType.js.map +1 -0
  543. package/dist/types/ClassType.spec.d.ts +1 -0
  544. package/dist/types/ClassType.spec.js +76 -0
  545. package/dist/types/ClassType.spec.js.map +1 -0
  546. package/dist/types/ComponentType.d.ts +22 -0
  547. package/dist/types/ComponentType.js +107 -0
  548. package/dist/types/ComponentType.js.map +1 -0
  549. package/dist/types/DoubleType.d.ts +10 -5
  550. package/dist/types/DoubleType.js +21 -17
  551. package/dist/types/DoubleType.js.map +1 -1
  552. package/dist/types/DoubleType.spec.js +12 -4
  553. package/dist/types/DoubleType.spec.js.map +1 -1
  554. package/dist/types/DynamicType.d.ts +13 -5
  555. package/dist/types/DynamicType.js +26 -5
  556. package/dist/types/DynamicType.js.map +1 -1
  557. package/dist/types/DynamicType.spec.js +16 -5
  558. package/dist/types/DynamicType.spec.js.map +1 -1
  559. package/dist/types/EnumType.d.ts +42 -0
  560. package/dist/types/EnumType.js +98 -0
  561. package/dist/types/EnumType.js.map +1 -0
  562. package/dist/types/EnumType.spec.d.ts +1 -0
  563. package/dist/types/EnumType.spec.js +33 -0
  564. package/dist/types/EnumType.spec.js.map +1 -0
  565. package/dist/types/FloatType.d.ts +10 -5
  566. package/dist/types/FloatType.js +21 -17
  567. package/dist/types/FloatType.js.map +1 -1
  568. package/dist/types/FloatType.spec.js +4 -4
  569. package/dist/types/FloatType.spec.js.map +1 -1
  570. package/dist/types/FunctionType.d.ts +8 -22
  571. package/dist/types/FunctionType.js +25 -63
  572. package/dist/types/FunctionType.js.map +1 -1
  573. package/dist/types/InheritableType.d.ts +29 -0
  574. package/dist/types/InheritableType.js +173 -0
  575. package/dist/types/InheritableType.js.map +1 -0
  576. package/dist/types/InlineInterfaceType.d.ts +5 -0
  577. package/dist/types/InlineInterfaceType.js +17 -0
  578. package/dist/types/InlineInterfaceType.js.map +1 -0
  579. package/dist/types/IntegerType.d.ts +10 -5
  580. package/dist/types/IntegerType.js +21 -17
  581. package/dist/types/IntegerType.js.map +1 -1
  582. package/dist/types/IntegerType.spec.js +8 -4
  583. package/dist/types/IntegerType.spec.js.map +1 -1
  584. package/dist/types/InterfaceType.d.ts +14 -6
  585. package/dist/types/InterfaceType.js +30 -15
  586. package/dist/types/InterfaceType.js.map +1 -1
  587. package/dist/types/InterfaceType.spec.d.ts +1 -0
  588. package/dist/types/InterfaceType.spec.js +227 -0
  589. package/dist/types/InterfaceType.spec.js.map +1 -0
  590. package/dist/types/IntersectionType.d.ts +29 -0
  591. package/dist/types/IntersectionType.js +253 -0
  592. package/dist/types/IntersectionType.js.map +1 -0
  593. package/dist/types/IntersectionType.spec.d.ts +1 -0
  594. package/dist/types/IntersectionType.spec.js +150 -0
  595. package/dist/types/IntersectionType.spec.js.map +1 -0
  596. package/dist/types/InvalidType.d.ts +10 -5
  597. package/dist/types/InvalidType.js +21 -9
  598. package/dist/types/InvalidType.js.map +1 -1
  599. package/dist/types/InvalidType.spec.js +8 -4
  600. package/dist/types/InvalidType.spec.js.map +1 -1
  601. package/dist/types/LongIntegerType.d.ts +10 -5
  602. package/dist/types/LongIntegerType.js +21 -17
  603. package/dist/types/LongIntegerType.js.map +1 -1
  604. package/dist/types/LongIntegerType.spec.js +10 -4
  605. package/dist/types/LongIntegerType.spec.js.map +1 -1
  606. package/dist/types/NamespaceType.d.ts +12 -0
  607. package/dist/types/NamespaceType.js +28 -0
  608. package/dist/types/NamespaceType.js.map +1 -0
  609. package/dist/types/ObjectType.d.ts +12 -5
  610. package/dist/types/ObjectType.js +25 -8
  611. package/dist/types/ObjectType.js.map +1 -1
  612. package/dist/types/ObjectType.spec.js +3 -3
  613. package/dist/types/ObjectType.spec.js.map +1 -1
  614. package/dist/types/ReferenceType.d.ts +123 -0
  615. package/dist/types/ReferenceType.js +720 -0
  616. package/dist/types/ReferenceType.js.map +1 -0
  617. package/dist/types/ReferenceType.spec.d.ts +1 -0
  618. package/dist/types/ReferenceType.spec.js +151 -0
  619. package/dist/types/ReferenceType.spec.js.map +1 -0
  620. package/dist/types/StringType.d.ts +12 -5
  621. package/dist/types/StringType.js +23 -8
  622. package/dist/types/StringType.js.map +1 -1
  623. package/dist/types/StringType.spec.js +3 -3
  624. package/dist/types/StringType.spec.js.map +1 -1
  625. package/dist/types/TypeStatementType.d.ts +18 -0
  626. package/dist/types/TypeStatementType.js +45 -0
  627. package/dist/types/TypeStatementType.js.map +1 -0
  628. package/dist/types/TypedFunctionType.d.ts +34 -0
  629. package/dist/types/TypedFunctionType.js +147 -0
  630. package/dist/types/TypedFunctionType.js.map +1 -0
  631. package/dist/types/TypedFunctionType.spec.d.ts +1 -0
  632. package/dist/types/TypedFunctionType.spec.js +122 -0
  633. package/dist/types/TypedFunctionType.spec.js.map +1 -0
  634. package/dist/types/UninitializedType.d.ts +11 -6
  635. package/dist/types/UninitializedType.js +20 -11
  636. package/dist/types/UninitializedType.js.map +1 -1
  637. package/dist/types/UnionType.d.ts +27 -0
  638. package/dist/types/UnionType.js +193 -0
  639. package/dist/types/UnionType.js.map +1 -0
  640. package/dist/types/UnionType.spec.d.ts +1 -0
  641. package/dist/types/UnionType.spec.js +205 -0
  642. package/dist/types/UnionType.spec.js.map +1 -0
  643. package/dist/types/VoidType.d.ts +11 -5
  644. package/dist/types/VoidType.js +22 -8
  645. package/dist/types/VoidType.js.map +1 -1
  646. package/dist/types/VoidType.spec.js +3 -3
  647. package/dist/types/VoidType.spec.js.map +1 -1
  648. package/dist/types/helper.spec.d.ts +1 -0
  649. package/dist/types/helper.spec.js +174 -0
  650. package/dist/types/helper.spec.js.map +1 -0
  651. package/dist/types/helpers.d.ts +51 -0
  652. package/dist/types/helpers.js +323 -0
  653. package/dist/types/helpers.js.map +1 -0
  654. package/dist/types/index.d.ts +22 -0
  655. package/dist/types/index.js +39 -0
  656. package/dist/types/index.js.map +1 -0
  657. package/dist/types/roFunctionType.d.ts +11 -0
  658. package/dist/types/roFunctionType.js +37 -0
  659. package/dist/types/roFunctionType.js.map +1 -0
  660. package/dist/types/roFunctionType.spec.d.ts +1 -0
  661. package/dist/types/roFunctionType.spec.js +20 -0
  662. package/dist/types/roFunctionType.spec.js.map +1 -0
  663. package/dist/util.d.ts +288 -187
  664. package/dist/util.js +2018 -575
  665. package/dist/util.js.map +1 -1
  666. package/dist/validators/ClassValidator.d.ts +9 -15
  667. package/dist/validators/ClassValidator.js +93 -138
  668. package/dist/validators/ClassValidator.js.map +1 -1
  669. package/package.json +185 -138
  670. package/CHANGELOG.md +0 -1188
  671. package/dist/astUtils/index.d.ts +0 -7
  672. package/dist/astUtils/index.js +0 -26
  673. package/dist/astUtils/index.js.map +0 -1
  674. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  675. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
  676. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  677. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +0 -45
  678. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
  679. package/dist/lexer/index.d.ts +0 -3
  680. package/dist/lexer/index.js +0 -17
  681. package/dist/lexer/index.js.map +0 -1
  682. package/dist/parser/SGTypes.spec.js +0 -351
  683. package/dist/parser/SGTypes.spec.js.map +0 -1
  684. package/dist/parser/index.d.ts +0 -3
  685. package/dist/parser/index.js +0 -16
  686. package/dist/parser/index.js.map +0 -1
  687. package/dist/preprocessor/Chunk.d.ts +0 -82
  688. package/dist/preprocessor/Chunk.js +0 -77
  689. package/dist/preprocessor/Chunk.js.map +0 -1
  690. package/dist/preprocessor/Preprocessor.d.ts +0 -60
  691. package/dist/preprocessor/Preprocessor.js +0 -156
  692. package/dist/preprocessor/Preprocessor.js.map +0 -1
  693. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  694. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  695. package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
  696. package/dist/preprocessor/PreprocessorParser.js +0 -194
  697. package/dist/preprocessor/PreprocessorParser.js.map +0 -1
  698. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  699. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  700. package/dist/preprocessor/index.d.ts +0 -3
  701. package/dist/preprocessor/index.js +0 -16
  702. package/dist/preprocessor/index.js.map +0 -1
  703. package/dist/types/CustomType.d.ts +0 -10
  704. package/dist/types/CustomType.js +0 -35
  705. package/dist/types/CustomType.js.map +0 -1
  706. package/dist/types/FunctionType.spec.js +0 -29
  707. package/dist/types/FunctionType.spec.js.map +0 -1
  708. package/dist/types/LazyType.d.ts +0 -15
  709. package/dist/types/LazyType.js +0 -32
  710. package/dist/types/LazyType.js.map +0 -1
  711. /package/dist/{bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts → astUtils/CachedLookups.spec.d.ts} +0 -0
  712. /package/dist/{parser/SGTypes.spec.d.ts → astUtils/Editor.spec.d.ts} +0 -0
  713. /package/dist/{preprocessor/Preprocessor.spec.d.ts → bscPlugin/completions/CompletionsProcessor.spec.d.ts} +0 -0
  714. /package/dist/{preprocessor/PreprocessorParser.spec.d.ts → bscPlugin/definition/DefinitionProvider.spec.d.ts} +0 -0
  715. /package/dist/{types/FunctionType.spec.d.ts → bscPlugin/hover/HoverProcessor.spec.d.ts} +0 -0
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.diagnosticCodes = exports.DiagnosticCodeMap = exports.DiagnosticMessages = void 0;
3
+ exports.diagnosticCodes = exports.DiagnosticLegacyCodeMap = exports.DiagnosticCodeMap = exports.incompatibleSymbolMessage = exports.typeCompatibilityMessage = exports.defaultMaximumTruncationLength = exports.DiagnosticMessages = exports.DiagnosticCodeRegex = void 0;
4
4
  const vscode_languageserver_1 = require("vscode-languageserver");
5
+ const TokenKind_1 = require("./lexer/TokenKind");
6
+ const util_1 = require("./util");
7
+ exports.DiagnosticCodeRegex = /^[a-z](?:[a-z0-9]*(?:-[a-z0-9]+)*)*$/;
5
8
  /**
6
9
  * An object that keeps track of all possible error messages.
7
10
  */
@@ -9,642 +12,1169 @@ exports.DiagnosticMessages = {
9
12
  //this one won't be used much, we just need a catchall object for the code since we pass through the message from the parser
10
13
  genericParserMessage: (message) => ({
11
14
  message: message,
12
- code: 1000,
13
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
15
+ legacyCode: 1000,
16
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
17
+ code: 'generic-parser-message'
14
18
  }),
15
- callToUnknownFunction: (name, scopeName) => ({
16
- message: `Cannot find function with name '${name}' when this file is included in scope '${scopeName}'`,
17
- code: 1001,
19
+ /**
20
+ *
21
+ * @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')
22
+ * @param fullName if a namespaced name, this is the full name `alpha.beta.charlie`, otherwise it's the same as `name`
23
+ * @param typeName if 'name' refers to a member, what is the the type it is a member of?
24
+ * @param typeDescriptor defaults to 'type' ... could also be 'namespace', etc.
25
+ */
26
+ cannotFindName: (name, fullName, typeName, typeDescriptor = 'type') => ({
27
+ message: `Cannot find name '${name}'${typeName ? ` for ${typeDescriptor} '${typeName}'` : ''}`,
28
+ legacyCode: 1001,
18
29
  data: {
19
- functionName: name
30
+ name: name,
31
+ fullName: fullName !== null && fullName !== void 0 ? fullName : name,
32
+ typeName: typeName ? typeName : undefined
20
33
  },
21
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
34
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
35
+ code: 'cannot-find-name'
22
36
  }),
23
37
  mismatchArgumentCount: (expectedCount, actualCount) => ({
24
38
  message: `Expected ${expectedCount} arguments, but got ${actualCount}.`,
25
- code: 1002,
26
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
39
+ legacyCode: 1002,
40
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
41
+ code: 'incorrect-argument-count'
27
42
  }),
28
- duplicateFunctionImplementation: (functionName, scopeName) => ({
29
- message: `Duplicate function implementation for '${functionName}' when this file is included in scope '${scopeName}'.`,
30
- code: 1003,
31
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
43
+ duplicateFunctionImplementation: (functionName) => ({
44
+ message: `Duplicate function implementation for '${functionName}'.`,
45
+ legacyCode: 1003,
46
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
47
+ code: 'duplicate-function'
32
48
  }),
33
49
  referencedFileDoesNotExist: () => ({
34
50
  message: `Referenced file does not exist.`,
35
- code: 1004,
36
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
51
+ legacyCode: 1004,
52
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
53
+ code: 'file-not-found'
37
54
  }),
38
55
  xmlComponentMissingComponentDeclaration: () => ({
39
56
  message: `Missing a component declaration.`,
40
- code: 1005,
41
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
57
+ legacyCode: 1005,
58
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
59
+ code: 'missing-component-element'
42
60
  }),
43
61
  xmlComponentMissingNameAttribute: () => ({
44
62
  message: `Component must have a name attribute.`,
45
- code: 1006,
46
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
63
+ legacyCode: 1006,
64
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
65
+ code: 'missing-name-attribute'
47
66
  }),
48
67
  xmlComponentMissingExtendsAttribute: () => ({
49
68
  message: `Component is mising "extends" attribute and will automatically extend "Group" by default`,
50
- code: 1007,
51
- severity: vscode_languageserver_1.DiagnosticSeverity.Warning
69
+ legacyCode: 1007,
70
+ severity: vscode_languageserver_1.DiagnosticSeverity.Warning,
71
+ code: 'missing-extends-attribute'
52
72
  }),
53
- xmlGenericParseError: (message) => ({
73
+ syntaxError: (message) => ({
54
74
  //generic catchall xml parse error
55
75
  message: message,
56
- code: 1008,
57
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
76
+ legacyCode: 1008,
77
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
78
+ code: 'syntax-error'
58
79
  }),
59
80
  unnecessaryScriptImportInChildFromParent: (parentComponentName) => ({
60
81
  message: `Unnecessary script import: Script is already imported in ancestor component '${parentComponentName}'.`,
61
- code: 1009,
62
- severity: vscode_languageserver_1.DiagnosticSeverity.Warning
82
+ legacyCode: 1009,
83
+ severity: vscode_languageserver_1.DiagnosticSeverity.Warning,
84
+ code: 'redundant-import'
63
85
  }),
64
86
  overridesAncestorFunction: (callableName, currentScopeName, parentFilePath, parentScopeName) => ({
65
87
  message: `Function '${callableName}' included in '${currentScopeName}' overrides function in '${parentFilePath}' included in '${parentScopeName}'.`,
66
- code: 1010,
67
- severity: vscode_languageserver_1.DiagnosticSeverity.Hint
88
+ legacyCode: 1010,
89
+ severity: vscode_languageserver_1.DiagnosticSeverity.Hint,
90
+ code: 'overrides-ancestor-function'
68
91
  }),
69
92
  localVarFunctionShadowsParentFunction: (scopeName) => ({
70
93
  message: `Local variable function has same name as ${scopeName} function and will never be called.`,
71
- code: 1011,
72
- severity: vscode_languageserver_1.DiagnosticSeverity.Warning
94
+ legacyCode: 1011,
95
+ severity: vscode_languageserver_1.DiagnosticSeverity.Warning,
96
+ code: 'variable-shadows-function'
73
97
  }),
74
98
  scriptImportCaseMismatch: (correctFilePath) => ({
75
99
  message: `Script import path does not match casing of actual file path '${correctFilePath}'.`,
76
- code: 1012,
77
- severity: vscode_languageserver_1.DiagnosticSeverity.Warning
100
+ legacyCode: 1012,
101
+ severity: vscode_languageserver_1.DiagnosticSeverity.Warning,
102
+ code: 'import-case-mismatch'
78
103
  }),
79
104
  fileNotReferencedByAnyOtherFile: () => ({
80
105
  message: `This file is not referenced by any other file in the project.`,
81
- code: 1013,
82
- severity: vscode_languageserver_1.DiagnosticSeverity.Warning
106
+ legacyCode: 1013,
107
+ severity: vscode_languageserver_1.DiagnosticSeverity.Warning,
108
+ code: 'file-not-referenced'
83
109
  }),
84
110
  unknownDiagnosticCode: (theUnknownCode) => ({
85
111
  message: `Unknown diagnostic code ${theUnknownCode}`,
86
- code: 1014,
87
- severity: vscode_languageserver_1.DiagnosticSeverity.Warning
112
+ legacyCode: 1014,
113
+ severity: vscode_languageserver_1.DiagnosticSeverity.Warning,
114
+ code: 'unknown-diagnostic-code'
88
115
  }),
89
116
  scriptSrcCannotBeEmpty: () => ({
90
117
  message: `Script import cannot be empty or whitespace`,
91
- code: 1015,
92
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
93
- }),
94
- expectedIdentifierAfterKeyword: (keywordText) => ({
95
- message: `Expected identifier after '${keywordText}' keyword`,
96
- code: 1016,
97
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
118
+ legacyCode: 1015,
119
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
120
+ code: 'invalid-import-path'
98
121
  }),
122
+ expectedIdentifier: (preceedingTokenText) => {
123
+ let message = `Expected identifier`;
124
+ if (preceedingTokenText) {
125
+ message += ` after '${preceedingTokenText}'`;
126
+ }
127
+ return {
128
+ message: message,
129
+ legacyCode: 1016,
130
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
131
+ code: 'expected-identifier'
132
+ };
133
+ },
99
134
  missingCallableKeyword: () => ({
100
- message: `Expected 'function' or 'sub' to preceed identifier`,
101
- code: 1017,
102
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
135
+ message: `Expected 'function' or 'sub' to precede identifier`,
136
+ legacyCode: 1017,
137
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
138
+ code: 'expected-leading-keyword'
103
139
  }),
104
- expectedValidTypeToFollowAsKeyword: () => ({
140
+ __unused12: () => ({
105
141
  message: `Expected valid type to follow 'as' keyword`,
106
- code: 1018,
107
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
142
+ legacyCode: 1018,
143
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
144
+ code: 'expected-valid-type'
108
145
  }),
109
146
  bsFeatureNotSupportedInBrsFiles: (featureName) => ({
110
147
  message: `BrighterScript feature '${featureName}' is not supported in standard BrightScript files`,
111
- code: 1019,
112
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
148
+ legacyCode: 1019,
149
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
150
+ code: 'bs-feature-not-supported'
113
151
  }),
114
- brsConfigJsonIsDeprecated: () => ({
152
+ __ununsed12: () => ({
115
153
  message: `'brsconfig.json' is deprecated. Please rename to 'bsconfig.json'`,
116
- code: 1020,
117
- severity: vscode_languageserver_1.DiagnosticSeverity.Warning
154
+ legacyCode: 1020,
155
+ severity: vscode_languageserver_1.DiagnosticSeverity.Warning,
156
+ code: 'brsconfig-deprecated'
118
157
  }),
119
158
  bsConfigJsonHasSyntaxErrors: (message) => ({
120
159
  message: `Encountered syntax errors in bsconfig.json: ${message}`,
121
- code: 1021,
122
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
123
- }),
124
- namespacedClassCannotShareNamewithNonNamespacedClass: (nonNamespacedClassName) => ({
125
- message: `Namespaced class cannot have the same name as a non-namespaced class '${nonNamespacedClassName}'`,
126
- code: 1022,
127
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
160
+ legacyCode: 1021,
161
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
162
+ code: 'bsconfig-syntax-errors'
128
163
  }),
164
+ itemIsDeprecated: (itemName, deprecatedDescription) => {
165
+ itemName !== null && itemName !== void 0 ? itemName : (itemName = 'Item');
166
+ return {
167
+ message: `${itemName} has been deprecated${deprecatedDescription ? ': ' + deprecatedDescription : ''} `,
168
+ legacyCode: 1022,
169
+ severity: vscode_languageserver_1.DiagnosticSeverity.Hint,
170
+ code: 'item-deprecated'
171
+ };
172
+ },
129
173
  cannotUseOverrideKeywordOnConstructorFunction: () => ({
130
174
  message: 'Override keyword is not allowed on class constructor method',
131
- code: 1023,
132
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
175
+ legacyCode: 1023,
176
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
177
+ code: 'override-keyword-on-constructor'
133
178
  }),
134
- importStatementMustBeDeclaredAtTopOfFile: () => ({
135
- message: `'import' statement must be declared at the top of the file`,
136
- code: 1024,
137
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
179
+ unexpectedStatementLocation: (statementKeyword, locationText) => ({
180
+ message: `'${statementKeyword}' statement must be declared ${locationText}`,
181
+ legacyCode: 1024,
182
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
183
+ code: 'unexpected-statement-location'
138
184
  }),
139
- methodDoesNotExistOnType: (methodName, className) => ({
185
+ __unused8: (methodName, className) => ({
140
186
  message: `Method '${methodName}' does not exist on type '${className}'`,
141
- code: 1025,
187
+ legacyCode: 1025,
142
188
  severity: vscode_languageserver_1.DiagnosticSeverity.Error
143
189
  }),
144
190
  duplicateIdentifier: (memberName) => ({
145
191
  message: `Duplicate identifier '${memberName}'`,
146
- code: 1026,
147
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
192
+ legacyCode: 1026,
193
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
194
+ code: 'duplicate-identifier'
148
195
  }),
149
196
  missingOverrideKeyword: (ancestorClassName) => ({
150
197
  message: `Method has no override keyword but is declared in ancestor class '${ancestorClassName}'`,
151
- code: 1027,
152
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
198
+ legacyCode: 1027,
199
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
200
+ code: 'missing-override-keyword'
153
201
  }),
154
- duplicateClassDeclaration: (scopeName, className) => ({
155
- message: `Scope '${scopeName}' already contains a class with name '${className}'`,
156
- code: 1028,
157
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
202
+ nameCollision: (thisThingKind, thatThingKind, thatThingName) => ({
203
+ message: `${thisThingKind} has same name as ${thatThingKind} '${thatThingName}'`,
204
+ legacyCode: 1028,
205
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
206
+ code: 'name-collision'
158
207
  }),
159
- classCouldNotBeFound: (className, scopeName) => ({
208
+ __unused9: (className, scopeName) => ({
160
209
  message: `Class '${className}' could not be found when this file is included in scope '${scopeName}'`,
161
- code: 1029,
210
+ legacyCode: 1029,
162
211
  severity: vscode_languageserver_1.DiagnosticSeverity.Error,
163
212
  data: {
164
213
  className: className
165
214
  }
166
215
  }),
167
- expectedClassFieldIdentifier: () => ({
216
+ __unused27: () => ({
168
217
  message: `Expected identifier in class body`,
169
- code: 1030,
170
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
218
+ legacyCode: 1030,
219
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
220
+ code: 'expected-identifier-in-body'
171
221
  }),
172
222
  expressionIsNotConstructable: (expressionType) => ({
173
223
  message: `Cannot use the 'new' keyword here because '${expressionType}' is not a constructable type`,
174
- code: 1031,
175
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
224
+ legacyCode: 1031,
225
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
226
+ code: 'not-constructable'
176
227
  }),
177
- expectedClassKeyword: () => ({
178
- message: `Expected 'class' keyword`,
179
- code: 1032,
180
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
228
+ expectedKeyword: (kind) => ({
229
+ message: `Expected '${kind}' keyword`,
230
+ legacyCode: 1032,
231
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
232
+ code: 'expected-keyword'
181
233
  }),
182
- expectedLeftParenAfterCallable: (callableType) => ({
234
+ __unused28: (callableType) => ({
183
235
  message: `Expected '(' after ${callableType}`,
184
- code: 1033,
185
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
236
+ legacyCode: 1033,
237
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
238
+ code: 'expected-left-paren-after-callable'
186
239
  }),
187
- expectedNameAfterCallableKeyword: (callableType) => ({
240
+ __unused29: (callableType) => ({
188
241
  message: `Expected ${callableType} name after '${callableType}' keyword`,
189
- code: 1034,
190
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
242
+ legacyCode: 1034,
243
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
244
+ code: 'expected-name-after-callable'
191
245
  }),
192
- expectedLeftParenAfterCallableName: (callableType) => ({
246
+ __unused30: (callableType) => ({
193
247
  message: `Expected '(' after ${callableType} name`,
194
- code: 1035,
195
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
248
+ legacyCode: 1035,
249
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
250
+ code: 'expected-left-paren-after-callable-name'
196
251
  }),
197
252
  tooManyCallableParameters: (actual, max) => ({
198
253
  message: `Cannot have more than ${max} parameters but found ${actual})`,
199
- code: 1036,
200
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
254
+ legacyCode: 1036,
255
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
256
+ code: 'exceeds-max-parameter-count'
201
257
  }),
202
- invalidFunctionReturnType: (typeText) => ({
258
+ __unused: (typeText) => ({
203
259
  message: `Function return type '${typeText}' is invalid`,
204
- code: 1037,
260
+ legacyCode: 1037,
205
261
  severity: vscode_languageserver_1.DiagnosticSeverity.Error
206
262
  }),
207
263
  requiredParameterMayNotFollowOptionalParameter: (parameterName) => ({
208
264
  message: `Required parameter '${parameterName}' must be declared before any optional parameters`,
209
- code: 1038,
210
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
265
+ legacyCode: 1038,
266
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
267
+ code: 'required-parameter-before-optional'
211
268
  }),
212
269
  expectedNewlineOrColon: () => ({
213
270
  message: `Expected newline or ':' at the end of a statement`,
214
- code: 1039,
215
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
271
+ legacyCode: 1039,
272
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
273
+ code: 'expected-statement-separator'
216
274
  }),
217
- functionNameCannotEndWithTypeDesignator: (callableType, name, designator) => ({
218
- message: `${callableType} name '${name}' cannot end with type designator '${designator}'`,
219
- code: 1040,
220
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
275
+ invalidIdentifier: (name, character) => ({
276
+ message: `Identifier '${name}' may not contain the character '${character}'`,
277
+ legacyCode: 1040,
278
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
279
+ code: 'invalid-identifier'
221
280
  }),
222
- callableBlockMissingEndKeyword: (callableType) => ({
281
+ __unused31: (callableType) => ({
223
282
  message: `Expected 'end ${callableType}' to terminate ${callableType} block`,
224
- code: 1041,
225
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
226
- }),
227
- mismatchedEndCallableKeyword: (expectedCallableType, actualCallableType) => ({
228
- message: `Expected 'end ${expectedCallableType}' to terminate ${expectedCallableType} block but found 'end ${actualCallableType}' instead.`,
229
- code: 1042,
230
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
283
+ legacyCode: 1041,
284
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
285
+ code: 'closing-keyword-mismatch'
231
286
  }),
287
+ closingKeywordMismatch: (expectedCallableType, actualCallableType) => {
288
+ let message = `Expected 'end ${expectedCallableType === null || expectedCallableType === void 0 ? void 0 : expectedCallableType.replace(/^end\s*/, '')}' to terminate ${expectedCallableType} block`;
289
+ if (actualCallableType) {
290
+ message += ` but found 'end ${actualCallableType === null || actualCallableType === void 0 ? void 0 : actualCallableType.replace(/^end\s*/, '')}' instead.`;
291
+ }
292
+ return {
293
+ message: message,
294
+ legacyCode: 1042,
295
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
296
+ code: 'closing-keyword'
297
+ };
298
+ },
232
299
  expectedParameterNameButFound: (text) => ({
233
300
  message: `Expected parameter name, but found '${text !== null && text !== void 0 ? text : ''}'`,
234
- code: 1043,
235
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
301
+ legacyCode: 1043,
302
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
303
+ code: 'expected-parameter-name'
236
304
  }),
237
- functionParameterTypeIsInvalid: (parameterName, typeText) => ({
305
+ __unused2: (parameterName, typeText) => ({
238
306
  message: `Function parameter '${parameterName}' is of invalid type '${typeText}'`,
239
- code: 1044,
307
+ legacyCode: 1044,
240
308
  severity: vscode_languageserver_1.DiagnosticSeverity.Error
241
309
  }),
242
310
  cannotUseReservedWordAsIdentifier: (name) => ({
243
311
  message: `Cannot use reserved word '${name}' as an identifier`,
244
- code: 1045,
245
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
312
+ legacyCode: 1045,
313
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
314
+ code: 'cannot-use-reserved-word'
246
315
  }),
247
- expectedOperatorAfterIdentifier: (operators, name) => {
316
+ expectedOperator: (operators, name) => {
248
317
  operators = Array.isArray(operators) ? operators : [];
318
+ let message = `Expected operator ('${operators.join(`', '`)}')`;
319
+ if (name) {
320
+ message += ` after idenfifier '${name}'`;
321
+ }
249
322
  return {
250
- message: `Expected operator ('${operators.join(`', '`)}') after idenfifier '${name}'`,
251
- code: 1046,
252
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
323
+ message: message,
324
+ legacyCode: 1046,
325
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
326
+ code: 'expected-operator'
253
327
  };
254
328
  },
255
329
  expectedInlineIfStatement: () => ({
256
330
  message: `If/else statement within an inline if should be also inline`,
257
- code: 1047,
258
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
331
+ legacyCode: 1047,
332
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
333
+ code: 'malformed-inline-if'
259
334
  }),
260
335
  expectedFinalNewline: () => ({
261
336
  message: `Expected newline at the end of an inline if statement`,
262
- code: 1048,
263
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
337
+ legacyCode: 1048,
338
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
339
+ code: 'expected-final-newline'
264
340
  }),
265
341
  couldNotFindMatchingEndKeyword: (keyword) => ({
266
342
  message: `Could not find matching 'end ${keyword}'`,
267
- code: 1049,
268
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
343
+ legacyCode: 1049,
344
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
345
+ code: 'expected-end-keyword'
269
346
  }),
270
347
  expectedCatchBlockInTryCatch: () => ({
271
348
  message: `Expected 'catch' block in 'try' statement`,
272
- code: 1050,
273
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
349
+ legacyCode: 1050,
350
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
351
+ code: 'expected-catch'
274
352
  }),
275
- expectedEndForOrNextToTerminateForLoop: () => ({
276
- message: `Expected 'end for' or 'next' to terminate 'for' loop`,
277
- code: 1051,
278
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
353
+ expectedEndForOrNextToTerminateForLoop: (forLoopNameText = TokenKind_1.TokenKind.For) => ({
354
+ message: `Expected 'end for' or 'next' to terminate '${forLoopNameText}' loop`,
355
+ legacyCode: 1051,
356
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
357
+ code: 'expected-loop-terminator'
279
358
  }),
280
- expectedInAfterForEach: (name) => ({
359
+ __unused32: (name) => ({
281
360
  message: `Expected 'in' after 'for each ${name}'`,
282
- code: 1052,
283
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
361
+ legacyCode: 1052,
362
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
363
+ code: 'expected-in-for-each'
284
364
  }),
285
365
  expectedExpressionAfterForEachIn: () => ({
286
366
  message: `Expected expression after 'in' keyword from 'for each' statement`,
287
- code: 1053,
288
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
367
+ legacyCode: 1053,
368
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
369
+ code: 'expected-loop-expression'
289
370
  }),
290
371
  unexpectedColonBeforeIfStatement: () => ({
291
372
  message: `Colon before 'if' statement is not allowed`,
292
- code: 1054,
293
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
373
+ legacyCode: 1054,
374
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
375
+ code: 'unexpected-leading-colon'
294
376
  }),
295
377
  expectedStringLiteralAfterKeyword: (keyword) => ({
296
- message: `Missing string literal after '${keyword}' keyword`,
297
- code: 1055,
298
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
378
+ message: `Expected string literal after '${keyword}' keyword`,
379
+ legacyCode: 1055,
380
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
381
+ code: 'expected-string-literal'
299
382
  }),
300
383
  keywordMustBeDeclaredAtRootLevel: (keyword) => ({
301
384
  message: `${keyword} must be declared at the root level`,
302
- code: 1056,
303
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
385
+ legacyCode: 1056,
386
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
387
+ code: 'keyword-must-be-root-level'
304
388
  }),
305
- libraryStatementMustBeDeclaredAtTopOfFile: () => ({
389
+ __unused5: () => ({
306
390
  message: `'library' statement must be declared at the top of the file`,
307
- code: 1057,
391
+ legacyCode: 1057,
308
392
  severity: vscode_languageserver_1.DiagnosticSeverity.Error
309
393
  }),
310
- expectedEndIfElseIfOrElseToTerminateThenBlock: () => ({
394
+ expectedTerminator: (expectedTerminators, statementType, blockDescriptor = 'statement') => ({
395
+ message: `Expected ${getPossibilitiesString(expectedTerminators)} to terminate '${statementType}' ${blockDescriptor}`,
396
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
397
+ code: 'expected-terminator'
398
+ }),
399
+ __unused14: () => ({
311
400
  message: `Expected 'end if', 'else if', or 'else' to terminate 'then' block`,
312
- code: 1058,
313
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
401
+ legacyCode: 1058,
402
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
403
+ code: 'expected-terminator-on-then'
314
404
  }),
315
- expectedEndTryToTerminateTryCatch: () => ({
405
+ __unused15: () => ({
316
406
  message: `Expected 'end try' to terminate 'try-catch' statement`,
317
- code: 1059,
318
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
407
+ legacyCode: 1059,
408
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
409
+ code: 'expected-terminator-on-try-catch'
319
410
  }),
320
- expectedEndIfToCloseIfStatement: (startingPosition) => ({
321
- message: `Expected 'end if' to close 'if' statement started at ${(startingPosition === null || startingPosition === void 0 ? void 0 : startingPosition.line) + 1}:${(startingPosition === null || startingPosition === void 0 ? void 0 : startingPosition.character) + 1}`,
322
- code: 1060,
323
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
411
+ __unused16: (startingPosition) => ({
412
+ message: `Expected 'end if' to close 'if' statement started at ${(startingPosition === null || startingPosition === void 0 ? void 0 : startingPosition.line) + 1}:${(startingPosition === null || startingPosition === void 0 ? void 0 : startingPosition.character) + 1} `,
413
+ legacyCode: 1060,
414
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
415
+ code: 'expected-terminator-on-if'
324
416
  }),
325
- expectedStatementToFollowConditionalCondition: (conditionType) => ({
417
+ expectedStatement: (conditionType, extraDetail) => {
418
+ let message = 'Expected statement';
419
+ if (conditionType) {
420
+ message += ` to follow '${conditionType === null || conditionType === void 0 ? void 0 : conditionType.toLowerCase()}'`;
421
+ }
422
+ if (extraDetail) {
423
+ message += ` ${extraDetail}`;
424
+ }
425
+ return {
426
+ message: message,
427
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
428
+ code: 'expected-statement'
429
+ };
430
+ },
431
+ __unused18: (conditionType) => ({
326
432
  message: `Expected a statement to follow '${conditionType === null || conditionType === void 0 ? void 0 : conditionType.toLowerCase()} ...condition... then'`,
327
- code: 1061,
328
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
433
+ legacyCode: 1061,
434
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
435
+ code: 'expected-statement-after-conditional'
329
436
  }),
330
- expectedStatementToFollowElse: () => ({
437
+ __unused19: () => ({
331
438
  message: `Expected a statement to follow 'else'`,
332
- code: 1062,
333
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
439
+ legacyCode: 1062,
440
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
441
+ code: 'expected-statement-after-else'
334
442
  }),
335
- consecutiveIncrementDecrementOperatorsAreNotAllowed: () => ({
336
- message: `Consecutive increment/decrement operators are not allowed`,
337
- code: 1063,
338
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
443
+ unexpectedOperator: () => ({
444
+ message: `Unexpected operator`,
445
+ legacyCode: 1063,
446
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
447
+ code: 'unexpected-operator'
339
448
  }),
340
- incrementDecrementOperatorsAreNotAllowedAsResultOfFunctionCall: () => ({
341
- message: ``,
342
- code: 1064,
343
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
449
+ __unused13: () => ({
450
+ message: `Increment / decrement operators are not allowed on function calls`,
451
+ legacyCode: 1064,
452
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
453
+ code: 'increment-decrement-on-function-call'
344
454
  }),
345
455
  xmlUnexpectedTag: (tagName) => ({
346
456
  message: `Unexpected tag '${tagName}'`,
347
- code: 1065,
348
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
457
+ legacyCode: 1065,
458
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
459
+ code: 'unexpected-tag'
349
460
  }),
350
- expectedStatementOrFunctionCallButReceivedExpression: () => ({
461
+ __unused20: () => ({
351
462
  message: `Expected statement or function call but instead found expression`,
352
- code: 1066,
353
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
463
+ legacyCode: 1066,
464
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
465
+ code: 'expected-statement-not-expression'
354
466
  }),
355
467
  xmlFunctionNotFound: (name) => ({
356
468
  message: `Cannot find function with name '${name}' in component scope`,
357
- code: 1067,
358
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
469
+ legacyCode: 1067,
470
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
471
+ code: 'function-not-found'
359
472
  }),
360
473
  xmlInvalidFieldType: (name) => ({
361
474
  message: `Invalid field type ${name}`,
362
- code: 1068,
363
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
475
+ legacyCode: 1068,
476
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
477
+ code: 'invalid-field-type'
364
478
  }),
365
479
  xmlUnexpectedChildren: (tagName) => ({
366
480
  message: `Tag '${tagName}' should not have children`,
367
- code: 1069,
368
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
481
+ legacyCode: 1069,
482
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
483
+ code: 'unexpected-children'
369
484
  }),
370
485
  xmlTagMissingAttribute: (tagName, attrName) => ({
371
486
  message: `Tag '${tagName}' must have a '${attrName}' attribute`,
372
- code: 1070,
373
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
487
+ legacyCode: 1070,
488
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
489
+ code: 'expected-attribute'
374
490
  }),
375
491
  expectedLabelIdentifierAfterGotoKeyword: () => ({
376
492
  message: `Expected label identifier after 'goto' keyword`,
377
- code: 1071,
378
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
493
+ legacyCode: 1071,
494
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
495
+ code: 'expected-label'
379
496
  }),
380
- expectedRightSquareBraceAfterArrayOrObjectIndex: () => ({
497
+ __unused26: () => ({
381
498
  message: `Expected ']' after array or object index`,
382
- code: 1072,
383
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
499
+ legacyCode: 1072,
500
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
501
+ code: 'expected-right-brace'
384
502
  }),
385
- expectedPropertyNameAfterPeriod: () => ({
503
+ __unused21: () => ({
386
504
  message: `Expected property name after '.'`,
387
- code: 1073,
388
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
505
+ legacyCode: 1073,
506
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
507
+ code: 'expected-property-name'
389
508
  }),
390
509
  tooManyCallableArguments: (actual, max) => ({
391
- message: `Cannot have more than ${max} arguments but found ${actual}`,
392
- code: 1074,
393
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
394
- }),
395
- expectedRightParenAfterFunctionCallArguments: () => ({
396
- message: `Expected ')' after function call arguments`,
397
- code: 1075,
398
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
510
+ message: `Cannot have more than ${max} arguments but found ${actual} `,
511
+ legacyCode: 1074,
512
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
513
+ code: 'exceeds-max-argument-count'
399
514
  }),
400
- unmatchedLeftParenAfterExpression: () => ({
515
+ /**
516
+ * @param unmatchedToken Should be one of '(', '[', or '{'
517
+ * @param afterDetail any additional message to describe what came before the unmatched token
518
+ */
519
+ unmatchedLeftToken: (unmatchedToken, afterDetail = '') => {
520
+ let matchingToken = '';
521
+ switch (unmatchedToken) {
522
+ case '(':
523
+ matchingToken = ')';
524
+ break;
525
+ case '[':
526
+ matchingToken = ']';
527
+ break;
528
+ case '{':
529
+ matchingToken = '}';
530
+ break;
531
+ }
532
+ let message = `Unmatched '${unmatchedToken}'`;
533
+ if (matchingToken) {
534
+ message += `: expected '${matchingToken}'`;
535
+ }
536
+ if (afterDetail) {
537
+ message += ` after ${afterDetail}`;
538
+ }
539
+ return {
540
+ message: message,
541
+ legacyCode: 1075,
542
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
543
+ code: 'unmatched-left-token'
544
+ };
545
+ },
546
+ __unused23: () => ({
401
547
  message: `Unmatched '(': expected ')' after expression`,
402
- code: 1076,
403
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
548
+ legacyCode: 1076,
549
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
550
+ code: 'unmatched-left-paren'
404
551
  }),
405
- unmatchedLeftSquareBraceAfterArrayLiteral: () => ({
552
+ __unused24: () => ({
406
553
  message: `Unmatched '[': expected ']' after array literal`,
407
- code: 1077,
408
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
554
+ legacyCode: 1077,
555
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
556
+ code: 'unmatched-left-brace'
409
557
  }),
410
558
  unexpectedAAKey: () => ({
411
559
  message: `Expected identifier or string as associative array key`,
412
- code: 1078,
413
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
560
+ legacyCode: 1078,
561
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
562
+ code: 'invalid-aa-key'
414
563
  }),
415
564
  expectedColonBetweenAAKeyAndvalue: () => ({
416
565
  message: `Expected ':' between associative array key and value`,
417
- code: 1079,
418
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
566
+ legacyCode: 1079,
567
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
568
+ code: 'expected-aa-separator'
419
569
  }),
420
- unmatchedLeftCurlyAfterAALiteral: () => ({
570
+ __unused25: () => ({
421
571
  message: `Unmatched '{': expected '}' after associative array literal`,
422
- code: 1080,
423
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
572
+ legacyCode: 1080,
573
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
574
+ code: 'unmatched-left-curly'
424
575
  }),
425
- foundUnexpectedToken: (text) => ({
426
- message: `Found unexpected token '${text}'`,
427
- code: 1081,
428
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
576
+ unexpectedToken: (text) => ({
577
+ message: `Unexpected token '${text}'`,
578
+ legacyCode: 1081,
579
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
580
+ code: 'unexpected-token'
429
581
  }),
430
582
  /**
431
583
  * Used in the lexer anytime we encounter an unsupported character
432
584
  */
433
585
  unexpectedCharacter: (text) => ({
434
- message: `Unexpected character '${text}' (char code ${text === null || text === void 0 ? void 0 : text.charCodeAt(0)})`,
435
- code: 1082,
436
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
586
+ message: `Unexpected character '${text}'(char code ${text === null || text === void 0 ? void 0 : text.charCodeAt(0)})`,
587
+ legacyCode: 1082,
588
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
589
+ code: 'unexpected-character'
437
590
  }),
438
- unterminatedStringAtEndOfLine: () => ({
439
- message: `Unterminated string at end of line`,
440
- code: 1083,
441
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
591
+ unterminatedString: () => ({
592
+ message: `Unterminated string literal`,
593
+ legacyCode: 1083,
594
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
595
+ code: 'unterminated-string'
442
596
  }),
443
- unterminatedStringAtEndOfFile: () => ({
597
+ __unused33: () => ({
444
598
  message: `Unterminated string at end of file`,
445
- code: 1084,
446
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
599
+ legacyCode: 1084,
600
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
601
+ code: 'unterminated-string-at-end-of-file'
447
602
  }),
448
- fractionalHexLiteralsAreNotSupported: () => ({
603
+ __unused44: () => ({
449
604
  message: `Fractional hex literals are not supported`,
450
- code: 1085,
451
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
605
+ legacyCode: 1085,
606
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
607
+ code: 'fractional-hex-literal'
452
608
  }),
453
609
  unexpectedConditionalCompilationString: () => ({
454
- message: `Unexpected conditional-compilation string`,
455
- code: 1086,
456
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
610
+ message: `Unknown conditional compile keyword`,
611
+ legacyCode: 1086,
612
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
613
+ code: 'unknown-conditional-compile-keyword'
457
614
  }),
458
615
  duplicateConstDeclaration: (name) => ({
459
616
  message: `Attempting to redeclare #const with name '${name}'`,
460
- code: 1087,
461
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
617
+ legacyCode: 1087,
618
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
619
+ code: 'duplicate-const-declaration'
462
620
  }),
463
- constAliasDoesNotExist: (name) => ({
621
+ __unused34: (name) => ({
464
622
  message: `Attempting to create #const alias of '${name}', but no such #const exists`,
465
- code: 1088,
466
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
623
+ legacyCode: 1088,
624
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
625
+ code: 'const-alias-does-not-exist'
467
626
  }),
468
627
  invalidHashConstValue: () => ({
469
628
  message: '#const declarations can only have values of `true`, `false`, or other #const names',
470
- code: 1089,
471
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
629
+ legacyCode: 1089,
630
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
631
+ code: 'invalid-hash-const-value'
472
632
  }),
473
- referencedConstDoesNotExist: () => ({
633
+ hashConstDoesNotExist: () => ({
474
634
  message: `Referenced #const does not exist`,
475
- code: 1090,
476
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
635
+ legacyCode: 1090,
636
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
637
+ code: 'hash-const-does-not-exist'
477
638
  }),
478
639
  invalidHashIfValue: () => ({
479
640
  message: `#if conditionals can only be 'true', 'false', or other #const names`,
480
- code: 1091,
481
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
641
+ legacyCode: 1091,
642
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
643
+ code: 'invalid-hash-if-value'
482
644
  }),
645
+ /**
646
+ * 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.
647
+ */
483
648
  hashError: (message) => ({
484
- message: `#error ${message}`,
485
- code: 1092,
486
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
649
+ message: `#error ${message} `,
650
+ legacyCode: 1092,
651
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
652
+ code: 'hash-error'
487
653
  }),
488
- expectedEqualAfterConstName: () => ({
654
+ __unused43: () => ({
489
655
  message: `Expected '=' after #const`,
490
- code: 1093,
491
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
656
+ legacyCode: 1093,
657
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
658
+ code: 'expected-equal-after-hash-const'
492
659
  }),
493
- expectedHashElseIfToCloseHashIf: (startingLine) => ({
494
- message: `Expected '#else if' to close '#if' conditional compilation statement starting on line ${startingLine}`,
495
- code: 1094,
496
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
660
+ __unused17: (startingLine) => ({
661
+ message: `Expected '#end if' to close '#if' conditional compilation statement starting on line ${startingLine} `,
662
+ legacyCode: 1094,
663
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
664
+ code: 'expected-terminator-on-hash-if'
497
665
  }),
498
- constNameCannotBeReservedWord: () => ({
666
+ __unused35: () => ({
499
667
  message: `#const name cannot be a reserved word`,
500
- code: 1095,
501
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
668
+ legacyCode: 1095,
669
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
670
+ code: 'const-reservered-word'
502
671
  }),
503
- expectedIdentifier: () => ({
672
+ __unused22: () => ({
504
673
  message: `Expected identifier`,
505
- code: 1096,
506
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
674
+ legacyCode: 1096,
675
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
676
+ code: 'expected-identifier'
507
677
  }),
508
678
  expectedAttributeNameAfterAtSymbol: () => ({
509
679
  message: `Expected xml attribute name after '@'`,
510
- code: 1097,
511
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
680
+ legacyCode: 1097,
681
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
682
+ code: 'expected-attribute-name'
512
683
  }),
513
684
  childFieldTypeNotAssignableToBaseProperty: (childTypeName, baseTypeName, fieldName, childFieldType, parentFieldType) => ({
514
- message: `Field '${fieldName}' in class '${childTypeName}' is not assignable to the same field in base class '${baseTypeName}'. Type '${childFieldType}' is not assignable to type '${parentFieldType}'.`,
515
- code: 1098,
516
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
685
+ message: `Field '${fieldName}' in class '${childTypeName}' is not assignable to the same field in base class '${baseTypeName}'.Type '${childFieldType}' is not assignable to type '${parentFieldType}'.`,
686
+ legacyCode: 1098,
687
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
688
+ code: 'field-inheritance-mismatch'
517
689
  }),
518
- classChildMemberDifferentMemberTypeThanAncestor: (memberType, parentMemberType, parentClassName) => ({
690
+ __unused36: (memberType, parentMemberType, parentClassName) => ({
519
691
  message: `Class member is a ${memberType} here but a ${parentMemberType} in ancestor class '${parentClassName}'`,
520
- code: 1099,
521
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
692
+ legacyCode: 1099,
693
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
694
+ code: 'child-field-type-different'
522
695
  }),
523
696
  classConstructorMissingSuperCall: () => ({
524
697
  message: `Missing "super()" call in class constructor method.`,
525
- code: 1100,
526
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
698
+ legacyCode: 1100,
699
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
700
+ code: 'expected-super-call'
527
701
  }),
528
702
  classConstructorIllegalUseOfMBeforeSuperCall: () => ({
529
703
  message: `Illegal use of "m" before calling "super()"`,
530
- code: 1101,
531
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
704
+ legacyCode: 1101,
705
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
706
+ code: 'expected-super-before-statement'
532
707
  }),
533
708
  classFieldCannotBeOverridden: () => ({
534
709
  message: `Class field cannot be overridden`,
535
- code: 1102,
536
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
710
+ legacyCode: 1102,
711
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
712
+ code: 'invalid-field-override'
537
713
  }),
538
714
  unusedAnnotation: () => ({
539
715
  message: `This annotation is not attached to any statement`,
540
- code: 1103,
541
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
716
+ legacyCode: 1103,
717
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
718
+ code: 'unexpected-annotation'
542
719
  }),
543
720
  localVarShadowedByScopedFunction: () => ({
544
- message: `Declaring a local variable with same name as scoped function can result in unexpected behavior`,
545
- code: 1104,
546
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
721
+ message: `Declaring a local variable with same name as scoped function or class can result in unexpected behavior`,
722
+ legacyCode: 1104,
723
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
724
+ code: 'var-shadows-function'
547
725
  }),
548
726
  scopeFunctionShadowedByBuiltInFunction: () => ({
549
- message: `Scope function will not be accessible because it has the same name as a built-in function`,
550
- code: 1105,
551
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
727
+ message: `Scope function will not be accessible because it has the same name as a built -in function`,
728
+ legacyCode: 1105,
729
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
730
+ code: 'native-function-collision'
552
731
  }),
553
- localVarSameNameAsClass: (className) => ({
732
+ __unused38: (className) => ({
554
733
  message: `Local variable has same name as class '${className}'`,
555
- code: 1106,
556
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
734
+ legacyCode: 1106,
735
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
736
+ code: 'local-var-same-name-as-class'
557
737
  }),
558
- unnecessaryCodebehindScriptImport: () => ({
738
+ __unused45: () => ({
559
739
  message: `This import is unnecessary because compiler option 'autoImportComponentScript' is enabled`,
560
- code: 1107,
561
- severity: vscode_languageserver_1.DiagnosticSeverity.Warning
740
+ legacyCode: 1107,
741
+ severity: vscode_languageserver_1.DiagnosticSeverity.Warning,
742
+ code: 'unnecessary-import'
562
743
  }),
563
- expectedOpenParenToFollowCallfuncIdentifier: () => ({
744
+ __unused37: () => ({
564
745
  message: `Expected '(' to follow callfunc identifier`,
565
- code: 1108,
566
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
746
+ legacyCode: 1108,
747
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
748
+ code: 'expected-left-paren-after-callfunc'
567
749
  }),
568
- expectedTokenAButFoundTokenB: (tokenA, tokenB) => ({
569
- message: `Expected '${tokenA}' but instead found ${tokenB}`,
570
- code: 1109,
571
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
750
+ expectedToken: (...tokenKinds) => ({
751
+ message: `Expected token '${tokenKinds.join(`' or '`)}'`,
752
+ legacyCode: 1109,
753
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
754
+ code: 'expected-token'
572
755
  }),
573
- parameterMayNotHaveSameNameAsNamespace: (paramName) => ({
756
+ __unused10: (paramName) => ({
574
757
  message: `Parameter '${paramName}' may not have the same name as namespace`,
575
- code: 1110,
576
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
758
+ legacyCode: 1110,
759
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
760
+ code: 'parameter-same-name-as-namespace'
577
761
  }),
578
- variableMayNotHaveSameNameAsNamespace: (variableName) => ({
762
+ __unused11: (variableName) => ({
579
763
  message: `Variable '${variableName}' may not have the same name as namespace`,
580
- code: 1111,
581
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
764
+ legacyCode: 1111,
765
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
766
+ code: 'variable-same-name-as-namespace'
582
767
  }),
583
- unterminatedTemplateStringAtEndOfFile: () => ({
584
- message: `Unterminated template string at end of file`,
585
- code: 1113,
586
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
768
+ unterminatedTemplateString: () => ({
769
+ message: `Unterminated template string`,
770
+ legacyCode: 1113,
771
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
772
+ code: 'unterminated-template-string'
587
773
  }),
588
774
  unterminatedTemplateExpression: () => ({
589
775
  message: `Unterminated template string expression. '\${' must be followed by expression, then '}'`,
590
- code: 1114,
591
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
776
+ legacyCode: 1114,
777
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
778
+ code: 'unterminated-template-string-expression'
592
779
  }),
593
780
  duplicateComponentName: (componentName) => ({
594
781
  message: `There are multiple components with the name '${componentName}'`,
595
- code: 1115,
596
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
782
+ legacyCode: 1115,
783
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
784
+ code: 'duplicate-component-name'
597
785
  }),
598
- functionCannotHaveSameNameAsClass: (className) => ({
786
+ __unused6: (className) => ({
599
787
  message: `Function has same name as class '${className}'`,
600
- code: 1116,
788
+ legacyCode: 1116,
601
789
  severity: vscode_languageserver_1.DiagnosticSeverity.Error
602
790
  }),
603
- missingExceptionVarToFollowCatch: () => ({
604
- message: `Missing exception variable after 'catch' keyword`,
605
- code: 1117,
606
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
791
+ expectedExceptionVarToFollowCatch: () => ({
792
+ message: `Expected exception variable after 'catch' keyword`,
793
+ legacyCode: 1117,
794
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
795
+ code: 'expected-exception-variable'
607
796
  }),
608
797
  missingExceptionExpressionAfterThrowKeyword: () => ({
609
798
  message: `Missing exception expression after 'throw' keyword`,
610
- code: 1118,
611
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
799
+ legacyCode: 1118,
800
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
801
+ code: 'expected-throw-expression'
612
802
  }),
613
- missingLeftSquareBracketAfterDimIdentifier: () => ({
803
+ __unused42: () => ({
614
804
  message: `Missing left square bracket after 'dim' identifier`,
615
- code: 1119,
616
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
805
+ legacyCode: 1119,
806
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
807
+ code: 'expected-left-brace-after-dim'
617
808
  }),
618
- missingRightSquareBracketAfterDimIdentifier: () => ({
809
+ __unused39: () => ({
619
810
  message: `Missing right square bracket after 'dim' identifier`,
620
- code: 1120,
621
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
811
+ legacyCode: 1120,
812
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
813
+ code: 'missing-right-brace-after-dim'
622
814
  }),
623
815
  missingExpressionsInDimStatement: () => ({
624
816
  message: `Missing expression(s) in 'dim' statement`,
625
- code: 1121,
626
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
817
+ legacyCode: 1121,
818
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
819
+ code: 'expected-dim-expression'
627
820
  }),
628
821
  mismatchedOverriddenMemberVisibility: (childClassName, memberName, childAccessModifier, ancestorAccessModifier, ancestorClassName) => ({
629
822
  message: `Access modifier mismatch: '${memberName}' is ${childAccessModifier} in type '${childClassName}' but is ${ancestorAccessModifier} in base type '${ancestorClassName}'.`,
630
- code: 1122,
631
- severity: vscode_languageserver_1.DiagnosticSeverity.Error
823
+ legacyCode: 1122,
824
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
825
+ code: 'access-modifier-mismatch'
632
826
  }),
633
- cannotFindType: (typeName) => ({
827
+ __unused3: (typeName) => ({
634
828
  message: `Cannot find type with name '${typeName}'`,
635
- code: 1123,
829
+ legacyCode: 1123,
636
830
  severity: vscode_languageserver_1.DiagnosticSeverity.Error
637
831
  }),
638
- argumentTypeMismatch: (actualTypeString, expectedTypeString) => ({
639
- message: `Argument of type '${actualTypeString}' is not assignable to parameter of type '${expectedTypeString}'`,
640
- code: 1124,
832
+ enumValueMustBeType: (expectedType) => ({
833
+ message: `Enum value must be type '${expectedType}'`,
834
+ legacyCode: 1124,
835
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
836
+ code: 'enum-type-mismatch'
837
+ }),
838
+ enumValueIsRequired: (expectedType) => ({
839
+ message: `Value is required for ${expectedType} enum`,
840
+ legacyCode: 1125,
841
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
842
+ code: 'expected-enum-value'
843
+ }),
844
+ __unused40: (name, enumName) => ({
845
+ message: `Property '${name}' does not exist on enum '${enumName}'`,
846
+ legacyCode: 1126,
847
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
848
+ code: 'unknown-enum-value'
849
+ }),
850
+ __unused7: (scopeName, enumName) => ({
851
+ message: `Scope '${scopeName}' already contains an enum with name '${enumName}'`,
852
+ legacyCode: 1127,
641
853
  severity: vscode_languageserver_1.DiagnosticSeverity.Error
854
+ }),
855
+ unknownRoSGNode: (nodeName) => ({
856
+ message: `Unknown roSGNode '${nodeName}'`,
857
+ legacyCode: 1128,
858
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
859
+ code: 'unknown-rosgnode'
860
+ }),
861
+ unknownBrightScriptComponent: (componentName) => ({
862
+ message: `Unknown BrightScript component '${componentName}'`,
863
+ legacyCode: 1129,
864
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
865
+ code: 'unknown-brightscript-component'
866
+ }),
867
+ mismatchCreateObjectArgumentCount: (componentName, allowedArgCounts, actualCount) => {
868
+ const argCountArray = (allowedArgCounts || [1]).sort().filter((value, index, self) => self.indexOf(value) === index);
869
+ return {
870
+ message: `For ${componentName}, expected ${argCountArray.map(c => c.toString()).join(' or ')} total arguments, but got ${actualCount}.`,
871
+ legacyCode: 1130,
872
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
873
+ code: 'incorrect-createobject-argument-count'
874
+ };
875
+ },
876
+ __unused41: (componentName, deprecatedDescription) => ({
877
+ message: `${componentName} has been deprecated${deprecatedDescription ? ': ' + deprecatedDescription : ''} `,
878
+ legacyCode: 1131,
879
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
880
+ code: 'deprecated-brightscript-component'
881
+ }),
882
+ circularReferenceDetected: (items = []) => {
883
+ let detail = '';
884
+ if (Array.isArray(items)) {
885
+ if (items.length > 1) {
886
+ detail += ' between';
887
+ }
888
+ if (items.length > 0) {
889
+ detail += ' ' + items.map(item => `'${item}'`).join(' -> ');
890
+ }
891
+ }
892
+ else if (items) {
893
+ detail = ` '${items}'`;
894
+ }
895
+ return {
896
+ message: `Circular reference detected${detail}`,
897
+ legacyCode: 1132,
898
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
899
+ code: 'circular-reference'
900
+ };
901
+ },
902
+ unexpectedStatementOutsideFunction: () => ({
903
+ message: `Unexpected statement found outside of function body`,
904
+ legacyCode: 1133,
905
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
906
+ code: 'unexpected-statement'
907
+ }),
908
+ detectedTooDeepFileSource: (numberOfParentDirectories) => ({
909
+ message: `Expected directory depth no larger than 7, but found ${numberOfParentDirectories} `,
910
+ legacyCode: 1134,
911
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
912
+ code: 'directory-depth'
913
+ }),
914
+ illegalContinueStatement: () => ({
915
+ message: `Continue statement must be contained within a loop statement`,
916
+ legacyCode: 1135,
917
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
918
+ code: 'unexpected-continue'
919
+ }),
920
+ keywordMustBeDeclaredAtNamespaceLevel: (keyword) => ({
921
+ message: `${keyword} must be declared at the root level or within a namespace`,
922
+ legacyCode: 1136,
923
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
924
+ code: 'invalid-declaration-location'
925
+ }),
926
+ itemCannotBeUsedAsVariable: (itemType) => ({
927
+ message: `${itemType} cannot be used as a variable`,
928
+ legacyCode: 1137,
929
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
930
+ code: 'type-not-variable'
931
+ }),
932
+ callfuncHasToManyArgs: (numberOfArgs) => ({
933
+ message: `You can not have more than 5 arguments in a callFunc.${numberOfArgs} found.`,
934
+ legacyCode: 1138,
935
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
936
+ code: 'exceeds-max-callfunc-arg-count'
937
+ }),
938
+ noOptionalChainingInLeftHandSideOfAssignment: () => ({
939
+ message: `Optional chaining may not be used in the left-hand side of an assignment`,
940
+ legacyCode: 1139,
941
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
942
+ code: 'unexpected-optional-chain'
943
+ }),
944
+ /**
945
+ * @param name for function calls where we can't find the name of the function
946
+ * @param fullName if a namespaced name, this is the full name `alpha.beta.charlie`, otherwise it's the same as `name`
947
+ * @param typeName if 'name' refers to a member, what is the the type it is a member of?
948
+ * @param typeDescriptor defaults to 'type' ... could also be 'namespace', etc.
949
+ */
950
+ cannotFindFunction: (name, fullName, typeName, typeDescriptor = 'type') => ({
951
+ message: `Cannot find function '${name}'${typeName ? ` for ${typeDescriptor} '${typeName}'` : ''} `,
952
+ legacyCode: 1140,
953
+ data: {
954
+ name: name,
955
+ fullName: fullName !== null && fullName !== void 0 ? fullName : name,
956
+ typeName: typeName ? typeName : undefined
957
+ },
958
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
959
+ code: 'cannot-find-function'
960
+ }),
961
+ voidFunctionMayNotReturnValue: (functionType = 'function') => ({
962
+ message: `Void ${functionType} may not return a value`,
963
+ legacyCode: 1141,
964
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
965
+ code: 'unexpected-return-value'
966
+ }),
967
+ nonVoidFunctionMustReturnValue: (functionType = 'function') => ({
968
+ message: `Non-void ${functionType} must return a value`,
969
+ legacyCode: 1142,
970
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
971
+ code: 'missing-return-value'
972
+ }),
973
+ assignmentTypeMismatch: (actualTypeString, expectedTypeString, data) => ({
974
+ message: `Type '${actualTypeString}' is not compatible with type '${expectedTypeString}'${typeCompatibilityMessage(actualTypeString, expectedTypeString, data)}`,
975
+ data: data,
976
+ legacyCode: 1143,
977
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
978
+ code: 'assignment-type-mismatch'
979
+ }),
980
+ operatorTypeMismatch: (operatorString, firstType, secondType = '') => ({
981
+ message: `Operator '${operatorString}' cannot be applied to type${secondType ? 's' : ''} '${firstType}'${secondType ? ` and '${secondType}'` : ''}`,
982
+ legacyCode: 1144,
983
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
984
+ code: 'operator-type-mismatch'
985
+ }),
986
+ incompatibleSymbolDefinition: (symbol, options = {}) => ({
987
+ message: `'${symbol}' is incompatible${incompatibleSymbolMessage(symbol, options)}`,
988
+ legacyCode: 1145,
989
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
990
+ code: 'incompatible-definition'
991
+ }),
992
+ memberAccessibilityMismatch: (memberName, accessModifierFlag, definingClassName) => {
993
+ let accessModName = TokenKind_1.TokenKind.Public;
994
+ // eslint-disable-next-line no-bitwise
995
+ if (accessModifierFlag & 8 /* SymbolTypeFlag.private */) {
996
+ accessModName = TokenKind_1.TokenKind.Private;
997
+ // eslint-disable-next-line no-bitwise
998
+ }
999
+ else if (accessModifierFlag & 16 /* SymbolTypeFlag.protected */) {
1000
+ accessModName = TokenKind_1.TokenKind.Protected;
1001
+ }
1002
+ accessModName = accessModName.toLowerCase();
1003
+ let accessAdditionalInfo = '';
1004
+ // eslint-disable-next-line no-bitwise
1005
+ if (accessModifierFlag & 8 /* SymbolTypeFlag.private */) {
1006
+ accessAdditionalInfo = ` and only accessible from within class '${definingClassName}'`;
1007
+ // eslint-disable-next-line no-bitwise
1008
+ }
1009
+ else if (accessModifierFlag & 16 /* SymbolTypeFlag.protected */) {
1010
+ accessAdditionalInfo = ` and only accessible from within class '${definingClassName}' and its subclasses`;
1011
+ }
1012
+ return {
1013
+ message: `Member '${memberName}' is ${accessModName}${accessAdditionalInfo}`,
1014
+ legacyCode: 1146,
1015
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
1016
+ code: 'member-access-violation'
1017
+ };
1018
+ },
1019
+ invalidTypecastStatementApplication: (foundApplication) => ({
1020
+ message: `'typecast' statement can only be applied to 'm', but was applied to '${foundApplication}'`,
1021
+ legacyCode: 1148,
1022
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
1023
+ code: 'invalid-typecast-target'
1024
+ }),
1025
+ itemCannotBeUsedAsType: (typeText) => ({
1026
+ message: `'${typeText}' cannot be used as a type`,
1027
+ legacyCode: 1149,
1028
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
1029
+ code: 'invalid-type-reference'
1030
+ }),
1031
+ unsafeUnmatchedTerminatorInConditionalCompileBlock: (terminator) => ({
1032
+ message: `Unsafe unmatched terminator '${terminator}' in conditional compilation block`,
1033
+ legacyCode: 1150,
1034
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
1035
+ code: 'inconsistent-conditional-compile-nesting'
1036
+ }),
1037
+ returnTypeCoercionMismatch: (returnType = 'string') => ({
1038
+ message: `Function has no return statement and will return 'invalid': '${returnType}' cannot be coerced into 'invalid'`,
1039
+ legacyCode: 1151,
1040
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
1041
+ code: 'return-type-coercion-mismatch'
1042
+ }),
1043
+ argumentTypeMismatch: (actualTypeString, expectedTypeString, data) => ({
1044
+ message: `Argument of type '${actualTypeString}' is not compatible with parameter of type '${expectedTypeString}'${typeCompatibilityMessage(actualTypeString, expectedTypeString, data)} `,
1045
+ data: data,
1046
+ legacyCode: 1152,
1047
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
1048
+ code: 'argument-type-mismatch'
1049
+ }),
1050
+ returnTypeMismatch: (actualTypeString, expectedTypeString, data) => ({
1051
+ message: `Type '${actualTypeString}' is not compatible with declared return type '${expectedTypeString}'${typeCompatibilityMessage(actualTypeString, expectedTypeString, data)} '`,
1052
+ data: data,
1053
+ legacyCode: 1153,
1054
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
1055
+ code: 'return-type-mismatch'
1056
+ }),
1057
+ cannotFindCallFuncFunction: (name, fullName, typeName) => ({
1058
+ message: `Cannot find callfunc function '${name}' for type '${typeName}'`,
1059
+ data: {
1060
+ name: name,
1061
+ fullName: fullName,
1062
+ typeName: typeName,
1063
+ isCallfunc: true
1064
+ },
1065
+ legacyCode: 1154,
1066
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
1067
+ code: 'cannot-find-callfunc'
1068
+ }),
1069
+ notCallable: (name) => ({
1070
+ message: `'${name}' is not callable'`,
1071
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
1072
+ code: 'not-callable'
1073
+ }),
1074
+ notIterable: (typeName) => ({
1075
+ message: `Type '${typeName}' is not iterable`,
1076
+ severity: vscode_languageserver_1.DiagnosticSeverity.Error,
1077
+ code: 'not-iterable'
642
1078
  })
643
1079
  };
1080
+ exports.defaultMaximumTruncationLength = 160;
1081
+ function typeCompatibilityMessage(actualTypeString, expectedTypeString, data) {
1082
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
1083
+ let message = '';
1084
+ actualTypeString = (_b = (_a = data === null || data === void 0 ? void 0 : data.actualType) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : actualTypeString;
1085
+ expectedTypeString = (_d = (_c = data === null || data === void 0 ? void 0 : data.expectedType) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : expectedTypeString;
1086
+ if (((_e = data === null || data === void 0 ? void 0 : data.missingFields) === null || _e === void 0 ? void 0 : _e.length) > 0) {
1087
+ message = `\n Type '${actualTypeString}' is missing the following members of type '${expectedTypeString}': ` + util_1.default.truncate({
1088
+ leadingText: ``,
1089
+ trailingText: '',
1090
+ itemSeparator: ', ',
1091
+ items: data.missingFields,
1092
+ partBuilder: (x) => x.name,
1093
+ maxLength: exports.defaultMaximumTruncationLength
1094
+ });
1095
+ }
1096
+ else if (((_f = data === null || data === void 0 ? void 0 : data.fieldMismatches) === null || _f === void 0 ? void 0 : _f.length) > 0) {
1097
+ message = '. ' + util_1.default.truncate({
1098
+ leadingText: `Type '${actualTypeString}' has incompatible members:`,
1099
+ items: data.fieldMismatches,
1100
+ itemSeparator: '',
1101
+ partBuilder: (x) => `\n member "${x.name}" should be '${x.expectedType}' but is '${x.actualType}'`,
1102
+ maxLength: exports.defaultMaximumTruncationLength
1103
+ });
1104
+ }
1105
+ else if (((_g = data === null || data === void 0 ? void 0 : data.parameterMismatches) === null || _g === void 0 ? void 0 : _g.length) > 0) {
1106
+ message = '. ' + util_1.default.truncate({
1107
+ leadingText: `Type '${actualTypeString}' has incompatible parameters:`,
1108
+ items: data.parameterMismatches,
1109
+ itemSeparator: '',
1110
+ partBuilder: (x) => {
1111
+ var _a, _b, _c, _d;
1112
+ let pExpected = (_b = (_a = x.data) === null || _a === void 0 ? void 0 : _a.expectedType.toString()) !== null && _b !== void 0 ? _b : 'dynamic';
1113
+ let pActual = (_d = (_c = x.data) === null || _c === void 0 ? void 0 : _c.actualType.toString()) !== null && _d !== void 0 ? _d : 'dynamic';
1114
+ if (x.expectedOptional !== x.actualOptional) {
1115
+ pExpected += x.expectedOptional ? '?' : '';
1116
+ pActual += x.actualOptional ? '?' : '';
1117
+ }
1118
+ return `\n parameter ${x.index + 1} should be '${pExpected}' but is '${pActual}'`;
1119
+ },
1120
+ maxLength: exports.defaultMaximumTruncationLength
1121
+ });
1122
+ }
1123
+ else if (((_h = data === null || data === void 0 ? void 0 : data.returnTypeMismatch) === null || _h === void 0 ? void 0 : _h.actualType) && ((_j = data.returnTypeMismatch) === null || _j === void 0 ? void 0 : _j.expectedType)) {
1124
+ message = `. Type '${actualTypeString}' has incompatible return type:`;
1125
+ message += `\n return type should be '${(_k = data.returnTypeMismatch) === null || _k === void 0 ? void 0 : _k.expectedType}' but is '${(_l = data === null || data === void 0 ? void 0 : data.returnTypeMismatch) === null || _l === void 0 ? void 0 : _l.actualType}'`;
1126
+ }
1127
+ else if ((data === null || data === void 0 ? void 0 : data.expectedVariadic) !== (data === null || data === void 0 ? void 0 : data.actualVariadic)) {
1128
+ const shouldMsg = data.expectedVariadic ? 'should' : 'should not';
1129
+ message = `. Type '${actualTypeString}' ${shouldMsg} be variadic`;
1130
+ }
1131
+ return message;
1132
+ }
1133
+ exports.typeCompatibilityMessage = typeCompatibilityMessage;
1134
+ function getPossibilitiesString(possibilities) {
1135
+ if (!Array.isArray(possibilities)) {
1136
+ return `'${possibilities}'`;
1137
+ }
1138
+ if (possibilities.length === 1) {
1139
+ return `'${possibilities}'`;
1140
+ }
1141
+ let result = '';
1142
+ for (let i = 0; i < possibilities.length; i++) {
1143
+ result += `'${possibilities[i]}'`;
1144
+ if (i < possibilities.length - 2) {
1145
+ result += ', ';
1146
+ }
1147
+ else if (i < possibilities.length - 1) {
1148
+ result += ' or ';
1149
+ }
1150
+ }
1151
+ return result;
1152
+ }
1153
+ function incompatibleSymbolMessage(symbolName, options) {
1154
+ var _a, _b, _c;
1155
+ let message = '';
1156
+ const data = options.data;
1157
+ if (((_a = options.scopes) === null || _a === void 0 ? void 0 : _a.length) > 0) {
1158
+ message += ` across these scopes: ${options.scopes.join(', ')}`;
1159
+ }
1160
+ if (options.isUnion) {
1161
+ message += ` in union`;
1162
+ }
1163
+ const actualTypeString = (_b = data === null || data === void 0 ? void 0 : data.actualType) === null || _b === void 0 ? void 0 : _b.toString();
1164
+ const expectedTypeString = (_c = data === null || data === void 0 ? void 0 : data.expectedType) === null || _c === void 0 ? void 0 : _c.toString();
1165
+ if (data && actualTypeString && expectedTypeString) {
1166
+ message += typeCompatibilityMessage(actualTypeString, expectedTypeString, data);
1167
+ }
1168
+ return message;
1169
+ }
1170
+ exports.incompatibleSymbolMessage = incompatibleSymbolMessage;
644
1171
  exports.DiagnosticCodeMap = {};
1172
+ exports.DiagnosticLegacyCodeMap = {};
645
1173
  exports.diagnosticCodes = [];
646
1174
  for (let key in exports.DiagnosticMessages) {
647
1175
  exports.diagnosticCodes.push(exports.DiagnosticMessages[key]().code);
1176
+ exports.diagnosticCodes.push(exports.DiagnosticMessages[key]().legacyCode);
648
1177
  exports.DiagnosticCodeMap[key] = exports.DiagnosticMessages[key]().code;
1178
+ exports.DiagnosticLegacyCodeMap[key] = exports.DiagnosticMessages[key]().legacyCode;
649
1179
  }
650
1180
  //# sourceMappingURL=DiagnosticMessages.js.map