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
@@ -166,14 +166,14 @@ export class PseudoChecker {
166
166
  return this.mergedSymbols.get(symbol) ?? symbol;
167
167
  }
168
168
  getReturnTypeOfSignature(signature) {
169
- if (signature.kind === 178 /* SyntaxKind.GetAccessor */)
169
+ if (signature.kind === 179 /* SyntaxKind.GetAccessor */)
170
170
  return this.getTypeOfAccessor(signature);
171
171
  return this.createReturnFromSignature(signature);
172
172
  }
173
173
  getTypeOfAccessor(accessor) {
174
174
  const accessors = getAllAccessorDeclarations(accessor);
175
175
  const annotation = this.getAccessorAnnotation(accessor, accessors.firstAccessor, accessors.secondAccessor);
176
- if (annotation !== undefined && annotation.kind !== 183 /* SyntaxKind.TypePredicate */)
176
+ if (annotation !== undefined && annotation.kind !== 184 /* SyntaxKind.TypePredicate */)
177
177
  return new DirectType(annotation);
178
178
  const getter = accessors.getAccessor;
179
179
  if (getter !== undefined) {
@@ -202,32 +202,32 @@ export class PseudoChecker {
202
202
  }
203
203
  getTypeOfDeclaration(node) {
204
204
  switch (node.kind) {
205
- case 170 /* SyntaxKind.Parameter */:
205
+ case 171 /* SyntaxKind.Parameter */:
206
206
  if (node instanceof ParameterDeclaration) {
207
207
  const narrowed = node;
208
208
  return this.typeFromParameter(narrowed);
209
209
  }
210
210
  break;
211
- case 261 /* SyntaxKind.VariableDeclaration */:
211
+ case 262 /* SyntaxKind.VariableDeclaration */:
212
212
  if (node instanceof VariableDeclaration) {
213
213
  const narrowed = node;
214
214
  return this.typeFromVariable(narrowed);
215
215
  }
216
216
  break;
217
- case 172 /* SyntaxKind.PropertySignature */:
218
- case 173 /* SyntaxKind.PropertyDeclaration */:
219
- case 340 /* SyntaxKind.JSDocPropertyTag */:
217
+ case 173 /* SyntaxKind.PropertySignature */:
218
+ case 174 /* SyntaxKind.PropertyDeclaration */:
219
+ case 341 /* SyntaxKind.JSDocPropertyTag */:
220
220
  return this.typeFromProperty(node);
221
- case 278 /* SyntaxKind.ExportAssignment */:
221
+ case 279 /* SyntaxKind.ExportAssignment */:
222
222
  return this.typeFromExpression(getExpression(node));
223
- case 212 /* SyntaxKind.PropertyAccessExpression */:
224
- case 213 /* SyntaxKind.ElementAccessExpression */:
225
- case 227 /* SyntaxKind.BinaryExpression */: {
223
+ case 213 /* SyntaxKind.PropertyAccessExpression */:
224
+ case 214 /* SyntaxKind.ElementAccessExpression */:
225
+ case 228 /* SyntaxKind.BinaryExpression */: {
226
226
  const type = getType(node);
227
227
  return type !== undefined ? new DirectType(type) : new NoResultType(node);
228
228
  }
229
- case 303 /* SyntaxKind.PropertyAssignment */:
230
- case 304 /* SyntaxKind.ShorthandPropertyAssignment */:
229
+ case 304 /* SyntaxKind.PropertyAssignment */:
230
+ case 305 /* SyntaxKind.ShorthandPropertyAssignment */:
231
231
  return this.typeFromPropertyAssignment(node);
232
232
  }
233
233
  return new NoResultType(node);
@@ -256,7 +256,7 @@ export class PseudoChecker {
256
256
  const initializer = node.initializer;
257
257
  if (initializer !== undefined && !isContextuallyTyped(node)) {
258
258
  // Readonly template literals may become literal types, so they aren't inferred.
259
- if (hasSyntacticModifier(node, 8 /* ModifierFlags.Readonly */) && initializer.kind === 229 /* SyntaxKind.TemplateExpression */)
259
+ if (hasSyntacticModifier(node, 8 /* ModifierFlags.Readonly */) && initializer.kind === 230 /* SyntaxKind.TemplateExpression */)
260
260
  return new NoResultType(node);
261
261
  const result = this.typeFromExpression(initializer);
262
262
  if (!isBareInferred(result)) {
@@ -278,12 +278,12 @@ export class PseudoChecker {
278
278
  const initializer = declaration.initializer;
279
279
  // As tsgo, the file's own declarations; merged ones are left to the checker's type comparison.
280
280
  const symbol = declaration.symbol;
281
- if (initializer !== undefined &&
282
- (symbol === undefined || countVariableDeclarations(getDeclarations(symbol)) === 1)) {
281
+ // A binding pattern has no symbol, and its initializer's type isn't the variable's.
282
+ if (initializer !== undefined && symbol !== undefined && countVariableDeclarations(getDeclarations(symbol)) === 1) {
283
283
  if (!isContextuallyTyped(declaration)) {
284
284
  // Const template literals may become literal types, so they aren't inferred.
285
285
  if ((getCombinedNodeFlags(declaration) & 2 /* NodeFlags.Const */) !== 0 &&
286
- initializer.kind === 229 /* SyntaxKind.TemplateExpression */)
286
+ initializer.kind === 230 /* SyntaxKind.TemplateExpression */)
287
287
  return new NoResultType(declaration);
288
288
  const result = this.typeFromExpression(initializer);
289
289
  if (!isBareInferred(result))
@@ -310,7 +310,7 @@ export class PseudoChecker {
310
310
  // An async function or generator returns a promise or generator of its returned values.
311
311
  if (hasSyntacticModifier(fn, 1024 /* ModifierFlags.Async */) || getAsteriskToken(fn) !== undefined)
312
312
  return inferred(fn, true);
313
- if (body.kind === 242 /* SyntaxKind.Block */) {
313
+ if (body.kind === 243 /* SyntaxKind.Block */) {
314
314
  const returns = collectReturnStatements(body);
315
315
  // Only a single return directly in the body.
316
316
  if (returns.length === 1 && returns[0].parent === body)
@@ -323,7 +323,7 @@ export class PseudoChecker {
323
323
  if (!isContextuallyTyped(candidate))
324
324
  return this.typeFromExpression(candidate);
325
325
  let type = undefined;
326
- if (candidate.kind === 217 /* SyntaxKind.TypeAssertionExpression */ || candidate.kind === 235 /* SyntaxKind.AsExpression */)
326
+ if (candidate.kind === 218 /* SyntaxKind.TypeAssertionExpression */ || candidate.kind === 236 /* SyntaxKind.AsExpression */)
327
327
  type = getType(candidate);
328
328
  if (type !== undefined && !isConstTypeReference(type))
329
329
  return new DirectType(type);
@@ -333,9 +333,9 @@ export class PseudoChecker {
333
333
  /** `checkExpression` for pseudo-types. */
334
334
  typeFromExpression(node) {
335
335
  switch (node.kind) {
336
- case 233 /* SyntaxKind.OmittedExpression */:
336
+ case 234 /* SyntaxKind.OmittedExpression */:
337
337
  return undefinedType;
338
- case 218 /* SyntaxKind.ParenthesizedExpression */:
338
+ case 219 /* SyntaxKind.ParenthesizedExpression */:
339
339
  return this.typeFromExpression(getExpression(node));
340
340
  case 79 /* SyntaxKind.Identifier */:
341
341
  // A declaration named `undefined` shadows it.
@@ -346,38 +346,38 @@ export class PseudoChecker {
346
346
  break;
347
347
  case 105 /* SyntaxKind.NullKeyword */:
348
348
  return nullType;
349
- case 220 /* SyntaxKind.ArrowFunction */:
350
- case 219 /* SyntaxKind.FunctionExpression */:
349
+ case 221 /* SyntaxKind.ArrowFunction */:
350
+ case 220 /* SyntaxKind.FunctionExpression */:
351
351
  return this.typeFromFunctionLikeExpression(node);
352
- case 217 /* SyntaxKind.TypeAssertionExpression */:
353
- case 235 /* SyntaxKind.AsExpression */: {
352
+ case 218 /* SyntaxKind.TypeAssertionExpression */:
353
+ case 236 /* SyntaxKind.AsExpression */: {
354
354
  const type = getType(node);
355
355
  if (isConstTypeReference(type))
356
356
  return this.typeFromExpression(getExpression(node));
357
357
  return new DirectType(type);
358
358
  }
359
- case 225 /* SyntaxKind.PrefixUnaryExpression */:
359
+ case 226 /* SyntaxKind.PrefixUnaryExpression */:
360
360
  if (node instanceof PrefixUnaryExpression) {
361
361
  const unary = node;
362
362
  if (isSignedNumericLiteral(unary))
363
363
  return typeFromSignedLiteral(unary);
364
364
  }
365
365
  break;
366
- case 210 /* SyntaxKind.ArrayLiteralExpression */:
366
+ case 211 /* SyntaxKind.ArrayLiteralExpression */:
367
367
  if (node instanceof ArrayLiteralExpression) {
368
368
  const narrowed = node;
369
369
  return this.typeFromArrayLiteral(narrowed);
370
370
  }
371
371
  break;
372
- case 211 /* SyntaxKind.ObjectLiteralExpression */:
372
+ case 212 /* SyntaxKind.ObjectLiteralExpression */:
373
373
  if (node instanceof ObjectLiteralExpression) {
374
374
  const narrowed = node;
375
375
  return this.typeFromObjectLiteral(narrowed);
376
376
  }
377
377
  break;
378
- case 232 /* SyntaxKind.ClassExpression */:
378
+ case 233 /* SyntaxKind.ClassExpression */:
379
379
  return new InferredType(node, false, [node]);
380
- case 229 /* SyntaxKind.TemplateExpression */:
380
+ case 230 /* SyntaxKind.TemplateExpression */:
381
381
  // Templates with substitutions aren't literal types, but `as const` would make them one.
382
382
  if (isInConstContext(node))
383
383
  return inferred(node, false);
@@ -403,7 +403,7 @@ export class PseudoChecker {
403
403
  const members = [];
404
404
  for (const property of node.properties.nodes) {
405
405
  switch (property.kind) {
406
- case 175 /* SyntaxKind.MethodDeclaration */: {
406
+ case 176 /* SyntaxKind.MethodDeclaration */: {
407
407
  const postfix = getPostfixToken(property);
408
408
  const optional = postfix !== undefined && postfix.kind === 57 /* SyntaxKind.QuestionToken */;
409
409
  const fullSignature = getFullSignature(property);
@@ -414,14 +414,14 @@ export class PseudoChecker {
414
414
  members.push(new PseudoMember(0 /* PseudoMemberKind.Method */, getName(property), optional, false, property, nodesOf(getTypeParameters(property)), this.cloneParameters(getParameters(property).nodes), this.createReturnFromSignature(property)));
415
415
  break;
416
416
  }
417
- case 303 /* SyntaxKind.PropertyAssignment */: {
417
+ case 304 /* SyntaxKind.PropertyAssignment */: {
418
418
  const assignment = property;
419
419
  const postfix = propertyAssignmentPostfixToken(assignment);
420
420
  members.push(new PseudoMember(1 /* PseudoMemberKind.Property */, assignment.name, postfix !== undefined && postfix.kind === 57 /* SyntaxKind.QuestionToken */, false, undefined, [], [], this.typeFromExpression(assignment.initializer)));
421
421
  break;
422
422
  }
423
- case 179 /* SyntaxKind.SetAccessor */:
424
- case 178 /* SyntaxKind.GetAccessor */: {
423
+ case 180 /* SyntaxKind.SetAccessor */:
424
+ case 179 /* SyntaxKind.GetAccessor */: {
425
425
  const member = this.getAccessorMember(property);
426
426
  if (member !== undefined)
427
427
  members.push(member);
@@ -442,21 +442,21 @@ export class PseudoChecker {
442
442
  setter instanceof SetAccessorDeclaration &&
443
443
  setter.parameters.nodes.length > 0 &&
444
444
  getType(setter.parameters.nodes[0]) !== undefined) {
445
- if (accessor.kind === 178 /* SyntaxKind.GetAccessor */)
445
+ if (accessor.kind === 179 /* SyntaxKind.GetAccessor */)
446
446
  return new PseudoMember(3 /* PseudoMemberKind.GetAccessor */, name, false, false, accessor, [], [], this.getTypeOfAccessor(accessor));
447
447
  const parameters = this.cloneParameters(accessor.parameters.nodes);
448
448
  return new PseudoMember(2 /* PseudoMemberKind.SetAccessor */, name, false, false, accessor, [], parameters, anyType);
449
449
  }
450
450
  // Otherwise the first accessor is a property, `readonly` for a lone getter.
451
451
  if (accessor === accessors.firstAccessor)
452
- return new PseudoMember(1 /* PseudoMemberKind.Property */, name, false, accessor.kind === 178 /* SyntaxKind.GetAccessor */ && accessors.secondAccessor === undefined, undefined, [], [], this.getTypeOfAccessor(accessor));
452
+ return new PseudoMember(1 /* PseudoMemberKind.Property */, name, false, accessor.kind === 179 /* SyntaxKind.GetAccessor */ && accessors.secondAccessor === undefined, undefined, [], [], this.getTypeOfAccessor(accessor));
453
453
  return undefined;
454
454
  }
455
455
  typeFromArrayLiteral(node) {
456
456
  if (!isInConstContext(node))
457
457
  return new InferredType(node, false, [node]);
458
458
  for (const element of node.elements.nodes)
459
- if (element.kind === 231 /* SyntaxKind.SpreadElement */)
459
+ if (element.kind === 232 /* SyntaxKind.SpreadElement */)
460
460
  return new InferredType(node, false, [element]);
461
461
  // An `as const` array with a contextual type may or may not be readonly.
462
462
  if (isContextuallyTyped(node))
@@ -474,7 +474,7 @@ export class PseudoChecker {
474
474
  }
475
475
  typeFromParameter(node) {
476
476
  const parent = node.parent;
477
- if (parent.kind === 179 /* SyntaxKind.SetAccessor */)
477
+ if (parent.kind === 180 /* SyntaxKind.SetAccessor */)
478
478
  return this.getTypeOfAccessor(parent);
479
479
  if (node.initializer === undefined)
480
480
  return node.type !== undefined ? new DirectType(node.type) : new NoResultType(node);
@@ -483,7 +483,7 @@ export class PseudoChecker {
483
483
  }
484
484
  typeFromParameterAt(node, index, lastRequired) {
485
485
  const parent = node.parent;
486
- if (parent.kind === 179 /* SyntaxKind.SetAccessor */)
486
+ if (parent.kind === 180 /* SyntaxKind.SetAccessor */)
487
487
  return this.getTypeOfAccessor(parent);
488
488
  const hasRequiredAfter = index < lastRequired - 1;
489
489
  if (node.type !== undefined) {
@@ -536,19 +536,19 @@ function countVariableDeclarations(declarations) {
536
536
  return 1;
537
537
  let count = 0;
538
538
  for (const declaration of declarations)
539
- if (declaration.kind === 261 /* SyntaxKind.VariableDeclaration */)
539
+ if (declaration.kind === 262 /* SyntaxKind.VariableDeclaration */)
540
540
  count++;
541
541
  return count;
542
542
  }
543
543
  function isValueSignatureDeclaration(node) {
544
544
  switch (node.kind) {
545
- case 219 /* SyntaxKind.FunctionExpression */:
546
- case 220 /* SyntaxKind.ArrowFunction */:
547
- case 175 /* SyntaxKind.MethodDeclaration */:
548
- case 178 /* SyntaxKind.GetAccessor */:
549
- case 179 /* SyntaxKind.SetAccessor */:
550
- case 263 /* SyntaxKind.FunctionDeclaration */:
551
- case 177 /* SyntaxKind.Constructor */:
545
+ case 220 /* SyntaxKind.FunctionExpression */:
546
+ case 221 /* SyntaxKind.ArrowFunction */:
547
+ case 176 /* SyntaxKind.MethodDeclaration */:
548
+ case 179 /* SyntaxKind.GetAccessor */:
549
+ case 180 /* SyntaxKind.SetAccessor */:
550
+ case 264 /* SyntaxKind.FunctionDeclaration */:
551
+ case 178 /* SyntaxKind.Constructor */:
552
552
  return true;
553
553
  }
554
554
  return false;
@@ -563,25 +563,25 @@ class ReturnCollector extends NodeVisitor {
563
563
  statements = [];
564
564
  visitNode(node) {
565
565
  switch (node.kind) {
566
- case 254 /* SyntaxKind.ReturnStatement */:
566
+ case 255 /* SyntaxKind.ReturnStatement */:
567
567
  if (node instanceof ReturnStatement)
568
568
  this.statements.push(node);
569
569
  return false;
570
- case 270 /* SyntaxKind.CaseBlock */:
571
- case 242 /* SyntaxKind.Block */:
572
- case 246 /* SyntaxKind.IfStatement */:
573
- case 247 /* SyntaxKind.DoStatement */:
574
- case 248 /* SyntaxKind.WhileStatement */:
575
- case 249 /* SyntaxKind.ForStatement */:
576
- case 250 /* SyntaxKind.ForInStatement */:
577
- case 251 /* SyntaxKind.ForOfStatement */:
578
- case 255 /* SyntaxKind.WithStatement */:
579
- case 256 /* SyntaxKind.SwitchStatement */:
580
- case 297 /* SyntaxKind.CaseClause */:
581
- case 298 /* SyntaxKind.DefaultClause */:
582
- case 257 /* SyntaxKind.LabeledStatement */:
583
- case 259 /* SyntaxKind.TryStatement */:
584
- case 300 /* SyntaxKind.CatchClause */:
570
+ case 271 /* SyntaxKind.CaseBlock */:
571
+ case 243 /* SyntaxKind.Block */:
572
+ case 247 /* SyntaxKind.IfStatement */:
573
+ case 248 /* SyntaxKind.DoStatement */:
574
+ case 249 /* SyntaxKind.WhileStatement */:
575
+ case 250 /* SyntaxKind.ForStatement */:
576
+ case 251 /* SyntaxKind.ForInStatement */:
577
+ case 252 /* SyntaxKind.ForOfStatement */:
578
+ case 256 /* SyntaxKind.WithStatement */:
579
+ case 257 /* SyntaxKind.SwitchStatement */:
580
+ case 298 /* SyntaxKind.CaseClause */:
581
+ case 299 /* SyntaxKind.DefaultClause */:
582
+ case 258 /* SyntaxKind.LabeledStatement */:
583
+ case 260 /* SyntaxKind.TryStatement */:
584
+ case 301 /* SyntaxKind.CatchClause */:
585
585
  return node.forEachChild(this);
586
586
  }
587
587
  return false;
@@ -605,7 +605,7 @@ export function isConstTypeReference(node) {
605
605
  isIdentifierNamed(node.typeName, 'const'));
606
606
  }
607
607
  function isConstAssertionNode(node) {
608
- return ((node.kind === 235 /* SyntaxKind.AsExpression */ || node.kind === 217 /* SyntaxKind.TypeAssertionExpression */) &&
608
+ return ((node.kind === 236 /* SyntaxKind.AsExpression */ || node.kind === 218 /* SyntaxKind.TypeAssertionExpression */) &&
609
609
  isConstTypeReference(getType(node)));
610
610
  }
611
611
  /** Whether a nested expression is inside an `as const`, as far as syntax decides. */
@@ -613,17 +613,17 @@ export function isInConstContext(node) {
613
613
  let current = node.parent;
614
614
  while (current !== undefined) {
615
615
  switch (current.kind) {
616
- case 235 /* SyntaxKind.AsExpression */:
617
- case 217 /* SyntaxKind.TypeAssertionExpression */:
616
+ case 236 /* SyntaxKind.AsExpression */:
617
+ case 218 /* SyntaxKind.TypeAssertionExpression */:
618
618
  return isConstAssertionNode(current);
619
- case 210 /* SyntaxKind.ArrayLiteralExpression */:
620
- case 211 /* SyntaxKind.ObjectLiteralExpression */:
621
- case 218 /* SyntaxKind.ParenthesizedExpression */:
622
- case 231 /* SyntaxKind.SpreadElement */:
623
- case 303 /* SyntaxKind.PropertyAssignment */:
624
- case 304 /* SyntaxKind.ShorthandPropertyAssignment */:
625
- case 240 /* SyntaxKind.TemplateSpan */:
626
- case 225 /* SyntaxKind.PrefixUnaryExpression */:
619
+ case 211 /* SyntaxKind.ArrayLiteralExpression */:
620
+ case 212 /* SyntaxKind.ObjectLiteralExpression */:
621
+ case 219 /* SyntaxKind.ParenthesizedExpression */:
622
+ case 232 /* SyntaxKind.SpreadElement */:
623
+ case 304 /* SyntaxKind.PropertyAssignment */:
624
+ case 305 /* SyntaxKind.ShorthandPropertyAssignment */:
625
+ case 241 /* SyntaxKind.TemplateSpan */:
626
+ case 226 /* SyntaxKind.PrefixUnaryExpression */:
627
627
  current = current.parent;
628
628
  continue;
629
629
  }
@@ -635,17 +635,17 @@ export function isInConstContext(node) {
635
635
  function isContextuallyTyped(node) {
636
636
  for (let current = node.parent; current !== undefined; current = current.parent) {
637
637
  switch (current.kind) {
638
- case 214 /* SyntaxKind.CallExpression */:
639
- case 239 /* SyntaxKind.SatisfiesExpression */:
640
- case 285 /* SyntaxKind.JsxElement */:
641
- case 295 /* SyntaxKind.JsxExpression */:
638
+ case 215 /* SyntaxKind.CallExpression */:
639
+ case 240 /* SyntaxKind.SatisfiesExpression */:
640
+ case 286 /* SyntaxKind.JsxElement */:
641
+ case 296 /* SyntaxKind.JsxExpression */:
642
642
  return true;
643
- case 261 /* SyntaxKind.VariableDeclaration */:
644
- case 170 /* SyntaxKind.Parameter */:
645
- case 173 /* SyntaxKind.PropertyDeclaration */:
646
- case 172 /* SyntaxKind.PropertySignature */:
647
- case 235 /* SyntaxKind.AsExpression */:
648
- case 217 /* SyntaxKind.TypeAssertionExpression */:
643
+ case 262 /* SyntaxKind.VariableDeclaration */:
644
+ case 171 /* SyntaxKind.Parameter */:
645
+ case 174 /* SyntaxKind.PropertyDeclaration */:
646
+ case 173 /* SyntaxKind.PropertySignature */:
647
+ case 236 /* SyntaxKind.AsExpression */:
648
+ case 218 /* SyntaxKind.TypeAssertionExpression */:
649
649
  if (getType(current) !== undefined && !isConstAssertionNode(current))
650
650
  return true;
651
651
  break;
@@ -660,7 +660,7 @@ function objectLiteralErrorNodes(node) {
660
660
  errorNodes.push(property);
661
661
  continue;
662
662
  }
663
- if (property.kind === 304 /* SyntaxKind.ShorthandPropertyAssignment */ || property.kind === 305 /* SyntaxKind.SpreadAssignment */) {
663
+ if (property.kind === 305 /* SyntaxKind.ShorthandPropertyAssignment */ || property.kind === 306 /* SyntaxKind.SpreadAssignment */) {
664
664
  errorNodes.push(property);
665
665
  continue;
666
666
  }
@@ -669,7 +669,7 @@ function objectLiteralErrorNodes(node) {
669
669
  errorNodes.push(name);
670
670
  else if (name.kind === 80 /* SyntaxKind.PrivateIdentifier */)
671
671
  errorNodes.push(property);
672
- else if (name.kind === 168 /* SyntaxKind.ComputedPropertyName */ && !isPrimitiveLiteral(getExpression(name)))
672
+ else if (name.kind === 169 /* SyntaxKind.ComputedPropertyName */ && !isPrimitiveLiteral(getExpression(name)))
673
673
  errorNodes.push(name);
674
674
  }
675
675
  return errorNodes;
@@ -682,7 +682,7 @@ function isPrimitiveLiteral(node) {
682
682
  case 10 /* SyntaxKind.StringLiteral */:
683
683
  case 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */:
684
684
  return true;
685
- case 225 /* SyntaxKind.PrefixUnaryExpression */: {
685
+ case 226 /* SyntaxKind.PrefixUnaryExpression */: {
686
686
  const unary = node;
687
687
  return ((unary.operator === 40 /* SyntaxKind.MinusToken */ || unary.operator === 39 /* SyntaxKind.PlusToken */) &&
688
688
  unary.operand.kind === 8 /* SyntaxKind.NumericLiteral */);
@@ -703,23 +703,23 @@ export function lastRequiredParameterIndex(parameters) {
703
703
  }
704
704
  function typeNodeCouldReferToUndefined(node) {
705
705
  let current = node;
706
- while (current.kind === 197 /* SyntaxKind.ParenthesizedType */)
706
+ while (current.kind === 198 /* SyntaxKind.ParenthesizedType */)
707
707
  current = getType(current);
708
708
  switch (current.kind) {
709
709
  // These need symbols or types to know.
710
- case 184 /* SyntaxKind.TypeReference */:
711
- case 200 /* SyntaxKind.IndexedAccessType */:
712
- case 187 /* SyntaxKind.TypeQuery */:
713
- case 191 /* SyntaxKind.OptionalType */:
714
- case 192 /* SyntaxKind.RestType */:
715
- case 206 /* SyntaxKind.ImportType */:
716
- case 195 /* SyntaxKind.ConditionalType */:
717
- case 199 /* SyntaxKind.TypeOperator */:
718
- case 183 /* SyntaxKind.TypePredicate */:
710
+ case 185 /* SyntaxKind.TypeReference */:
711
+ case 201 /* SyntaxKind.IndexedAccessType */:
712
+ case 188 /* SyntaxKind.TypeQuery */:
713
+ case 192 /* SyntaxKind.OptionalType */:
714
+ case 193 /* SyntaxKind.RestType */:
715
+ case 207 /* SyntaxKind.ImportType */:
716
+ case 196 /* SyntaxKind.ConditionalType */:
717
+ case 200 /* SyntaxKind.TypeOperator */:
718
+ case 184 /* SyntaxKind.TypePredicate */:
719
719
  case 157 /* SyntaxKind.UndefinedKeyword */:
720
720
  return true;
721
- case 193 /* SyntaxKind.UnionType */:
722
- case 194 /* SyntaxKind.IntersectionType */:
721
+ case 194 /* SyntaxKind.UnionType */:
722
+ case 195 /* SyntaxKind.IntersectionType */:
723
723
  // Intersections are treated like unions, as tsgo does.
724
724
  for (const type of typesOf(current))
725
725
  if (typeNodeCouldReferToUndefined(type))
@@ -765,7 +765,7 @@ function typeNodeHasUndefined(node) {
765
765
  node.kind === 132 /* SyntaxKind.AnyKeyword */ ||
766
766
  node.kind === 159 /* SyntaxKind.UnknownKeyword */)
767
767
  return true;
768
- if (node.kind === 197 /* SyntaxKind.ParenthesizedType */)
768
+ if (node.kind === 198 /* SyntaxKind.ParenthesizedType */)
769
769
  return typeNodeHasUndefined(getType(node));
770
770
  if (node instanceof UnionTypeNode) {
771
771
  for (const member of node.types.nodes)
@@ -1,6 +1,5 @@
1
1
  import type { ImportDeclaration, ModifierFlags, Node, SourceFile, FileReference } from '../ast.js';
2
2
  import type { EmitContext } from '../printer/emit-context.js';
3
- import type { ModuleKind } from '../options.js';
4
3
  import type { Symbol, SymbolFlags } from '../symbol.js';
5
4
  import { EmitResolver } from './emit-resolver.js';
6
5
  export declare const enum SymbolAccessibility {
@@ -125,8 +124,6 @@ export declare abstract class DeclarationEmitResolver extends EmitResolver {
125
124
  abstract isExpandoFunctionDeclaration(node: Node): boolean;
126
125
  /** Types: the declarations of properties assigned to a function. */
127
126
  abstract getExpandoPropertyDeclarations(node: Node): Node[];
128
- /** The `resolution-mode` of import attributes, or undefined. */
129
- abstract getResolutionModeOverride(node: Node): ModuleKind | undefined;
130
127
  /** The program file a `/// <reference path>` names. */
131
128
  abstract getSourceFileFromReference(file: SourceFile, reference: FileReference): SourceFile | undefined;
132
129
  /** The class member a JavaScript `this.x = …` assignment declares. */
@@ -1,5 +1,5 @@
1
1
  import { FileReference, Identifier, type ImportDeclaration, ModifierFlags, type Node, SourceFile, type EntityName } from '../ast.js';
2
- import type { CompilerOptions, ModuleKind } from '../options.js';
2
+ import type { CompilerOptions } from '../options.js';
3
3
  import type { EmitContext } from '../printer/emit-context.js';
4
4
  import type { SyntacticEmitResolver } from './emit-resolver.js';
5
5
  import type { TypeReferenceSerializationKind } from './type-serialization.js';
@@ -86,7 +86,6 @@ export declare class SyntacticDeclarationEmitResolver extends DeclarationEmitRes
86
86
  getJsxFactoryEntity(file: SourceFile): EntityName | undefined;
87
87
  getJsxFragmentFactoryEntity(file: SourceFile): EntityName | undefined;
88
88
  getTypeReferenceSerializationKind(typeName: Node, location: Node | undefined): TypeReferenceSerializationKind;
89
- getResolutionModeOverride(node: Node): ModuleKind | undefined;
90
89
  getSourceFileFromReference(file: SourceFile, reference: FileReference): SourceFile | undefined;
91
90
  getReferencedMemberValueDeclaration(node: Node): Node | undefined;
92
91
  isThisPropertyAssignmentDeclarationRedundant(_node: Node): boolean;