tsc-ts 0.0.9 → 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 (373) hide show
  1. package/README.md +2 -2
  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 +22 -15
  6. package/dist/api/compiler/ast.js +1026 -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 +178 -124
  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 +472 -440
  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 -107
  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 +212 -75
  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 +145 -36
  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 +104 -31
  73. package/dist/api/compiler/checker.js +181 -33
  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 +42 -3
  77. package/dist/api/compiler/compile-program.js +139 -27
  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.d.ts +22 -0
  81. package/dist/api/compiler/diagnostics.js +93 -11
  82. package/dist/api/compiler/emitter.d.ts +7 -1
  83. package/dist/api/compiler/emitter.js +53 -11
  84. package/dist/api/compiler/file-include.d.ts +2 -1
  85. package/dist/api/compiler/file-include.js +11 -7
  86. package/dist/api/compiler/file-loader.d.ts +21 -1
  87. package/dist/api/compiler/file-loader.js +201 -48
  88. package/dist/api/compiler/instantiation.d.ts +7 -0
  89. package/dist/api/compiler/instantiation.js +101 -49
  90. package/dist/api/compiler/jsdoc.js +23 -23
  91. package/dist/api/compiler/link-tables.d.ts +48 -18
  92. package/dist/api/compiler/link-tables.js +80 -37
  93. package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
  94. package/dist/api/compiler/locales/cs-CZ.js +1 -1
  95. package/dist/api/compiler/locales/de-DE.d.ts +1 -1
  96. package/dist/api/compiler/locales/de-DE.js +1 -1
  97. package/dist/api/compiler/locales/es-ES.d.ts +1 -1
  98. package/dist/api/compiler/locales/es-ES.js +1 -1
  99. package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
  100. package/dist/api/compiler/locales/fr-FR.js +1 -1
  101. package/dist/api/compiler/locales/it-IT.d.ts +1 -1
  102. package/dist/api/compiler/locales/it-IT.js +1 -1
  103. package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
  104. package/dist/api/compiler/locales/ja-JP.js +1 -1
  105. package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
  106. package/dist/api/compiler/locales/ko-KR.js +1 -1
  107. package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
  108. package/dist/api/compiler/locales/pl-PL.js +1 -1
  109. package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
  110. package/dist/api/compiler/locales/pt-BR.js +1 -1
  111. package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
  112. package/dist/api/compiler/locales/ru-RU.js +1 -1
  113. package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
  114. package/dist/api/compiler/locales/tr-TR.js +1 -1
  115. package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
  116. package/dist/api/compiler/locales/zh-CN.js +1 -1
  117. package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
  118. package/dist/api/compiler/locales/zh-TW.js +1 -1
  119. package/dist/api/compiler/module-resolution-types.js +6 -6
  120. package/dist/api/compiler/module-resolution.d.ts +10 -1
  121. package/dist/api/compiler/module-resolution.js +115 -84
  122. package/dist/api/compiler/module-specifiers.d.ts +15 -0
  123. package/dist/api/compiler/module-specifiers.js +24 -18
  124. package/dist/api/compiler/name-resolver.js +74 -65
  125. package/dist/api/compiler/node-builder-names.d.ts +11 -3
  126. package/dist/api/compiler/node-builder-names.js +210 -90
  127. package/dist/api/compiler/node-builder-pseudo.js +29 -31
  128. package/dist/api/compiler/node-builder-reuse.js +23 -22
  129. package/dist/api/compiler/node-builder.d.ts +18 -1
  130. package/dist/api/compiler/node-builder.js +191 -102
  131. package/dist/api/compiler/option-declarations.d.ts +2 -6
  132. package/dist/api/compiler/option-declarations.js +315 -375
  133. package/dist/api/compiler/options.d.ts +15 -33
  134. package/dist/api/compiler/options.js +21 -54
  135. package/dist/api/compiler/output-paths.d.ts +4 -1
  136. package/dist/api/compiler/output-paths.js +6 -11
  137. package/dist/api/compiler/package-json.d.ts +3 -3
  138. package/dist/api/compiler/package-json.js +11 -10
  139. package/dist/api/compiler/parallel-parse.d.ts +3 -2
  140. package/dist/api/compiler/parallel-parse.js +17 -5
  141. package/dist/api/compiler/parser.d.ts +40 -19
  142. package/dist/api/compiler/parser.js +308 -216
  143. package/dist/api/compiler/path.d.ts +9 -0
  144. package/dist/api/compiler/path.js +20 -3
  145. package/dist/api/compiler/printer/emit-context.d.ts +5 -1
  146. package/dist/api/compiler/printer/emit-context.js +20 -1
  147. package/dist/api/compiler/printer/factory-base.d.ts +2 -2
  148. package/dist/api/compiler/printer/factory-base.js +7 -3
  149. package/dist/api/compiler/printer/factory.js +3 -1
  150. package/dist/api/compiler/printer/helpers.js +10 -1
  151. package/dist/api/compiler/printer/name-generator.d.ts +1 -1
  152. package/dist/api/compiler/printer/name-generator.js +35 -16
  153. package/dist/api/compiler/printer/printer.d.ts +49 -2
  154. package/dist/api/compiler/printer/printer.js +539 -293
  155. package/dist/api/compiler/printer/utilities.js +149 -147
  156. package/dist/api/compiler/program-checker.d.ts +12 -2
  157. package/dist/api/compiler/program-checker.js +88 -34
  158. package/dist/api/compiler/program-utilities.d.ts +3 -1
  159. package/dist/api/compiler/program-utilities.js +28 -15
  160. package/dist/api/compiler/program.d.ts +4 -6
  161. package/dist/api/compiler/program.js +74 -87
  162. package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
  163. package/dist/api/compiler/pseudo-bigint.js +18 -0
  164. package/dist/api/compiler/regexp-checker.d.ts +1 -1
  165. package/dist/api/compiler/regexp-checker.js +93 -76
  166. package/dist/api/compiler/relations.d.ts +27 -4
  167. package/dist/api/compiler/relations.js +347 -180
  168. package/dist/api/compiler/reparser.js +60 -56
  169. package/dist/api/compiler/scanner.d.ts +19 -2
  170. package/dist/api/compiler/scanner.js +123 -108
  171. package/dist/api/compiler/shared-results.d.ts +463 -0
  172. package/dist/api/compiler/shared-results.js +2128 -0
  173. package/dist/api/compiler/sourcemap.js +2 -2
  174. package/dist/api/compiler/symbol-accessibility.js +87 -74
  175. package/dist/api/compiler/symbol.d.ts +23 -14
  176. package/dist/api/compiler/symbol.js +23 -11
  177. package/dist/api/compiler/syntax-kind.d.ts +198 -197
  178. package/dist/api/compiler/transformers/alias-references.js +247 -139
  179. package/dist/api/compiler/transformers/async-utilities.js +25 -25
  180. package/dist/api/compiler/transformers/async.d.ts +0 -1
  181. package/dist/api/compiler/transformers/async.js +64 -77
  182. package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
  183. package/dist/api/compiler/transformers/class-fields.js +81 -78
  184. package/dist/api/compiler/transformers/commonjs-module.js +18 -15
  185. package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
  186. package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
  187. package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
  188. package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
  189. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
  190. package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
  191. package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
  192. package/dist/api/compiler/transformers/declarations.d.ts +4 -1
  193. package/dist/api/compiler/transformers/declarations.js +305 -238
  194. package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
  195. package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
  196. package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
  197. package/dist/api/compiler/transformers/destructuring.js +19 -18
  198. package/dist/api/compiler/transformers/emit-resolver.js +1 -1
  199. package/dist/api/compiler/transformers/es-decorators.js +55 -55
  200. package/dist/api/compiler/transformers/external-module-info.js +3 -3
  201. package/dist/api/compiler/transformers/for-await.js +25 -25
  202. package/dist/api/compiler/transformers/import-elision.js +14 -14
  203. package/dist/api/compiler/transformers/jsx.js +12 -12
  204. package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
  205. package/dist/api/compiler/transformers/module.js +8 -8
  206. package/dist/api/compiler/transformers/named-evaluation.js +4 -4
  207. package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
  208. package/dist/api/compiler/transformers/optional-chain.js +10 -10
  209. package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
  210. package/dist/api/compiler/transformers/reference-resolver.js +131 -69
  211. package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
  212. package/dist/api/compiler/transformers/subtree-facts.js +47 -47
  213. package/dist/api/compiler/transformers/syntax-facts.js +56 -58
  214. package/dist/api/compiler/transformers/type-eraser.js +73 -66
  215. package/dist/api/compiler/transformers/type-serialization.js +24 -24
  216. package/dist/api/compiler/transformers/using.js +12 -12
  217. package/dist/api/compiler/transformers/utilities.js +77 -77
  218. package/dist/api/compiler/transformers/visitor-base.js +172 -172
  219. package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
  220. package/dist/api/compiler/tsconfig.d.ts +10 -2
  221. package/dist/api/compiler/tsconfig.js +136 -48
  222. package/dist/api/compiler/type-printer.js +40 -3
  223. package/dist/api/compiler/types.d.ts +2 -1
  224. package/dist/api/library/ast.generated.d.ts +42 -39
  225. package/dist/api/library/ast.generated.js +1 -1
  226. package/dist/api/library/compiler-options.generated.d.ts +111 -100
  227. package/dist/api/library/compiler-options.generated.js +1 -1
  228. package/dist/api/library/disk.js +12 -1
  229. package/dist/api/library/enums.generated.d.ts +206 -206
  230. package/dist/api/library/enums.generated.js +206 -206
  231. package/dist/api/library/nodes.js +26 -26
  232. package/package.json +9 -9
  233. package/src/compiler/ast-utilities.ts +99 -7
  234. package/src/compiler/ast.ts +58 -26
  235. package/src/compiler/binder.ts +39 -4
  236. package/src/compiler/character-codes.ts +2 -2
  237. package/src/compiler/checker-calls.ts +79 -9
  238. package/src/compiler/checker-classes.ts +78 -24
  239. package/src/compiler/checker-contextual.ts +6 -1
  240. package/src/compiler/checker-declarations.ts +31 -4
  241. package/src/compiler/checker-declared-types.ts +8 -5
  242. package/src/compiler/checker-decorators.ts +1 -1
  243. package/src/compiler/checker-deprecation.ts +29 -8
  244. package/src/compiler/checker-destructuring.ts +10 -3
  245. package/src/compiler/checker-emit-helpers.ts +1 -0
  246. package/src/compiler/checker-emit-resolver.ts +16 -6
  247. package/src/compiler/checker-expressions.ts +79 -46
  248. package/src/compiler/checker-functions.ts +21 -6
  249. package/src/compiler/checker-generated-code.ts +2 -22
  250. package/src/compiler/checker-grammar.ts +136 -62
  251. package/src/compiler/checker-heritage.ts +22 -21
  252. package/src/compiler/checker-inference.ts +514 -82
  253. package/src/compiler/checker-iteration.ts +18 -31
  254. package/src/compiler/checker-javascript.ts +1 -1
  255. package/src/compiler/checker-jsdoc.ts +50 -27
  256. package/src/compiler/checker-jsx.ts +26 -4
  257. package/src/compiler/checker-members.ts +200 -56
  258. package/src/compiler/checker-modules.ts +332 -65
  259. package/src/compiler/checker-narrowing.ts +98 -19
  260. package/src/compiler/checker-object-literals.ts +3 -0
  261. package/src/compiler/checker-operators.ts +11 -4
  262. package/src/compiler/checker-property-access.ts +7 -2
  263. package/src/compiler/checker-services.ts +39 -12
  264. package/src/compiler/checker-signatures.ts +15 -1
  265. package/src/compiler/checker-source-file.ts +39 -13
  266. package/src/compiler/checker-statements.ts +3 -2
  267. package/src/compiler/checker-symbol-types.ts +29 -6
  268. package/src/compiler/checker-symbols.ts +158 -15
  269. package/src/compiler/checker-type-factory.ts +124 -23
  270. package/src/compiler/checker-type-nodes.ts +46 -3
  271. package/src/compiler/checker-type-operators.ts +83 -26
  272. package/src/compiler/checker-types.ts +147 -4
  273. package/src/compiler/checker-unused.ts +9 -14
  274. package/src/compiler/checker.ts +203 -39
  275. package/src/compiler/command-line.ts +28 -28
  276. package/src/compiler/compile-program.ts +167 -27
  277. package/src/compiler/decoder.ts +13 -4
  278. package/src/compiler/diagnostic-messages.ts +1973 -1892
  279. package/src/compiler/diagnostics.ts +84 -3
  280. package/src/compiler/emitter.ts +57 -8
  281. package/src/compiler/encoder.ts +23 -8
  282. package/src/compiler/file-include.ts +9 -3
  283. package/src/compiler/file-loader.ts +197 -38
  284. package/src/compiler/help.ts +10 -14
  285. package/src/compiler/incremental.ts +165 -30
  286. package/src/compiler/init.ts +2 -7
  287. package/src/compiler/instantiation.ts +77 -22
  288. package/src/compiler/jsdoc.ts +3 -1
  289. package/src/compiler/link-tables.ts +82 -37
  290. package/src/compiler/locales/cs-CZ.ts +1 -1
  291. package/src/compiler/locales/de-DE.ts +1 -1
  292. package/src/compiler/locales/es-ES.ts +1 -1
  293. package/src/compiler/locales/fr-FR.ts +1 -1
  294. package/src/compiler/locales/it-IT.ts +1 -1
  295. package/src/compiler/locales/ja-JP.ts +1 -1
  296. package/src/compiler/locales/ko-KR.ts +1 -1
  297. package/src/compiler/locales/pl-PL.ts +1 -1
  298. package/src/compiler/locales/pt-BR.ts +1 -1
  299. package/src/compiler/locales/ru-RU.ts +1 -1
  300. package/src/compiler/locales/tr-TR.ts +1 -1
  301. package/src/compiler/locales/zh-CN.ts +1 -1
  302. package/src/compiler/locales/zh-TW.ts +1 -1
  303. package/src/compiler/module-resolution.ts +44 -8
  304. package/src/compiler/module-specifiers.ts +62 -20
  305. package/src/compiler/name-resolver.ts +9 -1
  306. package/src/compiler/node-builder-names.ts +236 -54
  307. package/src/compiler/node-builder-pseudo.ts +4 -7
  308. package/src/compiler/node-builder-reuse.ts +5 -4
  309. package/src/compiler/node-builder.ts +130 -31
  310. package/src/compiler/option-declarations.ts +33 -103
  311. package/src/compiler/options.ts +23 -62
  312. package/src/compiler/output-paths.ts +5 -18
  313. package/src/compiler/package-entrypoints.ts +345 -0
  314. package/src/compiler/package-json.ts +4 -4
  315. package/src/compiler/parallel-check.ts +326 -52
  316. package/src/compiler/parallel-emit.ts +320 -0
  317. package/src/compiler/parallel-parse.ts +16 -5
  318. package/src/compiler/parse-thread.ts +3 -0
  319. package/src/compiler/parser.ts +156 -39
  320. package/src/compiler/path.ts +22 -2
  321. package/src/compiler/printer/emit-context.ts +21 -0
  322. package/src/compiler/printer/factory-base.ts +10 -3
  323. package/src/compiler/printer/factory.ts +4 -1
  324. package/src/compiler/printer/helpers.ts +10 -1
  325. package/src/compiler/printer/name-generator.ts +24 -2
  326. package/src/compiler/printer/printer.ts +266 -30
  327. package/src/compiler/printer/utilities.ts +8 -2
  328. package/src/compiler/program-checker.ts +57 -5
  329. package/src/compiler/program-utilities.ts +23 -10
  330. package/src/compiler/program.ts +18 -26
  331. package/src/compiler/pseudo-bigint.ts +17 -0
  332. package/src/compiler/regexp-checker.ts +63 -30
  333. package/src/compiler/relations.ts +240 -77
  334. package/src/compiler/reparser.ts +7 -2
  335. package/src/compiler/scanner.ts +109 -79
  336. package/src/compiler/shared-results.ts +2414 -0
  337. package/src/compiler/show-config.ts +18 -1
  338. package/src/compiler/sourcemap.ts +2 -2
  339. package/src/compiler/symbol-accessibility.ts +26 -3
  340. package/src/compiler/symbol.ts +46 -24
  341. package/src/compiler/syntax-kind.ts +188 -187
  342. package/src/compiler/thread-entry.ts +64 -4
  343. package/src/compiler/transformers/alias-references.ts +123 -4
  344. package/src/compiler/transformers/async.ts +2 -17
  345. package/src/compiler/transformers/class-fields.ts +13 -12
  346. package/src/compiler/transformers/commonjs-module.ts +11 -7
  347. package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
  348. package/src/compiler/transformers/declarations-pseudo.ts +2 -4
  349. package/src/compiler/transformers/declarations-resolver.ts +0 -3
  350. package/src/compiler/transformers/declarations-syntactic.ts +1 -21
  351. package/src/compiler/transformers/declarations.ts +134 -48
  352. package/src/compiler/transformers/decorator-metadata.ts +9 -1
  353. package/src/compiler/transformers/destructuring.ts +4 -3
  354. package/src/compiler/transformers/external-module-info.ts +1 -1
  355. package/src/compiler/transformers/jsx.ts +2 -1
  356. package/src/compiler/transformers/reference-resolver.ts +83 -19
  357. package/src/compiler/transformers/runtime-syntax.ts +6 -1
  358. package/src/compiler/transformers/syntax-facts.ts +2 -7
  359. package/src/compiler/transformers/type-eraser.ts +10 -1
  360. package/src/compiler/transformers/type-serialization.ts +3 -2
  361. package/src/compiler/transformers/visitor-base.ts +2 -1
  362. package/src/compiler/transformers/visitor-hooks.ts +9 -4
  363. package/src/compiler/tsc-build.ts +66 -9
  364. package/src/compiler/tsc-cli.ts +7 -0
  365. package/src/compiler/tsc-compile.ts +284 -4
  366. package/src/compiler/tsc-watch.ts +74 -45
  367. package/src/compiler/tsconfig.ts +176 -19
  368. package/src/compiler/type-printer.ts +36 -2
  369. package/src/compiler/types.ts +2 -1
  370. package/src/library/ast.generated.ts +57 -41
  371. package/src/library/compiler-options.generated.ts +117 -103
  372. package/src/library/disk.ts +10 -1
  373. package/src/library/enums.generated.ts +196 -196
