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
@@ -7,17 +7,6 @@ import { getDeclarationContainer, isTypeOnlyImportOrExportDeclaration } from './
7
7
  import { getEnclosingBlockScopeContainer } from './checker-declaration-order.js';
8
8
  import { ModuleKind, ScriptTarget, getEmitModuleKind, getUseDefineForClassFields } from './options.js';
9
9
  import { moduleKindName } from './program-utilities.js';
10
- /** A collision check that waits until the file is checked, when the flags it reads are complete. */
11
- export class DeferredCollisionCheck {
12
- node;
13
- reflect;
14
- constructor(node,
15
- /** `Reflect` rather than `WeakMap` and `WeakSet`. */
16
- reflect) {
17
- this.node = node;
18
- this.reflect = reflect;
19
- }
20
- }
21
10
  /** An error that is not reported under noEmit, since it is about the emitted code. */
22
11
  export function errorSkippedOnNoEmit(c, node, message, ...args) {
23
12
  const diagnostic = c.error(node, message, ...args);
@@ -33,12 +22,12 @@ export function checkCollisionsForDeclarationName(c, node, name) {
33
22
  checkCollisionWithGlobalPromiseInGeneratedCode(c, node, name);
34
23
  if (c.languageVersion <= ScriptTarget.ES2021 &&
35
24
  (needCollisionCheckForIdentifier(node, name, 'WeakMap') || needCollisionCheckForIdentifier(node, name, 'WeakSet')))
36
- c.deferredCollisionChecks.push(new DeferredCollisionCheck(node, false));
25
+ c.deferDiagnostic(node, () => checkWeakMapSetCollision(c, node));
37
26
  if (c.languageVersion <= ScriptTarget.ES2021 && needCollisionCheckForIdentifier(node, name, 'Reflect'))
38
- c.deferredCollisionChecks.push(new DeferredCollisionCheck(node, true));
27
+ c.deferDiagnostic(node, () => checkReflectCollision(c, node));
39
28
  if (isClassLike(node) && (node.flags & 8388608 /* NodeFlags.Ambient */) === 0 && getText(name) === 'Object') {
40
29
  if (c.host.getEmitModuleFormatOfFile(getSourceFileOfNode(name)) < ModuleKind.ES2015)
41
- c.error(name, 857 /* Diagnostics.Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0 */, moduleKindName(getEmitModuleKind(c.compilerOptions)));
30
+ c.error(name, 864 /* Diagnostics.Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0 */, moduleKindName(getEmitModuleKind(c.compilerOptions)));
42
31
  }
43
32
  }
44
33
  function checkCollisionWithRequireExportsInGeneratedCode(c, node, name) {
@@ -48,33 +37,33 @@ function checkCollisionWithRequireExportsInGeneratedCode(c, node, name) {
48
37
  // ES modules don't use `require` or `exports`.
49
38
  if (c.host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) >= ModuleKind.ES2015)
50
39
  return;
51
- if (node.kind === 268 /* SyntaxKind.ModuleDeclaration */ && getModuleInstanceState(node) !== 2 /* ModuleInstanceState.Instantiated */)
40
+ if (node.kind === 269 /* SyntaxKind.ModuleDeclaration */ && getModuleInstanceState(node) !== 2 /* ModuleInstanceState.Instantiated */)
52
41
  return;
53
42
  const parent = getDeclarationContainer(node);
54
- if (parent.kind === 307 /* SyntaxKind.SourceFile */ && isExternalOrCommonJSModule(parent))
55
- reportReservedTopLevelName(c, name, 609 /* Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module */);
43
+ if (parent.kind === 308 /* SyntaxKind.SourceFile */ && isExternalOrCommonJSModule(parent))
44
+ reportReservedTopLevelName(c, name, 616 /* Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module */);
56
45
  }
57
46
  function checkCollisionWithGlobalObjectInGeneratedCode(c, node, name) {
58
47
  if (isClassLike(node) || !needCollisionCheckForIdentifier(node, name, 'Object'))
59
48
  return;
60
- if (node.kind === 268 /* SyntaxKind.ModuleDeclaration */ && getModuleInstanceState(node) !== 2 /* ModuleInstanceState.Instantiated */)
49
+ if (node.kind === 269 /* SyntaxKind.ModuleDeclaration */ && getModuleInstanceState(node) !== 2 /* ModuleInstanceState.Instantiated */)
61
50
  return;
62
51
  const parent = getDeclarationContainer(node);
63
- if (parent.kind === 307 /* SyntaxKind.SourceFile */ &&
52
+ if (parent.kind === 308 /* SyntaxKind.SourceFile */ &&
64
53
  isExternalOrCommonJSModule(parent) &&
65
54
  c.host.getEmitModuleFormatOfFile(parent) === ModuleKind.CommonJS)
66
- reportReservedTopLevelName(c, name, 609 /* Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module */);
55
+ reportReservedTopLevelName(c, name, 616 /* Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module */);
67
56
  }
68
57
  function checkCollisionWithGlobalPromiseInGeneratedCode(c, node, name) {
69
58
  if (c.languageVersion >= ScriptTarget.ES2017 || !needCollisionCheckForIdentifier(node, name, 'Promise'))
70
59
  return;
71
- if (node.kind === 268 /* SyntaxKind.ModuleDeclaration */ && getModuleInstanceState(node) !== 2 /* ModuleInstanceState.Instantiated */)
60
+ if (node.kind === 269 /* SyntaxKind.ModuleDeclaration */ && getModuleInstanceState(node) !== 2 /* ModuleInstanceState.Instantiated */)
72
61
  return;
73
62
  const parent = getDeclarationContainer(node);
74
- if (parent.kind === 307 /* SyntaxKind.SourceFile */ &&
63
+ if (parent.kind === 308 /* SyntaxKind.SourceFile */ &&
75
64
  isExternalOrCommonJSModule(parent) &&
76
65
  (parent.flags & 262144 /* NodeFlags.HasAsyncFunctions */) !== 0)
77
- reportReservedTopLevelName(c, name, 687 /* Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions */);
66
+ reportReservedTopLevelName(c, name, 694 /* Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions */);
78
67
  }
79
68
  function reportReservedTopLevelName(c, name, message) {
80
69
  const text = declarationNameToString(getSourceFileOfNode(name), name);
@@ -85,24 +74,24 @@ function needCollisionCheckForIdentifier(node, identifier, name) {
85
74
  if (identifier.kind !== 79 /* SyntaxKind.Identifier */ || getText(identifier) !== name)
86
75
  return false;
87
76
  switch (node.kind) {
88
- case 173 /* SyntaxKind.PropertyDeclaration */:
89
- case 172 /* SyntaxKind.PropertySignature */:
90
- case 175 /* SyntaxKind.MethodDeclaration */:
91
- case 174 /* SyntaxKind.MethodSignature */:
92
- case 178 /* SyntaxKind.GetAccessor */:
93
- case 179 /* SyntaxKind.SetAccessor */:
94
- case 303 /* SyntaxKind.PropertyAssignment */:
77
+ case 174 /* SyntaxKind.PropertyDeclaration */:
78
+ case 173 /* SyntaxKind.PropertySignature */:
79
+ case 176 /* SyntaxKind.MethodDeclaration */:
80
+ case 175 /* SyntaxKind.MethodSignature */:
81
+ case 179 /* SyntaxKind.GetAccessor */:
82
+ case 180 /* SyntaxKind.SetAccessor */:
83
+ case 304 /* SyntaxKind.PropertyAssignment */:
95
84
  return false;
96
85
  }
97
86
  if ((node.flags & 8388608 /* NodeFlags.Ambient */) !== 0)
98
87
  return false;
99
- if ((node.kind === 274 /* SyntaxKind.ImportClause */ ||
100
- node.kind === 272 /* SyntaxKind.ImportEqualsDeclaration */ ||
101
- node.kind === 277 /* SyntaxKind.ImportSpecifier */) &&
88
+ if ((node.kind === 275 /* SyntaxKind.ImportClause */ ||
89
+ node.kind === 273 /* SyntaxKind.ImportEqualsDeclaration */ ||
90
+ node.kind === 278 /* SyntaxKind.ImportSpecifier */) &&
102
91
  isTypeOnlyImportOrExportDeclaration(node))
103
92
  return false;
104
93
  const root = getRootDeclaration(node);
105
- return !(root.kind === 170 /* SyntaxKind.Parameter */ && getBody(root.parent) === undefined);
94
+ return !(root.kind === 171 /* SyntaxKind.Parameter */ && getBody(root.parent) === undefined);
106
95
  }
107
96
  /**
108
97
  * A private name downleveled (before ESNext, or without useDefineForClassFields) is emitted with `WeakMap` or
@@ -120,40 +109,27 @@ export function markPrivateIdentifierScope(c, node) {
120
109
  /** `super.x` in a static initializer before ES2022 is emitted with `Reflect`: marks the block scopes around it. */
121
110
  export function markSuperPropertyInStaticInitializer(c, node) {
122
111
  for (let scope = getEnclosingBlockScopeContainer(node.parent); scope !== undefined; scope = getEnclosingBlockScopeContainer(scope))
123
- if (scope.kind !== 307 /* SyntaxKind.SourceFile */ || isExternalOrCommonJSModule(scope))
112
+ if (scope.kind !== 308 /* SyntaxKind.SourceFile */ || isExternalOrCommonJSModule(scope))
124
113
  c.nodeLinks(scope).flags |= 2097152 /* NodeCheckFlags.ContainsSuperPropertyInStaticInitializer */;
125
114
  }
126
- /** Reports the `WeakMap`, `WeakSet` and `Reflect` collisions found while checking the file. */
127
- export function produceDeferredCollisionChecks(c) {
128
- const checks = c.deferredCollisionChecks;
129
- if (checks.length === 0)
130
- return;
131
- c.deferredCollisionChecks = [];
132
- for (const check of checks) {
133
- if (check.reflect)
134
- checkReflectCollision(c, check.node);
135
- else
136
- checkWeakMapSetCollision(c, check.node);
137
- }
138
- }
139
115
  function checkWeakMapSetCollision(c, node) {
140
116
  const scope = getEnclosingBlockScopeContainer(node);
141
117
  if (scope === undefined || (c.nodeLinks(scope).flags & 1048576 /* NodeCheckFlags.ContainsClassWithPrivateIdentifiers */) === 0)
142
118
  return;
143
119
  const name = getName(node);
144
120
  if (name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */)
145
- errorSkippedOnNoEmit(c, node, 1844 /* Diagnostics.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel */, getText(name));
121
+ errorSkippedOnNoEmit(c, node, 1864 /* Diagnostics.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel */, getText(name));
146
122
  }
147
123
  function checkReflectCollision(c, node) {
148
124
  let hasCollision = false;
149
- if (node.kind === 232 /* SyntaxKind.ClassExpression */) {
125
+ if (node.kind === 233 /* SyntaxKind.ClassExpression */) {
150
126
  for (const member of getMembers(node).nodes)
151
127
  if ((c.nodeLinks(member).flags & 2097152 /* NodeCheckFlags.ContainsSuperPropertyInStaticInitializer */) !== 0) {
152
128
  hasCollision = true;
153
129
  break;
154
130
  }
155
131
  }
156
- else if (node.kind === 219 /* SyntaxKind.FunctionExpression */)
132
+ else if (node.kind === 220 /* SyntaxKind.FunctionExpression */)
157
133
  hasCollision = (c.nodeLinks(node).flags & 2097152 /* NodeCheckFlags.ContainsSuperPropertyInStaticInitializer */) !== 0;
158
134
  else {
159
135
  const scope = getEnclosingBlockScopeContainer(node);
@@ -164,5 +140,5 @@ function checkReflectCollision(c, node) {
164
140
  return;
165
141
  const name = getName(node);
166
142
  if (name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */)
167
- errorSkippedOnNoEmit(c, node, 949 /* Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers */, declarationNameToString(getSourceFileOfNode(name), name), 'Reflect');
143
+ errorSkippedOnNoEmit(c, node, 956 /* Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers */, declarationNameToString(getSourceFileOfNode(name), name), 'Reflect');
168
144
  }
@@ -33,3 +33,4 @@ export declare class GrammarChecker extends NodeVisitor {
33
33
  getScanner(): Scanner;
34
34
  }
35
35
  export declare function getContainingFunctionOrClassStaticBlock(node: Node): Node | undefined;
36
+ export declare function isInParameterInitializerBeforeContainingFunction(node: Node): boolean;