tsc-ts 0.0.10 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/README.md +1 -1
  2. package/bin/tsc-ts.js +70 -1
  3. package/dist/api/compiler/ast-utilities.d.ts +19 -1
  4. package/dist/api/compiler/ast-utilities.js +180 -95
  5. package/dist/api/compiler/ast.d.ts +20 -15
  6. package/dist/api/compiler/ast.js +1023 -995
  7. package/dist/api/compiler/astnav.js +15 -15
  8. package/dist/api/compiler/binder-utilities.js +186 -186
  9. package/dist/api/compiler/binder.js +290 -263
  10. package/dist/api/compiler/character-codes.js +2 -2
  11. package/dist/api/compiler/checker-calls.js +173 -123
  12. package/dist/api/compiler/checker-classes.d.ts +14 -3
  13. package/dist/api/compiler/checker-classes.js +134 -90
  14. package/dist/api/compiler/checker-contextual.js +64 -61
  15. package/dist/api/compiler/checker-declaration-order.js +79 -79
  16. package/dist/api/compiler/checker-declarations.d.ts +1 -0
  17. package/dist/api/compiler/checker-declarations.js +160 -136
  18. package/dist/api/compiler/checker-declared-types.js +67 -65
  19. package/dist/api/compiler/checker-decorators.js +77 -77
  20. package/dist/api/compiler/checker-deprecation.d.ts +8 -3
  21. package/dist/api/compiler/checker-deprecation.js +76 -55
  22. package/dist/api/compiler/checker-destructuring.js +47 -45
  23. package/dist/api/compiler/checker-elaboration.js +24 -24
  24. package/dist/api/compiler/checker-emit-helpers.js +4 -4
  25. package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
  26. package/dist/api/compiler/checker-emit-resolver.js +25 -13
  27. package/dist/api/compiler/checker-evaluator.js +9 -9
  28. package/dist/api/compiler/checker-expressions.js +244 -211
  29. package/dist/api/compiler/checker-functions.js +113 -107
  30. package/dist/api/compiler/checker-generated-code.d.ts +0 -11
  31. package/dist/api/compiler/checker-generated-code.js +28 -52
  32. package/dist/api/compiler/checker-grammar.d.ts +1 -0
  33. package/dist/api/compiler/checker-grammar.js +469 -438
  34. package/dist/api/compiler/checker-heritage.js +91 -93
  35. package/dist/api/compiler/checker-inference.d.ts +77 -5
  36. package/dist/api/compiler/checker-inference.js +487 -113
  37. package/dist/api/compiler/checker-iteration.d.ts +0 -10
  38. package/dist/api/compiler/checker-iteration.js +35 -52
  39. package/dist/api/compiler/checker-javascript.js +14 -14
  40. package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
  41. package/dist/api/compiler/checker-jsdoc.js +67 -58
  42. package/dist/api/compiler/checker-jsx.js +105 -88
  43. package/dist/api/compiler/checker-members.d.ts +9 -2
  44. package/dist/api/compiler/checker-members.js +210 -74
  45. package/dist/api/compiler/checker-modules.d.ts +15 -6
  46. package/dist/api/compiler/checker-modules.js +469 -309
  47. package/dist/api/compiler/checker-narrowing.js +273 -189
  48. package/dist/api/compiler/checker-object-literals.js +25 -22
  49. package/dist/api/compiler/checker-operators.js +126 -118
  50. package/dist/api/compiler/checker-overloads.js +27 -27
  51. package/dist/api/compiler/checker-property-access.js +59 -55
  52. package/dist/api/compiler/checker-services.d.ts +1 -0
  53. package/dist/api/compiler/checker-services.js +222 -210
  54. package/dist/api/compiler/checker-signatures.js +65 -49
  55. package/dist/api/compiler/checker-source-file.d.ts +5 -0
  56. package/dist/api/compiler/checker-source-file.js +154 -130
  57. package/dist/api/compiler/checker-statements.js +33 -32
  58. package/dist/api/compiler/checker-super.js +50 -50
  59. package/dist/api/compiler/checker-symbol-types.js +109 -93
  60. package/dist/api/compiler/checker-symbols.d.ts +13 -1
  61. package/dist/api/compiler/checker-symbols.js +264 -149
  62. package/dist/api/compiler/checker-type-factory.d.ts +5 -0
  63. package/dist/api/compiler/checker-type-factory.js +137 -34
  64. package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
  65. package/dist/api/compiler/checker-type-nodes.js +179 -141
  66. package/dist/api/compiler/checker-type-operators.d.ts +2 -0
  67. package/dist/api/compiler/checker-type-operators.js +110 -63
  68. package/dist/api/compiler/checker-types.d.ts +80 -3
  69. package/dist/api/compiler/checker-types.js +121 -2
  70. package/dist/api/compiler/checker-unused.js +114 -118
  71. package/dist/api/compiler/checker-utilities.js +11 -11
  72. package/dist/api/compiler/checker.d.ts +93 -31
  73. package/dist/api/compiler/checker.js +143 -35
  74. package/dist/api/compiler/command-line.d.ts +1 -3
  75. package/dist/api/compiler/command-line.js +47 -44
  76. package/dist/api/compiler/compile-program.d.ts +19 -4
  77. package/dist/api/compiler/compile-program.js +45 -26
  78. package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
  79. package/dist/api/compiler/diagnostic-messages.js +128 -122
  80. package/dist/api/compiler/diagnostics.js +7 -7
  81. package/dist/api/compiler/emitter.d.ts +7 -1
  82. package/dist/api/compiler/emitter.js +53 -11
  83. package/dist/api/compiler/file-include.d.ts +2 -1
  84. package/dist/api/compiler/file-include.js +11 -7
  85. package/dist/api/compiler/file-loader.d.ts +10 -0
  86. package/dist/api/compiler/file-loader.js +138 -41
  87. package/dist/api/compiler/instantiation.d.ts +7 -0
  88. package/dist/api/compiler/instantiation.js +101 -49
  89. package/dist/api/compiler/jsdoc.js +23 -23
  90. package/dist/api/compiler/link-tables.d.ts +48 -18
  91. package/dist/api/compiler/link-tables.js +80 -37
  92. package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
  93. package/dist/api/compiler/locales/cs-CZ.js +1 -1
  94. package/dist/api/compiler/locales/de-DE.d.ts +1 -1
  95. package/dist/api/compiler/locales/de-DE.js +1 -1
  96. package/dist/api/compiler/locales/es-ES.d.ts +1 -1
  97. package/dist/api/compiler/locales/es-ES.js +1 -1
  98. package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
  99. package/dist/api/compiler/locales/fr-FR.js +1 -1
  100. package/dist/api/compiler/locales/it-IT.d.ts +1 -1
  101. package/dist/api/compiler/locales/it-IT.js +1 -1
  102. package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
  103. package/dist/api/compiler/locales/ja-JP.js +1 -1
  104. package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
  105. package/dist/api/compiler/locales/ko-KR.js +1 -1
  106. package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
  107. package/dist/api/compiler/locales/pl-PL.js +1 -1
  108. package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
  109. package/dist/api/compiler/locales/pt-BR.js +1 -1
  110. package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
  111. package/dist/api/compiler/locales/ru-RU.js +1 -1
  112. package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
  113. package/dist/api/compiler/locales/tr-TR.js +1 -1
  114. package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
  115. package/dist/api/compiler/locales/zh-CN.js +1 -1
  116. package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
  117. package/dist/api/compiler/locales/zh-TW.js +1 -1
  118. package/dist/api/compiler/module-resolution-types.js +6 -6
  119. package/dist/api/compiler/module-resolution.d.ts +10 -1
  120. package/dist/api/compiler/module-resolution.js +115 -84
  121. package/dist/api/compiler/module-specifiers.d.ts +15 -0
  122. package/dist/api/compiler/module-specifiers.js +24 -18
  123. package/dist/api/compiler/name-resolver.js +74 -65
  124. package/dist/api/compiler/node-builder-names.d.ts +11 -3
  125. package/dist/api/compiler/node-builder-names.js +210 -90
  126. package/dist/api/compiler/node-builder-pseudo.js +29 -31
  127. package/dist/api/compiler/node-builder-reuse.js +23 -22
  128. package/dist/api/compiler/node-builder.d.ts +18 -1
  129. package/dist/api/compiler/node-builder.js +191 -102
  130. package/dist/api/compiler/option-declarations.d.ts +2 -6
  131. package/dist/api/compiler/option-declarations.js +315 -375
  132. package/dist/api/compiler/options.d.ts +15 -33
  133. package/dist/api/compiler/options.js +21 -54
  134. package/dist/api/compiler/output-paths.d.ts +4 -1
  135. package/dist/api/compiler/output-paths.js +6 -11
  136. package/dist/api/compiler/package-json.d.ts +3 -3
  137. package/dist/api/compiler/package-json.js +11 -10
  138. package/dist/api/compiler/parser.d.ts +40 -19
  139. package/dist/api/compiler/parser.js +308 -216
  140. package/dist/api/compiler/path.d.ts +9 -0
  141. package/dist/api/compiler/path.js +20 -3
  142. package/dist/api/compiler/printer/emit-context.d.ts +3 -1
  143. package/dist/api/compiler/printer/emit-context.js +16 -1
  144. package/dist/api/compiler/printer/factory-base.d.ts +2 -2
  145. package/dist/api/compiler/printer/factory-base.js +7 -3
  146. package/dist/api/compiler/printer/factory.js +3 -1
  147. package/dist/api/compiler/printer/helpers.js +10 -1
  148. package/dist/api/compiler/printer/name-generator.d.ts +1 -1
  149. package/dist/api/compiler/printer/name-generator.js +35 -16
  150. package/dist/api/compiler/printer/printer.d.ts +1 -0
  151. package/dist/api/compiler/printer/printer.js +303 -281
  152. package/dist/api/compiler/printer/utilities.js +149 -147
  153. package/dist/api/compiler/program-checker.d.ts +8 -2
  154. package/dist/api/compiler/program-checker.js +84 -34
  155. package/dist/api/compiler/program-utilities.d.ts +3 -1
  156. package/dist/api/compiler/program-utilities.js +28 -15
  157. package/dist/api/compiler/program.d.ts +2 -0
  158. package/dist/api/compiler/program.js +69 -57
  159. package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
  160. package/dist/api/compiler/pseudo-bigint.js +18 -0
  161. package/dist/api/compiler/regexp-checker.d.ts +1 -1
  162. package/dist/api/compiler/regexp-checker.js +93 -76
  163. package/dist/api/compiler/relations.d.ts +27 -4
  164. package/dist/api/compiler/relations.js +337 -180
  165. package/dist/api/compiler/reparser.js +60 -56
  166. package/dist/api/compiler/scanner.d.ts +19 -2
  167. package/dist/api/compiler/scanner.js +123 -108
  168. package/dist/api/compiler/shared-results.d.ts +463 -0
  169. package/dist/api/compiler/shared-results.js +2128 -0
  170. package/dist/api/compiler/sourcemap.js +2 -2
  171. package/dist/api/compiler/symbol-accessibility.js +87 -74
  172. package/dist/api/compiler/symbol.d.ts +22 -13
  173. package/dist/api/compiler/symbol.js +15 -1
  174. package/dist/api/compiler/syntax-kind.d.ts +198 -197
  175. package/dist/api/compiler/transformers/alias-references.js +247 -139
  176. package/dist/api/compiler/transformers/async-utilities.js +25 -25
  177. package/dist/api/compiler/transformers/async.d.ts +0 -1
  178. package/dist/api/compiler/transformers/async.js +64 -77
  179. package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
  180. package/dist/api/compiler/transformers/class-fields.js +81 -78
  181. package/dist/api/compiler/transformers/commonjs-module.js +18 -15
  182. package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
  183. package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
  184. package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
  185. package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
  186. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
  187. package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
  188. package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
  189. package/dist/api/compiler/transformers/declarations.d.ts +4 -1
  190. package/dist/api/compiler/transformers/declarations.js +305 -238
  191. package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
  192. package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
  193. package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
  194. package/dist/api/compiler/transformers/destructuring.js +19 -18
  195. package/dist/api/compiler/transformers/emit-resolver.js +1 -1
  196. package/dist/api/compiler/transformers/es-decorators.js +55 -55
  197. package/dist/api/compiler/transformers/external-module-info.js +3 -3
  198. package/dist/api/compiler/transformers/for-await.js +25 -25
  199. package/dist/api/compiler/transformers/import-elision.js +14 -14
  200. package/dist/api/compiler/transformers/jsx.js +12 -12
  201. package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
  202. package/dist/api/compiler/transformers/module.js +8 -8
  203. package/dist/api/compiler/transformers/named-evaluation.js +4 -4
  204. package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
  205. package/dist/api/compiler/transformers/optional-chain.js +10 -10
  206. package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
  207. package/dist/api/compiler/transformers/reference-resolver.js +131 -69
  208. package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
  209. package/dist/api/compiler/transformers/subtree-facts.js +47 -47
  210. package/dist/api/compiler/transformers/syntax-facts.js +56 -58
  211. package/dist/api/compiler/transformers/type-eraser.js +73 -66
  212. package/dist/api/compiler/transformers/type-serialization.js +24 -24
  213. package/dist/api/compiler/transformers/using.js +12 -12
  214. package/dist/api/compiler/transformers/utilities.js +77 -77
  215. package/dist/api/compiler/transformers/visitor-base.js +172 -172
  216. package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
  217. package/dist/api/compiler/tsconfig.d.ts +10 -2
  218. package/dist/api/compiler/tsconfig.js +136 -48
  219. package/dist/api/compiler/type-printer.js +40 -3
  220. package/dist/api/compiler/types.d.ts +2 -1
  221. package/dist/api/library/ast.generated.d.ts +42 -39
  222. package/dist/api/library/ast.generated.js +1 -1
  223. package/dist/api/library/compiler-options.generated.d.ts +111 -100
  224. package/dist/api/library/compiler-options.generated.js +1 -1
  225. package/dist/api/library/disk.js +12 -1
  226. package/dist/api/library/enums.generated.d.ts +206 -206
  227. package/dist/api/library/enums.generated.js +206 -206
  228. package/dist/api/library/nodes.js +26 -26
  229. package/package.json +9 -9
  230. package/src/compiler/ast-utilities.ts +99 -7
  231. package/src/compiler/ast.ts +55 -26
  232. package/src/compiler/binder.ts +39 -4
  233. package/src/compiler/character-codes.ts +2 -2
  234. package/src/compiler/checker-calls.ts +76 -8
  235. package/src/compiler/checker-classes.ts +78 -24
  236. package/src/compiler/checker-contextual.ts +6 -1
  237. package/src/compiler/checker-declarations.ts +31 -4
  238. package/src/compiler/checker-declared-types.ts +8 -5
  239. package/src/compiler/checker-decorators.ts +1 -1
  240. package/src/compiler/checker-deprecation.ts +29 -8
  241. package/src/compiler/checker-destructuring.ts +10 -3
  242. package/src/compiler/checker-emit-helpers.ts +1 -0
  243. package/src/compiler/checker-emit-resolver.ts +16 -6
  244. package/src/compiler/checker-expressions.ts +79 -46
  245. package/src/compiler/checker-functions.ts +21 -6
  246. package/src/compiler/checker-generated-code.ts +2 -22
  247. package/src/compiler/checker-grammar.ts +133 -60
  248. package/src/compiler/checker-heritage.ts +22 -21
  249. package/src/compiler/checker-inference.ts +514 -87
  250. package/src/compiler/checker-iteration.ts +18 -31
  251. package/src/compiler/checker-javascript.ts +1 -1
  252. package/src/compiler/checker-jsdoc.ts +50 -27
  253. package/src/compiler/checker-jsx.ts +26 -4
  254. package/src/compiler/checker-members.ts +197 -55
  255. package/src/compiler/checker-modules.ts +332 -65
  256. package/src/compiler/checker-narrowing.ts +98 -19
  257. package/src/compiler/checker-object-literals.ts +3 -0
  258. package/src/compiler/checker-operators.ts +11 -4
  259. package/src/compiler/checker-property-access.ts +7 -2
  260. package/src/compiler/checker-services.ts +39 -12
  261. package/src/compiler/checker-signatures.ts +15 -1
  262. package/src/compiler/checker-source-file.ts +39 -13
  263. package/src/compiler/checker-statements.ts +3 -2
  264. package/src/compiler/checker-symbol-types.ts +29 -6
  265. package/src/compiler/checker-symbols.ts +158 -15
  266. package/src/compiler/checker-type-factory.ts +120 -21
  267. package/src/compiler/checker-type-nodes.ts +46 -3
  268. package/src/compiler/checker-type-operators.ts +83 -26
  269. package/src/compiler/checker-types.ts +147 -4
  270. package/src/compiler/checker-unused.ts +9 -14
  271. package/src/compiler/checker.ts +168 -41
  272. package/src/compiler/command-line.ts +28 -28
  273. package/src/compiler/compile-program.ts +51 -25
  274. package/src/compiler/decoder.ts +13 -4
  275. package/src/compiler/diagnostic-messages.ts +1973 -1892
  276. package/src/compiler/emitter.ts +57 -8
  277. package/src/compiler/encoder.ts +23 -8
  278. package/src/compiler/file-include.ts +9 -3
  279. package/src/compiler/file-loader.ts +139 -32
  280. package/src/compiler/help.ts +10 -14
  281. package/src/compiler/incremental.ts +86 -18
  282. package/src/compiler/init.ts +2 -7
  283. package/src/compiler/instantiation.ts +77 -22
  284. package/src/compiler/jsdoc.ts +3 -1
  285. package/src/compiler/link-tables.ts +82 -37
  286. package/src/compiler/locales/cs-CZ.ts +1 -1
  287. package/src/compiler/locales/de-DE.ts +1 -1
  288. package/src/compiler/locales/es-ES.ts +1 -1
  289. package/src/compiler/locales/fr-FR.ts +1 -1
  290. package/src/compiler/locales/it-IT.ts +1 -1
  291. package/src/compiler/locales/ja-JP.ts +1 -1
  292. package/src/compiler/locales/ko-KR.ts +1 -1
  293. package/src/compiler/locales/pl-PL.ts +1 -1
  294. package/src/compiler/locales/pt-BR.ts +1 -1
  295. package/src/compiler/locales/ru-RU.ts +1 -1
  296. package/src/compiler/locales/tr-TR.ts +1 -1
  297. package/src/compiler/locales/zh-CN.ts +1 -1
  298. package/src/compiler/locales/zh-TW.ts +1 -1
  299. package/src/compiler/module-resolution.ts +44 -8
  300. package/src/compiler/module-specifiers.ts +62 -20
  301. package/src/compiler/name-resolver.ts +9 -1
  302. package/src/compiler/node-builder-names.ts +236 -54
  303. package/src/compiler/node-builder-pseudo.ts +4 -7
  304. package/src/compiler/node-builder-reuse.ts +5 -4
  305. package/src/compiler/node-builder.ts +130 -31
  306. package/src/compiler/option-declarations.ts +33 -103
  307. package/src/compiler/options.ts +23 -62
  308. package/src/compiler/output-paths.ts +5 -18
  309. package/src/compiler/package-entrypoints.ts +345 -0
  310. package/src/compiler/package-json.ts +4 -4
  311. package/src/compiler/parallel-check.ts +197 -8
  312. package/src/compiler/parallel-emit.ts +1 -1
  313. package/src/compiler/parser.ts +156 -39
  314. package/src/compiler/path.ts +22 -2
  315. package/src/compiler/printer/emit-context.ts +16 -0
  316. package/src/compiler/printer/factory-base.ts +10 -3
  317. package/src/compiler/printer/factory.ts +4 -1
  318. package/src/compiler/printer/helpers.ts +10 -1
  319. package/src/compiler/printer/name-generator.ts +24 -2
  320. package/src/compiler/printer/printer.ts +35 -14
  321. package/src/compiler/printer/utilities.ts +8 -2
  322. package/src/compiler/program-checker.ts +53 -5
  323. package/src/compiler/program-utilities.ts +23 -10
  324. package/src/compiler/program.ts +13 -1
  325. package/src/compiler/pseudo-bigint.ts +17 -0
  326. package/src/compiler/regexp-checker.ts +63 -30
  327. package/src/compiler/relations.ts +233 -77
  328. package/src/compiler/reparser.ts +7 -2
  329. package/src/compiler/scanner.ts +109 -79
  330. package/src/compiler/shared-results.ts +2414 -0
  331. package/src/compiler/show-config.ts +18 -1
  332. package/src/compiler/sourcemap.ts +2 -2
  333. package/src/compiler/symbol-accessibility.ts +26 -3
  334. package/src/compiler/symbol.ts +31 -14
  335. package/src/compiler/syntax-kind.ts +188 -187
  336. package/src/compiler/thread-entry.ts +19 -2
  337. package/src/compiler/transformers/alias-references.ts +123 -4
  338. package/src/compiler/transformers/async.ts +2 -17
  339. package/src/compiler/transformers/class-fields.ts +13 -12
  340. package/src/compiler/transformers/commonjs-module.ts +11 -7
  341. package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
  342. package/src/compiler/transformers/declarations-pseudo.ts +2 -4
  343. package/src/compiler/transformers/declarations-resolver.ts +0 -3
  344. package/src/compiler/transformers/declarations-syntactic.ts +1 -21
  345. package/src/compiler/transformers/declarations.ts +134 -48
  346. package/src/compiler/transformers/decorator-metadata.ts +9 -1
  347. package/src/compiler/transformers/destructuring.ts +4 -3
  348. package/src/compiler/transformers/external-module-info.ts +1 -1
  349. package/src/compiler/transformers/jsx.ts +2 -1
  350. package/src/compiler/transformers/reference-resolver.ts +83 -19
  351. package/src/compiler/transformers/runtime-syntax.ts +6 -1
  352. package/src/compiler/transformers/syntax-facts.ts +2 -7
  353. package/src/compiler/transformers/type-eraser.ts +10 -1
  354. package/src/compiler/transformers/type-serialization.ts +3 -2
  355. package/src/compiler/transformers/visitor-base.ts +2 -1
  356. package/src/compiler/transformers/visitor-hooks.ts +9 -4
  357. package/src/compiler/tsc-build.ts +3 -0
  358. package/src/compiler/tsc-cli.ts +2 -0
  359. package/src/compiler/tsc-compile.ts +7 -2
  360. package/src/compiler/tsc-watch.ts +74 -45
  361. package/src/compiler/tsconfig.ts +176 -19
  362. package/src/compiler/type-printer.ts +36 -2
  363. package/src/compiler/types.ts +2 -1
  364. package/src/library/ast.generated.ts +57 -41
  365. package/src/library/compiler-options.generated.ts +117 -103
  366. package/src/library/disk.ts +10 -1
  367. package/src/library/enums.generated.ts +196 -196