@@ -149,665 +149,665 @@ function asOptionalVariableDeclaration(node) {
149
149
  export class VisitorBase extends VisitorHooks {
150
150
  visitEachChild(node) {
151
151
  switch (node.kind) {
152
- case 210 /* SyntaxKind.ArrayLiteralExpression */:
152
+ case 211 /* SyntaxKind.ArrayLiteralExpression */:
153
153
  if (node instanceof ArrayLiteralExpression)
154
154
  return this.factory.updateArrayLiteralExpression(node, this.visitNodes(node.elements), node.multiLine);
155
155
  break;
156
- case 189 /* SyntaxKind.ArrayType */:
156
+ case 190 /* SyntaxKind.ArrayType */:
157
157
  if (node instanceof ArrayTypeNode)
158
158
  return this.factory.updateArrayTypeNode(node, required(this.visitNode(node.elementType), node.elementType));
159
159
  break;
160
- case 220 /* SyntaxKind.ArrowFunction */:
160
+ case 221 /* SyntaxKind.ArrowFunction */:
161
161
  if (node instanceof ArrowFunction)
162
162
  return this.factory.updateArrowFunction(node, this.visitModifiers(node.modifiers), this.visitNodes(node.typeParameters), this.visitParameters(node.parameters), this.visitNode(node.type), this.visitNode(node.fullSignature), asOptionalToken(this.visitNode(node.equalsGreaterThanToken)), required(this.visitFunctionBody(node.body), node.body));
163
163
  break;
164
- case 235 /* SyntaxKind.AsExpression */:
164
+ case 236 /* SyntaxKind.AsExpression */:
165
165
  if (node instanceof AsExpression)
166
166
  return this.factory.updateAsExpression(node, required(this.visitNode(node.expression), node.expression), required(this.visitNode(node.type), node.type));
167
167
  break;
168
- case 224 /* SyntaxKind.AwaitExpression */:
168
+ case 225 /* SyntaxKind.AwaitExpression */:
169
169
  if (node instanceof AwaitExpression)
170
170
  return this.factory.updateAwaitExpression(node, required(this.visitNode(node.expression), node.expression));
171
171
  break;
172
- case 227 /* SyntaxKind.BinaryExpression */:
172
+ case 228 /* SyntaxKind.BinaryExpression */:
173
173
  if (node instanceof BinaryExpression)
174
174
  return this.factory.updateBinaryExpression(node, this.visitModifiers(node.modifiers), required(this.visitNode(node.left), node.left), this.visitNode(node.type), asToken(this.visitNode(node.operatorToken), node.operatorToken), required(this.visitNode(node.right), node.right));
175
175
  break;
176
- case 209 /* SyntaxKind.BindingElement */:
176
+ case 210 /* SyntaxKind.BindingElement */:
177
177
  if (node instanceof BindingElement)
178
178
  return this.factory.updateBindingElement(node, asOptionalToken(this.visitNode(node.dotDotDotToken)), this.visitNode(node.propertyName), this.visitNode(node.name), this.visitNode(node.initializer));
179
179
  break;
180
- case 207 /* SyntaxKind.ObjectBindingPattern */:
181
- case 208 /* SyntaxKind.ArrayBindingPattern */:
180
+ case 208 /* SyntaxKind.ObjectBindingPattern */:
181
+ case 209 /* SyntaxKind.ArrayBindingPattern */:
182
182
  if (node instanceof BindingPattern)
183
183
  return this.factory.updateBindingPattern(node, this.visitNodes(node.elements));
184
184
  break;
185
- case 242 /* SyntaxKind.Block */:
185
+ case 243 /* SyntaxKind.Block */:
186
186
  if (node instanceof Block)
187
187
  return this.factory.updateBlock(node, this.visitNodes(node.statements), node.multiLine);
188
188
  break;
189
- case 253 /* SyntaxKind.BreakStatement */:
189
+ case 254 /* SyntaxKind.BreakStatement */:
190
190
  if (node instanceof BreakStatement)
191
191
  return this.factory.updateBreakStatement(node, asOptionalIdentifier(this.visitNode(node.label)));
192
192
  break;
193
- case 214 /* SyntaxKind.CallExpression */:
193
+ case 215 /* SyntaxKind.CallExpression */:
194
194
  if (node instanceof CallExpression)
195
195
  return this.factory.updateCallExpression(node, required(this.visitNode(node.expression), node.expression), asOptionalToken(this.visitNode(callQuestionDotToken(node))), this.visitNodes(callTypeArguments(node)), this.visitNodes(node.arguments), node.flags);
196
196
  break;
197
- case 180 /* SyntaxKind.CallSignature */:
197
+ case 181 /* SyntaxKind.CallSignature */:
198
198
  if (node instanceof CallSignatureDeclaration)
199
199
  return this.factory.updateCallSignatureDeclaration(node, this.visitNodes(node.typeParameters), this.visitNodes(node.parameters), this.visitNode(node.type));
200
200
  break;
201
- case 270 /* SyntaxKind.CaseBlock */:
201
+ case 271 /* SyntaxKind.CaseBlock */:
202
202
  if (node instanceof CaseBlock)
203
203
  return this.factory.updateCaseBlock(node, this.visitNodes(node.clauses));
204
204
  break;
205
- case 297 /* SyntaxKind.CaseClause */:
206
- case 298 /* SyntaxKind.DefaultClause */:
205
+ case 298 /* SyntaxKind.CaseClause */:
206
+ case 299 /* SyntaxKind.DefaultClause */:
207
207
  if (node instanceof CaseOrDefaultClause)
208
208
  return this.factory.updateCaseOrDefaultClause(node, this.visitNode(node.expression), this.visitNodes(node.statements));
209
209
  break;
210
- case 300 /* SyntaxKind.CatchClause */:
210
+ case 301 /* SyntaxKind.CatchClause */:
211
211
  if (node instanceof CatchClause)
212
212
  return this.factory.updateCatchClause(node, asOptionalVariableDeclaration(this.visitNode(node.variableDeclaration)), asBlock(this.visitNode(node.block), node.block));
213
213
  break;
214
- case 264 /* SyntaxKind.ClassDeclaration */:
214
+ case 265 /* SyntaxKind.ClassDeclaration */:
215
215
  if (node instanceof ClassDeclaration)
216
216
  return this.factory.updateClassDeclaration(node, this.visitModifiers(node.modifiers), asOptionalIdentifier(this.visitNode(node.name)), this.visitNodes(node.typeParameters), this.visitNodes(node.heritageClauses), this.visitNodes(node.members));
217
217
  break;
218
- case 232 /* SyntaxKind.ClassExpression */:
218
+ case 233 /* SyntaxKind.ClassExpression */:
219
219
  if (node instanceof ClassExpression)
220
220
  return this.factory.updateClassExpression(node, this.visitModifiers(node.modifiers), asOptionalIdentifier(this.visitNode(node.name)), this.visitNodes(node.typeParameters), this.visitNodes(node.heritageClauses), this.visitNodes(node.members));
221
221
  break;
222
- case 176 /* SyntaxKind.ClassStaticBlockDeclaration */:
222
+ case 177 /* SyntaxKind.ClassStaticBlockDeclaration */:
223
223
  if (node instanceof ClassStaticBlockDeclaration)
224
224
  return this.factory.updateClassStaticBlockDeclaration(node, this.visitModifiers(node.modifiers), asBlock(this.visitNode(node.body), node.body));
225
225
  break;
226
- case 168 /* SyntaxKind.ComputedPropertyName */:
226
+ case 169 /* SyntaxKind.ComputedPropertyName */:
227
227
  if (node instanceof ComputedPropertyName)
228
228
  return this.factory.updateComputedPropertyName(node, required(this.visitNode(node.expression), node.expression));
229
229
  break;
230
- case 228 /* SyntaxKind.ConditionalExpression */:
230
+ case 229 /* SyntaxKind.ConditionalExpression */:
231
231
  if (node instanceof ConditionalExpression)
232
232
  return this.factory.updateConditionalExpression(node, required(this.visitNode(node.condition), node.condition), asToken(this.visitNode(node.questionToken), node.questionToken), required(this.visitNode(node.whenTrue), node.whenTrue), asToken(this.visitNode(node.colonToken), node.colonToken), required(this.visitNode(node.whenFalse), node.whenFalse));
233
233
  break;
234
- case 195 /* SyntaxKind.ConditionalType */:
234
+ case 196 /* SyntaxKind.ConditionalType */:
235
235
  if (node instanceof ConditionalTypeNode)
236
236
  return this.factory.updateConditionalTypeNode(node, required(this.visitNode(node.checkType), node.checkType), required(this.visitNode(node.extendsType), node.extendsType), required(this.visitNode(node.trueType), node.trueType), required(this.visitNode(node.falseType), node.falseType));
237
237
  break;
238
- case 177 /* SyntaxKind.Constructor */:
238
+ case 178 /* SyntaxKind.Constructor */:
239
239
  if (node instanceof ConstructorDeclaration)
240
240
  return this.factory.updateConstructorDeclaration(node, this.visitModifiers(node.modifiers), this.visitNodes(node.typeParameters), this.visitParameters(node.parameters), this.visitNode(node.type), this.visitNode(node.fullSignature), this.visitFunctionBody(node.body));
241
241
  break;
242
- case 186 /* SyntaxKind.ConstructorType */:
242
+ case 187 /* SyntaxKind.ConstructorType */:
243
243
  if (node instanceof ConstructorTypeNode)
244
244
  return this.factory.updateConstructorTypeNode(node, this.visitModifiers(node.modifiers), this.visitNodes(node.typeParameters), this.visitNodes(node.parameters), this.visitNode(node.type));
245
245
  break;
246
- case 181 /* SyntaxKind.ConstructSignature */:
246
+ case 182 /* SyntaxKind.ConstructSignature */:
247
247
  if (node instanceof ConstructSignatureDeclaration)
248
248
  return this.factory.updateConstructSignatureDeclaration(node, this.visitNodes(node.typeParameters), this.visitNodes(node.parameters), this.visitNode(node.type));
249
249
  break;
250
- case 252 /* SyntaxKind.ContinueStatement */:
250
+ case 253 /* SyntaxKind.ContinueStatement */:
251
251
  if (node instanceof ContinueStatement)
252
252
  return this.factory.updateContinueStatement(node, asOptionalIdentifier(this.visitNode(node.label)));
253
253
  break;
254
- case 171 /* SyntaxKind.Decorator */:
254
+ case 172 /* SyntaxKind.Decorator */:
255
255
  if (node instanceof Decorator)
256
256
  return this.factory.updateDecorator(node, required(this.visitNode(node.expression), node.expression));
257
257
  break;
258
- case 221 /* SyntaxKind.DeleteExpression */:
258
+ case 222 /* SyntaxKind.DeleteExpression */:
259
259
  if (node instanceof DeleteExpression)
260
260
  return this.factory.updateDeleteExpression(node, required(this.visitNode(node.expression), node.expression));
261
261
  break;
262
- case 247 /* SyntaxKind.DoStatement */:
262
+ case 248 /* SyntaxKind.DoStatement */:
263
263
  if (node instanceof DoStatement)
264
264
  return this.factory.updateDoStatement(node, required(this.visitIterationBody(node.statement), node.statement), required(this.visitNode(node.expression), node.expression));
265
265
  break;
266
- case 213 /* SyntaxKind.ElementAccessExpression */:
266
+ case 214 /* SyntaxKind.ElementAccessExpression */:
267
267
  if (node instanceof ElementAccessExpression)
268
268
  return this.factory.updateElementAccessExpression(node, required(this.visitNode(node.expression), node.expression), asOptionalToken(this.visitNode(node.questionDotToken)), required(this.visitNode(node.argumentExpression), node.argumentExpression), node.flags);
269
269
  break;
270
- case 267 /* SyntaxKind.EnumDeclaration */:
270
+ case 268 /* SyntaxKind.EnumDeclaration */:
271
271
  if (node instanceof EnumDeclaration)
272
272
  return this.factory.updateEnumDeclaration(node, this.visitModifiers(node.modifiers), asIdentifier(this.visitNode(node.name), node.name), this.visitNodes(node.members));
273
273
  break;
274
- case 306 /* SyntaxKind.EnumMember */:
274
+ case 307 /* SyntaxKind.EnumMember */:
275
275
  if (node instanceof EnumMember)
276
276
  return this.factory.updateEnumMember(node, required(this.visitNode(node.name), node.name), this.visitNode(node.initializer));
277
277
  break;
278
- case 278 /* SyntaxKind.ExportAssignment */:
278
+ case 279 /* SyntaxKind.ExportAssignment */:
279
279
  if (node instanceof ExportAssignment)
280
280
  return this.factory.updateExportAssignment(node, this.visitModifiers(node.modifiers), node.isExportEquals, this.visitNode(node.type), required(this.visitNode(node.expression), node.expression));
281
281
  break;
282
- case 279 /* SyntaxKind.ExportDeclaration */:
282
+ case 280 /* SyntaxKind.ExportDeclaration */:
283
283
  if (node instanceof ExportDeclaration)
284
284
  return this.factory.updateExportDeclaration(node, this.visitModifiers(node.modifiers), node.isTypeOnly, this.visitNode(node.exportClause), this.visitNode(node.moduleSpecifier), asOptionalImportAttributes(this.visitNode(node.attributes)));
285
285
  break;
286
- case 282 /* SyntaxKind.ExportSpecifier */:
286
+ case 283 /* SyntaxKind.ExportSpecifier */:
287
287
  if (node instanceof ExportSpecifier)
288
288
  return this.factory.updateExportSpecifier(node, node.isTypeOnly, this.visitNode(node.propertyName), required(this.visitNode(node.name), node.name));
289
289
  break;
290
- case 245 /* SyntaxKind.ExpressionStatement */:
290
+ case 246 /* SyntaxKind.ExpressionStatement */:
291
291
  if (node instanceof ExpressionStatement)
292
292
  return this.factory.updateExpressionStatement(node, required(this.visitNode(node.expression), node.expression));
293
293
  break;
294
- case 234 /* SyntaxKind.ExpressionWithTypeArguments */:
294
+ case 235 /* SyntaxKind.ExpressionWithTypeArguments */:
295
295
  if (node instanceof ExpressionWithTypeArguments)
296
296
  return this.factory.updateExpressionWithTypeArguments(node, required(this.visitNode(node.expression), node.expression), this.visitNodes(node.typeArguments));
297
297
  break;
298
- case 284 /* SyntaxKind.ExternalModuleReference */:
298
+ case 285 /* SyntaxKind.ExternalModuleReference */:
299
299
  if (node instanceof ExternalModuleReference)
300
300
  return this.factory.updateExternalModuleReference(node, required(this.visitNode(node.expression), node.expression));
301
301
  break;
302
- case 250 /* SyntaxKind.ForInStatement */:
303
- case 251 /* SyntaxKind.ForOfStatement */:
302
+ case 251 /* SyntaxKind.ForInStatement */:
303
+ case 252 /* SyntaxKind.ForOfStatement */:
304
304
  if (node instanceof ForInOrOfStatement)
305
305
  return this.factory.updateForInOrOfStatement(node, asOptionalToken(this.visitNode(node.awaitModifier)), required(this.visitNode(node.initializer), node.initializer), required(this.visitNode(node.expression), node.expression), required(this.visitIterationBody(node.statement), node.statement));
306
306
  break;
307
- case 249 /* SyntaxKind.ForStatement */:
307
+ case 250 /* SyntaxKind.ForStatement */:
308
308
  if (node instanceof ForStatement)
309
309
  return this.factory.updateForStatement(node, this.visitNode(node.initializer), this.visitNode(node.condition), this.visitNode(node.incrementor), required(this.visitIterationBody(node.statement), node.statement));
310
310
  break;
311
- case 263 /* SyntaxKind.FunctionDeclaration */:
311
+ case 264 /* SyntaxKind.FunctionDeclaration */:
312
312
  if (node instanceof FunctionDeclaration)
313
313
  return this.factory.updateFunctionDeclaration(node, this.visitModifiers(node.modifiers), asOptionalToken(this.visitNode(node.asteriskToken)), asOptionalIdentifier(this.visitNode(node.name)), this.visitNodes(node.typeParameters), this.visitParameters(node.parameters), this.visitNode(node.type), this.visitNode(node.fullSignature), this.visitFunctionBody(node.body));
314
314
  break;
315
- case 219 /* SyntaxKind.FunctionExpression */:
315
+ case 220 /* SyntaxKind.FunctionExpression */:
316
316
  if (node instanceof FunctionExpression)
317
317
  return this.factory.updateFunctionExpression(node, this.visitModifiers(node.modifiers), asOptionalToken(this.visitNode(node.asteriskToken)), asOptionalIdentifier(this.visitNode(node.name)), this.visitNodes(node.typeParameters), this.visitParameters(node.parameters), this.visitNode(node.type), this.visitNode(node.fullSignature), required(this.visitFunctionBody(node.body), node.body));
318
318
  break;
319
- case 185 /* SyntaxKind.FunctionType */:
319
+ case 186 /* SyntaxKind.FunctionType */:
320
320
  if (node instanceof FunctionTypeNode)
321
321
  return this.factory.updateFunctionTypeNode(node, this.visitNodes(node.typeParameters), this.visitNodes(node.parameters), this.visitNode(node.type));
322
322
  break;
323
- case 178 /* SyntaxKind.GetAccessor */:
323
+ case 179 /* SyntaxKind.GetAccessor */:
324
324
  if (node instanceof GetAccessorDeclaration)
325
325
  return this.factory.updateGetAccessorDeclaration(node, this.visitModifiers(node.modifiers), required(this.visitNode(node.name), node.name), this.visitNodes(node.typeParameters), this.visitParameters(node.parameters), this.visitNode(node.type), this.visitNode(node.fullSignature), this.visitFunctionBody(node.body));
326
326
  break;
327
- case 299 /* SyntaxKind.HeritageClause */:
327
+ case 300 /* SyntaxKind.HeritageClause */:
328
328
  if (node instanceof HeritageClause)
329
329
  return this.factory.updateHeritageClause(node, node.token, this.visitNodes(node.types));
330
330
  break;
331
- case 246 /* SyntaxKind.IfStatement */:
331
+ case 247 /* SyntaxKind.IfStatement */:
332
332
  if (node instanceof IfStatement)
333
333
  return this.factory.updateIfStatement(node, required(this.visitNode(node.expression), node.expression), required(this.visitEmbeddedStatement(node.thenStatement), node.thenStatement), this.visitEmbeddedStatement(node.elseStatement));
334
334
  break;
335
- case 302 /* SyntaxKind.ImportAttribute */:
335
+ case 303 /* SyntaxKind.ImportAttribute */:
336
336
  if (node instanceof ImportAttribute)
337
337
  return this.factory.updateImportAttribute(node, this.visitNode(node.name), required(this.visitNode(node.value), node.value));
338
338
  break;
339
- case 301 /* SyntaxKind.ImportAttributes */:
339
+ case 302 /* SyntaxKind.ImportAttributes */:
340
340
  if (node instanceof ImportAttributes)
341
341
  return this.factory.updateImportAttributes(node, node.token, this.visitNodes(node.attributes), node.multiLine);
342
342
  break;
343
- case 274 /* SyntaxKind.ImportClause */:
343
+ case 275 /* SyntaxKind.ImportClause */:
344
344
  if (node instanceof ImportClause)
345
345
  return this.factory.updateImportClause(node, node.phaseModifier, asOptionalIdentifier(this.visitNode(node.name)), this.visitNode(node.namedBindings));
346
346
  break;
347
- case 273 /* SyntaxKind.ImportDeclaration */:
348
- case 346 /* SyntaxKind.JSImportDeclaration */:
347
+ case 274 /* SyntaxKind.ImportDeclaration */:
348
+ case 347 /* SyntaxKind.JSImportDeclaration */:
349
349
  if (node instanceof ImportDeclaration)
350
350
  return this.factory.updateImportDeclaration(node, this.visitModifiers(node.modifiers), asOptionalImportClause(this.visitNode(node.importClause)), required(this.visitNode(node.moduleSpecifier), node.moduleSpecifier), asOptionalImportAttributes(this.visitNode(node.attributes)));
351
351
  break;
352
- case 272 /* SyntaxKind.ImportEqualsDeclaration */:
352
+ case 273 /* SyntaxKind.ImportEqualsDeclaration */:
353
353
  if (node instanceof ImportEqualsDeclaration)
354
354
  return this.factory.updateImportEqualsDeclaration(node, this.visitModifiers(node.modifiers), node.isTypeOnly, asIdentifier(this.visitNode(node.name), node.name), required(this.visitNode(node.moduleReference), node.moduleReference));
355
355
  break;
356
- case 277 /* SyntaxKind.ImportSpecifier */:
356
+ case 278 /* SyntaxKind.ImportSpecifier */:
357
357
  if (node instanceof ImportSpecifier)
358
358
  return this.factory.updateImportSpecifier(node, node.isTypeOnly, this.visitNode(node.propertyName), asIdentifier(this.visitNode(node.name), node.name));
359
359
  break;
360
- case 206 /* SyntaxKind.ImportType */:
360
+ case 207 /* SyntaxKind.ImportType */:
361
361
  if (node instanceof ImportTypeNode)
362
362
  return this.factory.updateImportTypeNode(node, node.isTypeOf, required(this.visitNode(node.argument), node.argument), asOptionalImportAttributes(this.visitNode(node.attributes)), this.visitNode(node.qualifier), this.visitNodes(node.typeArguments));
363
363
  break;
364
- case 200 /* SyntaxKind.IndexedAccessType */:
364
+ case 201 /* SyntaxKind.IndexedAccessType */:
365
365
  if (node instanceof IndexedAccessTypeNode)
366
366
  return this.factory.updateIndexedAccessTypeNode(node, required(this.visitNode(node.objectType), node.objectType), required(this.visitNode(node.indexType), node.indexType));
367
367
  break;
368
- case 182 /* SyntaxKind.IndexSignature */:
368
+ case 183 /* SyntaxKind.IndexSignature */:
369
369
  if (node instanceof IndexSignatureDeclaration)
370
370
  return this.factory.updateIndexSignatureDeclaration(node, this.visitModifiers(node.modifiers), this.visitNodes(node.parameters), this.visitNode(node.type));
371
371
  break;
372
- case 196 /* SyntaxKind.InferType */:
372
+ case 197 /* SyntaxKind.InferType */:
373
373
  if (node instanceof InferTypeNode)
374
374
  return this.factory.updateInferTypeNode(node, asTypeParameterDeclaration(this.visitNode(node.typeParameter), node.typeParameter));
375
375
  break;
376
- case 265 /* SyntaxKind.InterfaceDeclaration */:
376
+ case 266 /* SyntaxKind.InterfaceDeclaration */:
377
377
  if (node instanceof InterfaceDeclaration)
378
378
  return this.factory.updateInterfaceDeclaration(node, this.visitModifiers(node.modifiers), asIdentifier(this.visitNode(node.name), node.name), this.visitNodes(node.typeParameters), this.visitNodes(node.heritageClauses), this.visitNodes(node.members));
379
379
  break;
380
- case 194 /* SyntaxKind.IntersectionType */:
380
+ case 195 /* SyntaxKind.IntersectionType */:
381
381
  if (node instanceof IntersectionTypeNode)
382
382
  return this.factory.updateIntersectionTypeNode(node, this.visitNodes(node.types));
383
383
  break;
384
- case 315 /* SyntaxKind.JSDoc */:
384
+ case 316 /* SyntaxKind.JSDoc */:
385
385
  if (node instanceof JSDoc)
386
386
  return this.factory.updateJSDoc(node, this.visitNodes(node.comment), this.visitNodes(node.tags));
387
387
  break;
388
- case 323 /* SyntaxKind.JSDocAugmentsTag */:
388
+ case 324 /* SyntaxKind.JSDocAugmentsTag */:
389
389
  if (node instanceof JSDocAugmentsTag)
390
390
  return this.factory.updateJSDocAugmentsTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), asExpressionWithTypeArguments(this.visitNode(node.className), node.className), this.visitNodes(node.comment));
391
391
  break;
392
- case 331 /* SyntaxKind.JSDocCallbackTag */:
392
+ case 332 /* SyntaxKind.JSDocCallbackTag */:
393
393
  if (node instanceof JSDocCallbackTag)
394
394
  return this.factory.updateJSDocCallbackTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), required(this.visitNode(node.typeExpression), node.typeExpression), this.visitNode(node.name), this.visitNodes(node.comment));
