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
@@ -1,26 +1,27 @@
1
- import type { DeferredCollisionCheck } from './checker-generated-code.js';
1
+ import type { ModuleSpecifierResult } from './node-builder-names.js';
2
2
  import type { EmitHelperFileLinks } from './checker-emit-helpers.js';
3
3
  import type { Node, PatternAmbientModule, SourceFile } from './ast.js';
4
- import { CompactSymbolLinkTable, IntLinkTable, LinkTable, PagedIdSet, SparseLinkTable } from './link-tables.js';
4
+ import { CompactIntLinkTable, CompactLinkTable, IntLinkTable, LinkTable, PagedIdSet, SparseLinkTable } from './link-tables.js';
5
5
  import { Diagnostic, type DiagnosticMessage, Diagnostics } from './diagnostics.js';
6
6
  import { type CompilerOptions, ModuleKind, ScriptTarget } from './options.js';
7
7
  import { CheckFlags, Symbol, SymbolFlags, type SymbolTable } from './symbol.js';
8
- import { IndexInfo, IntrinsicType, LiteralType, MemberNames, NodeLinks, ObjectFlags, ObjectType, Signature, SignatureFlags, SymbolLinks, type Type, TypeFlags, TypeMapper, TypeParameter, TypePredicate, VarianceFlags, TypeListCache, TypeListTable, type ConditionalType, type InterfaceType, type TypeChecking } from './checker-types.js';
8
+ import { IndexInfo, IntrinsicType, LiteralType, MemberNames, NamedMemberOrder, NodeLinks, ObjectFlags, ObjectType, Signature, SignatureFlags, SymbolLinks, type Type, TypeFlags, TypeMapper, TypeParameter, TypePredicate, VarianceFlags, TypeListCache, TypeListTable, type ConditionalType, type InterfaceType, type TypeChecking, type ConditionalResultKey, type DistributedConditional } from './checker-types.js';
9
9
  import type { ModuleResolution } from './checker-modules.js';
10
10
  import { CheckerNameResolver, type LibGlobals, type MergedGlobals, TableChanges, SuggestionNameResolver } from './checker-symbols.js';
11
- import { Relation, RelationKey, type InternedRelationKey, type Relater, TypeComparer } from './relations.js';
11
+ import { Relation, RelationKey, type InternedRelationKey, type Relater, TypeComparer, type VarianceStackEntry } from './relations.js';
12
12
  import { TypeNodeVisitor } from './checker-source-file.js';
13
13
  import { InferenceCaches } from './checker-inference.js';
14
14
  import { AssignmentMarker, type FlowLoopInfo, type FlowState, type FlowWalk } from './checker-narrowing.js';
15
15
  import type { FlowNode, FlowReduceLabel } from './flow.js';
16
16
  import { JsxState } from './checker-jsx.js';
17
- import type { DeferredIterationError, IterationTypes } from './checker-iteration.js';
17
+ import type { IterationTypes } from './checker-iteration.js';
18
18
  import type { SpreadIndices } from './checker-contextual.js';
19
19
  import { SourceFileMetadata } from './program-utilities.js';
20
20
  import type { GrammarChecker } from './checker-grammar.js';
21
21
  import type { ResolvedModule } from './module-resolution-types.js';
22
22
  import type { ModuleSpecifierHost } from './module-specifiers.js';
23
23
  import type { PropertyListIndex } from './checker-members.js';
24
+ import { type ThreadSharing } from './shared-results.js';
24
25
  /** What the checker needs from a program. */
