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
@@ -45,20 +45,20 @@ export function getSignaturesOfSymbol(c, symbol) {
45
45
  }
46
46
  export function isFunctionLikeNode(node) {
47
47
  switch (node.kind) {
48
- case 263 /* SyntaxKind.FunctionDeclaration */:
49
- case 175 /* SyntaxKind.MethodDeclaration */:
50
- case 177 /* SyntaxKind.Constructor */:
51
- case 178 /* SyntaxKind.GetAccessor */:
52
- case 179 /* SyntaxKind.SetAccessor */:
53
- case 219 /* SyntaxKind.FunctionExpression */:
54
- case 220 /* SyntaxKind.ArrowFunction */:
55
- case 174 /* SyntaxKind.MethodSignature */:
56
- case 180 /* SyntaxKind.CallSignature */:
57
- case 181 /* SyntaxKind.ConstructSignature */:
58
- case 182 /* SyntaxKind.IndexSignature */:
59
- case 185 /* SyntaxKind.FunctionType */:
60
- case 186 /* SyntaxKind.ConstructorType */:
61
- case 318 /* SyntaxKind.JSDocSignature */:
48
+ case 264 /* SyntaxKind.FunctionDeclaration */:
49
+ case 176 /* SyntaxKind.MethodDeclaration */:
50
+ case 178 /* SyntaxKind.Constructor */:
51
+ case 179 /* SyntaxKind.GetAccessor */:
52
+ case 180 /* SyntaxKind.SetAccessor */:
53
+ case 220 /* SyntaxKind.FunctionExpression */:
54
+ case 221 /* SyntaxKind.ArrowFunction */:
55
+ case 175 /* SyntaxKind.MethodSignature */:
56
+ case 181 /* SyntaxKind.CallSignature */:
57
+ case 182 /* SyntaxKind.ConstructSignature */:
58
+ case 183 /* SyntaxKind.IndexSignature */:
59
+ case 186 /* SyntaxKind.FunctionType */:
60
+ case 187 /* SyntaxKind.ConstructorType */:
61
+ case 319 /* SyntaxKind.JSDocSignature */:
62
62
  return true;
63
63
  }
64
64
  return false;
@@ -71,7 +71,7 @@ export function isOptionalDeclaration(node) {
71
71
  }
72
72
  function getAnnotatedAccessorThisParameter(accessor) {
73
73
  const params = getParameters(accessor).nodes;
74
- if (params.length !== (accessor.kind === 178 /* SyntaxKind.GetAccessor */ ? 1 : 2))
74
+ if (params.length !== (accessor.kind === 179 /* SyntaxKind.GetAccessor */ ? 1 : 2))
75
75
  return undefined;
76
76
  const name = getName(params[0]);
77
77
  return name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */ && getText(name) === 'this'
@@ -105,7 +105,7 @@ export function getSignatureFromDeclaration(c, declaration) {
105
105
  thisParameter = getSymbol(param);
106
106
  else
107
107
  parameters.push(paramSymbol);
108
- if (typeNode !== undefined && typeNode.kind === 202 /* SyntaxKind.LiteralType */)
108
+ if (typeNode !== undefined && typeNode.kind === 203 /* SyntaxKind.LiteralType */)
109
109
  flags |= 2 /* SignatureFlags.HasLiteralTypes */;
110
110
  const iifeArgs = iife !== undefined ? getArguments(iife).nodes.length : 0;
111
111
  const isOptionalParameter = isOptionalDeclaration(param) ||
@@ -116,28 +116,28 @@ export function getSignatureFromDeclaration(c, declaration) {
116
116
  minArgumentCount = parameters.length;
117
117
  }
118
118
  // An accessor without a `this` annotation takes the one of its counterpart.
119
- if ((declaration.kind === 178 /* SyntaxKind.GetAccessor */ || declaration.kind === 179 /* SyntaxKind.SetAccessor */) &&
119
+ if ((declaration.kind === 179 /* SyntaxKind.GetAccessor */ || declaration.kind === 180 /* SyntaxKind.SetAccessor */) &&
120
120
  hasBindableName(declaration) &&
121
121
  thisParameter === undefined) {
122
122
  const symbol = getSymbol(declaration);
123
123
  const other = symbol !== undefined
124
- ? getDeclarationOfKind(symbol, declaration.kind === 178 /* SyntaxKind.GetAccessor */ ? 179 /* SyntaxKind.SetAccessor */ : 178 /* SyntaxKind.GetAccessor */)
124
+ ? getDeclarationOfKind(symbol, declaration.kind === 179 /* SyntaxKind.GetAccessor */ ? 180 /* SyntaxKind.SetAccessor */ : 179 /* SyntaxKind.GetAccessor */)
125
125
  : undefined;
126
126
  if (other !== undefined)
127
127
  thisParameter = getAnnotatedAccessorThisParameter(other);
128
128
  }
129
- const classType = declaration.kind === 177 /* SyntaxKind.Constructor */
129
+ const classType = declaration.kind === 178 /* SyntaxKind.Constructor */
130
130
  ? getDeclaredTypeOfClassOrInterface(c, getMergedSymbol(c, getSymbol(declaration.parent)))
131
131
  : undefined;
132
132
  const typeParameters = classType !== undefined ? classType.localTypeParameters() : getTypeParametersFromDeclaration(c, declaration);
133
133
  if (params.length !== 0 && isRestParameter(params[params.length - 1]))
134
134
  flags |= 1 /* SignatureFlags.HasRestParameter */;
135
- if (declaration.kind === 186 /* SyntaxKind.ConstructorType */ ||
136
- declaration.kind === 177 /* SyntaxKind.Constructor */ ||
137
- declaration.kind === 181 /* SyntaxKind.ConstructSignature */)
135
+ if (declaration.kind === 187 /* SyntaxKind.ConstructorType */ ||
136
+ declaration.kind === 178 /* SyntaxKind.Constructor */ ||
137
+ declaration.kind === 182 /* SyntaxKind.ConstructSignature */)
138
138
  flags |= 4 /* SignatureFlags.Construct */;
139
- if ((declaration.kind === 186 /* SyntaxKind.ConstructorType */ && hasSyntacticModifier(declaration, 64 /* ModifierFlags.Abstract */)) ||
140
- (declaration.kind === 177 /* SyntaxKind.Constructor */ && hasSyntacticModifier(declaration.parent, 64 /* ModifierFlags.Abstract */)))
139
+ if ((declaration.kind === 187 /* SyntaxKind.ConstructorType */ && hasSyntacticModifier(declaration, 64 /* ModifierFlags.Abstract */)) ||
140
+ (declaration.kind === 178 /* SyntaxKind.Constructor */ && hasSyntacticModifier(declaration.parent, 64 /* ModifierFlags.Abstract */)))
141
141
  flags |= 8 /* SignatureFlags.Abstract */;
142
142
  const signature = c.newSignature(flags, declaration, typeParameters, thisParameter, parameters, undefined, minArgumentCount);
143
143
  c.resolvedSignatures.set(declaration.id, signature);
@@ -169,8 +169,23 @@ export function getReturnTypeOfSignature(c, sig) {
169
169
  if (sig.resolvedReturnType !== undefined)
170
170
  return sig.resolvedReturnType;
171
171
  const side = signatureSideOf(c, sig);
172
- if (side.resolvedReturnType !== undefined)
172
+ if (side.resolvedReturnType !== undefined) {
173
+ if (c.threadSharing !== undefined)
174
+ noteReturnTypeUse(c, sig);
173
175
  return side.resolvedReturnType;
176
+ }
177
+ // TSC_TS_SHARE: checker threads share the return types of declared signatures (shared-results.ts).
178
+ if (c.threadSharing !== undefined && isSharedReturnSignature(c, sig)) {
179
+ const sharing = c.threadSharing;
180
+ if (sharing.computingSignature === sig)
181
+ sharing.computingSignature = undefined;
182
+ else {
183
+ const t = threadReturnType(c, sig);
184
+ if (side.resolvedReturnType === undefined)
185
+ side.resolvedReturnType = t;
186
+ return side.resolvedReturnType;
187
+ }
188
+ }
174
189
  if (!pushTypeResolution(c, sig, 3 /* TypeSystemPropertyName.ResolvedReturnType */))
175
190
  return c.errorType;
176
191
  let t;
@@ -197,13 +212,13 @@ export function getReturnTypeOfSignature(c, sig) {
197
212
  if (declaration !== undefined) {
198
213
  const typeNode = getType(declaration);
199
214
  if (typeNode !== undefined)
200
- c.error(typeNode, 728 /* Diagnostics.Return_type_annotation_circularly_references_itself */);
215
+ c.error(typeNode, 735 /* Diagnostics.Return_type_annotation_circularly_references_itself */);
201
216
  else if (c.noImplicitAny) {
202
217
  const name = getNameOfDeclaration(declaration);
203
218
  if (name !== undefined)
204
- c.error(name, 1694 /* Diagnostics.X_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions */, declarationNameToString(getSourceFileOfNode(name), name));
219
+ c.error(name, 1713 /* Diagnostics.X_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions */, declarationNameToString(getSourceFileOfNode(name), name));
205
220
  else
206
- c.error(declaration, 1695 /* Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions */);
221
+ c.error(declaration, 1714 /* Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions */);
207
222
  }
208
223
  }
209
224
  t = c.anyType;
@@ -213,6 +228,7 @@ export function getReturnTypeOfSignature(c, sig) {
213
228
  return side.resolvedReturnType;
214
229
  }
215
230
  import { getOptionalType as getOptionalTypeLocal, addOptionalTypeMarker } from './checker-symbol-types.js';
231
+ import { isSharedReturnSignature, noteReturnTypeUse, threadReturnType } from './shared-results.js';
216
232
  export function isResolvingReturnTypeOfSignature(c, sig) {
217
233
  if (sig.composite !== undefined)
218
234
  for (const s of sig.composite.signatures)
@@ -229,15 +245,15 @@ function isThisParameterDeclaration(p) {
229
245
  return name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */ && getText(name) === 'this';
230
246
  }
231
247
  export function getReturnTypeFromAnnotation(c, declaration) {
232
- if (declaration.kind === 177 /* SyntaxKind.Constructor */)
248
+ if (declaration.kind === 178 /* SyntaxKind.Constructor */)
233
249
  return getDeclaredTypeOfClassOrInterface(c, getMergedSymbol(c, getSymbol(declaration.parent)));
234
250
  const returnType = getType(declaration);
235
251
  if (returnType !== undefined)
236
252
  return getTypeFromTypeNode(c, returnType);
237
- if (declaration.kind === 178 /* SyntaxKind.GetAccessor */) {
253
+ if (declaration.kind === 179 /* SyntaxKind.GetAccessor */) {
238
254
  const symbol = getSymbolOfDeclaration(c, declaration);
239
255
  if (symbol !== undefined) {
240
- const setter = getDeclarations(symbol).find((d) => d.kind === 179 /* SyntaxKind.SetAccessor */);
256
+ const setter = getDeclarations(symbol).find((d) => d.kind === 180 /* SyntaxKind.SetAccessor */);
241
257
  if (setter !== undefined) {
242
258
  const parameters = getParameters(setter);
243
259
  if (parameters !== undefined) {
@@ -272,7 +288,7 @@ export function getTypePredicateOfSignature(c, sig) {
272
288
  const returnType = resolvedReturnTypeOf(c, sig);
273
289
  const typeNode = getType(sig.declaration);
274
290
  if (typeNode !== undefined) {
275
- if (typeNode.kind === 183 /* SyntaxKind.TypePredicate */)
291
+ if (typeNode.kind === 184 /* SyntaxKind.TypePredicate */)
276
292
  side.resolvedTypePredicate = createTypePredicateFromTypePredicateNode(c, typeNode, sig);
277
293
  }
278
294
  else if (isFunctionLikeDeclarationKind(sig.declaration.kind) &&
@@ -314,7 +330,7 @@ function getUnionOrIntersectionTypePredicate(c, signatures, isUnion) {
314
330
  function createTypePredicateFromTypePredicateNode(c, node, signature) {
315
331
  const shape = node;
316
332
  const t = shape.type !== undefined ? getTypeFromTypeNode(c, shape.type) : undefined;
317
- if (shape.parameterName.kind === 198 /* SyntaxKind.ThisType */)
333
+ if (shape.parameterName.kind === 199 /* SyntaxKind.ThisType */)
318
334
  return new TypePredicate(shape.assertsModifier !== undefined ? 2 /* TypePredicateKind.AssertsThis */ : 0 /* TypePredicateKind.This */, '', 0, t);
319
335
  const name = getText(shape.parameterName);
320
336
  const index = signature.parameters.findIndex((p) => p.name === name);
@@ -453,9 +469,9 @@ function getNameableDeclarationAtPosition(c, signature, pos) {
453
469
  return undefined;
454
470
  }
455
471
  function isValidDeclarationForTupleLabel(d) {
456
- if (d.kind === 203 /* SyntaxKind.NamedTupleMember */)
472
+ if (d.kind === 204 /* SyntaxKind.NamedTupleMember */)
457
473
  return true;
458
- const name = d.kind === 170 /* SyntaxKind.Parameter */ ? getName(d) : undefined;
474
+ const name = d.kind === 171 /* SyntaxKind.Parameter */ ? getName(d) : undefined;
459
475
  return name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */;
460
476
  }
461
477
  export function getNonArrayRestType(c, signature) {
@@ -599,9 +615,9 @@ export function getOrCreateTypeFromSignature(c, sig) {
599
615
  const kind = sig.declaration !== undefined ? sig.declaration.kind : 0 /* SyntaxKind.Unknown */;
600
616
  // No declaration means a default constructor.
601
617
  const isConstructor = kind === 0 /* SyntaxKind.Unknown */ ||
602
- kind === 177 /* SyntaxKind.Constructor */ ||
603
- kind === 181 /* SyntaxKind.ConstructSignature */ ||
604
- kind === 186 /* SyntaxKind.ConstructorType */;
618
+ kind === 178 /* SyntaxKind.Constructor */ ||
619
+ kind === 182 /* SyntaxKind.ConstructSignature */ ||
620
+ kind === 187 /* SyntaxKind.ConstructorType */;
605
621
  const t = newObjectType(c, 16 /* ObjectFlags.Anonymous */ | 33554432 /* ObjectFlags.SingleSignatureType */, sig.declaration !== undefined ? getSymbol(sig.declaration) : undefined);
606
622
  if (isConstructor)
607
623
  setStructuredTypeMembers(c, t, undefined, [], [sig], []);
@@ -657,7 +673,7 @@ export function getIndexInfosOfIndexSymbol(c, indexSymbol, siblingSymbols) {
657
673
  let readonlySymbol = true;
658
674
  const propertySymbols = [];
659
675
  for (const declaration of getDeclarations(indexSymbol)) {
660
- if (declaration.kind === 182 /* SyntaxKind.IndexSignature */) {
676
+ if (declaration.kind === 183 /* SyntaxKind.IndexSignature */) {
661
677
  const parameters = getParameters(declaration)?.nodes ?? [];
662
678
  const returnTypeNode = getType(declaration);
663
679
  if (parameters.length !== 1)
@@ -725,7 +741,7 @@ function isSymbolWithSymbolName(c, symbol) {
725
741
  return true;
726
742
  const name = declarationCount(symbol) !== 0 ? getName(symbol.declaration) : undefined;
727
743
  return (name !== undefined &&
728
- name.kind === 168 /* SyntaxKind.ComputedPropertyName */ &&
744
+ name.kind === 169 /* SyntaxKind.ComputedPropertyName */ &&
729
745
  isTypeAssignableToKind(c, checkComputedPropertyName(c, name), 512 /* TypeFlags.ESSymbol */));
730
746
  }
731
747
  /** Whether `symbol` has a numeric name, or a computed name of a number type. */
@@ -735,7 +751,7 @@ function isSymbolWithNumericName(c, symbol) {
735
751
  const name = declarationCount(symbol) !== 0 ? getName(symbol.declaration) : undefined;
736
752
  if (name === undefined)
737
753
  return false;
738
- if (name.kind === 168 /* SyntaxKind.ComputedPropertyName */)
754
+ if (name.kind === 169 /* SyntaxKind.ComputedPropertyName */)
739
755
  return isTypeAssignableToKind(c, checkComputedPropertyName(c, name), 67648 /* TypeFlags.NumberLike */);
740
756
  return ((name.kind === 79 /* SyntaxKind.Identifier */ ||
741
757
  name.kind === 10 /* SyntaxKind.StringLiteral */ ||
@@ -763,7 +779,7 @@ function isSymbolWithComputedName(symbol) {
763
779
  if (declarationCount(symbol) === 0)
764
780
  return false;
765
781
  const name = getName(symbol.declaration);
766
- return name !== undefined && name.kind === 168 /* SyntaxKind.ComputedPropertyName */;
782
+ return name !== undefined && name.kind === 169 /* SyntaxKind.ComputedPropertyName */;
767
783
  }
768
784
  export { getIndexInfosOfType, instantiateTypes, getConstraintOfTypeParameter, getClassLikeDeclarationOfSymbol, getSymbolOfDeclaration, };
769
785
  /** A JavaScript function without parameter types or a contextual signature: all its parameters are optional. */
@@ -771,13 +787,13 @@ function isUntypedSignatureInJSFile(c, declaration, params) {
771
787
  if (!isInJSFile(declaration))
772
788
  return false;
773
789
  switch (declaration.kind) {
774
- case 219 /* SyntaxKind.FunctionExpression */:
775
- case 220 /* SyntaxKind.ArrowFunction */:
776
- case 175 /* SyntaxKind.MethodDeclaration */:
777
- case 178 /* SyntaxKind.GetAccessor */:
778
- case 179 /* SyntaxKind.SetAccessor */:
779
- case 263 /* SyntaxKind.FunctionDeclaration */:
780
- case 177 /* SyntaxKind.Constructor */:
790
+ case 220 /* SyntaxKind.FunctionExpression */:
791
+ case 221 /* SyntaxKind.ArrowFunction */:
792
+ case 176 /* SyntaxKind.MethodDeclaration */:
793
+ case 179 /* SyntaxKind.GetAccessor */:
794
+ case 180 /* SyntaxKind.SetAccessor */:
795
+ case 264 /* SyntaxKind.FunctionDeclaration */:
796
+ case 178 /* SyntaxKind.Constructor */:
781
797
  break;
782
798
  default:
783
799
  return false;
@@ -17,6 +17,11 @@ export declare function checkSourceFile(c: Checker, file: SourceFile, checkUnuse
17
17
  * and a check that a symbol's first declaration runs reports on all its declarations.
18
18
  */
19
19
  export declare function checkSourceFileRange(c: Checker, file: SourceFile, start: number, end: number): boolean;
20
+ /**
21
+ * Reports the deferred diagnostics, in the order they were deferred. Diagnostics deferred while they
22
+ * are reported are dropped.
23
+ */
24
+ export declare function produceDeferredDiagnostics(c: Checker): void;
20
25
  /** Checks a statement, declaration, class member or type node. */
21
26
  export declare function checkSourceElement(c: Checker, node: Node | undefined): void;
22
27
  /** Resolves the `@link` names of a node's JSDoc, which marks what they name referenced. */