395
395
  break;
396
- case 325 /* SyntaxKind.JSDocDeprecatedTag */:
396
+ case 326 /* SyntaxKind.JSDocDeprecatedTag */:
397
397
  if (node instanceof JSDocDeprecatedTag)
398
398
  return this.factory.updateJSDocDeprecatedTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNodes(node.comment));
399
399
  break;
400
- case 324 /* SyntaxKind.JSDocImplementsTag */:
400
+ case 325 /* SyntaxKind.JSDocImplementsTag */:
401
401
  if (node instanceof JSDocImplementsTag)
402
402
  return this.factory.updateJSDocImplementsTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), asExpressionWithTypeArguments(this.visitNode(node.className), node.className), this.visitNodes(node.comment));
403
403
  break;
404
- case 343 /* SyntaxKind.JSDocImportTag */:
404
+ case 344 /* SyntaxKind.JSDocImportTag */:
405
405
  if (node instanceof JSDocImportTag)
406
406
  return this.factory.updateJSDocImportTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), asOptionalImportClause(this.visitNode(node.importClause)), required(this.visitNode(node.moduleSpecifier), node.moduleSpecifier), asOptionalImportAttributes(this.visitNode(node.attributes)), this.visitNodes(node.comment));
407
407
  break;
408
- case 319 /* SyntaxKind.JSDocLink */:
408
+ case 320 /* SyntaxKind.JSDocLink */:
409
409
  if (node instanceof JSDocLink)