@@ -10,7 +10,6 @@ import { Diagnostic } from './diagnostics.js';
10
10
  import { getMergedSymbol, getSymbolOfDeclaration } from './checker-symbols.js';
11
11
  import { getResolvedSymbol } from './checker-expressions.js';
12
12
  import { skipTrivia } from './scanner.js';
13
- import { getContainingFunctionOrClassStaticBlock } from './checker-grammar.js';
14
13
  import { nodeCanBeDecorated } from './checker-decorators.js';
15
14
  import { symbolToString } from './type-printer.js';
16
15
  import { getLiteralTypeFromPropertyName } from './checker-type-operators.js';
@@ -31,38 +30,38 @@ function accessKind(node) {
31
30
  if (parent === undefined)
32
31
  return 0 /* AccessKind.Read */;
33
32
  switch (parent.kind) {
34
- case 218 /* SyntaxKind.ParenthesizedExpression */:
35
- case 210 /* SyntaxKind.ArrayLiteralExpression */:
33
+ case 219 /* SyntaxKind.ParenthesizedExpression */:
34
+ case 211 /* SyntaxKind.ArrayLiteralExpression */:
36
35
  return accessKind(parent);
37
- case 225 /* SyntaxKind.PrefixUnaryExpression */:
38
- case 226 /* SyntaxKind.PostfixUnaryExpression */: {
39
- const operator = parent.kind === 225 /* SyntaxKind.PrefixUnaryExpression */
36
+ case 226 /* SyntaxKind.PrefixUnaryExpression */:
37
+ case 227 /* SyntaxKind.PostfixUnaryExpression */: {
38
+ const operator = parent.kind === 226 /* SyntaxKind.PrefixUnaryExpression */
40
39
  ? parent.operator
41
40
  : parent.operator;
42
41
  return operator === 45 /* SyntaxKind.PlusPlusToken */ || operator === 46 /* SyntaxKind.MinusMinusToken */
43
42
  ? 2 /* AccessKind.ReadWrite */
44
43
  : 0 /* AccessKind.Read */;
45
44
  }
46
- case 227 /* SyntaxKind.BinaryExpression */: {
45
+ case 228 /* SyntaxKind.BinaryExpression */: {
47
46
  const binary = parent;
48
47
  if (binary.left !== node || !isAssignmentOperator(binary.operatorToken.kind))
49
48
  return 0 /* AccessKind.Read */;
50
49
  return binary.operatorToken.kind === 63 /* SyntaxKind.EqualsToken */ ? 1 /* AccessKind.Write */ : 2 /* AccessKind.ReadWrite */;
51
50
  }
52
- case 212 /* SyntaxKind.PropertyAccessExpression */:
51
+ case 213 /* SyntaxKind.PropertyAccessExpression */:
53
52
  return parent.name !== node ? 0 /* AccessKind.Read */ : accessKind(parent);
54
- case 303 /* SyntaxKind.PropertyAssignment */: {
53
+ case 304 /* SyntaxKind.PropertyAssignment */: {
55
54
  const parentAccess = accessKind(parent.parent);
56
55
  // In `({ x: name } = { x: 1 })`, the left `x` is a read and `name` a write.
57
56
  return node === parent.name ? reverseAccessKind(parentAccess) : parentAccess;
58
57
  }
59
- case 304 /* SyntaxKind.ShorthandPropertyAssignment */:
58
+ case 305 /* SyntaxKind.ShorthandPropertyAssignment */:
60
59
  // The local variable is the one accessed: public properties aren't checked for use.
61
60
  return node === parent.objectAssignmentInitializer
62
61
  ? 0 /* AccessKind.Read */
63
62
  : accessKind(parent.parent);
64
- case 250 /* SyntaxKind.ForInStatement */:
65
- case 251 /* SyntaxKind.ForOfStatement */:
63
+ case 251 /* SyntaxKind.ForInStatement */:
64
+ case 252 /* SyntaxKind.ForOfStatement */:
66
65
  return node === parent.initializer ? 1 /* AccessKind.Write */ : 0 /* AccessKind.Read */;
67
66
  }
68
67
  return 0 /* AccessKind.Read */;
@@ -86,7 +85,7 @@ export function isSelfTypeAccess(c, name, parent) {
86
85
  }
87
86
  function isEntityNameExpression(node) {
88
87
  let current = node;
89
- while (current.kind === 212 /* SyntaxKind.PropertyAccessExpression */) {
88
+ while (current.kind === 213 /* SyntaxKind.PropertyAccessExpression */) {
90
89
  if (getName(current).kind !== 79 /* SyntaxKind.Identifier */)
91
90
  return false;
92
91
  current = current.expression;
@@ -95,7 +94,7 @@ function isEntityNameExpression(node) {
95
94
  }
96
95
  function getFirstIdentifierOfExpression(node) {
97
96
  let current = node;
98
- while (current.kind === 212 /* SyntaxKind.PropertyAccessExpression */)
97
+ while (current.kind === 213 /* SyntaxKind.PropertyAccessExpression */)
99
98
  current = current.expression;
100
99
  return current;
101
100
  }
@@ -129,7 +128,7 @@ export function markPropertyAsReferenced(c, prop, nodeForCheckWriteOnly, isSelfT
129
128
  }
130
129
  /** Marks the property a destructuring name selects from `objectType` as referenced. */
131
130
  export function markDestructuredPropertyAsReferenced(c, objectType, name, location, isSelfTypeAccess) {
132
- if (name.kind === 207 /* SyntaxKind.ObjectBindingPattern */ || name.kind === 208 /* SyntaxKind.ArrayBindingPattern */)
131
+ if (name.kind === 208 /* SyntaxKind.ObjectBindingPattern */ || name.kind === 209 /* SyntaxKind.ArrayBindingPattern */)
133
132
  return;
134
133
  const nameType = getLiteralTypeFromPropertyName(c, name);
135
134
  if (nameType === undefined || !isTypeUsableAsPropertyName(nameType))
@@ -140,13 +139,13 @@ export function markDestructuredPropertyAsReferenced(c, objectType, name, locati
140
139
  }
141
140
  function isFunctionLikeDeclaration(node) {
142
141
  switch (node.kind) {
143
- case 263 /* SyntaxKind.FunctionDeclaration */:
144
- case 175 /* SyntaxKind.MethodDeclaration */:
145
- case 177 /* SyntaxKind.Constructor */:
146
- case 178 /* SyntaxKind.GetAccessor */:
147
- case 179 /* SyntaxKind.SetAccessor */:
148
- case 219 /* SyntaxKind.FunctionExpression */:
149
- case 220 /* SyntaxKind.ArrowFunction */:
142
+ case 264 /* SyntaxKind.FunctionDeclaration */:
143
+ case 176 /* SyntaxKind.MethodDeclaration */:
144
+ case 178 /* SyntaxKind.Constructor */:
145
+ case 179 /* SyntaxKind.GetAccessor */:
146
+ case 180 /* SyntaxKind.SetAccessor */:
147
+ case 220 /* SyntaxKind.FunctionExpression */:
148
+ case 221 /* SyntaxKind.ArrowFunction */:
150
149
  return true;
151
150
  }
152
151
  return false;
@@ -171,7 +170,7 @@ class PotentiallyUnusedCollector extends NodeVisitor {
171
170
  }
172
171
  visitNode(node) {
173
172
  // The body of a `with` statement isn't checked.
174
- if (node.kind === 255 /* SyntaxKind.WithStatement */)
173
+ if (node.kind === 256 /* SyntaxKind.WithStatement */)
175
174
  this.visitNode(getExpression(node));
176
175
  else if (!this.isUnchecked(node))
177
176
  node.forEachChild(this);
@@ -180,90 +179,87 @@ class PotentiallyUnusedCollector extends NodeVisitor {
180
179
  return false;
181
180
  }
182
181
  /**
183
- * Whether the checker skips the children of `node`: a `return` outside a function body, or in a class
184
- * static block, and a decorator of a declaration that can't be decorated, are reported as errors and
185
- * not checked further.
182
+ * Whether the checker skips the children of `node`: a decorator of a declaration that can't be decorated
183
+ * is reported as an error and not checked further. (The expression of a `return` outside a function
184
+ * body, or in a class static block, is still checked.)
186
185
  */
187
186
  isUnchecked(node) {
188
- if (node.kind === 254 /* SyntaxKind.ReturnStatement */) {
189
- const container = getContainingFunctionOrClassStaticBlock(node);
190
- return container === undefined || container.kind === 176 /* SyntaxKind.ClassStaticBlockDeclaration */;
191
- }
192
- if (node.kind === 171 /* SyntaxKind.Decorator */) {
193
- const declaration = node.parent;
194
- return !nodeCanBeDecorated(this.legacyDecorators, declaration, declaration.parent, declaration.parent?.parent);
195
- }
196
- return false;
187
+ if (node.kind !== 172 /* SyntaxKind.Decorator */)
188
+ return false;
189
+ const declaration = node.parent;
190
+ return !nodeCanBeDecorated(this.legacyDecorators, declaration, declaration.parent, declaration.parent?.parent);
197
191
  }
198
192
  }
199
193
  function isPotentiallyUnusedContainer(node) {
200
194
  switch (node.kind) {
201
- case 307 /* SyntaxKind.SourceFile */:
195
+ case 308 /* SyntaxKind.SourceFile */:
202
196
  return isExternalOrCommonJSModule(node);
203
- case 242 /* SyntaxKind.Block */:
204
- case 270 /* SyntaxKind.CaseBlock */:
205
- case 249 /* SyntaxKind.ForStatement */:
206
- case 250 /* SyntaxKind.ForInStatement */:
207
- case 251 /* SyntaxKind.ForOfStatement */: {
197
+ case 243 /* SyntaxKind.Block */:
198
+ case 271 /* SyntaxKind.CaseBlock */:
199
+ case 250 /* SyntaxKind.ForStatement */:
200
+ case 251 /* SyntaxKind.ForInStatement */:
201
+ case 252 /* SyntaxKind.ForOfStatement */:
202
+ case 177 /* SyntaxKind.ClassStaticBlockDeclaration */: {
208
203
  const locals = getLocals(node);
209
204
  return locals !== undefined && locals.size !== 0;
210
205
  }
211
- case 268 /* SyntaxKind.ModuleDeclaration */:
206
+ case 269 /* SyntaxKind.ModuleDeclaration */:
212
207
  return getBody(node) !== undefined && !isGlobalScopeAugmentation(node);
213
- case 266 /* SyntaxKind.TypeAliasDeclaration */:
214
- case 345 /* SyntaxKind.JSTypeAliasDeclaration */: {
208
+ case 267 /* SyntaxKind.TypeAliasDeclaration */:
209
+ case 346 /* SyntaxKind.JSTypeAliasDeclaration */: {
215
210
  const type = node.type;
216
211
  return type === undefined || type.kind !== 141 /* SyntaxKind.IntrinsicKeyword */;
217
212
  }
218
- case 264 /* SyntaxKind.ClassDeclaration */:
219
- case 232 /* SyntaxKind.ClassExpression */:
220
- case 265 /* SyntaxKind.InterfaceDeclaration */:
221
- case 196 /* SyntaxKind.InferType */:
222
- case 177 /* SyntaxKind.Constructor */:
223
- case 219 /* SyntaxKind.FunctionExpression */:
224
- case 263 /* SyntaxKind.FunctionDeclaration */:
225
- case 220 /* SyntaxKind.ArrowFunction */:
226
- case 175 /* SyntaxKind.MethodDeclaration */:
227
- case 178 /* SyntaxKind.GetAccessor */:
228
- case 179 /* SyntaxKind.SetAccessor */:
229
- case 174 /* SyntaxKind.MethodSignature */:
230
- case 180 /* SyntaxKind.CallSignature */:
231
- case 181 /* SyntaxKind.ConstructSignature */:
232
- case 185 /* SyntaxKind.FunctionType */:
233
- case 186 /* SyntaxKind.ConstructorType */:
213
+ case 265 /* SyntaxKind.ClassDeclaration */:
214
+ case 233 /* SyntaxKind.ClassExpression */:
215
+ case 266 /* SyntaxKind.InterfaceDeclaration */:
216
+ case 197 /* SyntaxKind.InferType */:
217
+ case 178 /* SyntaxKind.Constructor */:
218
+ case 220 /* SyntaxKind.FunctionExpression */:
219
+ case 264 /* SyntaxKind.FunctionDeclaration */:
220
+ case 221 /* SyntaxKind.ArrowFunction */:
221
+ case 176 /* SyntaxKind.MethodDeclaration */:
222
+ case 179 /* SyntaxKind.GetAccessor */:
223
+ case 180 /* SyntaxKind.SetAccessor */:
224
+ case 175 /* SyntaxKind.MethodSignature */:
225
+ case 181 /* SyntaxKind.CallSignature */:
226
+ case 182 /* SyntaxKind.ConstructSignature */:
227
+ case 186 /* SyntaxKind.FunctionType */:
228
+ case 187 /* SyntaxKind.ConstructorType */:
234
229
  return true;
235
230
  }
236
231
  return false;
237
232
  }
238
233
  function checkUnusedIdentifiersOfNode(c, node) {
239
234
  switch (node.kind) {
240
- case 264 /* SyntaxKind.ClassDeclaration */:
241
- case 232 /* SyntaxKind.ClassExpression */:
235
+ case 265 /* SyntaxKind.ClassDeclaration */:
236
+ case 233 /* SyntaxKind.ClassExpression */:
242
237
  checkUnusedClassMembers(c, node);
243
238
  checkUnusedTypeParameters(c, node);
244
239
  return;
245
- case 307 /* SyntaxKind.SourceFile */:
246
- case 268 /* SyntaxKind.ModuleDeclaration */:
247
- case 242 /* SyntaxKind.Block */:
248
- case 270 /* SyntaxKind.CaseBlock */:
249
- case 249 /* SyntaxKind.ForStatement */:
250
- case 250 /* SyntaxKind.ForInStatement */:
251
- case 251 /* SyntaxKind.ForOfStatement */:
240
+ case 308 /* SyntaxKind.SourceFile */:
241
+ case 269 /* SyntaxKind.ModuleDeclaration */:
242
+ case 243 /* SyntaxKind.Block */:
243
+ case 271 /* SyntaxKind.CaseBlock */:
244
+ case 250 /* SyntaxKind.ForStatement */:
245
+ case 251 /* SyntaxKind.ForInStatement */:
246
+ case 252 /* SyntaxKind.ForOfStatement */:
247
+ case 177 /* SyntaxKind.ClassStaticBlockDeclaration */:
252
248
  checkUnusedLocalsAndParameters(c, node);
253
249
  return;
254
- case 177 /* SyntaxKind.Constructor */:
255
- case 219 /* SyntaxKind.FunctionExpression */:
256
- case 263 /* SyntaxKind.FunctionDeclaration */:
257
- case 220 /* SyntaxKind.ArrowFunction */:
258
- case 175 /* SyntaxKind.MethodDeclaration */:
259
- case 178 /* SyntaxKind.GetAccessor */:
260
- case 179 /* SyntaxKind.SetAccessor */:
250
+ case 178 /* SyntaxKind.Constructor */:
251
+ case 220 /* SyntaxKind.FunctionExpression */:
252
+ case 264 /* SyntaxKind.FunctionDeclaration */:
253
+ case 221 /* SyntaxKind.ArrowFunction */:
254
+ case 176 /* SyntaxKind.MethodDeclaration */:
255
+ case 179 /* SyntaxKind.GetAccessor */:
256
+ case 180 /* SyntaxKind.SetAccessor */:
261
257
  // Parameters are reported on implementations only, not overloads.
262
258
  if (getBody(node) !== undefined)
263
259
  checkUnusedLocalsAndParameters(c, node);
264
260
  checkUnusedTypeParameters(c, node);
265
261
  return;
266
- case 196 /* SyntaxKind.InferType */:
262
+ case 197 /* SyntaxKind.InferType */:
267
263
  checkUnusedInferTypeParameter(c, node);
268
264
  return;
269
265
  }
@@ -287,21 +283,21 @@ function reportUnused(c, location, kind, diagnostic) {
287
283
  }
288
284
  function reportUnusedVariable(c, location, diagnostic) {
289
285
  let current = location;
290
- while (current.kind === 209 /* SyntaxKind.BindingElement */ ||
291
- current.kind === 207 /* SyntaxKind.ObjectBindingPattern */ ||
292
- current.kind === 208 /* SyntaxKind.ArrayBindingPattern */)
286
+ while (current.kind === 210 /* SyntaxKind.BindingElement */ ||
287
+ current.kind === 208 /* SyntaxKind.ObjectBindingPattern */ ||
288
+ current.kind === 209 /* SyntaxKind.ArrayBindingPattern */)
293
289
  current = current.parent;
294
- reportUnused(c, current, current.kind === 170 /* SyntaxKind.Parameter */ ? 1 /* UnusedKind.Parameter */ : 0 /* UnusedKind.Local */, diagnostic);
290
+ reportUnused(c, current, current.kind === 171 /* SyntaxKind.Parameter */ ? 1 /* UnusedKind.Parameter */ : 0 /* UnusedKind.Local */, diagnostic);
295
291
  }
296
292
  function checkUnusedClassMembers(c, node) {
297
293
  for (const member of getMembers(node).nodes) {
298
294
  switch (member.kind) {
299
- case 175 /* SyntaxKind.MethodDeclaration */:
300
- case 173 /* SyntaxKind.PropertyDeclaration */:
301
- case 178 /* SyntaxKind.GetAccessor */:
302
- case 179 /* SyntaxKind.SetAccessor */: {
295
+ case 176 /* SyntaxKind.MethodDeclaration */:
296
+ case 174 /* SyntaxKind.PropertyDeclaration */:
297
+ case 179 /* SyntaxKind.GetAccessor */:
298
+ case 180 /* SyntaxKind.SetAccessor */: {
303
299
  // An unused accessor pair is reported on the getter.
304
- if (member.kind === 179 /* SyntaxKind.SetAccessor */ && (getSymbol(member).flags & 32768 /* SymbolFlags.GetAccessor */) !== 0)
300
+ if (member.kind === 180 /* SyntaxKind.SetAccessor */ && (getSymbol(member).flags & 32768 /* SymbolFlags.GetAccessor */) !== 0)
305
301
  break;
306
302
  const symbol = getSymbolOfDeclaration(c, member);
307
303
  const name = getName(member);
@@ -309,18 +305,18 @@ function checkUnusedClassMembers(c, node) {
309
305
  ((getModifierFlags(member) & 2 /* ModifierFlags.Private */) !== 0 ||
310
306
  (name !== undefined && name.kind === 80 /* SyntaxKind.PrivateIdentifier */)) &&
311
307
  (member.flags & 8388608 /* NodeFlags.Ambient */) === 0)
312
- reportUnused(c, member, 0 /* UnusedKind.Local */, createDiagnosticForNode(name, 1298 /* Diagnostics.X_0_is_declared_but_its_value_is_never_read */, [
308
+ reportUnused(c, member, 0 /* UnusedKind.Local */, createDiagnosticForNode(name, 1309 /* Diagnostics.X_0_is_declared_but_its_value_is_never_read */, [
313
309
  symbolToString(c, symbol),
314
310
  ]));
315
311
  break;
316
312
  }
317
- case 177 /* SyntaxKind.Constructor */:
313
+ case 178 /* SyntaxKind.Constructor */:
318
314
  for (const parameter of getParameters(member).nodes) {
319
315
  const symbol = getSymbol(parameter);
320
316
  if (symbol !== undefined &&
321
317
  !isReferenced(c, symbol) &&
322
318
  hasSyntacticModifier(parameter, 2 /* ModifierFlags.Private */))
323
- reportUnused(c, parameter, 0 /* UnusedKind.Local */, createDiagnosticForNode(getName(parameter), 1303 /* Diagnostics.Property_0_is_declared_but_its_value_is_never_read */, [symbol.name]));
319
+ reportUnused(c, parameter, 0 /* UnusedKind.Local */, createDiagnosticForNode(getName(parameter), 1314 /* Diagnostics.Property_0_is_declared_but_its_value_is_never_read */, [symbol.name]));
324
320
  }
325
321
  break;
326
322
  }
@@ -344,14 +340,14 @@ function checkUnusedLocalsAndParameters(c, node) {
344
340
  continue;
345
341
  for (const declaration of getDeclarations(local)) {
346
342
  switch (declaration.kind) {
347
- case 261 /* SyntaxKind.VariableDeclaration */:
348
- case 170 /* SyntaxKind.Parameter */:
349
- case 209 /* SyntaxKind.BindingElement */:
343
+ case 262 /* SyntaxKind.VariableDeclaration */:
344
+ case 171 /* SyntaxKind.Parameter */:
345
+ case 210 /* SyntaxKind.BindingElement */:
350
346
  variableParents.add(getRootDeclaration(declaration).parent);
351
347
  break;
352
- case 274 /* SyntaxKind.ImportClause */:
353
- case 277 /* SyntaxKind.ImportSpecifier */:
354
- case 275 /* SyntaxKind.NamespaceImport */:
348
+ case 275 /* SyntaxKind.ImportClause */:
349
+ case 278 /* SyntaxKind.ImportSpecifier */:
350
+ case 276 /* SyntaxKind.NamespaceImport */:
355
351
  if (!isIdentifierThatStartsWithUnderscore(getName(declaration))) {
356
352
  const importClause = importClauseFromImported(declaration);
357
353
  const unuseds = importClauses.get(importClause);
@@ -362,13 +358,13 @@ function checkUnusedLocalsAndParameters(c, node) {
362
358
  }
363
359
  break;
364
360
  default:
365
- if (declaration.kind !== 169 /* SyntaxKind.TypeParameter */ && !isAmbientModule(declaration))
361
+ if (declaration.kind !== 170 /* SyntaxKind.TypeParameter */ && !isAmbientModule(declaration))
366
362
  reportUnusedLocal(c, declaration, local.name);
367
363
  }
368
364
  }
369
365
  }
370
366
  for (const declaration of variableParents) {
371
- if (declaration.kind === 262 /* SyntaxKind.VariableDeclarationList */)
367
+ if (declaration.kind === 263 /* SyntaxKind.VariableDeclarationList */)
372
368
  reportUnusedVariables(c, declaration, declaration.declarations.nodes);
373
369
  else
374
370
  reportUnusedVariableDeclarations(c, getParameters(declaration).nodes);
@@ -378,20 +374,20 @@ function checkUnusedLocalsAndParameters(c, node) {
378
374
  }
379
375
  function reportUnusedLocal(c, node, name) {
380
376
  const message = isTypeDeclaration(node)
381
- ? 1349 /* Diagnostics.X_0_is_declared_but_never_used */
382
- : 1298 /* Diagnostics.X_0_is_declared_but_its_value_is_never_read */;
377
+ ? 1360 /* Diagnostics.X_0_is_declared_but_never_used */
378
+ : 1309 /* Diagnostics.X_0_is_declared_but_its_value_is_never_read */;
383
379
  reportUnused(c, node, 0 /* UnusedKind.Local */, createDiagnosticForNode(getName(node) ?? node, message, [name]));
384
380
  }
385
381
  function reportUnusedVariables(c, node, declarations) {
386
382
  if (declarations.length > 1 && areUnreferencedVariableDeclarations(c, declarations))
387
- reportUnusedVariable(c, node, createDiagnosticForNode(node, 1352 /* Diagnostics.All_variables_are_unused */, []));
383
+ reportUnusedVariable(c, node, createDiagnosticForNode(node, 1363 /* Diagnostics.All_variables_are_unused */, []));
388
384
  else
389
385
  reportUnusedVariableDeclarations(c, declarations);
390
386
  }
391
387
  function reportUnusedBindingElements(c, node) {
392
388
  const declarations = getElements(node).nodes;
393
389
  if (declarations.length > 1 && areUnreferencedVariableDeclarations(c, declarations))
394
- reportUnusedVariable(c, node, createDiagnosticForNode(node, 1351 /* Diagnostics.All_destructured_elements_are_unused */, []));
390
+ reportUnusedVariable(c, node, createDiagnosticForNode(node, 1362 /* Diagnostics.All_destructured_elements_are_unused */, []));
395
391
  else
396
392
  reportUnusedVariableDeclarations(c, declarations);
397
393
  }
@@ -402,14 +398,14 @@ function reportUnusedVariableDeclarations(c, declarations) {
402
398
  isParameterPropertyDeclaration(declaration, declaration.parent) ||
403
399
  isThisParameter(declaration))
404
400
  continue;
405
- if (name.kind === 207 /* SyntaxKind.ObjectBindingPattern */ || name.kind === 208 /* SyntaxKind.ArrayBindingPattern */)
401
+ if (name.kind === 208 /* SyntaxKind.ObjectBindingPattern */ || name.kind === 209 /* SyntaxKind.ArrayBindingPattern */)
406
402
  reportUnusedBindingElements(c, name);
407
403
  else if (isUnreferencedVariableDeclaration(c, declaration))
408
- reportUnusedVariable(c, declaration, createDiagnosticForNode(name, 1298 /* Diagnostics.X_0_is_declared_but_its_value_is_never_read */, [getText(name)]));
404
+ reportUnusedVariable(c, declaration, createDiagnosticForNode(name, 1309 /* Diagnostics.X_0_is_declared_but_its_value_is_never_read */, [getText(name)]));
409
405
  }
410
406
  }
411
407
  function isThisParameter(node) {
412
- if (node.kind !== 170 /* SyntaxKind.Parameter */)
408
+ if (node.kind !== 171 /* SyntaxKind.Parameter */)
413
409
  return false;
414
410
  const name = getName(node);
415
411
  return name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */ && getText(name) === 'this';
@@ -424,39 +420,39 @@ function isUnreferencedVariableDeclaration(c, node) {
424
420
  const name = getName(node);
425
421
  if (name === undefined)
426
422
  return true;
427
- if (name.kind === 207 /* SyntaxKind.ObjectBindingPattern */ || name.kind === 208 /* SyntaxKind.ArrayBindingPattern */)
423
+ if (name.kind === 208 /* SyntaxKind.ObjectBindingPattern */ || name.kind === 209 /* SyntaxKind.ArrayBindingPattern */)
428
424
  return areUnreferencedVariableDeclarations(c, getElements(name).nodes);
429
425
  if ((referenceKindsOfDeclaration(c, node) & 3 /* SymbolFlags.Variable */) !== 0)
430
426
  return false;
431
427
  const parent = node.parent;
432
- if (node.kind === 209 /* SyntaxKind.BindingElement */ && parent.kind === 207 /* SyntaxKind.ObjectBindingPattern */) {
428
+ if (node.kind === 210 /* SyntaxKind.BindingElement */ && parent.kind === 208 /* SyntaxKind.ObjectBindingPattern */) {
433
429
  // In `{ a, ...b }`, `a` counts as used: it removes a property from `b`.
434
430
  const elements = getElements(parent).nodes;
435
431
  const lastElement = elements[elements.length - 1];
436
432
  if (node !== lastElement && getDotDotDotToken(lastElement) !== undefined)
437
433
  return false;
438
434
  }
439
- const underscoreExempt = node.kind === 170 /* SyntaxKind.Parameter */ ||
440
- (node.kind === 261 /* SyntaxKind.VariableDeclaration */ &&
435
+ const underscoreExempt = node.kind === 171 /* SyntaxKind.Parameter */ ||
436
+ (node.kind === 262 /* SyntaxKind.VariableDeclaration */ &&
441
437
  (isForInOrOfStatement(parent.parent) || (getCombinedNodeFlags(node) & 4 /* NodeFlags.Using */) !== 0)) ||
442
- (node.kind === 209 /* SyntaxKind.BindingElement */ &&
443
- !(parent.kind === 207 /* SyntaxKind.ObjectBindingPattern */ && getPropertyName(node) === undefined));
438
+ (node.kind === 210 /* SyntaxKind.BindingElement */ &&
439
+ !(parent.kind === 208 /* SyntaxKind.ObjectBindingPattern */ && getPropertyName(node) === undefined));
444
440
  return !(underscoreExempt && isIdentifierThatStartsWithUnderscore(name));
445
441
  }
446
442
  function isForInOrOfStatement(node) {
447
- return node.kind === 250 /* SyntaxKind.ForInStatement */ || node.kind === 251 /* SyntaxKind.ForOfStatement */;
443
+ return node.kind === 251 /* SyntaxKind.ForInStatement */ || node.kind === 252 /* SyntaxKind.ForOfStatement */;
448
444
  }
449
445
  function reportUnusedImports(c, node, unuseds) {
450
446
  let declarationCount = node.name !== undefined ? 1 : 0;
451
447
  const namedBindings = node.namedBindings;
452
448
  if (namedBindings !== undefined) {
453
- if (namedBindings.kind === 275 /* SyntaxKind.NamespaceImport */)
449
+ if (namedBindings.kind === 276 /* SyntaxKind.NamespaceImport */)
454
450
  declarationCount++;
455
451
  else
456
452
  declarationCount += getElements(namedBindings).nodes.length;
457
453
  }
458
454
  if (declarationCount > 1 && declarationCount === unuseds.length)
459
- reportUnused(c, node, 0 /* UnusedKind.Local */, createDiagnosticForNode(node.parent, 1345 /* Diagnostics.All_imports_in_import_declaration_are_unused */, []));
455
+ reportUnused(c, node, 0 /* UnusedKind.Local */, createDiagnosticForNode(node.parent, 1356 /* Diagnostics.All_imports_in_import_declaration_are_unused */, []));
460
456
  else
461
457
  for (const unused of unuseds)
462
458
  reportUnusedLocal(c, unused, getText(getName(unused)));
@@ -466,9 +462,9 @@ function isIdentifierThatStartsWithUnderscore(node) {
466
462
  }
467
463
  function importClauseFromImported(node) {
468
464
  switch (node.kind) {
469
- case 274 /* SyntaxKind.ImportClause */:
465
+ case 275 /* SyntaxKind.ImportClause */:
470
466
  return node;
471
- case 275 /* SyntaxKind.NamespaceImport */:
467
+ case 276 /* SyntaxKind.NamespaceImport */:
472
468
  return node.parent;
473
469
  }
474
470
  return node.parent.parent;
@@ -476,7 +472,7 @@ function importClauseFromImported(node) {
476
472
  function checkUnusedInferTypeParameter(c, node) {
477
473
  const typeParameter = node.typeParameter;
478
474
  if (isUnreferencedTypeParameter(c, typeParameter))
479
- reportUnused(c, node, 1 /* UnusedKind.Parameter */, createDiagnosticForNode(typeParameter.name, 1349 /* Diagnostics.X_0_is_declared_but_never_used */, [
475
+ reportUnused(c, node, 1 /* UnusedKind.Parameter */, createDiagnosticForNode(typeParameter.name, 1360 /* Diagnostics.X_0_is_declared_but_never_used */, [
480
476
  getText(typeParameter.name),
481
477
  ]));
482
478
  }
@@ -498,12 +494,12 @@ function checkUnusedTypeParameters(c, node) {
498
494
  const file = getSourceFileOfNode(node);
499
495
  const text = file.text;
500
496
  const end = Math.min(text.length, skipTrivia(text, typeParameterList.end) + 1);
501
- reportUnused(c, node, 1 /* UnusedKind.Parameter */, new Diagnostic(file.diagnosticFile(), typeParameterList.pos - 1, end, 1358 /* Diagnostics.All_type_parameters_are_unused */));
497
+ reportUnused(c, node, 1 /* UnusedKind.Parameter */, new Diagnostic(file.diagnosticFile(), typeParameterList.pos - 1, end, 1369 /* Diagnostics.All_type_parameters_are_unused */));
502
498
  return;
503
499
  }
504
500
  for (const typeParameter of typeParameters)
505
501
  if (isUnreferencedTypeParameter(c, typeParameter))
506
- reportUnused(c, node, 1 /* UnusedKind.Parameter */, createDiagnosticForNode(typeParameter, 1349 /* Diagnostics.X_0_is_declared_but_never_used */, [
502
+ reportUnused(c, node, 1 /* UnusedKind.Parameter */, createDiagnosticForNode(typeParameter, 1360 /* Diagnostics.X_0_is_declared_but_never_used */, [
507
503
  getText(getName(typeParameter)),
508
504
  ]));
509
505
  }
@@ -45,7 +45,7 @@ export function isValidIndexKeyType(c, t) {
45
45
  function isEntityNameExpression(node) {
46
46
  if (node.kind === 79 /* SyntaxKind.Identifier */)
47
47
  return true;
48
- if (node.kind === 212 /* SyntaxKind.PropertyAccessExpression */) {
48
+ if (node.kind === 213 /* SyntaxKind.PropertyAccessExpression */) {
49
49
  const name = getName(node);
50
50
  return name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */ && isEntityNameExpression(getExpression(node));
51
51
  }
@@ -53,9 +53,9 @@ function isEntityNameExpression(node) {
53
53
  }
54
54
  function isLateBindableAST(node) {
55
55
  let expr;
56
- if (node.kind === 168 /* SyntaxKind.ComputedPropertyName */)
56
+ if (node.kind === 169 /* SyntaxKind.ComputedPropertyName */)
57
57
  expr = getExpression(node);
58
- else if (node.kind === 213 /* SyntaxKind.ElementAccessExpression */)
58
+ else if (node.kind === 214 /* SyntaxKind.ElementAccessExpression */)
59
59
  expr = node.argumentExpression;
60
60
  return expr !== undefined && isEntityNameExpression(expr);
61
61
  }
@@ -68,7 +68,7 @@ export function hasLateBindableName(c, node) {
68
68
  export function isLateBindableName(c, name) {
69
69
  if (!isLateBindableAST(name))
70
70
  return false;
71
- if (name.kind === 168 /* SyntaxKind.ComputedPropertyName */)
71
+ if (name.kind === 169 /* SyntaxKind.ComputedPropertyName */)
72
72
  return isTypeUsableAsPropertyName(checkComputedPropertyName(c, name));
73
73
  return isTypeUsableAsPropertyName(checkExpressionCached(c, name.argumentExpression));
74
74
  }
@@ -78,14 +78,14 @@ export function getLateBindableNameOfDeclaration(node) {
78
78
  }
79
79
  export function hasLateBindableIndexSignature(c, node) {
80
80
  const name = getName(node);
81
- if (name === undefined || !isLateBindableAST(name) || name.kind !== 168 /* SyntaxKind.ComputedPropertyName */)
81
+ if (name === undefined || !isLateBindableAST(name) || name.kind !== 169 /* SyntaxKind.ComputedPropertyName */)
82
82
  return false;
83
83
  return isTypeAssignableTo(c, checkComputedPropertyName(c, name), c.stringNumberSymbolType);
84
84
  }
85
85
  /** Whether a declaration's name is a computed name that isn't a literal. */
86
86
  export function hasDynamicName(node) {
87
87
  const name = getName(node);
88
- if (name === undefined || name.kind !== 168 /* SyntaxKind.ComputedPropertyName */)
88
+ if (name === undefined || name.kind !== 169 /* SyntaxKind.ComputedPropertyName */)
89
89
  return false;
90
90
  const e = getExpression(name);
91
91
  return !(e.kind === 10 /* SyntaxKind.StringLiteral */ ||
@@ -98,15 +98,15 @@ export function getFunctionFlags(node) {
98
98
  return 4 /* FunctionFlags.Invalid */;
99
99
  let flags = 0 /* FunctionFlags.Normal */;
100
100
  switch (node.kind) {
101
- case 263 /* SyntaxKind.FunctionDeclaration */:
102
- case 219 /* SyntaxKind.FunctionExpression */:
103
- case 175 /* SyntaxKind.MethodDeclaration */:
101
+ case 264 /* SyntaxKind.FunctionDeclaration */:
102
+ case 220 /* SyntaxKind.FunctionExpression */:
103
+ case 176 /* SyntaxKind.MethodDeclaration */:
104
104
  if (getAsteriskToken(node) !== undefined)
105
105
  flags |= 1 /* FunctionFlags.Generator */;
106
106
  if (hasSyntacticModifier(node, 1024 /* ModifierFlags.Async */))
107
107
  flags |= 2 /* FunctionFlags.Async */;
108
108
  break;
109
- case 220 /* SyntaxKind.ArrowFunction */:
109
+ case 221 /* SyntaxKind.ArrowFunction */:
110
110
  if (hasSyntacticModifier(node, 1024 /* ModifierFlags.Async */))
111
111
  flags |= 2 /* FunctionFlags.Async */;
112
112
  break;
@@ -117,7 +117,7 @@ export function getFunctionFlags(node) {
117
117
  }
118
118
  export function isBindingPattern(node) {
119
119
  return (node !== undefined &&
120
- (node.kind === 207 /* SyntaxKind.ObjectBindingPattern */ || node.kind === 208 /* SyntaxKind.ArrayBindingPattern */));
120
+ (node.kind === 208 /* SyntaxKind.ObjectBindingPattern */ || node.kind === 209 /* SyntaxKind.ArrayBindingPattern */));
121
121
  }
122
122
  /** The index of the node with `node`'s range among `nodes`, which are in source order; -1 if none. */
123
123
  export function indexOfNode(nodes, node) {