25
26
  export declare abstract class CheckerHost {
26
27
  abstract getCompilerOptions(): CompilerOptions;
@@ -57,20 +58,34 @@ export declare abstract class CheckerHost {
57
58
  /** What module specifier generation needs; without it, specifiers are relative paths. */
58
59
  getModuleSpecifierHost(): ModuleSpecifierHost | undefined;
59
60
  }
60
- /** Per-file and global diagnostics, sorted on read like tsgo's DiagnosticsCollection. */
61
+ /**
62
+ * Per-file and global diagnostics, sorted on read like tsgo's DiagnosticsCollection, which keeps one of
63
+ * each set of equal diagnostics.
64
+ */
61
65
  declare class DiagnosticCollection {
62
66
  private readonly byFile;
63
67
  private readonly sortedFiles;
64
68
  private readonly global;
65
69
  private globalSorted;
66
- /** The diagnostics added since `startLog`, while recording. */
70
+ /** The diagnostics at each file, position, end and code, to find an equal one when adding. */
71
+ private readonly byLocation;
72
+ /** The diagnostics reported since `startLog`, while recording, also those equal to one already added. */
67
73
  private log;
68
- add(diagnostic: Diagnostic): void;
74
+ /** Adds `diagnostic` unless an equal one was added; returns the one the collection holds. */
75
+ add(diagnostic: Diagnostic): Diagnostic;
69
76
  forFile(fileName: string): Diagnostic[];
70
77
  count(): number;
71
78
  /** An already reported diagnostic equal to `diagnostic`, if any. */
72
79
  lookup(diagnostic: Diagnostic): Diagnostic | undefined;
73
80
  globals(): Diagnostic[];
81
+ /** The global diagnostics `withoutNewGlobals` removed. */
82
+ removedGlobals: number;
83
+ /** Where results are shared between checker threads (shared-results.ts): every diagnostic added, in order. */
84
+ added: Diagnostic[] | undefined;
85
+ /** Runs `run`, then removes the global diagnostics it added. */
86
+ withoutNewGlobals<T>(run: () => T): T;
87
+ /** Removes the global diagnostic `diagnostic` from the location index. */
88
+ private forget;
74
89
  /** Records the diagnostics added from now on. */
75
90
  startLog(): void;
76
91
  /** The diagnostics added since `startLog`, in order; stops recording. */
@@ -143,10 +158,20 @@ export declare class Checker implements TypeChecking {
143
158
  readonly memberPositionsInLists: Map<Symbol[], Map<string, number>>;
144
159
  /** The property names of the last instantiation of each such list whose table is built on demand. */
145
160
  readonly memberNamesOfLists: Map<Symbol[], MemberNames>;
161
+ /** The property order of the instantiations of each such list (`NamedMemberOrder`); null where it has none. */
162
+ readonly namedMemberOrdersOfLists: Map<Symbol[], NamedMemberOrder | null>;
146
163
  /** Long lists of inherited properties, by name. */
147
164
  readonly propertiesByName: Map<Symbol[], Map<string, Symbol>>;
148
165
  /** Number of `typeToString` calls in progress. */
149
166
  serializationLevel: number;
167
+ /**
168
+ * `typeToString` results by type, enclosing declaration, flags and the type parameter of the variance check in
169
+ * progress: the prints that created no types, which a later print with the same inputs repeats exactly
170
+ * (`typeToString`).
171
+ */
172
+ readonly typeStrings: Map<string, string>;
173
+ /** `symbolToString` results by symbol, then by enclosing declaration and flags, kept as `typeStrings` are. */
174
+ readonly symbolStrings: Map<Symbol, Map<string, string>>;
150
175
  /** Whether `globalObjectType` is set; global type lookups before it can't suggest `typeof`. */
151
176
  hasGlobalObjectType: boolean;
152
177
  /** The node being checked, for errors with no better location. */
@@ -163,7 +188,7 @@ export declare class Checker implements TypeChecking {
163
188
  */
164
189
  modulesMerged: boolean;
165
190
  /** Module specifiers of `import("…")` types, by module symbol id, importing file path and resolution mode. */
166
- readonly moduleSpecifiers: Map<string, string>;
191
+ readonly moduleSpecifiers: Map<string, ModuleSpecifierResult>;
167
192
  /** Specifier generation for hosts without a program. */
168
193
  fallbackModuleSpecifierHost: ModuleSpecifierHost | undefined;
169
194
  readonly symbolLinkTable: SparseLinkTable<SymbolLinks>;
@@ -184,24 +209,24 @@ export declare class Checker implements TypeChecking {
184
209
  /** The mapper of an instantiated symbol or a mapped type property. */
185
210
  readonly symbolMappers: LinkTable<TypeMapper>;
186
211
  /** The literal type of a property name. */
187
- readonly symbolNameTypes: LinkTable<Type>;
212
+ readonly symbolNameTypes: CompactLinkTable<Type>;
188
213
  /** The mapped type of a mapped type property, or the union/intersection of a synthetic property. */
189
- readonly symbolContainingTypes: LinkTable<Type>;
214
+ readonly symbolContainingTypes: CompactLinkTable<Type>;
190
215
  /** The key type of a mapped type property. */
191
- readonly symbolKeyTypes: LinkTable<Type>;
216
+ readonly symbolKeyTypes: CompactLinkTable<Type>;
192
217
  /** The property a mapped, spread or synthetic property comes from. */
193
- readonly symbolSyntheticOrigins: LinkTable<Symbol>;
218
+ readonly symbolSyntheticOrigins: CompactLinkTable<Symbol>;
194
219
  /** The left and right properties a spread property combines. */
195
- readonly symbolLeftSpreads: LinkTable<Symbol>;
196
- readonly symbolRightSpreads: LinkTable<Symbol>;
220
+ readonly symbolLeftSpreads: CompactLinkTable<Symbol>;
221
+ readonly symbolRightSpreads: CompactLinkTable<Symbol>;
197
222
  /** Bits of SymbolFlags for the meanings in which a symbol was referenced. */
198
- readonly symbolReferenceKinds: IntLinkTable;
223
+ readonly symbolReferenceKinds: CompactIntLinkTable;
199
224
  /** The resolved symbol of an identifier, entity name or call. */
200
- readonly resolvedSymbols: CompactSymbolLinkTable;
225
+ readonly resolvedSymbols: CompactLinkTable<Symbol>;
201
226
  /** The resolved type of a type node or expression. */
202
- readonly resolvedTypes: SparseLinkTable<Type>;
227
+ readonly resolvedTypes: CompactLinkTable<Type>;
203
228
  /** The resolved signature of a call-like node or a signature declaration. */
204
- readonly resolvedSignatures: SparseLinkTable<Signature>;
229
+ readonly resolvedSignatures: CompactLinkTable<Signature>;
205
230
  /** Merged symbols, indexed by the id of the symbol merged into them. */
206
231
  readonly mergedSymbols: Map<number, Symbol>;
207
232
  /**
@@ -364,13 +389,19 @@ export declare class Checker implements TypeChecking {
364
389
  readonly moduleTypeCache: Map<string, Type>;
365
390
  readonly globalSymbolCache: Map<string, Symbol | null>;
366
391
  resolutionStart: number;
367
- inVarianceComputation: boolean;
392
+ /** The generic types whose variances are being computed, outermost first. */
393
+ varianceStack: VarianceStackEntry[];
368
394
  instantiationDepth: number;
395
+ /** The types being instantiated, outermost first: the first `instantiationDepth` entries are current. */
396
+ readonly instantiationStack: Type[];
397
+ /** The calls being resolved, outermost first: the first `callResolutionDepth` entries are current. */
398
+ readonly callResolutionStack: Node[];
399
+ callResolutionDepth: number;
369
400
  instantiationCount: number;
370
401
  /** Instantiations over the checker's lifetime (statistics). */
371
402
  totalInstantiations: number;
372
- /** Mappers of the instantiations in progress: the first `activeMapperDepth` entries are live. */
373
- readonly activeMappers: TypeMapper[];
403
+ /** Ids of the mappers of the instantiations in progress: the first `activeMapperDepth` entries are live. */
404
+ activeMapperIds: Int32Array<ArrayBuffer>;
374
405
  activeMapperDepth: number;
375
406
  /** Per active mapper: its instantiations by type id, created on the first nested write. */
376
407
  readonly activeMapperCaches: (Map<number, Type> | undefined)[];
@@ -385,20 +416,28 @@ export declare class Checker implements TypeChecking {
385
416
  /** Empty lists for type arguments that are compared with cached instantiations before any is kept. */
386
417
  readonly freeTypeLists: Type[][];
387
418
  /**
388
- * 1 by type id for the anonymous and mapped types whose declaration has no outer type parameters
419
+ * The ids of the anonymous and mapped types whose declaration has no outer type parameters
389
420
  * to instantiate (`getObjectTypeInstantiation`).
390
421
  */
391
- readonly withoutOuterTypeParameters: IntLinkTable;
422
+ readonly withoutOuterTypeParameters: PagedIdSet;
392
423
  conditionalConstraintDepth: number;
393
424
  readonly suggestionResolver: SuggestionNameResolver;
394
425
  readonly awaitedTypeStack: number[];
395
426
  /** Iteration types by type id and iteration use. */
396
427
  readonly iterationTypesCache: Map<number, IterationTypes>;
397
- /** Whether diagnostics can be deferred to the end of the file being checked. */
398
- saveDeferredDiagnostics: boolean;
399
- deferredIterationErrors: DeferredIterationError[];
400
- /** Collision checks waiting for the end of the file (checker-generated-code.ts). */
401
- deferredCollisionChecks: DeferredCollisionCheck[];
428
+ /**
429
+ * Diagnostics reported after the checks of the file being checked, or before the next global
430
+ * diagnostics are read, in the order they were deferred. Reporting them earlier could resolve types
431
+ * that are being resolved.
432
+ */
433
+ deferredDiagnostics: (() => void)[];
434
+ /** Defers the diagnostic `report` reports at `node` (`deferredDiagnostics`). */
435
+ deferDiagnostic(node: Node, report: () => void): void;
436
+ /**
437
+ * The checked object literals of each file whose members may set deprecated properties of their contextual
438
+ * types, reported when the file's suggestion diagnostics are asked for (`checkObjectLiteralDeprecations`).
439
+ */
440
+ readonly objectLiteralsForDeprecations: Map<SourceFile, Node[]>;
402
441
  /** Binding patterns whose implied type is being computed as a contextual type. */
403
442
  readonly contextualBindingPatterns: Node[];
404
443
  /** The binding pattern or assignment pattern that implied each type. */
@@ -449,11 +488,13 @@ export declare class Checker implements TypeChecking {
449
488
  flowTypeCache: Map<Node, Type> | undefined;
450
489
  flowInvocationCount: number;
451
490
  /** The reduce labels being passed, innermost last; each limits its target label's antecedents. */
452
- readonly flowReduceLabels: FlowReduceLabel[];
491
+ flowReduceLabels: FlowReduceLabel[];
453
492
  readonly flowNodeReachable: Map<FlowNode, boolean>;
454
493
  readonly flowNodePostSuper: Map<FlowNode, boolean>;
455
494
  lastFlowNode: FlowNode | undefined;
456
495
  lastFlowNodeReachable: boolean;
496
+ /** Symbols whose explicit type is being found, for flow analysis of self-referential `for...of`. */
497
+ readonly resolvingExplicitTypeOfSymbol: Set<Symbol>;
457
498
  readonly assignmentMarker: AssignmentMarker;
458
499
  readonly primitiveTypeAliasSuggestions: Map<string, Symbol>;
459
500
  /** Renamed binding elements in parameters of bodiless signatures, checked for use with their file. */
@@ -476,6 +517,9 @@ export declare class Checker implements TypeChecking {
476
517
  readonly ambientModuleSymbols: Symbol[];
477
518
  readonly patternAmbientModules: PatternAmbientModule[];
478
519
  readonly patternAmbientModuleAugmentations: Map<string, Symbol>;
520
+ /** The pattern module each entry of `patternAmbientModuleAugmentations` augments. */
521
+ readonly patternAmbientModuleAugmentationTargets: Map<string, Symbol>;
522
+ readonly moduleImportAttributesTypes: Map<Symbol, Type>;
479
523
  readonly inferenceCaches: InferenceCaches;
480
524
  /** The type resolution stack: the first `resolutionDepth` entries are live, later slots are reused. */
481
525
  readonly resolutionTargets: (Symbol | Type | Signature | Node)[];
@@ -484,6 +528,27 @@ export declare class Checker implements TypeChecking {
484
528
  resolutionDepth: number;
485
529
  /** The number of resolution cycles found (`pushTypeResolution`). */
486
530
  resolutionCycleCount: number;
531
+ /**
532
+ * While an `inferTypesFromUnstarted` walk runs: the unions and intersections whose properties
533
+ * `hasUnmatchedProperty` searched before they were resolved. Such a search creates fewer types
534
+ * than one of the resolved properties.
535
+ */
536
+ unresolvedPropertySearches: Type[] | undefined;
537
+ /** TSC_TS_SHARE: the checker thread's sharing with the other checker threads. */
538
+ threadSharing: ThreadSharing | undefined;
539
+ /**
540
+ * Where results are shared (shared-results.ts): for each conditional type made as a member of the distribution of a
541
+ * conditional type instantiation, that instantiation and the constituent it is for.
542
+ */
543
+ distributedConditionals: Map<Type, DistributedConditional> | undefined;
544
+ /** The same members by `distributedKey`. */
545
+ distributedByKey: Map<string, Type> | undefined;
546
+ /** The conditional types conditional type instantiations resolved to, with the instantiation's root and key. */
547
+ conditionalResults: Map<Type, ConditionalResultKey> | undefined;
548
+ /** The access flags of the key `getIndexedAccessTypeEx` keeps each indexed access type by. */
549
+ indexedAccessKeyFlags: Map<Type, number> | undefined;
550
+ /** Where results are shared between checker threads (shared-results.ts): the file of each diagnostic deferred. */
551
+ deferredDiagnosticFiles: string[] | undefined;
487
552
  constructor(host: CheckerHost);
488
553
  /** Checks `file` if needed and returns its semantic diagnostics, sorted. */
489
554
  getDiagnostics(file: SourceFile): Diagnostic[];
@@ -491,6 +556,13 @@ export declare class Checker implements TypeChecking {
491
556
  getSuggestionDiagnostics(file: SourceFile): Diagnostic[];
492
557
  /** Diagnostics without a file, such as missing global types. */
493
558
  getGlobalDiagnostics(): Diagnostic[];
559
+ /**
560
+ * Runs `run` (such as emitting declarations), then forgets the global diagnostics it reported:
561
+ * the program collects global diagnostics before it emits.
562
+ */
563
+ withoutGlobalDiagnostics<T>(run: () => T): T;
564
+ /** The global diagnostics `withoutGlobalDiagnostics` forgot so far. */
565
+ forgottenGlobalDiagnostics(): number;
494
566
  /** The rarely used links of `symbol`, created on first use. */
495
567
  symbolLinks(symbol: Symbol): SymbolLinks;
496
568
  /** The links of `symbol` if it has any, without creating them. */
@@ -511,7 +583,8 @@ export declare class Checker implements TypeChecking {
511
583
  newSignature(flags: SignatureFlags, declaration: Node | undefined, typeParameters: Type[], thisParameter: Symbol | undefined, parameters: Symbol[], resolvedReturnType: Type | undefined, minArgumentCount: number): Signature;
512
584
  /** Reports `message` at `node`, or as a global diagnostic without a node. */
513
585
  error(node: Node | undefined, message: DiagnosticMessage, ...args: string[]): Diagnostic;
514
- addDiagnostic(diagnostic: Diagnostic): void;
586
+ /** Reports `diagnostic`; returns the equal diagnostic already reported, if any, else `diagnostic`. */
587
+ addDiagnostic(diagnostic: Diagnostic): Diagnostic;
515
588
  addSuggestion(diagnostic: Diagnostic): void;
516
589
  /** Reports an error, or a suggestion when `isError` is false. */
517
590
  addErrorOrSuggestion(isError: boolean, diagnostic: Diagnostic): void;