410
410
  return this.factory.updateJSDocLink(node, this.visitNode(node.name), node.text);
411
411
  break;
412
- case 320 /* SyntaxKind.JSDocLinkCode */:
412
+ case 321 /* SyntaxKind.JSDocLinkCode */:
413
413
  if (node instanceof JSDocLinkCode)
414
414
  return this.factory.updateJSDocLinkCode(node, this.visitNode(node.name), node.text);
415
415
  break;
416
- case 321 /* SyntaxKind.JSDocLinkPlain */:
416
+ case 322 /* SyntaxKind.JSDocLinkPlain */:
417
417
  if (node instanceof JSDocLinkPlain)
418
418
  return this.factory.updateJSDocLinkPlain(node, this.visitNode(node.name), node.text);
419
419
  break;
420
- case 309 /* SyntaxKind.JSDocNameReference */:
420
+ case 310 /* SyntaxKind.JSDocNameReference */:
421
421
  if (node instanceof JSDocNameReference)
422
422
  return this.factory.updateJSDocNameReference(node, this.visitNode(node.name));
423
423
  break;
424
- case 312 /* SyntaxKind.JSDocNonNullableType */:
424
+ case 313 /* SyntaxKind.JSDocNonNullableType */:
425
425
  if (node instanceof JSDocNonNullableType)
