tsc-ts 0.0.10 → 0.1.1

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 (379) hide show
  1. package/README.md +1 -1
  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 +29 -18
  6. package/dist/api/compiler/ast.js +1040 -1007
  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 +173 -123
  12. package/dist/api/compiler/checker-classes.d.ts +14 -3
  13. package/dist/api/compiler/checker-classes.js +136 -91
  14. package/dist/api/compiler/checker-contextual.d.ts +20 -0
  15. package/dist/api/compiler/checker-contextual.js +175 -62
  16. package/dist/api/compiler/checker-declaration-order.js +79 -79
  17. package/dist/api/compiler/checker-declarations.d.ts +1 -0
  18. package/dist/api/compiler/checker-declarations.js +160 -136
  19. package/dist/api/compiler/checker-declared-types.js +67 -65
  20. package/dist/api/compiler/checker-decorators.js +77 -77
  21. package/dist/api/compiler/checker-deprecation.d.ts +8 -3
  22. package/dist/api/compiler/checker-deprecation.js +76 -55
  23. package/dist/api/compiler/checker-destructuring.js +47 -45
  24. package/dist/api/compiler/checker-elaboration.js +24 -24
  25. package/dist/api/compiler/checker-emit-helpers.js +4 -4
  26. package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
  27. package/dist/api/compiler/checker-emit-resolver.js +25 -13
  28. package/dist/api/compiler/checker-evaluator.js +9 -9
  29. package/dist/api/compiler/checker-expressions.js +258 -212
  30. package/dist/api/compiler/checker-functions.js +113 -107
  31. package/dist/api/compiler/checker-generated-code.d.ts +0 -11
  32. package/dist/api/compiler/checker-generated-code.js +28 -52
  33. package/dist/api/compiler/checker-grammar.d.ts +1 -0
  34. package/dist/api/compiler/checker-grammar.js +469 -438
  35. package/dist/api/compiler/checker-heritage.js +91 -93
  36. package/dist/api/compiler/checker-inference.d.ts +77 -5
  37. package/dist/api/compiler/checker-inference.js +487 -113
  38. package/dist/api/compiler/checker-iteration.d.ts +0 -10
  39. package/dist/api/compiler/checker-iteration.js +35 -52
  40. package/dist/api/compiler/checker-javascript.js +14 -14
  41. package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
  42. package/dist/api/compiler/checker-jsdoc.js +67 -58
  43. package/dist/api/compiler/checker-jsx.js +107 -89
  44. package/dist/api/compiler/checker-members.d.ts +9 -2
  45. package/dist/api/compiler/checker-members.js +210 -74
  46. package/dist/api/compiler/checker-modules.d.ts +15 -6
  47. package/dist/api/compiler/checker-modules.js +469 -309
  48. package/dist/api/compiler/checker-narrowing.js +273 -189
  49. package/dist/api/compiler/checker-object-literals.js +25 -22
  50. package/dist/api/compiler/checker-operators.js +126 -118
  51. package/dist/api/compiler/checker-overloads.js +27 -27
  52. package/dist/api/compiler/checker-property-access.js +59 -55
  53. package/dist/api/compiler/checker-services.d.ts +1 -0
  54. package/dist/api/compiler/checker-services.js +222 -210
  55. package/dist/api/compiler/checker-signatures.js +65 -49
  56. package/dist/api/compiler/checker-source-file.d.ts +5 -0
  57. package/dist/api/compiler/checker-source-file.js +154 -130
  58. package/dist/api/compiler/checker-statements.js +33 -32
  59. package/dist/api/compiler/checker-super.js +50 -50
  60. package/dist/api/compiler/checker-symbol-types.js +109 -93
  61. package/dist/api/compiler/checker-symbols.d.ts +13 -1
  62. package/dist/api/compiler/checker-symbols.js +264 -149
  63. package/dist/api/compiler/checker-type-factory.d.ts +5 -0
  64. package/dist/api/compiler/checker-type-factory.js +190 -46
  65. package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
  66. package/dist/api/compiler/checker-type-nodes.js +179 -141
  67. package/dist/api/compiler/checker-type-operators.d.ts +2 -0
  68. package/dist/api/compiler/checker-type-operators.js +110 -63
  69. package/dist/api/compiler/checker-types.d.ts +80 -3
  70. package/dist/api/compiler/checker-types.js +121 -2
  71. package/dist/api/compiler/checker-unused.js +114 -118
  72. package/dist/api/compiler/checker-utilities.js +11 -11
  73. package/dist/api/compiler/checker.d.ts +97 -31
  74. package/dist/api/compiler/checker.js +149 -35
  75. package/dist/api/compiler/command-line.d.ts +1 -3
  76. package/dist/api/compiler/command-line.js +47 -44
  77. package/dist/api/compiler/compile-program.d.ts +24 -4
  78. package/dist/api/compiler/compile-program.js +53 -26
  79. package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
  80. package/dist/api/compiler/diagnostic-messages.js +128 -122
  81. package/dist/api/compiler/diagnostics.js +7 -7
  82. package/dist/api/compiler/emitter.d.ts +7 -1
  83. package/dist/api/compiler/emitter.js +53 -11
  84. package/dist/api/compiler/expr-record.d.ts +11 -0
  85. package/dist/api/compiler/expr-record.js +53 -0
  86. package/dist/api/compiler/file-include.d.ts +2 -1
  87. package/dist/api/compiler/file-include.js +11 -7
  88. package/dist/api/compiler/file-loader.d.ts +10 -0
  89. package/dist/api/compiler/file-loader.js +138 -41
  90. package/dist/api/compiler/identifier-name.d.ts +9 -0
  91. package/dist/api/compiler/identifier-name.js +10 -0
  92. package/dist/api/compiler/instantiation.d.ts +7 -0
  93. package/dist/api/compiler/instantiation.js +101 -49
  94. package/dist/api/compiler/jsdoc.js +27 -25
  95. package/dist/api/compiler/link-tables.d.ts +48 -18
  96. package/dist/api/compiler/link-tables.js +80 -37
  97. package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
  98. package/dist/api/compiler/locales/cs-CZ.js +1 -1
  99. package/dist/api/compiler/locales/de-DE.d.ts +1 -1
  100. package/dist/api/compiler/locales/de-DE.js +1 -1
  101. package/dist/api/compiler/locales/es-ES.d.ts +1 -1
  102. package/dist/api/compiler/locales/es-ES.js +1 -1
  103. package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
  104. package/dist/api/compiler/locales/fr-FR.js +1 -1
  105. package/dist/api/compiler/locales/it-IT.d.ts +1 -1
  106. package/dist/api/compiler/locales/it-IT.js +1 -1
  107. package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
  108. package/dist/api/compiler/locales/ja-JP.js +1 -1
  109. package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
  110. package/dist/api/compiler/locales/ko-KR.js +1 -1
  111. package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
  112. package/dist/api/compiler/locales/pl-PL.js +1 -1
  113. package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
  114. package/dist/api/compiler/locales/pt-BR.js +1 -1
  115. package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
  116. package/dist/api/compiler/locales/ru-RU.js +1 -1
  117. package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
  118. package/dist/api/compiler/locales/tr-TR.js +1 -1
  119. package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
  120. package/dist/api/compiler/locales/zh-CN.js +1 -1
  121. package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
  122. package/dist/api/compiler/locales/zh-TW.js +1 -1
  123. package/dist/api/compiler/module-resolution-types.js +6 -6
  124. package/dist/api/compiler/module-resolution.d.ts +10 -1
  125. package/dist/api/compiler/module-resolution.js +115 -84
  126. package/dist/api/compiler/module-specifiers.d.ts +15 -0
  127. package/dist/api/compiler/module-specifiers.js +24 -18
  128. package/dist/api/compiler/name-resolver.js +74 -65
  129. package/dist/api/compiler/node-builder-names.d.ts +11 -3
  130. package/dist/api/compiler/node-builder-names.js +210 -90
  131. package/dist/api/compiler/node-builder-pseudo.js +29 -31
  132. package/dist/api/compiler/node-builder-reuse.js +23 -22
  133. package/dist/api/compiler/node-builder.d.ts +18 -1
  134. package/dist/api/compiler/node-builder.js +191 -102
  135. package/dist/api/compiler/option-declarations.d.ts +2 -6
  136. package/dist/api/compiler/option-declarations.js +315 -375
  137. package/dist/api/compiler/options.d.ts +15 -33
  138. package/dist/api/compiler/options.js +21 -54
  139. package/dist/api/compiler/output-paths.d.ts +4 -1
  140. package/dist/api/compiler/output-paths.js +6 -11
  141. package/dist/api/compiler/package-json.d.ts +3 -3
  142. package/dist/api/compiler/package-json.js +11 -10
  143. package/dist/api/compiler/parser.d.ts +42 -20
  144. package/dist/api/compiler/parser.js +318 -224
  145. package/dist/api/compiler/path.d.ts +9 -0
  146. package/dist/api/compiler/path.js +20 -3
  147. package/dist/api/compiler/printer/emit-context.d.ts +3 -1
  148. package/dist/api/compiler/printer/emit-context.js +16 -1
  149. package/dist/api/compiler/printer/factory-base.d.ts +2 -2
  150. package/dist/api/compiler/printer/factory-base.js +7 -3
  151. package/dist/api/compiler/printer/factory.js +6 -3
  152. package/dist/api/compiler/printer/helpers.js +10 -1
  153. package/dist/api/compiler/printer/name-generator.d.ts +1 -1
  154. package/dist/api/compiler/printer/name-generator.js +35 -16
  155. package/dist/api/compiler/printer/printer.d.ts +1 -0
  156. package/dist/api/compiler/printer/printer.js +306 -283
  157. package/dist/api/compiler/printer/utilities.js +149 -147
  158. package/dist/api/compiler/program-checker.d.ts +8 -2
  159. package/dist/api/compiler/program-checker.js +84 -34
  160. package/dist/api/compiler/program-utilities.d.ts +3 -1
  161. package/dist/api/compiler/program-utilities.js +28 -15
  162. package/dist/api/compiler/program.d.ts +2 -0
  163. package/dist/api/compiler/program.js +69 -57
  164. package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
  165. package/dist/api/compiler/pseudo-bigint.js +18 -0
  166. package/dist/api/compiler/regexp-checker.d.ts +1 -1
  167. package/dist/api/compiler/regexp-checker.js +93 -76
  168. package/dist/api/compiler/relations.d.ts +27 -4
  169. package/dist/api/compiler/relations.js +337 -180
  170. package/dist/api/compiler/reparser.js +64 -59
  171. package/dist/api/compiler/scanner.d.ts +27 -2
  172. package/dist/api/compiler/scanner.js +181 -150
  173. package/dist/api/compiler/shared-results.d.ts +696 -0
  174. package/dist/api/compiler/shared-results.js +2905 -0
  175. package/dist/api/compiler/sourcemap.js +2 -2
  176. package/dist/api/compiler/symbol-accessibility.js +87 -74
  177. package/dist/api/compiler/symbol.d.ts +22 -13
  178. package/dist/api/compiler/symbol.js +15 -1
  179. package/dist/api/compiler/syntax-kind.d.ts +198 -197
  180. package/dist/api/compiler/transformers/alias-references.js +247 -139
  181. package/dist/api/compiler/transformers/async-utilities.js +25 -25
  182. package/dist/api/compiler/transformers/async.d.ts +0 -1
  183. package/dist/api/compiler/transformers/async.js +64 -77
  184. package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
  185. package/dist/api/compiler/transformers/class-fields.js +81 -78
  186. package/dist/api/compiler/transformers/commonjs-module.js +18 -15
  187. package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
  188. package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
  189. package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
  190. package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
  191. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
  192. package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
  193. package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
  194. package/dist/api/compiler/transformers/declarations.d.ts +4 -1
  195. package/dist/api/compiler/transformers/declarations.js +307 -239
  196. package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
  197. package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
  198. package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
  199. package/dist/api/compiler/transformers/destructuring.js +19 -18
  200. package/dist/api/compiler/transformers/emit-resolver.js +1 -1
  201. package/dist/api/compiler/transformers/es-decorators.js +55 -55
  202. package/dist/api/compiler/transformers/external-module-info.js +3 -3
  203. package/dist/api/compiler/transformers/for-await.js +25 -25
  204. package/dist/api/compiler/transformers/import-elision.js +14 -14
  205. package/dist/api/compiler/transformers/jsx.js +12 -12
  206. package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
  207. package/dist/api/compiler/transformers/module.js +8 -8
  208. package/dist/api/compiler/transformers/named-evaluation.js +4 -4
  209. package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
  210. package/dist/api/compiler/transformers/optional-chain.js +10 -10
  211. package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
  212. package/dist/api/compiler/transformers/reference-resolver.js +131 -69
  213. package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
  214. package/dist/api/compiler/transformers/subtree-facts.js +47 -47
  215. package/dist/api/compiler/transformers/syntax-facts.js +56 -58
  216. package/dist/api/compiler/transformers/type-eraser.js +73 -66
  217. package/dist/api/compiler/transformers/type-serialization.js +24 -24
  218. package/dist/api/compiler/transformers/using.js +12 -12
  219. package/dist/api/compiler/transformers/utilities.js +77 -77
  220. package/dist/api/compiler/transformers/visitor-base.js +172 -172
  221. package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
  222. package/dist/api/compiler/tsconfig.d.ts +10 -2
  223. package/dist/api/compiler/tsconfig.js +136 -48
  224. package/dist/api/compiler/type-printer.js +40 -3
  225. package/dist/api/compiler/types.d.ts +2 -1
  226. package/dist/api/library/ast.generated.d.ts +42 -39
  227. package/dist/api/library/ast.generated.js +1 -1
  228. package/dist/api/library/compiler-options.generated.d.ts +111 -100
  229. package/dist/api/library/compiler-options.generated.js +1 -1
  230. package/dist/api/library/disk.js +12 -1
  231. package/dist/api/library/enums.generated.d.ts +206 -206
  232. package/dist/api/library/enums.generated.js +206 -206
  233. package/dist/api/library/nodes.js +26 -26
  234. package/package.json +9 -9
  235. package/src/compiler/ast-utilities.ts +99 -7
  236. package/src/compiler/ast.ts +74 -38
  237. package/src/compiler/binder.ts +39 -4
  238. package/src/compiler/cgroup.ts +157 -0
  239. package/src/compiler/character-codes.ts +2 -2
  240. package/src/compiler/checker-calls.ts +76 -8
  241. package/src/compiler/checker-classes.ts +80 -25
  242. package/src/compiler/checker-contextual.ts +110 -1
  243. package/src/compiler/checker-declarations.ts +31 -4
  244. package/src/compiler/checker-declared-types.ts +8 -5
  245. package/src/compiler/checker-decorators.ts +1 -1
  246. package/src/compiler/checker-deprecation.ts +29 -8
  247. package/src/compiler/checker-destructuring.ts +10 -3
  248. package/src/compiler/checker-emit-helpers.ts +1 -0
  249. package/src/compiler/checker-emit-resolver.ts +16 -6
  250. package/src/compiler/checker-expressions.ts +95 -47
  251. package/src/compiler/checker-functions.ts +21 -6
  252. package/src/compiler/checker-generated-code.ts +2 -22
  253. package/src/compiler/checker-grammar.ts +133 -60
  254. package/src/compiler/checker-heritage.ts +22 -21
  255. package/src/compiler/checker-inference.ts +514 -87
  256. package/src/compiler/checker-iteration.ts +18 -31
  257. package/src/compiler/checker-javascript.ts +1 -1
  258. package/src/compiler/checker-jsdoc.ts +50 -27
  259. package/src/compiler/checker-jsx.ts +28 -5
  260. package/src/compiler/checker-members.ts +197 -55
  261. package/src/compiler/checker-modules.ts +332 -65
  262. package/src/compiler/checker-narrowing.ts +98 -19
  263. package/src/compiler/checker-object-literals.ts +3 -0
  264. package/src/compiler/checker-operators.ts +11 -4
  265. package/src/compiler/checker-property-access.ts +7 -2
  266. package/src/compiler/checker-services.ts +39 -12
  267. package/src/compiler/checker-signatures.ts +15 -1
  268. package/src/compiler/checker-source-file.ts +39 -13
  269. package/src/compiler/checker-statements.ts +3 -2
  270. package/src/compiler/checker-symbol-types.ts +29 -6
  271. package/src/compiler/checker-symbols.ts +158 -15
  272. package/src/compiler/checker-type-factory.ts +173 -35
  273. package/src/compiler/checker-type-nodes.ts +46 -3
  274. package/src/compiler/checker-type-operators.ts +83 -26
  275. package/src/compiler/checker-types.ts +147 -4
  276. package/src/compiler/checker-unused.ts +9 -14
  277. package/src/compiler/checker.ts +175 -41
  278. package/src/compiler/command-line.ts +28 -28
  279. package/src/compiler/compile-program.ts +59 -25
  280. package/src/compiler/decoder.ts +15 -5
  281. package/src/compiler/diagnostic-messages.ts +1973 -1892
  282. package/src/compiler/doctor-report.ts +133 -0
  283. package/src/compiler/emitter.ts +57 -8
  284. package/src/compiler/encoder.ts +23 -8
  285. package/src/compiler/expr-record.ts +59 -0
  286. package/src/compiler/file-include.ts +9 -3
  287. package/src/compiler/file-loader.ts +139 -32
  288. package/src/compiler/help.ts +10 -14
  289. package/src/compiler/identifier-name.ts +13 -0
  290. package/src/compiler/incremental.ts +86 -18
  291. package/src/compiler/init.ts +2 -7
  292. package/src/compiler/instantiation.ts +77 -22
  293. package/src/compiler/jsdoc.ts +7 -3
  294. package/src/compiler/link-tables.ts +82 -37
  295. package/src/compiler/locales/cs-CZ.ts +1 -1
  296. package/src/compiler/locales/de-DE.ts +1 -1
  297. package/src/compiler/locales/es-ES.ts +1 -1
  298. package/src/compiler/locales/fr-FR.ts +1 -1
  299. package/src/compiler/locales/it-IT.ts +1 -1
  300. package/src/compiler/locales/ja-JP.ts +1 -1
  301. package/src/compiler/locales/ko-KR.ts +1 -1
  302. package/src/compiler/locales/pl-PL.ts +1 -1
  303. package/src/compiler/locales/pt-BR.ts +1 -1
  304. package/src/compiler/locales/ru-RU.ts +1 -1
  305. package/src/compiler/locales/tr-TR.ts +1 -1
  306. package/src/compiler/locales/zh-CN.ts +1 -1
  307. package/src/compiler/locales/zh-TW.ts +1 -1
  308. package/src/compiler/module-resolution.ts +44 -8
  309. package/src/compiler/module-specifiers.ts +62 -20
  310. package/src/compiler/name-resolver.ts +9 -1
  311. package/src/compiler/node-builder-names.ts +236 -54
  312. package/src/compiler/node-builder-pseudo.ts +4 -7
  313. package/src/compiler/node-builder-reuse.ts +5 -4
  314. package/src/compiler/node-builder.ts +130 -31
  315. package/src/compiler/option-declarations.ts +33 -103
  316. package/src/compiler/options.ts +23 -62
  317. package/src/compiler/output-paths.ts +5 -18
  318. package/src/compiler/package-entrypoints.ts +345 -0
  319. package/src/compiler/package-json.ts +4 -4
  320. package/src/compiler/parallel-check.ts +543 -147
  321. package/src/compiler/parallel-emit.ts +4 -4
  322. package/src/compiler/parser.ts +166 -47
  323. package/src/compiler/path.ts +22 -2
  324. package/src/compiler/printer/emit-context.ts +16 -0
  325. package/src/compiler/printer/factory-base.ts +10 -3
  326. package/src/compiler/printer/factory.ts +7 -3
  327. package/src/compiler/printer/helpers.ts +10 -1
  328. package/src/compiler/printer/name-generator.ts +24 -2
  329. package/src/compiler/printer/printer.ts +39 -16
  330. package/src/compiler/printer/utilities.ts +8 -2
  331. package/src/compiler/program-checker.ts +53 -5
  332. package/src/compiler/program-utilities.ts +23 -10
  333. package/src/compiler/program.ts +13 -1
  334. package/src/compiler/pseudo-bigint.ts +17 -0
  335. package/src/compiler/regexp-checker.ts +63 -30
  336. package/src/compiler/relations.ts +233 -77
  337. package/src/compiler/reparser.ts +14 -5
  338. package/src/compiler/run-config.ts +1383 -0
  339. package/src/compiler/run-record-read.ts +87 -0
  340. package/src/compiler/run-records.ts +575 -0
  341. package/src/compiler/scanner.ts +166 -120
  342. package/src/compiler/shared-results.ts +3144 -0
  343. package/src/compiler/show-config.ts +18 -1
  344. package/src/compiler/sourcemap.ts +2 -2
  345. package/src/compiler/symbol-accessibility.ts +26 -3
  346. package/src/compiler/symbol.ts +31 -14
  347. package/src/compiler/syntax-kind.ts +188 -187
  348. package/src/compiler/thread-entry.ts +22 -3
  349. package/src/compiler/transformers/alias-references.ts +123 -4
  350. package/src/compiler/transformers/async.ts +2 -17
  351. package/src/compiler/transformers/class-fields.ts +13 -12
  352. package/src/compiler/transformers/commonjs-module.ts +11 -7
  353. package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
  354. package/src/compiler/transformers/declarations-pseudo.ts +2 -4
  355. package/src/compiler/transformers/declarations-resolver.ts +0 -3
  356. package/src/compiler/transformers/declarations-syntactic.ts +1 -21
  357. package/src/compiler/transformers/declarations.ts +136 -49
  358. package/src/compiler/transformers/decorator-metadata.ts +9 -1
  359. package/src/compiler/transformers/destructuring.ts +4 -3
  360. package/src/compiler/transformers/external-module-info.ts +1 -1
  361. package/src/compiler/transformers/jsx.ts +2 -1
  362. package/src/compiler/transformers/reference-resolver.ts +83 -19
  363. package/src/compiler/transformers/runtime-syntax.ts +6 -1
  364. package/src/compiler/transformers/syntax-facts.ts +2 -7
  365. package/src/compiler/transformers/type-eraser.ts +10 -1
  366. package/src/compiler/transformers/type-serialization.ts +3 -2
  367. package/src/compiler/transformers/visitor-base.ts +2 -1
  368. package/src/compiler/transformers/visitor-hooks.ts +9 -4
  369. package/src/compiler/tsc-build.ts +67 -6
  370. package/src/compiler/tsc-cli.ts +35 -4
  371. package/src/compiler/tsc-compile.ts +220 -10
  372. package/src/compiler/tsc-watch.ts +97 -47
  373. package/src/compiler/tsconfig.ts +176 -19
  374. package/src/compiler/type-printer.ts +36 -2
  375. package/src/compiler/types.ts +2 -1
  376. package/src/library/ast.generated.ts +57 -41
  377. package/src/library/compiler-options.generated.ts +117 -103
  378. package/src/library/disk.ts +10 -1
  379. 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. */