426
426
  return this.factory.updateJSDocNonNullableType(node, required(this.visitNode(node.type), node.type));
427
427
  break;
428
- case 311 /* SyntaxKind.JSDocNullableType */:
428
+ case 312 /* SyntaxKind.JSDocNullableType */:
429
429
  if (node instanceof JSDocNullableType)
430
430
  return this.factory.updateJSDocNullableType(node, required(this.visitNode(node.type), node.type));
431
431
  break;
432
- case 313 /* SyntaxKind.JSDocOptionalType */:
432
+ case 314 /* SyntaxKind.JSDocOptionalType */:
433
433
  if (node instanceof JSDocOptionalType)
434
434
  return this.factory.updateJSDocOptionalType(node, required(this.visitNode(node.type), node.type));
435
435
  break;
436
- case 332 /* SyntaxKind.JSDocOverloadTag */:
436
+ case 333 /* SyntaxKind.JSDocOverloadTag */:
437
437
  if (node instanceof JSDocOverloadTag)
438
438
  return this.factory.updateJSDocOverloadTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), required(this.visitNode(node.typeExpression), node.typeExpression), this.visitNodes(node.comment));
439
439
  break;
440
- case 330 /* SyntaxKind.JSDocOverrideTag */:
440
+ case 331 /* SyntaxKind.JSDocOverrideTag */:
441
441
  if (node instanceof JSDocOverrideTag)
442
442
  return this.factory.updateJSDocOverrideTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNodes(node.comment));
443
443
  break;
444
- case 333 /* SyntaxKind.JSDocParameterTag */:
445
- case 340 /* SyntaxKind.JSDocPropertyTag */:
444
+ case 334 /* SyntaxKind.JSDocParameterTag */:
445
+ case 341 /* SyntaxKind.JSDocPropertyTag */:
446
446
  if (node instanceof JSDocParameterOrPropertyTag)
447
447
  return this.factory.updateJSDocParameterOrPropertyTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), required(this.visitNode(node.name), node.name), node.isBracketed, this.visitNode(node.typeExpression), node.isNameFirst, this.visitNodes(node.comment));
448
448
  break;
449
- case 327 /* SyntaxKind.JSDocPrivateTag */:
449
+ case 328 /* SyntaxKind.JSDocPrivateTag */:
450
450
  if (node instanceof JSDocPrivateTag)
451
451
  return this.factory.updateJSDocPrivateTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNodes(node.comment));
452
452
  break;
453
- case 328 /* SyntaxKind.JSDocProtectedTag */:
453
+ case 329 /* SyntaxKind.JSDocProtectedTag */:
454
454
  if (node instanceof JSDocProtectedTag)
455
455
  return this.factory.updateJSDocProtectedTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNodes(node.comment));
456
456
  break;
457
- case 326 /* SyntaxKind.JSDocPublicTag */:
457
+ case 327 /* SyntaxKind.JSDocPublicTag */:
458
458
  if (node instanceof JSDocPublicTag)
459
459
  return this.factory.updateJSDocPublicTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNodes(node.comment));
460
460
  break;
461
- case 329 /* SyntaxKind.JSDocReadonlyTag */:
461
+ case 330 /* SyntaxKind.JSDocReadonlyTag */:
462
462
  if (node instanceof JSDocReadonlyTag)
463
463
  return this.factory.updateJSDocReadonlyTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNodes(node.comment));
464
464
  break;
465
- case 334 /* SyntaxKind.JSDocReturnTag */:
465
+ case 335 /* SyntaxKind.JSDocReturnTag */:
466
466
  if (node instanceof JSDocReturnTag)
467
467
  return this.factory.updateJSDocReturnTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNode(node.typeExpression), this.visitNodes(node.comment));
468
468
  break;
469
- case 342 /* SyntaxKind.JSDocSatisfiesTag */:
469
+ case 343 /* SyntaxKind.JSDocSatisfiesTag */:
470
470
  if (node instanceof JSDocSatisfiesTag)
471
471
  return this.factory.updateJSDocSatisfiesTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), required(this.visitNode(node.typeExpression), node.typeExpression), this.visitNodes(node.comment));
472
472
  break;
473
- case 339 /* SyntaxKind.JSDocSeeTag */:
473
+ case 340 /* SyntaxKind.JSDocSeeTag */:
474
474
  if (node instanceof JSDocSeeTag)
475
475
  return this.factory.updateJSDocSeeTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNode(node.nameExpression), this.visitNodes(node.comment));
476
476
  break;
477
- case 318 /* SyntaxKind.JSDocSignature */:
477
+ case 319 /* SyntaxKind.JSDocSignature */:
478
478
  if (node instanceof JSDocSignature)
479
479
  return this.factory.updateJSDocSignature(node, this.visitNodes(node.typeParameters), this.visitNodes(node.parameters), this.visitNode(node.type));
480
480
  break;
481
- case 337 /* SyntaxKind.JSDocTemplateTag */:
481
+ case 338 /* SyntaxKind.JSDocTemplateTag */:
482
482
  if (node instanceof JSDocTemplateTag)
483
483
  return this.factory.updateJSDocTemplateTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNode(node.constraint), this.visitNodes(node.typeParameters), this.visitNodes(node.comment));
484
484
  break;
485
- case 335 /* SyntaxKind.JSDocThisTag */:
485
+ case 336 /* SyntaxKind.JSDocThisTag */:
486
486
  if (node instanceof JSDocThisTag)
487
487
  return this.factory.updateJSDocThisTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), required(this.visitNode(node.typeExpression), node.typeExpression), this.visitNodes(node.comment));
488
488
  break;
489
- case 341 /* SyntaxKind.JSDocThrowsTag */:
489
+ case 342 /* SyntaxKind.JSDocThrowsTag */:
490
490
  if (node instanceof JSDocThrowsTag)
491
491
  return this.factory.updateJSDocThrowsTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNode(node.typeExpression), this.visitNodes(node.comment));
492
492
  break;
493
- case 338 /* SyntaxKind.JSDocTypedefTag */:
493
+ case 339 /* SyntaxKind.JSDocTypedefTag */:
494
494
  if (node instanceof JSDocTypedefTag)
495
495
  return this.factory.updateJSDocTypedefTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNode(node.typeExpression), this.visitNode(node.name), this.visitNodes(node.comment));
496
496
  break;
497
- case 308 /* SyntaxKind.JSDocTypeExpression */:
497
+ case 309 /* SyntaxKind.JSDocTypeExpression */:
498
498
  if (node instanceof JSDocTypeExpression)
499
499
  return this.factory.updateJSDocTypeExpression(node, required(this.visitNode(node.type), node.type));
500
500
  break;
501
- case 336 /* SyntaxKind.JSDocTypeTag */:
501
+ case 337 /* SyntaxKind.JSDocTypeTag */:
502
502
  if (node instanceof JSDocTypeTag)
503
503
  return this.factory.updateJSDocTypeTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), required(this.visitNode(node.typeExpression), node.typeExpression), this.visitNodes(node.comment));
504
504
  break;
505
- case 322 /* SyntaxKind.JSDocUnknownTag */:
505
+ case 323 /* SyntaxKind.JSDocUnknownTag */:
506
506
  if (node instanceof JSDocUnknownTag)
507
507
  return this.factory.updateJSDocUnknownTag(node, asIdentifier(this.visitNode(node.tagName), node.tagName), this.visitNodes(node.comment));
508
508
  break;
509
- case 314 /* SyntaxKind.JSDocVariadicType */:
509
+ case 315 /* SyntaxKind.JSDocVariadicType */:
510
510
  if (node instanceof JSDocVariadicType)
511
511
  return this.factory.updateJSDocVariadicType(node, required(this.visitNode(node.type), node.type));
512
512
  break;
513
- case 292 /* SyntaxKind.JsxAttribute */:
513
+ case 293 /* SyntaxKind.JsxAttribute */:
514
514
  if (node instanceof JsxAttribute)
515
515
  return this.factory.updateJsxAttribute(node, required(this.visitNode(node.name), node.name), this.visitNode(node.initializer));
516
516
  break;
517
- case 293 /* SyntaxKind.JsxAttributes */:
517
+ case 294 /* SyntaxKind.JsxAttributes */:
518
518
  if (node instanceof JsxAttributes)
519
519
  return this.factory.updateJsxAttributes(node, this.visitNodes(node.properties));
520
520
  break;
521
- case 288 /* SyntaxKind.JsxClosingElement */:
521
+ case 289 /* SyntaxKind.JsxClosingElement */:
522
522
  if (node instanceof JsxClosingElement)
523
523
  return this.factory.updateJsxClosingElement(node, required(this.visitNode(node.tagName), node.tagName));
524
524
  break;
525
- case 285 /* SyntaxKind.JsxElement */:
525
+ case 286 /* SyntaxKind.JsxElement */:
526
526
  if (node instanceof JsxElement)
527
527
  return this.factory.updateJsxElement(node, asJsxOpeningElement(this.visitNode(node.openingElement), node.openingElement), this.visitNodes(node.children), asJsxClosingElement(this.visitNode(node.closingElement), node.closingElement));
528
528
  break;
529
- case 295 /* SyntaxKind.JsxExpression */:
529
+ case 296 /* SyntaxKind.JsxExpression */:
530
530
  if (node instanceof JsxExpression)
531
531
  return this.factory.updateJsxExpression(node, asOptionalToken(this.visitNode(node.dotDotDotToken)), this.visitNode(node.expression));
532
532
  break;
533
- case 289 /* SyntaxKind.JsxFragment */:
533
+ case 290 /* SyntaxKind.JsxFragment */:
534
534
  if (node instanceof JsxFragment)
535
535
  return this.factory.updateJsxFragment(node, asJsxOpeningFragment(this.visitNode(node.openingFragment), node.openingFragment), this.visitNodes(node.children), asJsxClosingFragment(this.visitNode(node.closingFragment), node.closingFragment));
536
536
  break;
537
- case 296 /* SyntaxKind.JsxNamespacedName */:
537
+ case 297 /* SyntaxKind.JsxNamespacedName */:
538
538
  if (node instanceof JsxNamespacedName)
539
539
  return this.factory.updateJsxNamespacedName(node, asIdentifier(this.visitNode(node.namespace), node.namespace), asIdentifier(this.visitNode(node.name), node.name));
540
540
  break;
541
- case 287 /* SyntaxKind.JsxOpeningElement */:
541
+ case 288 /* SyntaxKind.JsxOpeningElement */:
542
542
  if (node instanceof JsxOpeningElement)
543
543
  return this.factory.updateJsxOpeningElement(node, required(this.visitNode(node.tagName), node.tagName), this.visitNodes(node.typeArguments), asJsxAttributes(this.visitNode(node.attributes), node.attributes));
544
544
  break;
545
- case 286 /* SyntaxKind.JsxSelfClosingElement */:
545
+ case 287 /* SyntaxKind.JsxSelfClosingElement */:
546
546
  if (node instanceof JsxSelfClosingElement)
547
547
  return this.factory.updateJsxSelfClosingElement(node, required(this.visitNode(node.tagName), node.tagName), this.visitNodes(node.typeArguments), asJsxAttributes(this.visitNode(node.attributes), node.attributes));
548
548
  break;
549
- case 294 /* SyntaxKind.JsxSpreadAttribute */:
549
+ case 295 /* SyntaxKind.JsxSpreadAttribute */:
550
550
  if (node instanceof JsxSpreadAttribute)
551
551
  return this.factory.updateJsxSpreadAttribute(node, required(this.visitNode(node.expression), node.expression));
552
552
  break;
553
- case 257 /* SyntaxKind.LabeledStatement */:
553
+ case 258 /* SyntaxKind.LabeledStatement */:
554
554
  if (node instanceof LabeledStatement)
555
555
  return this.factory.updateLabeledStatement(node, asIdentifier(this.visitNode(node.label), node.label), required(this.visitEmbeddedStatement(node.statement), node.statement));
556
556
  break;
557
- case 202 /* SyntaxKind.LiteralType */:
557
+ case 203 /* SyntaxKind.LiteralType */:
558
558
  if (node instanceof LiteralTypeNode)
559
559
  return this.factory.updateLiteralTypeNode(node, required(this.visitNode(node.literal), node.literal));
560
560
  break;
561
- case 201 /* SyntaxKind.MappedType */:
561
+ case 202 /* SyntaxKind.MappedType */:
562
562
  if (node instanceof MappedTypeNode)
563
563
  return this.factory.updateMappedTypeNode(node, asOptionalToken(this.visitNode(node.readonlyToken)), asTypeParameterDeclaration(this.visitNode(node.typeParameter), node.typeParameter), this.visitNode(node.nameType), asOptionalToken(this.visitNode(node.questionToken)), this.visitNode(node.type), this.visitNodes(node.members));
564
564
  break;
565
- case 237 /* SyntaxKind.MetaProperty */:
565
+ case 238 /* SyntaxKind.MetaProperty */:
566
566
  if (node instanceof MetaProperty)
567
567
  return this.factory.updateMetaProperty(node, node.keywordToken, asIdentifier(this.visitNode(node.name), node.name));
568
568
  break;
569
- case 175 /* SyntaxKind.MethodDeclaration */:
569
+ case 176 /* SyntaxKind.MethodDeclaration */:
570
570
  if (node instanceof MethodDeclaration)
571
571
  return this.factory.updateMethodDeclaration(node, this.visitModifiers(node.modifiers), asOptionalToken(this.visitNode(node.asteriskToken)), required(this.visitNode(node.name), node.name), asOptionalToken(this.visitNode(node.postfixToken)), this.visitNodes(node.typeParameters), this.visitParameters(node.parameters), this.visitNode(node.type), this.visitNode(node.fullSignature), this.visitFunctionBody(node.body));
572
572
  break;
573
- case 174 /* SyntaxKind.MethodSignature */:
573
+ case 175 /* SyntaxKind.MethodSignature */:
574
574
  if (node instanceof MethodSignatureDeclaration)
575
575
  return this.factory.updateMethodSignatureDeclaration(node, this.visitModifiers(node.modifiers), required(this.visitNode(node.name), node.name), asOptionalToken(this.visitNode(node.postfixToken)), this.visitNodes(node.typeParameters), this.visitNodes(node.parameters), this.visitNode(node.type));
576
576
  break;
577
- case 283 /* SyntaxKind.MissingDeclaration */:
577
+ case 284 /* SyntaxKind.MissingDeclaration */:
578
578
  if (node instanceof MissingDeclaration)
579
579
  return this.factory.updateMissingDeclaration(node, this.visitModifiers(node.modifiers));
580
580
  break;
581
- case 269 /* SyntaxKind.ModuleBlock */:
581
+ case 270 /* SyntaxKind.ModuleBlock */:
582
582
  if (node instanceof ModuleBlock)
583
583
  return this.factory.updateModuleBlock(node, this.visitNodes(node.statements));
584
584
  break;
585
- case 268 /* SyntaxKind.ModuleDeclaration */:
585
+ case 269 /* SyntaxKind.ModuleDeclaration */:
586
586
  if (node instanceof ModuleDeclaration)
587
- return this.factory.updateModuleDeclaration(node, this.visitModifiers(node.modifiers), node.keyword, required(this.visitNode(node.name), node.name), this.visitNode(node.body));
587
+ return this.factory.updateModuleDeclaration(node, this.visitModifiers(node.modifiers), node.keyword, required(this.visitNode(node.name), node.name), this.visitNode(node.attributes), this.visitNode(node.body));
588
588
  break;
589
- case 280 /* SyntaxKind.NamedExports */:
589
+ case 281 /* SyntaxKind.NamedExports */:
590
590
  if (node instanceof NamedExports)
591
591
  return this.factory.updateNamedExports(node, this.visitNodes(node.elements));
592
592
  break;
593
- case 276 /* SyntaxKind.NamedImports */:
593
+ case 277 /* SyntaxKind.NamedImports */:
594
594
  if (node instanceof NamedImports)
595
595
  return this.factory.updateNamedImports(node, this.visitNodes(node.elements));
596
596
  break;
597
- case 203 /* SyntaxKind.NamedTupleMember */:
597
+ case 204 /* SyntaxKind.NamedTupleMember */:
598
598
  if (node instanceof NamedTupleMember)
599
599
  return this.factory.updateNamedTupleMember(node, asOptionalToken(this.visitNode(node.dotDotDotToken)), asIdentifier(this.visitNode(node.name), node.name), asOptionalToken(this.visitNode(node.questionToken)), required(this.visitNode(node.type), node.type));
600
600
  break;
601
- case 281 /* SyntaxKind.NamespaceExport */:
601
+ case 282 /* SyntaxKind.NamespaceExport */:
602
602
  if (node instanceof NamespaceExport)
603
603
  return this.factory.updateNamespaceExport(node, required(this.visitNode(node.name), node.name));
604
604
  break;
605
- case 271 /* SyntaxKind.NamespaceExportDeclaration */:
605
+ case 272 /* SyntaxKind.NamespaceExportDeclaration */:
606
606
  if (node instanceof NamespaceExportDeclaration)
607
607
  return this.factory.updateNamespaceExportDeclaration(node, this.visitModifiers(node.modifiers), asIdentifier(this.visitNode(node.name), node.name));
608
608
  break;
609
- case 275 /* SyntaxKind.NamespaceImport */:
609
+ case 276 /* SyntaxKind.NamespaceImport */:
610
610
  if (node instanceof NamespaceImport)
611
611
  return this.factory.updateNamespaceImport(node, asIdentifier(this.visitNode(node.name), node.name));
612
612
  break;
613
- case 215 /* SyntaxKind.NewExpression */:
613
+ case 216 /* SyntaxKind.NewExpression */:
614
614
  if (node instanceof NewExpression)
615
615
  return this.factory.updateNewExpression(node, required(this.visitNode(node.expression), node.expression), this.visitNodes(node.typeArguments), this.visitNodes(node.arguments));
616
616
  break;
617
- case 236 /* SyntaxKind.NonNullExpression */:
617
+ case 237 /* SyntaxKind.NonNullExpression */:
618
618
  if (node instanceof NonNullExpression)
619
619
  return this.factory.updateNonNullExpression(node, required(this.visitNode(node.expression), node.expression), node.flags);
620
620
  break;
621
- case 211 /* SyntaxKind.ObjectLiteralExpression */:
621
+ case 212 /* SyntaxKind.ObjectLiteralExpression */:
622
622
  if (node instanceof ObjectLiteralExpression)
623
623
  return this.factory.updateObjectLiteralExpression(node, this.visitNodes(node.properties), node.multiLine);
624
624
  break;
625
- case 191 /* SyntaxKind.OptionalType */:
625
+ case 192 /* SyntaxKind.OptionalType */:
626
626
  if (node instanceof OptionalTypeNode)
627
627
  return this.factory.updateOptionalTypeNode(node, required(this.visitNode(node.type), node.type));
628
628
  break;
629
- case 170 /* SyntaxKind.Parameter */:
629
+ case 171 /* SyntaxKind.Parameter */:
630
630
  if (node instanceof ParameterDeclaration)
631
631
  return this.factory.updateParameterDeclaration(node, this.visitModifiers(node.modifiers), asOptionalToken(this.visitNode(node.dotDotDotToken)), required(this.visitNode(node.name), node.name), asOptionalToken(this.visitNode(node.questionToken)), this.visitNode(node.type), this.visitNode(node.initializer));
632
632
  break;
633
- case 218 /* SyntaxKind.ParenthesizedExpression */:
633
+ case 219 /* SyntaxKind.ParenthesizedExpression */:
634
634
  if (node instanceof ParenthesizedExpression)
635
635
  return this.factory.updateParenthesizedExpression(node, required(this.visitNode(node.expression), node.expression));
636
636
  break;
637
- case 197 /* SyntaxKind.ParenthesizedType */:
637
+ case 198 /* SyntaxKind.ParenthesizedType */:
638
638
  if (node instanceof ParenthesizedTypeNode)
639
639
  return this.factory.updateParenthesizedTypeNode(node, required(this.visitNode(node.type), node.type));
640
640
  break;
641
- case 348 /* SyntaxKind.PartiallyEmittedExpression */:
641
+ case 349 /* SyntaxKind.PartiallyEmittedExpression */:
642
642
  if (node instanceof PartiallyEmittedExpression)
643
643
  return this.factory.updatePartiallyEmittedExpression(node, required(this.visitNode(node.expression), node.expression));
644
644
  break;
645
- case 226 /* SyntaxKind.PostfixUnaryExpression */:
645
+ case 227 /* SyntaxKind.PostfixUnaryExpression */:
646
646
  if (node instanceof PostfixUnaryExpression)
647
647
  return this.factory.updatePostfixUnaryExpression(node, required(this.visitNode(node.operand), node.operand), node.operator);
648
648
  break;
649
- case 225 /* SyntaxKind.PrefixUnaryExpression */:
649
+ case 226 /* SyntaxKind.PrefixUnaryExpression */:
650
650
  if (node instanceof PrefixUnaryExpression)
651
651
  return this.factory.updatePrefixUnaryExpression(node, node.operator, required(this.visitNode(node.operand), node.operand));
652
652
  break;
653
- case 212 /* SyntaxKind.PropertyAccessExpression */:
653
+ case 213 /* SyntaxKind.PropertyAccessExpression */:
654
654
  if (node instanceof PropertyAccessExpression)
655
655
  return this.factory.updatePropertyAccessExpression(node, required(this.visitNode(node.expression), node.expression), asOptionalToken(this.visitNode(node.questionDotToken)), required(this.visitNode(node.name), node.name), node.flags);
656
656
  break;
657
- case 303 /* SyntaxKind.PropertyAssignment */:
657
+ case 304 /* SyntaxKind.PropertyAssignment */:
658
658
  if (node instanceof PropertyAssignment)
659
659
  return this.factory.updatePropertyAssignment(node, this.visitModifiers(propertyAssignmentModifiers(node)), required(this.visitNode(node.name), node.name), asOptionalToken(this.visitNode(propertyAssignmentPostfixToken(node))), this.visitNode(propertyAssignmentType(node)), required(this.visitNode(node.initializer), node.initializer));
660
660
  break;
661
- case 173 /* SyntaxKind.PropertyDeclaration */:
661
+ case 174 /* SyntaxKind.PropertyDeclaration */:
662
662
  if (node instanceof PropertyDeclaration)
663
663
  return this.factory.updatePropertyDeclaration(node, this.visitModifiers(node.modifiers), required(this.visitNode(node.name), node.name), asOptionalToken(this.visitNode(node.postfixToken)), this.visitNode(node.type), this.visitNode(node.initializer));
664
664
  break;
665
- case 172 /* SyntaxKind.PropertySignature */:
665
+ case 173 /* SyntaxKind.PropertySignature */:
666
666
  if (node instanceof PropertySignatureDeclaration)
667
667
  return this.factory.updatePropertySignatureDeclaration(node, this.visitModifiers(node.modifiers), required(this.visitNode(node.name), node.name), asOptionalToken(this.visitNode(node.postfixToken)), this.visitNode(node.type), this.visitNode(node.initializer));
668
668
  break;
669
- case 167 /* SyntaxKind.QualifiedName */:
669
+ case 168 /* SyntaxKind.QualifiedName */:
670
670
  if (node instanceof QualifiedName)
671
- return this.factory.updateQualifiedName(node, required(this.visitNode(node.left), node.left), asIdentifier(this.visitNode(node.right), node.right));
671
+ return this.factory.updateQualifiedName(node, required(this.visitNode(node.left), node.left), required(this.visitNode(node.right), node.right));
672
672
  break;
673
- case 192 /* SyntaxKind.RestType */:
673
+ case 193 /* SyntaxKind.RestType */:
674
674
  if (node instanceof RestTypeNode)
675
675
  return this.factory.updateRestTypeNode(node, required(this.visitNode(node.type), node.type));
676
676
  break;
677
- case 254 /* SyntaxKind.ReturnStatement */:
677
+ case 255 /* SyntaxKind.ReturnStatement */:
678
678
  if (node instanceof ReturnStatement)
679
679
  return this.factory.updateReturnStatement(node, this.visitNode(node.expression));
680
680
  break;
681
- case 239 /* SyntaxKind.SatisfiesExpression */:
681
+ case 240 /* SyntaxKind.SatisfiesExpression */:
682
682
  if (node instanceof SatisfiesExpression)
683
683
  return this.factory.updateSatisfiesExpression(node, required(this.visitNode(node.expression), node.expression), required(this.visitNode(node.type), node.type));
684
684
  break;
685
- case 179 /* SyntaxKind.SetAccessor */:
685
+ case 180 /* SyntaxKind.SetAccessor */:
686
686
  if (node instanceof SetAccessorDeclaration)
687
687
  return this.factory.updateSetAccessorDeclaration(node, this.visitModifiers(node.modifiers), required(this.visitNode(node.name), node.name), this.visitNodes(node.typeParameters), this.visitParameters(node.parameters), this.visitNode(node.type), this.visitNode(node.fullSignature), this.visitFunctionBody(node.body));
688
688
  break;
689
- case 304 /* SyntaxKind.ShorthandPropertyAssignment */:
689
+ case 305 /* SyntaxKind.ShorthandPropertyAssignment */:
690
690
  if (node instanceof ShorthandPropertyAssignment)
691
691
  return this.factory.updateShorthandPropertyAssignment(node, this.visitModifiers(node.modifiers), required(this.visitNode(node.name), node.name), asOptionalToken(this.visitNode(node.postfixToken)), this.visitNode(node.type), asOptionalToken(this.visitNode(node.equalsToken)), this.visitNode(node.objectAssignmentInitializer));
692
692
  break;
693
- case 305 /* SyntaxKind.SpreadAssignment */:
693
+ case 306 /* SyntaxKind.SpreadAssignment */:
694
694
  if (node instanceof SpreadAssignment)
695
695
  return this.factory.updateSpreadAssignment(node, required(this.visitNode(node.expression), node.expression));
696
696
  break;
697
- case 231 /* SyntaxKind.SpreadElement */:
697
+ case 232 /* SyntaxKind.SpreadElement */:
698
698
  if (node instanceof SpreadElement)
699
699
  return this.factory.updateSpreadElement(node, required(this.visitNode(node.expression), node.expression));
700
700
  break;
701
- case 256 /* SyntaxKind.SwitchStatement */:
701
+ case 257 /* SyntaxKind.SwitchStatement */:
702
702
  if (node instanceof SwitchStatement)
703
703
  return this.factory.updateSwitchStatement(node, required(this.visitNode(node.expression), node.expression), asCaseBlock(this.visitNode(node.caseBlock), node.caseBlock));
704
704
  break;
705
- case 349 /* SyntaxKind.SyntheticReferenceExpression */:
705
+ case 350 /* SyntaxKind.SyntheticReferenceExpression */:
706
706
  if (node instanceof SyntheticReferenceExpression)
707
707
  return this.factory.updateSyntheticReferenceExpression(node, required(this.visitNode(node.expression), node.expression), required(this.visitNode(node.thisArg), node.thisArg));
708
708
  break;
709
- case 216 /* SyntaxKind.TaggedTemplateExpression */:
709
+ case 217 /* SyntaxKind.TaggedTemplateExpression */:
710
710
  if (node instanceof TaggedTemplateExpression)
711
711
  return this.factory.updateTaggedTemplateExpression(node, required(this.visitNode(node.tag), node.tag), asOptionalToken(this.visitNode(node.questionDotToken)), this.visitNodes(node.typeArguments), required(this.visitNode(node.template), node.template), node.flags);
712
712
  break;
713
- case 229 /* SyntaxKind.TemplateExpression */:
713
+ case 230 /* SyntaxKind.TemplateExpression */:
714
714
  if (node instanceof TemplateExpression)
715
715
  return this.factory.updateTemplateExpression(node, asTemplateHead(this.visitNode(node.head), node.head), this.visitNodes(node.templateSpans));
716
716
  break;
717
- case 204 /* SyntaxKind.TemplateLiteralType */:
717
+ case 205 /* SyntaxKind.TemplateLiteralType */:
718
718
  if (node instanceof TemplateLiteralTypeNode)
719
719
  return this.factory.updateTemplateLiteralTypeNode(node, asTemplateHead(this.visitNode(node.head), node.head), this.visitNodes(node.templateSpans));
720
720
  break;
721
- case 205 /* SyntaxKind.TemplateLiteralTypeSpan */:
721
+ case 206 /* SyntaxKind.TemplateLiteralTypeSpan */:
722
722
  if (node instanceof TemplateLiteralTypeSpan)
723
723
  return this.factory.updateTemplateLiteralTypeSpan(node, required(this.visitNode(node.type), node.type), required(this.visitNode(node.literal), node.literal));
724
724
  break;
725
- case 240 /* SyntaxKind.TemplateSpan */:
725
+ case 241 /* SyntaxKind.TemplateSpan */:
726
726
  if (node instanceof TemplateSpan)
727
727
  return this.factory.updateTemplateSpan(node, required(this.visitNode(node.expression), node.expression), required(this.visitNode(node.literal), node.literal));
728
728
  break;
729
- case 258 /* SyntaxKind.ThrowStatement */:
729
+ case 259 /* SyntaxKind.ThrowStatement */:
730
730
  if (node instanceof ThrowStatement)
731
731
  return this.factory.updateThrowStatement(node, required(this.visitNode(node.expression), node.expression));
732
732
  break;
733
- case 259 /* SyntaxKind.TryStatement */:
733
+ case 260 /* SyntaxKind.TryStatement */:
734
734
  if (node instanceof TryStatement)
735
735
  return this.factory.updateTryStatement(node, asBlock(this.visitNode(node.tryBlock), node.tryBlock), asOptionalCatchClause(this.visitNode(node.catchClause)), asOptionalBlock(this.visitNode(node.finallyBlock)));
736
736
  break;
737
- case 190 /* SyntaxKind.TupleType */:
737
+ case 191 /* SyntaxKind.TupleType */:
738
738
  if (node instanceof TupleTypeNode)
739
739
  return this.factory.updateTupleTypeNode(node, this.visitNodes(node.elements));
740
740
  break;
741
- case 266 /* SyntaxKind.TypeAliasDeclaration */:
742
- case 345 /* SyntaxKind.JSTypeAliasDeclaration */:
741
+ case 267 /* SyntaxKind.TypeAliasDeclaration */:
742
+ case 346 /* SyntaxKind.JSTypeAliasDeclaration */:
743
743
  if (node instanceof TypeAliasDeclaration)
744
744
  return this.factory.updateTypeAliasDeclaration(node, this.visitModifiers(node.modifiers), asIdentifier(this.visitNode(node.name), node.name), this.visitNodes(node.typeParameters), required(this.visitNode(node.type), node.type));
745
745
  break;
746
- case 217 /* SyntaxKind.TypeAssertionExpression */:
746
+ case 218 /* SyntaxKind.TypeAssertionExpression */:
747
747
  if (node instanceof TypeAssertion)
748
748
  return this.factory.updateTypeAssertion(node, required(this.visitNode(node.type), node.type), required(this.visitNode(node.expression), node.expression));
749
749
  break;
750
- case 188 /* SyntaxKind.TypeLiteral */:
750
+ case 189 /* SyntaxKind.TypeLiteral */:
751
751
  if (node instanceof TypeLiteralNode)
752
752
  return this.factory.updateTypeLiteralNode(node, this.visitNodes(node.members));
753
753
  break;
754
- case 222 /* SyntaxKind.TypeOfExpression */:
754
+ case 223 /* SyntaxKind.TypeOfExpression */:
755
755
  if (node instanceof TypeOfExpression)
756
756
  return this.factory.updateTypeOfExpression(node, required(this.visitNode(node.expression), node.expression));
757
757
  break;
758
- case 199 /* SyntaxKind.TypeOperator */:
758
+ case 200 /* SyntaxKind.TypeOperator */:
759
759
  if (node instanceof TypeOperatorNode)
760
760
  return this.factory.updateTypeOperatorNode(node, node.operator, required(this.visitNode(node.type), node.type));
761
761
  break;
762
- case 169 /* SyntaxKind.TypeParameter */:
762
+ case 170 /* SyntaxKind.TypeParameter */:
763
763
  if (node instanceof TypeParameterDeclaration)
764
764
  return this.factory.updateTypeParameterDeclaration(node, this.visitModifiers(node.modifiers), asIdentifier(this.visitNode(node.name), node.name), this.visitNode(node.constraint), this.visitNode(node.expression), this.visitNode(node.defaultType));
765
765
  break;
766
- case 183 /* SyntaxKind.TypePredicate */:
766
+ case 184 /* SyntaxKind.TypePredicate */:
767
767
  if (node instanceof TypePredicateNode)
768
768
  return this.factory.updateTypePredicateNode(node, asOptionalToken(this.visitNode(node.assertsModifier)), required(this.visitNode(node.parameterName), node.parameterName), this.visitNode(node.type));
769
769
  break;
770
- case 187 /* SyntaxKind.TypeQuery */:
770
+ case 188 /* SyntaxKind.TypeQuery */:
771
771
  if (node instanceof TypeQueryNode)
772
772
  return this.factory.updateTypeQueryNode(node, required(this.visitNode(node.exprName), node.exprName), this.visitNodes(node.typeArguments));
773
773
  break;
774
- case 184 /* SyntaxKind.TypeReference */:
774
+ case 185 /* SyntaxKind.TypeReference */:
775
775
  if (node instanceof TypeReferenceNode)
776
776
  return this.factory.updateTypeReferenceNode(node, required(this.visitNode(node.typeName), node.typeName), this.visitNodes(node.typeArguments));
777
777
  break;
778
- case 193 /* SyntaxKind.UnionType */:
778
+ case 194 /* SyntaxKind.UnionType */:
779
779
  if (node instanceof UnionTypeNode)
780
780
  return this.factory.updateUnionTypeNode(node, this.visitNodes(node.types));
781
781
  break;
782
- case 261 /* SyntaxKind.VariableDeclaration */:
782
+ case 262 /* SyntaxKind.VariableDeclaration */:
783
783
  if (node instanceof VariableDeclaration)
784
784
  return this.factory.updateVariableDeclaration(node, required(this.visitNode(node.name), node.name), asOptionalToken(this.visitNode(node.exclamationToken)), this.visitNode(node.type), this.visitNode(node.initializer));
785
785
  break;
786
- case 262 /* SyntaxKind.VariableDeclarationList */:
786
+ case 263 /* SyntaxKind.VariableDeclarationList */:
787
787
  if (node instanceof VariableDeclarationList)
788
788
  return this.factory.updateVariableDeclarationList(node, this.visitNodes(node.declarations), node.flags);
789
789
  break;
790
- case 244 /* SyntaxKind.VariableStatement */:
790
+ case 245 /* SyntaxKind.VariableStatement */:
791
791
  if (node instanceof VariableStatement)
792
792
  return this.factory.updateVariableStatement(node, this.visitModifiers(node.modifiers), asVariableDeclarationList(this.visitNode(node.declarationList), node.declarationList));
793
793
  break;
794
- case 223 /* SyntaxKind.VoidExpression */:
794
+ case 224 /* SyntaxKind.VoidExpression */:
795
795
  if (node instanceof VoidExpression)
796
796
  return this.factory.updateVoidExpression(node, required(this.visitNode(node.expression), node.expression));
797
797
  break;
798
- case 248 /* SyntaxKind.WhileStatement */:
798
+ case 249 /* SyntaxKind.WhileStatement */:
799
799
  if (node instanceof WhileStatement)
800
800
  return this.factory.updateWhileStatement(node, required(this.visitNode(node.expression), node.expression), required(this.visitIterationBody(node.statement), node.statement));
801
801
  break;
802
- case 255 /* SyntaxKind.WithStatement */:
802
+ case 256 /* SyntaxKind.WithStatement */:
803
803
  if (node instanceof WithStatement)
804
804
  return this.factory.updateWithStatement(node, required(this.visitNode(node.expression), node.expression), required(this.visitEmbeddedStatement(node.statement), node.statement));
805
805
  break;
806
- case 230 /* SyntaxKind.YieldExpression */:
806
+ case 231 /* SyntaxKind.YieldExpression */:
807
807
  if (node instanceof YieldExpression)
808
808
  return this.factory.updateYieldExpression(node, asOptionalToken(this.visitNode(node.asteriskToken)), this.visitNode(node.expression));
809
809
  break;
810
- case 307 /* SyntaxKind.SourceFile */:
810
+ case 308 /* SyntaxKind.SourceFile */:
811
811
  if (node instanceof SourceFile)
812
812
  return this.factory.updateSourceFile(node, this.visitTopLevelStatements(node.statements), asToken(this.visitToken(node.endOfFileToken), node.endOfFileToken));
813
813
  break;