tsc-ts 0.0.3 → 0.0.5

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 (596) hide show
  1. package/README.md +46 -0
  2. package/dist/api/compiler/ast-utilities.d.ts +82 -0
  3. package/dist/api/compiler/ast-utilities.js +462 -0
  4. package/dist/api/compiler/ast.d.ts +2350 -0
  5. package/dist/api/compiler/ast.js +11206 -0
  6. package/dist/api/compiler/astnav.d.ts +37 -0
  7. package/dist/api/compiler/astnav.js +767 -0
  8. package/dist/api/compiler/binder-utilities.d.ts +182 -0
  9. package/dist/api/compiler/binder-utilities.js +1240 -0
  10. package/dist/api/compiler/binder.d.ts +33 -0
  11. package/dist/api/compiler/binder.js +2358 -0
  12. package/dist/api/compiler/character-codes.d.ts +161 -0
  13. package/dist/api/compiler/character-codes.js +160 -0
  14. package/dist/api/compiler/checker-calls.d.ts +46 -0
  15. package/dist/api/compiler/checker-calls.js +1640 -0
  16. package/dist/api/compiler/checker-classes.d.ts +30 -0
  17. package/dist/api/compiler/checker-classes.js +582 -0
  18. package/dist/api/compiler/checker-contextual.d.ts +77 -0
  19. package/dist/api/compiler/checker-contextual.js +1136 -0
  20. package/dist/api/compiler/checker-declaration-order.d.ts +12 -0
  21. package/dist/api/compiler/checker-declaration-order.js +356 -0
  22. package/dist/api/compiler/checker-declarations.d.ts +33 -0
  23. package/dist/api/compiler/checker-declarations.js +888 -0
  24. package/dist/api/compiler/checker-declared-types.d.ts +48 -0
  25. package/dist/api/compiler/checker-declared-types.js +787 -0
  26. package/dist/api/compiler/checker-decorators.d.ts +26 -0
  27. package/dist/api/compiler/checker-decorators.js +562 -0
  28. package/dist/api/compiler/checker-deprecation.d.ts +33 -0
  29. package/dist/api/compiler/checker-deprecation.js +315 -0
  30. package/dist/api/compiler/checker-destructuring.d.ts +34 -0
  31. package/dist/api/compiler/checker-destructuring.js +584 -0
  32. package/dist/api/compiler/checker-elaboration.d.ts +15 -0
  33. package/dist/api/compiler/checker-elaboration.js +290 -0
  34. package/dist/api/compiler/checker-emit-helpers.d.ts +58 -0
  35. package/dist/api/compiler/checker-emit-helpers.js +154 -0
  36. package/dist/api/compiler/checker-emit-resolver.d.ts +75 -0
  37. package/dist/api/compiler/checker-emit-resolver.js +579 -0
  38. package/dist/api/compiler/checker-evaluator.d.ts +27 -0
  39. package/dist/api/compiler/checker-evaluator.js +188 -0
  40. package/dist/api/compiler/checker-expressions.d.ts +67 -0
  41. package/dist/api/compiler/checker-expressions.js +1351 -0
  42. package/dist/api/compiler/checker-features.d.ts +6 -0
  43. package/dist/api/compiler/checker-features.js +354 -0
  44. package/dist/api/compiler/checker-flow.d.ts +86 -0
  45. package/dist/api/compiler/checker-flow.js +169 -0
  46. package/dist/api/compiler/checker-functions.d.ts +43 -0
  47. package/dist/api/compiler/checker-functions.js +1002 -0
  48. package/dist/api/compiler/checker-generated-code.d.ts +25 -0
  49. package/dist/api/compiler/checker-generated-code.js +168 -0
  50. package/dist/api/compiler/checker-globals.d.ts +14 -0
  51. package/dist/api/compiler/checker-globals.js +37 -0
  52. package/dist/api/compiler/checker-grammar.d.ts +35 -0
  53. package/dist/api/compiler/checker-grammar.js +2573 -0
  54. package/dist/api/compiler/checker-heritage.d.ts +28 -0
  55. package/dist/api/compiler/checker-heritage.js +900 -0
  56. package/dist/api/compiler/checker-inference.d.ts +179 -0
  57. package/dist/api/compiler/checker-inference.js +2105 -0
  58. package/dist/api/compiler/checker-iteration.d.ts +115 -0
  59. package/dist/api/compiler/checker-iteration.js +857 -0
  60. package/dist/api/compiler/checker-javascript.d.ts +42 -0
  61. package/dist/api/compiler/checker-javascript.js +441 -0
  62. package/dist/api/compiler/checker-jsdoc.d.ts +30 -0
  63. package/dist/api/compiler/checker-jsdoc.js +320 -0
  64. package/dist/api/compiler/checker-jsx.d.ts +94 -0
  65. package/dist/api/compiler/checker-jsx.js +1433 -0
  66. package/dist/api/compiler/checker-literals.d.ts +6 -0
  67. package/dist/api/compiler/checker-literals.js +43 -0
  68. package/dist/api/compiler/checker-members.d.ts +198 -0
  69. package/dist/api/compiler/checker-members.js +2126 -0
  70. package/dist/api/compiler/checker-modules.d.ts +85 -0
  71. package/dist/api/compiler/checker-modules.js +2141 -0
  72. package/dist/api/compiler/checker-narrowing.d.ts +120 -0
  73. package/dist/api/compiler/checker-narrowing.js +2797 -0
  74. package/dist/api/compiler/checker-object-literals.d.ts +14 -0
  75. package/dist/api/compiler/checker-object-literals.js +479 -0
  76. package/dist/api/compiler/checker-operators.d.ts +33 -0
  77. package/dist/api/compiler/checker-operators.js +1040 -0
  78. package/dist/api/compiler/checker-overloads.d.ts +7 -0
  79. package/dist/api/compiler/checker-overloads.js +270 -0
  80. package/dist/api/compiler/checker-property-access.d.ts +34 -0
  81. package/dist/api/compiler/checker-property-access.js +672 -0
  82. package/dist/api/compiler/checker-services.d.ts +49 -0
  83. package/dist/api/compiler/checker-services.js +995 -0
  84. package/dist/api/compiler/checker-signatures.d.ts +55 -0
  85. package/dist/api/compiler/checker-signatures.js +788 -0
  86. package/dist/api/compiler/checker-source-file.d.ts +27 -0
  87. package/dist/api/compiler/checker-source-file.js +619 -0
  88. package/dist/api/compiler/checker-statements.d.ts +18 -0
  89. package/dist/api/compiler/checker-statements.js +226 -0
  90. package/dist/api/compiler/checker-super.d.ts +13 -0
  91. package/dist/api/compiler/checker-super.js +241 -0
  92. package/dist/api/compiler/checker-symbol-types.d.ts +67 -0
  93. package/dist/api/compiler/checker-symbol-types.js +1885 -0
  94. package/dist/api/compiler/checker-symbols.d.ts +181 -0
  95. package/dist/api/compiler/checker-symbols.js +1782 -0
  96. package/dist/api/compiler/checker-type-factory.d.ts +142 -0
  97. package/dist/api/compiler/checker-type-factory.js +2501 -0
  98. package/dist/api/compiler/checker-type-nodes.d.ts +26 -0
  99. package/dist/api/compiler/checker-type-nodes.js +828 -0
  100. package/dist/api/compiler/checker-type-operators.d.ts +109 -0
  101. package/dist/api/compiler/checker-type-operators.js +1842 -0
  102. package/dist/api/compiler/checker-types.d.ts +1027 -0
  103. package/dist/api/compiler/checker-types.js +1697 -0
  104. package/dist/api/compiler/checker-unused.d.ts +19 -0
  105. package/dist/api/compiler/checker-unused.js +524 -0
  106. package/dist/api/compiler/checker-utilities.d.ts +33 -0
  107. package/dist/api/compiler/checker-utilities.js +141 -0
  108. package/dist/api/compiler/checker.d.ts +491 -0
  109. package/dist/api/compiler/checker.js +912 -0
  110. package/dist/api/compiler/command-line.d.ts +32 -0
  111. package/dist/api/compiler/command-line.js +383 -0
  112. package/dist/api/compiler/compile-program.d.ts +118 -0
  113. package/dist/api/compiler/compile-program.js +384 -0
  114. package/dist/api/compiler/diagnostic-locales.d.ts +22 -0
  115. package/dist/api/compiler/diagnostic-locales.js +64 -0
  116. package/dist/api/compiler/diagnostic-messages.d.ts +2166 -0
  117. package/dist/api/compiler/diagnostic-messages.js +184 -0
  118. package/dist/api/compiler/diagnostics.d.ts +167 -0
  119. package/dist/api/compiler/diagnostics.js +820 -0
  120. package/dist/api/compiler/emitter.d.ts +71 -0
  121. package/dist/api/compiler/emitter.js +327 -0
  122. package/dist/api/compiler/file-include.d.ts +117 -0
  123. package/dist/api/compiler/file-include.js +536 -0
  124. package/dist/api/compiler/file-loader.d.ts +261 -0
  125. package/dist/api/compiler/file-loader.js +1257 -0
  126. package/dist/api/compiler/file-system.d.ts +51 -0
  127. package/dist/api/compiler/file-system.js +132 -0
  128. package/dist/api/compiler/flow.d.ts +60 -0
  129. package/dist/api/compiler/flow.js +45 -0
  130. package/dist/api/compiler/instantiation.d.ts +74 -0
  131. package/dist/api/compiler/instantiation.js +799 -0
  132. package/dist/api/compiler/jsdoc.d.ts +75 -0
  133. package/dist/api/compiler/jsdoc.js +1229 -0
  134. package/dist/api/compiler/link-tables.d.ts +36 -0
  135. package/dist/api/compiler/link-tables.js +83 -0
  136. package/dist/api/compiler/locale-data.d.ts +24 -0
  137. package/dist/api/compiler/locale-data.js +183 -0
  138. package/dist/api/compiler/locale.d.ts +4 -0
  139. package/dist/api/compiler/locale.js +317 -0
  140. package/dist/api/compiler/locales/cs-CZ.d.ts +2 -0
  141. package/dist/api/compiler/locales/cs-CZ.js +3 -0
  142. package/dist/api/compiler/locales/de-DE.d.ts +2 -0
  143. package/dist/api/compiler/locales/de-DE.js +3 -0
  144. package/dist/api/compiler/locales/es-ES.d.ts +2 -0
  145. package/dist/api/compiler/locales/es-ES.js +3 -0
  146. package/dist/api/compiler/locales/fr-FR.d.ts +2 -0
  147. package/dist/api/compiler/locales/fr-FR.js +3 -0
  148. package/dist/api/compiler/locales/it-IT.d.ts +2 -0
  149. package/dist/api/compiler/locales/it-IT.js +3 -0
  150. package/dist/api/compiler/locales/ja-JP.d.ts +2 -0
  151. package/dist/api/compiler/locales/ja-JP.js +3 -0
  152. package/dist/api/compiler/locales/ko-KR.d.ts +2 -0
  153. package/dist/api/compiler/locales/ko-KR.js +3 -0
  154. package/dist/api/compiler/locales/pl-PL.d.ts +2 -0
  155. package/dist/api/compiler/locales/pl-PL.js +3 -0
  156. package/dist/api/compiler/locales/pt-BR.d.ts +2 -0
  157. package/dist/api/compiler/locales/pt-BR.js +3 -0
  158. package/dist/api/compiler/locales/ru-RU.d.ts +2 -0
  159. package/dist/api/compiler/locales/ru-RU.js +3 -0
  160. package/dist/api/compiler/locales/tr-TR.d.ts +2 -0
  161. package/dist/api/compiler/locales/tr-TR.js +3 -0
  162. package/dist/api/compiler/locales/zh-CN.d.ts +2 -0
  163. package/dist/api/compiler/locales/zh-CN.js +3 -0
  164. package/dist/api/compiler/locales/zh-TW.d.ts +2 -0
  165. package/dist/api/compiler/locales/zh-TW.js +3 -0
  166. package/dist/api/compiler/module-resolution-types.d.ts +83 -0
  167. package/dist/api/compiler/module-resolution-types.js +176 -0
  168. package/dist/api/compiler/module-resolution.d.ts +71 -0
  169. package/dist/api/compiler/module-resolution.js +1598 -0
  170. package/dist/api/compiler/module-specifiers.d.ts +64 -0
  171. package/dist/api/compiler/module-specifiers.js +1101 -0
  172. package/dist/api/compiler/name-resolver.d.ts +43 -0
  173. package/dist/api/compiler/name-resolver.js +509 -0
  174. package/dist/api/compiler/node-builder-names.d.ts +32 -0
  175. package/dist/api/compiler/node-builder-names.js +854 -0
  176. package/dist/api/compiler/node-builder-pseudo.d.ts +36 -0
  177. package/dist/api/compiler/node-builder-pseudo.js +744 -0
  178. package/dist/api/compiler/node-builder-reuse.d.ts +4 -0
  179. package/dist/api/compiler/node-builder-reuse.js +647 -0
  180. package/dist/api/compiler/node-builder.d.ts +270 -0
  181. package/dist/api/compiler/node-builder.js +2645 -0
  182. package/dist/api/compiler/option-declarations.d.ts +90 -0
  183. package/dist/api/compiler/option-declarations.js +1460 -0
  184. package/dist/api/compiler/options.d.ts +289 -0
  185. package/dist/api/compiler/options.js +1197 -0
  186. package/dist/api/compiler/output-paths.d.ts +42 -0
  187. package/dist/api/compiler/output-paths.js +195 -0
  188. package/dist/api/compiler/package-json.d.ts +175 -0
  189. package/dist/api/compiler/package-json.js +1015 -0
  190. package/dist/api/compiler/parallel-parse.d.ts +219 -0
  191. package/dist/api/compiler/parallel-parse.js +537 -0
  192. package/dist/api/compiler/parser.d.ts +587 -0
  193. package/dist/api/compiler/parser.js +6407 -0
  194. package/dist/api/compiler/path.d.ts +91 -0
  195. package/dist/api/compiler/path.js +705 -0
  196. package/dist/api/compiler/printer/async-helpers.d.ts +22 -0
  197. package/dist/api/compiler/printer/async-helpers.js +91 -0
  198. package/dist/api/compiler/printer/auto-generate.d.ts +13 -0
  199. package/dist/api/compiler/printer/auto-generate.js +20 -0
  200. package/dist/api/compiler/printer/decorator-helpers.d.ts +24 -0
  201. package/dist/api/compiler/printer/decorator-helpers.js +118 -0
  202. package/dist/api/compiler/printer/emit-context.d.ts +154 -0
  203. package/dist/api/compiler/printer/emit-context.js +576 -0
  204. package/dist/api/compiler/printer/emit-flags.d.ts +60 -0
  205. package/dist/api/compiler/printer/emit-flags.js +2 -0
  206. package/dist/api/compiler/printer/factory-base.d.ts +171 -0
  207. package/dist/api/compiler/printer/factory-base.js +1505 -0
  208. package/dist/api/compiler/printer/factory.d.ts +147 -0
  209. package/dist/api/compiler/printer/factory.js +542 -0
  210. package/dist/api/compiler/printer/helpers.d.ts +27 -0
  211. package/dist/api/compiler/printer/helpers.js +164 -0
  212. package/dist/api/compiler/printer/name-generator.d.ts +41 -0
  213. package/dist/api/compiler/printer/name-generator.js +283 -0
  214. package/dist/api/compiler/printer/printer.d.ts +411 -0
  215. package/dist/api/compiler/printer/printer.js +4517 -0
  216. package/dist/api/compiler/printer/text-writer.d.ts +46 -0
  217. package/dist/api/compiler/printer/text-writer.js +172 -0
  218. package/dist/api/compiler/printer/utilities.d.ts +82 -0
  219. package/dist/api/compiler/printer/utilities.js +817 -0
  220. package/dist/api/compiler/program-checker.d.ts +156 -0
  221. package/dist/api/compiler/program-checker.js +526 -0
  222. package/dist/api/compiler/program-utilities.d.ts +52 -0
  223. package/dist/api/compiler/program-utilities.js +365 -0
  224. package/dist/api/compiler/program.d.ts +180 -0
  225. package/dist/api/compiler/program.js +1011 -0
  226. package/dist/api/compiler/pseudo-bigint.d.ts +5 -0
  227. package/dist/api/compiler/pseudo-bigint.js +61 -0
  228. package/dist/api/compiler/regexp-checker.d.ts +38 -0
  229. package/dist/api/compiler/regexp-checker.js +942 -0
  230. package/dist/api/compiler/relations.d.ts +263 -0
  231. package/dist/api/compiler/relations.js +4002 -0
  232. package/dist/api/compiler/reparser.d.ts +48 -0
  233. package/dist/api/compiler/reparser.js +1323 -0
  234. package/dist/api/compiler/scanner.d.ts +256 -0
  235. package/dist/api/compiler/scanner.js +2853 -0
  236. package/dist/api/compiler/side-state.d.ts +16 -0
  237. package/dist/api/compiler/side-state.js +89 -0
  238. package/dist/api/compiler/sourcemap.d.ts +55 -0
  239. package/dist/api/compiler/sourcemap.js +340 -0
  240. package/dist/api/compiler/spelling.d.ts +14 -0
  241. package/dist/api/compiler/spelling.js +128 -0
  242. package/dist/api/compiler/symbol-accessibility.d.ts +57 -0
  243. package/dist/api/compiler/symbol-accessibility.js +894 -0
  244. package/dist/api/compiler/symbol.d.ts +240 -0
  245. package/dist/api/compiler/symbol.js +228 -0
  246. package/dist/api/compiler/symlinks.d.ts +32 -0
  247. package/dist/api/compiler/symlinks.js +114 -0
  248. package/dist/api/compiler/syntax-kind.d.ts +389 -0
  249. package/dist/api/compiler/syntax-kind.js +2 -0
  250. package/dist/api/compiler/timeline.d.ts +9 -0
  251. package/dist/api/compiler/timeline.js +54 -0
  252. package/dist/api/compiler/transformers/alias-references.d.ts +39 -0
  253. package/dist/api/compiler/transformers/alias-references.js +676 -0
  254. package/dist/api/compiler/transformers/async-utilities.d.ts +51 -0
  255. package/dist/api/compiler/transformers/async-utilities.js +260 -0
  256. package/dist/api/compiler/transformers/async.d.ts +53 -0
  257. package/dist/api/compiler/transformers/async.js +645 -0
  258. package/dist/api/compiler/transformers/class-fields.d.ts +206 -0
  259. package/dist/api/compiler/transformers/class-fields.js +2418 -0
  260. package/dist/api/compiler/transformers/class-utilities.d.ts +46 -0
  261. package/dist/api/compiler/transformers/class-utilities.js +261 -0
  262. package/dist/api/compiler/transformers/commonjs-module.d.ts +103 -0
  263. package/dist/api/compiler/transformers/commonjs-module.js +1180 -0
  264. package/dist/api/compiler/transformers/const-enum-inliner.d.ts +11 -0
  265. package/dist/api/compiler/transformers/const-enum-inliner.js +36 -0
  266. package/dist/api/compiler/transformers/declarations-diagnostics.d.ts +52 -0
  267. package/dist/api/compiler/transformers/declarations-diagnostics.js +538 -0
  268. package/dist/api/compiler/transformers/declarations-pseudo.d.ts +160 -0
  269. package/dist/api/compiler/transformers/declarations-pseudo.js +797 -0
  270. package/dist/api/compiler/transformers/declarations-resolver.d.ts +152 -0
  271. package/dist/api/compiler/transformers/declarations-resolver.js +35 -0
  272. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +119 -0
  273. package/dist/api/compiler/transformers/declarations-syntactic.js +1582 -0
  274. package/dist/api/compiler/transformers/declarations-tracker.d.ts +46 -0
  275. package/dist/api/compiler/transformers/declarations-tracker.js +197 -0
  276. package/dist/api/compiler/transformers/declarations.d.ts +175 -0
  277. package/dist/api/compiler/transformers/declarations.js +2380 -0
  278. package/dist/api/compiler/transformers/decorator-metadata.d.ts +54 -0
  279. package/dist/api/compiler/transformers/decorator-metadata.js +554 -0
  280. package/dist/api/compiler/transformers/decorator-utilities.d.ts +38 -0
  281. package/dist/api/compiler/transformers/decorator-utilities.js +238 -0
  282. package/dist/api/compiler/transformers/destructuring.d.ts +25 -0
  283. package/dist/api/compiler/transformers/destructuring.js +626 -0
  284. package/dist/api/compiler/transformers/downlevel.d.ts +6 -0
  285. package/dist/api/compiler/transformers/downlevel.js +45 -0
  286. package/dist/api/compiler/transformers/emit-resolver.d.ts +61 -0
  287. package/dist/api/compiler/transformers/emit-resolver.js +197 -0
  288. package/dist/api/compiler/transformers/es-decorators.d.ts +118 -0
  289. package/dist/api/compiler/transformers/es-decorators.js +1901 -0
  290. package/dist/api/compiler/transformers/exponentiation.d.ts +11 -0
  291. package/dist/api/compiler/transformers/exponentiation.js +76 -0
  292. package/dist/api/compiler/transformers/external-module-info.d.ts +35 -0
  293. package/dist/api/compiler/transformers/external-module-info.js +351 -0
  294. package/dist/api/compiler/transformers/for-await.d.ts +43 -0
  295. package/dist/api/compiler/transformers/for-await.js +469 -0
  296. package/dist/api/compiler/transformers/import-elision.d.ts +16 -0
  297. package/dist/api/compiler/transformers/import-elision.js +124 -0
  298. package/dist/api/compiler/transformers/jsx-entities.d.ts +1 -0
  299. package/dist/api/compiler/transformers/jsx-entities.js +256 -0
  300. package/dist/api/compiler/transformers/jsx.d.ts +71 -0
  301. package/dist/api/compiler/transformers/jsx.js +700 -0
  302. package/dist/api/compiler/transformers/legacy-decorators.d.ts +56 -0
  303. package/dist/api/compiler/transformers/legacy-decorators.js +564 -0
  304. package/dist/api/compiler/transformers/logical-assignment.d.ts +14 -0
  305. package/dist/api/compiler/transformers/logical-assignment.js +62 -0
  306. package/dist/api/compiler/transformers/module-utilities.d.ts +9 -0
  307. package/dist/api/compiler/transformers/module-utilities.js +36 -0
  308. package/dist/api/compiler/transformers/module.d.ts +49 -0
  309. package/dist/api/compiler/transformers/module.js +296 -0
  310. package/dist/api/compiler/transformers/named-evaluation.d.ts +26 -0
  311. package/dist/api/compiler/transformers/named-evaluation.js +266 -0
  312. package/dist/api/compiler/transformers/nullish-coalescing.d.ts +9 -0
  313. package/dist/api/compiler/transformers/nullish-coalescing.js +26 -0
  314. package/dist/api/compiler/transformers/object-rest-spread.d.ts +34 -0
  315. package/dist/api/compiler/transformers/object-rest-spread.js +411 -0
  316. package/dist/api/compiler/transformers/optional-catch.d.ts +9 -0
  317. package/dist/api/compiler/transformers/optional-catch.js +20 -0
  318. package/dist/api/compiler/transformers/optional-chain.d.ts +14 -0
  319. package/dist/api/compiler/transformers/optional-chain.js +188 -0
  320. package/dist/api/compiler/transformers/reference-resolver.d.ts +128 -0
  321. package/dist/api/compiler/transformers/reference-resolver.js +1155 -0
  322. package/dist/api/compiler/transformers/runtime-syntax.d.ts +71 -0
  323. package/dist/api/compiler/transformers/runtime-syntax.js +753 -0
  324. package/dist/api/compiler/transformers/subtree-facts.d.ts +9 -0
  325. package/dist/api/compiler/transformers/subtree-facts.js +203 -0
  326. package/dist/api/compiler/transformers/syntax-facts.d.ts +51 -0
  327. package/dist/api/compiler/transformers/syntax-facts.js +254 -0
  328. package/dist/api/compiler/transformers/tagged-template.d.ts +17 -0
  329. package/dist/api/compiler/transformers/tagged-template.js +148 -0
  330. package/dist/api/compiler/transformers/transformer.d.ts +17 -0
  331. package/dist/api/compiler/transformers/transformer.js +54 -0
  332. package/dist/api/compiler/transformers/type-eraser.d.ts +21 -0
  333. package/dist/api/compiler/transformers/type-eraser.js +346 -0
  334. package/dist/api/compiler/transformers/type-serialization.d.ts +20 -0
  335. package/dist/api/compiler/transformers/type-serialization.js +347 -0
  336. package/dist/api/compiler/transformers/using.d.ts +56 -0
  337. package/dist/api/compiler/transformers/using.js +453 -0
  338. package/dist/api/compiler/transformers/utilities.d.ts +50 -0
  339. package/dist/api/compiler/transformers/utilities.js +347 -0
  340. package/dist/api/compiler/transformers/visitor-base.d.ts +6 -0
  341. package/dist/api/compiler/transformers/visitor-base.js +817 -0
  342. package/dist/api/compiler/transformers/visitor-hooks.d.ts +29 -0
  343. package/dist/api/compiler/transformers/visitor-hooks.js +189 -0
  344. package/dist/api/compiler/tsconfig.d.ts +177 -0
  345. package/dist/api/compiler/tsconfig.js +1311 -0
  346. package/dist/api/compiler/type-printer.d.ts +15 -0
  347. package/dist/api/compiler/type-printer.js +74 -0
  348. package/dist/api/compiler/types.d.ts +87 -0
  349. package/dist/api/compiler/types.js +23 -0
  350. package/dist/api/compiler/unicode-identifiers.d.ts +2 -0
  351. package/dist/api/compiler/unicode-identifiers.js +209 -0
  352. package/dist/api/compiler/unicode-properties.d.ts +8 -0
  353. package/dist/api/compiler/unicode-properties.js +531 -0
  354. package/dist/api/compiler/vfs-match.d.ts +24 -0
  355. package/dist/api/compiler/vfs-match.js +587 -0
  356. package/dist/api/library/ast.d.ts +74 -0
  357. package/dist/api/library/ast.generated.d.ts +1145 -0
  358. package/dist/api/library/ast.generated.js +3 -0
  359. package/dist/api/library/ast.js +5 -0
  360. package/dist/api/library/checker.d.ts +51 -0
  361. package/dist/api/library/checker.js +318 -0
  362. package/dist/api/library/compiler-options.generated.d.ts +108 -0
  363. package/dist/api/library/compiler-options.generated.js +3 -0
  364. package/dist/api/library/diagnostics.d.ts +13 -0
  365. package/dist/api/library/diagnostics.js +50 -0
  366. package/dist/api/library/disk.d.ts +13 -0
  367. package/dist/api/library/disk.js +66 -0
  368. package/dist/api/library/enums.generated.d.ts +891 -0
  369. package/dist/api/library/enums.generated.js +916 -0
  370. package/dist/api/library/errors.d.ts +13 -0
  371. package/dist/api/library/errors.js +24 -0
  372. package/dist/api/library/host.d.ts +24 -0
  373. package/dist/api/library/host.js +52 -0
  374. package/dist/api/library/index.d.ts +14 -0
  375. package/dist/api/library/index.js +15 -0
  376. package/dist/api/library/nodes.d.ts +51 -0
  377. package/dist/api/library/nodes.js +196 -0
  378. package/dist/api/library/options.d.ts +144 -0
  379. package/dist/api/library/options.js +308 -0
  380. package/dist/api/library/parse.d.ts +19 -0
  381. package/dist/api/library/parse.js +41 -0
  382. package/dist/api/library/program.d.ts +21 -0
  383. package/dist/api/library/program.js +234 -0
  384. package/dist/api/library/symbols.d.ts +8 -0
  385. package/dist/api/library/symbols.js +11 -0
  386. package/dist/api/library/types.d.ts +313 -0
  387. package/dist/api/library/types.js +6 -0
  388. package/package.json +22 -8
  389. package/src/compiler/ast-utilities.ts +548 -0
  390. package/src/compiler/ast.ts +12862 -0
  391. package/src/compiler/astnav.ts +799 -0
  392. package/src/compiler/binder-utilities.ts +1392 -0
  393. package/src/compiler/binder.ts +2703 -0
  394. package/src/compiler/build-info.ts +1197 -0
  395. package/src/compiler/character-codes.ts +323 -0
  396. package/src/compiler/checker-calls.ts +2155 -0
  397. package/src/compiler/checker-classes.ts +706 -0
  398. package/src/compiler/checker-contextual.ts +1457 -0
  399. package/src/compiler/checker-declaration-order.ts +438 -0
  400. package/src/compiler/checker-declarations.ts +1194 -0
  401. package/src/compiler/checker-declared-types.ts +919 -0
  402. package/src/compiler/checker-decorators.ts +694 -0
  403. package/src/compiler/checker-deprecation.ts +359 -0
  404. package/src/compiler/checker-destructuring.ts +805 -0
  405. package/src/compiler/checker-elaboration.ts +477 -0
  406. package/src/compiler/checker-emit-helpers.ts +224 -0
  407. package/src/compiler/checker-emit-resolver.ts +769 -0
  408. package/src/compiler/checker-evaluator.ts +243 -0
  409. package/src/compiler/checker-expressions.ts +1831 -0
  410. package/src/compiler/checker-features.ts +361 -0
  411. package/src/compiler/checker-flow.ts +394 -0
  412. package/src/compiler/checker-functions.ts +1296 -0
  413. package/src/compiler/checker-generated-code.ts +227 -0
  414. package/src/compiler/checker-globals.ts +52 -0
  415. package/src/compiler/checker-grammar.ts +3584 -0
  416. package/src/compiler/checker-heritage.ts +1233 -0
  417. package/src/compiler/checker-inference.ts +2576 -0
  418. package/src/compiler/checker-iteration.ts +1206 -0
  419. package/src/compiler/checker-javascript.ts +502 -0
  420. package/src/compiler/checker-jsdoc.ts +360 -0
  421. package/src/compiler/checker-jsx.ts +1924 -0
  422. package/src/compiler/checker-literals.ts +61 -0
  423. package/src/compiler/checker-members.ts +2436 -0
  424. package/src/compiler/checker-modules.ts +2886 -0
  425. package/src/compiler/checker-narrowing.ts +3230 -0
  426. package/src/compiler/checker-object-literals.ts +575 -0
  427. package/src/compiler/checker-operators.ts +1422 -0
  428. package/src/compiler/checker-overloads.ts +328 -0
  429. package/src/compiler/checker-property-access.ts +906 -0
  430. package/src/compiler/checker-services.ts +1149 -0
  431. package/src/compiler/checker-signatures.ts +1032 -0
  432. package/src/compiler/checker-source-file.ts +732 -0
  433. package/src/compiler/checker-statements.ts +292 -0
  434. package/src/compiler/checker-super.ts +261 -0
  435. package/src/compiler/checker-symbol-types.ts +2107 -0
  436. package/src/compiler/checker-symbols.ts +2150 -0
  437. package/src/compiler/checker-type-factory.ts +2579 -0
  438. package/src/compiler/checker-type-nodes.ts +1033 -0
  439. package/src/compiler/checker-type-operators.ts +2502 -0
  440. package/src/compiler/checker-types.ts +2340 -0
  441. package/src/compiler/checker-unused.ts +642 -0
  442. package/src/compiler/checker-utilities.ts +161 -0
  443. package/src/compiler/checker.ts +1116 -0
  444. package/src/compiler/command-line.ts +436 -0
  445. package/src/compiler/compile-program.ts +439 -0
  446. package/src/compiler/decoder.ts +1209 -0
  447. package/src/compiler/diagnostic-locales.ts +86 -0
  448. package/src/compiler/diagnostic-messages.ts +2349 -0
  449. package/src/compiler/diagnostics.ts +897 -0
  450. package/src/compiler/emitter.ts +434 -0
  451. package/src/compiler/encoder.ts +1945 -0
  452. package/src/compiler/file-include.ts +673 -0
  453. package/src/compiler/file-loader.ts +1528 -0
  454. package/src/compiler/file-system.ts +143 -0
  455. package/src/compiler/flow.ts +89 -0
  456. package/src/compiler/help.ts +473 -0
  457. package/src/compiler/incremental.ts +2784 -0
  458. package/src/compiler/init.ts +141 -0
  459. package/src/compiler/instantiation.ts +894 -0
  460. package/src/compiler/jsdoc.ts +1386 -0
  461. package/src/compiler/link-tables.ts +98 -0
  462. package/src/compiler/locale-data.ts +203 -0
  463. package/src/compiler/locale.ts +307 -0
  464. package/src/compiler/locales/cs-CZ.ts +5 -0
  465. package/src/compiler/locales/de-DE.ts +5 -0
  466. package/src/compiler/locales/es-ES.ts +5 -0
  467. package/src/compiler/locales/fr-FR.ts +5 -0
  468. package/src/compiler/locales/it-IT.ts +5 -0
  469. package/src/compiler/locales/ja-JP.ts +5 -0
  470. package/src/compiler/locales/ko-KR.ts +5 -0
  471. package/src/compiler/locales/pl-PL.ts +5 -0
  472. package/src/compiler/locales/pt-BR.ts +5 -0
  473. package/src/compiler/locales/ru-RU.ts +5 -0
  474. package/src/compiler/locales/tr-TR.ts +5 -0
  475. package/src/compiler/locales/zh-CN.ts +5 -0
  476. package/src/compiler/locales/zh-TW.ts +5 -0
  477. package/src/compiler/module-resolution-types.ts +243 -0
  478. package/src/compiler/module-resolution.ts +2072 -0
  479. package/src/compiler/module-specifiers.ts +1491 -0
  480. package/src/compiler/name-resolver.ts +646 -0
  481. package/src/compiler/node-builder-names.ts +1069 -0
  482. package/src/compiler/node-builder-pseudo.ts +892 -0
  483. package/src/compiler/node-builder-reuse.ts +764 -0
  484. package/src/compiler/node-builder.ts +3425 -0
  485. package/src/compiler/option-declarations.ts +1560 -0
  486. package/src/compiler/options.ts +1576 -0
  487. package/src/compiler/output-paths.ts +334 -0
  488. package/src/compiler/package-json.ts +1083 -0
  489. package/src/compiler/parallel-check.ts +1951 -0
  490. package/src/compiler/parallel-parse.ts +590 -0
  491. package/src/compiler/parse-thread.ts +140 -0
  492. package/src/compiler/parser.ts +7716 -0
  493. package/src/compiler/path.ts +717 -0
  494. package/src/compiler/printer/async-helpers.ts +183 -0
  495. package/src/compiler/printer/auto-generate.ts +27 -0
  496. package/src/compiler/printer/decorator-helpers.ts +218 -0
  497. package/src/compiler/printer/emit-context.ts +679 -0
  498. package/src/compiler/printer/emit-flags.ts +64 -0
  499. package/src/compiler/printer/factory-base.ts +2577 -0
  500. package/src/compiler/printer/factory.ts +764 -0
  501. package/src/compiler/printer/helpers.ts +291 -0
  502. package/src/compiler/printer/name-generator.ts +372 -0
  503. package/src/compiler/printer/printer.ts +5072 -0
  504. package/src/compiler/printer/text-writer.ts +183 -0
  505. package/src/compiler/printer/utilities.ts +884 -0
  506. package/src/compiler/program-checker.ts +592 -0
  507. package/src/compiler/program-utilities.ts +435 -0
  508. package/src/compiler/program.ts +1419 -0
  509. package/src/compiler/pseudo-bigint.ts +62 -0
  510. package/src/compiler/regexp-checker.ts +1142 -0
  511. package/src/compiler/relations.ts +5149 -0
  512. package/src/compiler/reparser.ts +1566 -0
  513. package/src/compiler/scanner.ts +2951 -0
  514. package/src/compiler/show-config.ts +239 -0
  515. package/src/compiler/side-state.ts +125 -0
  516. package/src/compiler/sourcemap.ts +366 -0
  517. package/src/compiler/spelling.ts +122 -0
  518. package/src/compiler/symbol-accessibility.ts +1071 -0
  519. package/src/compiler/symbol.ts +439 -0
  520. package/src/compiler/symlinks.ts +137 -0
  521. package/src/compiler/syntax-kind.ts +391 -0
  522. package/src/compiler/thread-entry.ts +191 -0
  523. package/src/compiler/timeline.ts +53 -0
  524. package/src/compiler/transformers/alias-references.ts +757 -0
  525. package/src/compiler/transformers/async-utilities.ts +335 -0
  526. package/src/compiler/transformers/async.ts +838 -0
  527. package/src/compiler/transformers/class-fields.ts +2967 -0
  528. package/src/compiler/transformers/class-utilities.ts +324 -0
  529. package/src/compiler/transformers/commonjs-module.ts +1621 -0
  530. package/src/compiler/transformers/const-enum-inliner.ts +50 -0
  531. package/src/compiler/transformers/declarations-diagnostics.ts +832 -0
  532. package/src/compiler/transformers/declarations-pseudo.ts +966 -0
  533. package/src/compiler/transformers/declarations-resolver.ts +249 -0
  534. package/src/compiler/transformers/declarations-syntactic.ts +1859 -0
  535. package/src/compiler/transformers/declarations-tracker.ts +269 -0
  536. package/src/compiler/transformers/declarations.ts +3120 -0
  537. package/src/compiler/transformers/decorator-metadata.ts +697 -0
  538. package/src/compiler/transformers/decorator-utilities.ts +283 -0
  539. package/src/compiler/transformers/destructuring.ts +708 -0
  540. package/src/compiler/transformers/downlevel.ts +50 -0
  541. package/src/compiler/transformers/emit-resolver.ts +258 -0
  542. package/src/compiler/transformers/es-decorators.ts +2682 -0
  543. package/src/compiler/transformers/exponentiation.ts +80 -0
  544. package/src/compiler/transformers/external-module-info.ts +412 -0
  545. package/src/compiler/transformers/for-await.ts +687 -0
  546. package/src/compiler/transformers/import-elision.ts +152 -0
  547. package/src/compiler/transformers/jsx-entities.ts +256 -0
  548. package/src/compiler/transformers/jsx.ts +824 -0
  549. package/src/compiler/transformers/legacy-decorators.ts +726 -0
  550. package/src/compiler/transformers/logical-assignment.ts +75 -0
  551. package/src/compiler/transformers/module-utilities.ts +42 -0
  552. package/src/compiler/transformers/module.ts +474 -0
  553. package/src/compiler/transformers/named-evaluation.ts +389 -0
  554. package/src/compiler/transformers/nullish-coalescing.ts +35 -0
  555. package/src/compiler/transformers/object-rest-spread.ts +577 -0
  556. package/src/compiler/transformers/optional-catch.ts +29 -0
  557. package/src/compiler/transformers/optional-chain.ts +246 -0
  558. package/src/compiler/transformers/reference-resolver.ts +1201 -0
  559. package/src/compiler/transformers/runtime-syntax.ts +942 -0
  560. package/src/compiler/transformers/subtree-facts.ts +245 -0
  561. package/src/compiler/transformers/syntax-facts.ts +353 -0
  562. package/src/compiler/transformers/tagged-template.ts +167 -0
  563. package/src/compiler/transformers/transformer.ts +56 -0
  564. package/src/compiler/transformers/type-eraser.ts +520 -0
  565. package/src/compiler/transformers/type-serialization.ts +374 -0
  566. package/src/compiler/transformers/using.ts +613 -0
  567. package/src/compiler/transformers/utilities.ts +419 -0
  568. package/src/compiler/transformers/visitor-base.ts +1601 -0
  569. package/src/compiler/transformers/visitor-hooks.ts +252 -0
  570. package/src/compiler/tsc-build.ts +1418 -0
  571. package/src/compiler/tsc-cli.ts +666 -0
  572. package/src/compiler/tsc-compile.ts +437 -0
  573. package/src/compiler/tsc-watch.ts +854 -0
  574. package/src/compiler/tsconfig.ts +1574 -0
  575. package/src/compiler/type-printer.ts +110 -0
  576. package/src/compiler/types.ts +115 -0
  577. package/src/compiler/unicode-identifiers.ts +212 -0
  578. package/src/compiler/unicode-properties.ts +537 -0
  579. package/src/compiler/vfs-match.ts +597 -0
  580. package/src/compiler/xxh3.ts +650 -0
  581. package/src/library/ast.generated.ts +1685 -0
  582. package/src/library/ast.ts +104 -0
  583. package/src/library/checker.ts +384 -0
  584. package/src/library/compiler-options.generated.ts +114 -0
  585. package/src/library/diagnostics.ts +72 -0
  586. package/src/library/disk.ts +73 -0
  587. package/src/library/enums.generated.ts +1024 -0
  588. package/src/library/errors.ts +26 -0
  589. package/src/library/host.ts +63 -0
  590. package/src/library/index.ts +71 -0
  591. package/src/library/nodes.ts +232 -0
  592. package/src/library/options.ts +449 -0
  593. package/src/library/parse.ts +63 -0
  594. package/src/library/program.ts +293 -0
  595. package/src/library/symbols.ts +15 -0
  596. package/src/library/types.ts +359 -0
@@ -0,0 +1,141 @@
1
+ // Small helpers shared across checker modules.
2
+ import { BinaryExpression, getAsteriskToken, getBody, getExpression, getName, } from './ast.js';
3
+ import { hasSyntacticModifier } from './binder-utilities.js';
4
+ import { isGenericType } from './checker-type-operators.js';
5
+ import { isPatternLiteralType, typesOf } from './checker-type-factory.js';
6
+ import { checkComputedPropertyName, checkExpressionCached } from './checker-expressions.js';
7
+ import { isTypeAssignableTo } from './relations.js';
8
+ export function isTypeUsableAsPropertyName(t) {
9
+ return (t.flags & 19456 /* TypeFlags.StringOrNumberLiteralOrUnique */) !== 0;
10
+ }
11
+ /** The member name a literal or unique symbol type denotes. */
12
+ export function getPropertyNameFromType(t) {
13
+ if ((t.flags & 1024 /* TypeFlags.StringLiteral */) !== 0)
14
+ return t.stringValue;
15
+ if ((t.flags & 2048 /* TypeFlags.NumberLiteral */) !== 0)
16
+ return String(t.numberValue);
17
+ return t.name;
18
+ }
19
+ /** Whether `ToString(ToNumber(name))` is `name`; true for Infinity, -Infinity and NaN. */
20
+ export function isNumericLiteralName(name) {
21
+ return String(Number(name)) === name;
22
+ }
23
+ /** Names of members keyed by unique symbols. */
24
+ export function isLateBoundName(name) {
25
+ return name.length >= 2 && name.charCodeAt(0) === 0xfffe && name.charCodeAt(1) === 0x40;
26
+ }
27
+ export function maybeTypeOfKind(t, kind) {
28
+ if ((t.flags & kind) !== 0)
29
+ return true;
30
+ if ((t.flags & 402653184 /* TypeFlags.UnionOrIntersection */) !== 0)
31
+ for (const u of typesOf(t))
32
+ if (maybeTypeOfKind(u, kind))
33
+ return true;
34
+ return false;
35
+ }
36
+ export function isValidIndexKeyType(c, t) {
37
+ if ((t.flags & (32 /* TypeFlags.String */ | 64 /* TypeFlags.Number */ | 512 /* TypeFlags.ESSymbol */)) !== 0 || isPatternLiteralType(c, t))
38
+ return true;
39
+ if ((t.flags & 268435456 /* TypeFlags.Intersection */) !== 0 && !isGenericType(c, t))
40
+ for (const u of typesOf(t))
41
+ if (isValidIndexKeyType(c, u))
42
+ return true;
43
+ return false;
44
+ }
45
+ function isEntityNameExpression(node) {
46
+ if (node.kind === 79 /* SyntaxKind.Identifier */)
47
+ return true;
48
+ if (node.kind === 212 /* SyntaxKind.PropertyAccessExpression */) {
49
+ const name = getName(node);
50
+ return name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */ && isEntityNameExpression(getExpression(node));
51
+ }
52
+ return false;
53
+ }
54
+ function isLateBindableAST(node) {
55
+ let expr;
56
+ if (node.kind === 168 /* SyntaxKind.ComputedPropertyName */)
57
+ expr = getExpression(node);
58
+ else if (node.kind === 213 /* SyntaxKind.ElementAccessExpression */)
59
+ expr = node.argumentExpression;
60
+ return expr !== undefined && isEntityNameExpression(expr);
61
+ }
62
+ /** A computed name of entity-name form whose type is a literal or unique symbol. */
63
+ export function hasLateBindableName(c, node) {
64
+ const name = getLateBindableNameOfDeclaration(node);
65
+ return name !== undefined && isLateBindableName(c, name);
66
+ }
67
+ /** Whether a computed name or `F[name]` target has a unique symbol or literal type. */
68
+ export function isLateBindableName(c, name) {
69
+ if (!isLateBindableAST(name))
70
+ return false;
71
+ if (name.kind === 168 /* SyntaxKind.ComputedPropertyName */)
72
+ return isTypeUsableAsPropertyName(checkComputedPropertyName(c, name));
73
+ return isTypeUsableAsPropertyName(checkExpressionCached(c, name.argumentExpression));
74
+ }
75
+ /** The name of a member, or the `F[name]` target of a JavaScript element access assignment. */
76
+ export function getLateBindableNameOfDeclaration(node) {
77
+ return node instanceof BinaryExpression ? node.left : getName(node);
78
+ }
79
+ export function hasLateBindableIndexSignature(c, node) {
80
+ const name = getName(node);
81
+ if (name === undefined || !isLateBindableAST(name) || name.kind !== 168 /* SyntaxKind.ComputedPropertyName */)
82
+ return false;
83
+ return isTypeAssignableTo(c, checkComputedPropertyName(c, name), c.stringNumberSymbolType);
84
+ }
85
+ /** Whether a declaration's name is a computed name that isn't a literal. */
86
+ export function hasDynamicName(node) {
87
+ const name = getName(node);
88
+ if (name === undefined || name.kind !== 168 /* SyntaxKind.ComputedPropertyName */)
89
+ return false;
90
+ const e = getExpression(name);
91
+ return !(e.kind === 10 /* SyntaxKind.StringLiteral */ ||
92
+ e.kind === 8 /* SyntaxKind.NumericLiteral */ ||
93
+ e.kind === 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */);
94
+ }
95
+ /** Whether a function-like declaration is async and/or a generator. */
96
+ export function getFunctionFlags(node) {
97
+ if (node === undefined)
98
+ return 4 /* FunctionFlags.Invalid */;
99
+ let flags = 0 /* FunctionFlags.Normal */;
100
+ switch (node.kind) {
101
+ case 263 /* SyntaxKind.FunctionDeclaration */:
102
+ case 219 /* SyntaxKind.FunctionExpression */:
103
+ case 175 /* SyntaxKind.MethodDeclaration */:
104
+ if (getAsteriskToken(node) !== undefined)
105
+ flags |= 1 /* FunctionFlags.Generator */;
106
+ if (hasSyntacticModifier(node, 1024 /* ModifierFlags.Async */))
107
+ flags |= 2 /* FunctionFlags.Async */;
108
+ break;
109
+ case 220 /* SyntaxKind.ArrowFunction */:
110
+ if (hasSyntacticModifier(node, 1024 /* ModifierFlags.Async */))
111
+ flags |= 2 /* FunctionFlags.Async */;
112
+ break;
113
+ }
114
+ if (getBody(node) === undefined)
115
+ flags |= 4 /* FunctionFlags.Invalid */;
116
+ return flags;
117
+ }
118
+ export function isBindingPattern(node) {
119
+ return (node !== undefined &&
120
+ (node.kind === 207 /* SyntaxKind.ObjectBindingPattern */ || node.kind === 208 /* SyntaxKind.ArrayBindingPattern */));
121
+ }
122
+ /** The index of the node with `node`'s range among `nodes`, which are in source order; -1 if none. */
123
+ export function indexOfNode(nodes, node) {
124
+ let low = 0;
125
+ let high = nodes.length;
126
+ while (low < high) {
127
+ const middle = (low + high) >>> 1;
128
+ const n = nodes[middle];
129
+ const order = n.pos !== node.pos ? n.pos - node.pos : n.end - node.end;
130
+ if (order < 0)
131
+ low = middle + 1;
132
+ else
133
+ high = middle;
134
+ }
135
+ if (low < nodes.length) {
136
+ const n = nodes[low];
137
+ if (n.pos === node.pos && n.end === node.end)
138
+ return low;
139
+ }
140
+ return -1;
141
+ }
@@ -0,0 +1,491 @@
1
+ import type { DeferredCollisionCheck } from './checker-generated-code.js';
2
+ import type { EmitHelperFileLinks } from './checker-emit-helpers.js';
3
+ import type { Node, PatternAmbientModule, SourceFile } from './ast.js';
4
+ import { IntLinkTable, LinkTable, SparseLinkTable } from './link-tables.js';
5
+ import { Diagnostic, type DiagnosticMessage, Diagnostics } from './diagnostics.js';
6
+ import { type CompilerOptions, ModuleKind, ScriptTarget } from './options.js';
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, type ConditionalType, type InterfaceType, type TypeChecking } from './checker-types.js';
9
+ import { CheckerNameResolver, type LibGlobals, type MergedGlobals, TableChanges, SuggestionNameResolver } from './checker-symbols.js';
10
+ import { Relation, RelationKey, type InternedRelationKey, type Relater, TypeComparer } from './relations.js';
11
+ import { TypeNodeVisitor } from './checker-source-file.js';
12
+ import { InferenceCaches } from './checker-inference.js';
13
+ import { AssignmentMarker, type FlowLoopInfo, type FlowState, type FlowWalk } from './checker-narrowing.js';
14
+ import type { FlowNode, FlowReduceLabel } from './flow.js';
15
+ import { JsxState } from './checker-jsx.js';
16
+ import type { DeferredIterationError, IterationTypes } from './checker-iteration.js';
17
+ import type { SpreadIndices } from './checker-contextual.js';
18
+ import type { SlotSiblingProperties } from './checker-symbol-types.js';
19
+ import { SourceFileMetadata } from './program-utilities.js';
20
+ import type { GrammarChecker } from './checker-grammar.js';
21
+ import type { ResolvedModule } from './module-resolution-types.js';
22
+ import type { ModuleSpecifierHost } from './module-specifiers.js';
23
+ /** What the checker needs from a program. */
24
+ export declare abstract class CheckerHost {
25
+ abstract getCompilerOptions(): CompilerOptions;
26
+ /** Every file of the program, libraries first, in program order. */
27
+ abstract getSourceFiles(): readonly SourceFile[];
28
+ abstract isSourceFileDefaultLibrary(file: SourceFile): boolean;
29
+ /** How a module name in `file` resolved in `mode`, if the program resolved it. */
30
+ getResolvedModule(_file: SourceFile, _moduleName: string, _mode: ModuleKind): ResolvedModule | undefined;
31
+ /** The program file for a resolved file name, following project reference redirects. */
32
+ getSourceFileForResolvedModule(_fileName: string): SourceFile | undefined;
33
+ /** The resolution mode of the module specifier `location` in `file`. */
34
+ getModeForUsageLocation(_file: SourceFile, _location: Node): ModuleKind;
35
+ /** The resolution mode of module names in `file` without a specifier of their own. */
36
+ getDefaultResolutionModeForFile(_file: SourceFile): ModuleKind;
37
+ /** Packages that modules resolved into, by name: whether any of their resolutions was a declaration file. */
38
+ getPackagesMap(): ReadonlyMap<string, boolean>;
39
+ /** The declaration output of a referenced project's source file, or `''`. */
40
+ getProjectReferenceOutputDts(_fileName: string): string;
41
+ fileExists(_path: string): boolean;
42
+ /** The synthetic specifier of a file's implicit JSX runtime import, such as `react/jsx-runtime`, if any. */
43
+ /** The `tslib` import the program adds to `file` under --importHelpers. */
44
+ getImportHelpersImportSpecifier(_file: SourceFile): Node | undefined;
45
+ getJSXRuntimeImportSpecifier(_file: SourceFile): Node | undefined;
46
+ /** The globals and module augmentations of the program, if a checker merged them for the others. */
47
+ getMergedGlobals(): MergedGlobals | undefined;
48
+ /** The format `file` is emitted in when it differs from `module`, else `None`. */
49
+ getImpliedNodeFormatForEmit(_file: SourceFile): ModuleKind;
50
+ /** The module syntax (`ESNext` or `CommonJS`) of the import or export with module specifier `usage`. */
51
+ getEmitSyntaxForUsageLocation(_file: SourceFile, _usage: Node): ModuleKind;
52
+ /** The `package.json` scope and implied module format of a file, if known. */
53
+ getSourceFileMetadata(_file: SourceFile): SourceFileMetadata | undefined;
54
+ /** The module format `file` is emitted in. */
55
+ getEmitModuleFormatOfFile(file: SourceFile): ModuleKind;
56
+ /** What module specifier generation needs; without it, specifiers are relative paths. */
57
+ getModuleSpecifierHost(): ModuleSpecifierHost | undefined;
58
+ }
59
+ /** Per-file and global diagnostics, sorted on read like tsgo's DiagnosticsCollection. */
60
+ declare class DiagnosticCollection {
61
+ private readonly byFile;
62
+ private readonly sortedFiles;
63
+ private readonly global;
64
+ private globalSorted;
65
+ /** The diagnostics added since `startLog`, while recording. */
66
+ private log;
67
+ add(diagnostic: Diagnostic): void;
68
+ forFile(fileName: string): Diagnostic[];
69
+ count(): number;
70
+ /** An already reported diagnostic equal to `diagnostic`, if any. */
71
+ lookup(diagnostic: Diagnostic): Diagnostic | undefined;
72
+ globals(): Diagnostic[];
73
+ /** Records the diagnostics added from now on. */
74
+ startLog(): void;
75
+ /** The diagnostics added since `startLog`, in order; stops recording. */
76
+ takeLog(): Diagnostic[];
77
+ }
78
+ /** Maximum depth of nested `typeToString` calls before diagnostics are discarded. */
79
+ export declare const maxSerializationLevel = 2;
80
+ /** The checker's caches for symbol accessibility. */
81
+ export declare class SymbolAccessibilityCaches {
82
+ /** Accessible chains by symbol id, then by `chainCacheKey`. */
83
+ readonly accessibleChains: Map<number, Map<string, Symbol[]>>;
84
+ /** Alias symbols of large tables (globals and exports), by table id. */
85
+ readonly tableAliases: Map<number, Symbol[]>;
86
+ /** Modules imported by a file that export a symbol, by symbol id then file node id. */
87
+ readonly containersByFile: Map<number, Map<number, Symbol[]>>;
88
+ /** All modules that export a symbol, by symbol id. */
89
+ readonly containers: Map<number, Symbol[]>;
90
+ /** The name tables of named class expressions, by node id. */
91
+ readonly classExpressionNames: Map<number, SymbolTable>;
92
+ /** Computed declaration visibility by node id (see isDeclarationVisible), 0 if not computed. */
93
+ readonly declarationVisibility: IntLinkTable;
94
+ /** The checker slots (bit `slot + 1`) whose declaration emit marked a node visible, by node id. */
95
+ readonly markedSlots: IntLinkTable;
96
+ /** The checker slot of the file in declaration emit, -1 before declaration emit. */
97
+ markedSlot: number;
98
+ /** Counts the times declaration emit left a checker slot. */
99
+ visibilityEpoch: number;
100
+ /** The epoch at which each slot (index `slot + 1`) was last left. */
101
+ readonly slotsLeftAt: number[];
102
+ }
103
+ export declare class Checker implements TypeChecking {
104
+ readonly host: CheckerHost;
105
+ readonly compilerOptions: CompilerOptions;
106
+ readonly files: readonly SourceFile[];
107
+ readonly fileIndex: Map<SourceFile, number>;
108
+ readonly languageVersion: ScriptTarget;
109
+ readonly strictNullChecks: boolean;
110
+ readonly strictFunctionTypes: boolean;
111
+ readonly strictBindCallApply: boolean;
112
+ readonly strictPropertyInitialization: boolean;
113
+ readonly strictBuiltinIteratorReturn: boolean;
114
+ readonly noImplicitAny: boolean;
115
+ readonly noImplicitThis: boolean;
116
+ readonly legacyDecorators: boolean;
117
+ readonly useUnknownInCatchVariables: boolean;
118
+ readonly exactOptionalPropertyTypes: boolean;
119
+ readonly isolatedModules: boolean;
120
+ readonly preserveConstEnums: boolean;
121
+ readonly noUncheckedIndexedAccess: boolean;
122
+ typeCount: number;
123
+ signatureCount: number;
124
+ /** Positions of members by name in the tables and lists that lazily instantiated members come from. */
125
+ readonly memberPositionsInLists: Map<Symbol[], Map<string, number>>;
126
+ /** The property names of the last instantiation of each such list whose table is built on demand. */
127
+ readonly memberNamesOfLists: Map<Symbol[], MemberNames>;
128
+ /** Long lists of inherited properties, by name. */
129
+ readonly propertiesByName: Map<Symbol[], Map<string, Symbol>>;
130
+ /** Number of `typeToString` calls in progress. */
131
+ serializationLevel: number;
132
+ /** Whether `globalObjectType` is set; global type lookups before it can't suggest `typeof`. */
133
+ hasGlobalObjectType: boolean;
134
+ /** The node being checked, for errors with no better location. */
135
+ currentNode: Node | undefined;
136
+ readonly diagnostics: DiagnosticCollection;
137
+ readonly suggestionDiagnostics: DiagnosticCollection;
138
+ /** Module specifiers of `import("…")` types, by module symbol id, importing file path and resolution mode. */
139
+ readonly moduleSpecifiers: Map<string, string>;
140
+ /** Specifier generation for hosts without a program. */
141
+ fallbackModuleSpecifierHost: ModuleSpecifierHost | undefined;
142
+ readonly symbolLinkTable: SparseLinkTable<SymbolLinks>;
143
+ readonly nodeLinkTable: SparseLinkTable<NodeLinks>;
144
+ /** The holders of the lazily computed state of types with side state (`sideOf`), by type id. */
145
+ readonly sideHolders: LinkTable<Type>;
146
+ /** The same for signatures with side state (`signatureSideOf`), by signature id. */
147
+ readonly signatureSideHolders: LinkTable<Signature>;
148
+ /** The type of a value symbol. */
149
+ readonly symbolTypes: LinkTable<Type>;
150
+ /** For instantiated and synthetic symbols, the symbol they come from. */
151
+ readonly symbolTargets: LinkTable<Symbol>;
152
+ /** The mapper of an instantiated symbol or a mapped type property. */
153
+ readonly symbolMappers: LinkTable<TypeMapper>;
154
+ /** The literal type of a property name. */
155
+ readonly symbolNameTypes: LinkTable<Type>;
156
+ /** The mapped type of a mapped type property, or the union/intersection of a synthetic property. */
157
+ readonly symbolContainingTypes: LinkTable<Type>;
158
+ /** The key type of a mapped type property. */
159
+ readonly symbolKeyTypes: LinkTable<Type>;
160
+ /** The property a mapped, spread or synthetic property comes from. */
161
+ readonly symbolSyntheticOrigins: LinkTable<Symbol>;
162
+ /** The left and right properties a spread property combines. */
163
+ readonly symbolLeftSpreads: LinkTable<Symbol>;
164
+ readonly symbolRightSpreads: LinkTable<Symbol>;
165
+ /** Bits of SymbolFlags for the meanings in which a symbol was referenced. */
166
+ readonly symbolReferenceKinds: IntLinkTable;
167
+ /** The resolved symbol of an identifier, entity name or call. */
168
+ readonly resolvedSymbols: SparseLinkTable<Symbol>;
169
+ /** The resolved type of a type node or expression. */
170
+ readonly resolvedTypes: SparseLinkTable<Type>;
171
+ /** The resolved signature of a call-like node or a signature declaration. */
172
+ readonly resolvedSignatures: SparseLinkTable<Signature>;
173
+ /** Merged symbols, indexed by the id of the symbol merged into them. */
174
+ readonly mergedSymbols: Map<number, Symbol>;
175
+ /** Globals merged from the default libraries, shared with other checkers. */
176
+ libGlobals: LibGlobals | undefined;
177
+ /** The program's globals and module augmentations as another checker merged them, shared with it. */
178
+ mergedGlobals: MergedGlobals | undefined;
179
+ /**
180
+ * The diagnostics and suggestions the merges reported: those of the globals, then those of the
181
+ * ambient modules and module augmentations.
182
+ */
183
+ readonly mergeDiagnostics: Diagnostic[][];
184
+ /**
185
+ * This checker's changes to `globals` and `mergedSymbols` when it uses the tables of
186
+ * `libGlobals` in place rather than copies; they are undone when it is disposed.
187
+ */
188
+ globalChanges: TableChanges<string, Symbol> | undefined;
189
+ mergedSymbolChanges: TableChanges<number, Symbol> | undefined;
190
+ /** This checker's copies of shared symbols, and the symbols they stand for. */
191
+ readonly sharedSymbolCopies: Map<Symbol, Symbol>;
192
+ /** Accessible symbol chains and declaration visibility, created on first use. */
193
+ symbolAccessibilityCaches: SymbolAccessibilityCaches | undefined;
194
+ readonly globals: SymbolTable;
195
+ readonly resolver: CheckerNameResolver;
196
+ readonly undefinedSymbol: Symbol;
197
+ readonly argumentsSymbol: Symbol;
198
+ readonly requireSymbol: Symbol;
199
+ readonly unknownSymbol: Symbol;
200
+ readonly globalThisSymbol: Symbol;
201
+ readonly unresolvedSymbols: Map<string, Symbol>;
202
+ /** Widening's optional `undefined` properties by the id of the property each is created from. */
203
+ readonly undefinedProperties: Map<number, Symbol>;
204
+ /** By file and name, the property that widening's optional `undefined` properties are created from. */
205
+ readonly firstSiblingProperties: Map<SourceFile, Map<string, Node>>;
206
+ /** By tsgo checker, the first sibling properties of its files (firstSiblingProperty). */
207
+ readonly slotSiblingProperties: Map<number, SlotSiblingProperties>;
208
+ readonly stringLiteralTypes: Map<string, LiteralType>;
209
+ readonly numberLiteralTypes: Map<number, LiteralType>;
210
+ readonly bigintLiteralTypes: Map<string, LiteralType>;
211
+ readonly enumLiteralTypes: Map<string, LiteralType>;
212
+ readonly uniqueESSymbolTypes: Map<Symbol, Type>;
213
+ /** Unions by a hash of their key; `unionTypes` holds the unions whose key hash was taken. */
214
+ readonly unionTypesByHash: Map<number, Type>;
215
+ readonly unionTypes: Map<string, Type>;
216
+ readonly unionOfUnionTypes: Map<string, Type>;
217
+ /** `unionOfUnionTypes` without an alias, by both ids and the reduction packed into one number. */
218
+ readonly unionOfUnionTypesById: Map<number, Type>;
219
+ readonly intersectionTypes: TypeListCache<Type>;
220
+ readonly tupleTypes: Map<string, Type>;
221
+ readonly indexedAccessTypes: Map<string, Type>;
222
+ readonly templateLiteralTypes: Map<string, Type>;
223
+ /** Instantiations of template literal types: the instantiated types, tagged with the template's id. */
224
+ readonly templateLiteralInstantiations: TypeListCache<Type>;
225
+ readonly stringMappingTypes: Map<string, Type>;
226
+ readonly substitutionTypes: Map<string, Type>;
227
+ readonly subtypeReductionCache: TypeListCache<Type[]>;
228
+ readonly cachedTypes: Map<string, Type>;
229
+ /** Cached types by `cachedTypeKey` and by `cachedTypePairKey`, without spelled keys. */
230
+ readonly cachedTypesById: Map<number, Type>;
231
+ readonly cachedTypesByPair: Map<number, Type>;
232
+ readonly errorTypes: Map<string, Type>;
233
+ readonly anyType: IntrinsicType;
234
+ readonly autoType: IntrinsicType;
235
+ readonly wildcardType: IntrinsicType;
236
+ readonly blockedStringType: IntrinsicType;
237
+ readonly errorType: IntrinsicType;
238
+ readonly unresolvedType: IntrinsicType;
239
+ readonly nonInferrableAnyType: IntrinsicType;
240
+ readonly intrinsicMarkerType: IntrinsicType;
241
+ readonly unknownType: IntrinsicType;
242
+ readonly undefinedType: IntrinsicType;
243
+ readonly undefinedWideningType: IntrinsicType;
244
+ readonly missingType: IntrinsicType;
245
+ readonly undefinedOrMissingType: IntrinsicType;
246
+ readonly optionalType: IntrinsicType;
247
+ readonly nullType: IntrinsicType;
248
+ readonly nullWideningType: IntrinsicType;
249
+ readonly stringType: IntrinsicType;
250
+ readonly numberType: IntrinsicType;
251
+ readonly bigintType: IntrinsicType;
252
+ readonly regularFalseType: LiteralType;
253
+ readonly falseType: LiteralType;
254
+ readonly regularTrueType: LiteralType;
255
+ readonly trueType: LiteralType;
256
+ readonly booleanType: Type;
257
+ readonly esSymbolType: IntrinsicType;
258
+ readonly voidType: IntrinsicType;
259
+ readonly neverType: IntrinsicType;
260
+ readonly silentNeverType: IntrinsicType;
261
+ readonly implicitNeverType: IntrinsicType;
262
+ readonly unreachableNeverType: IntrinsicType;
263
+ readonly nonPrimitiveType: IntrinsicType;
264
+ readonly stringOrNumberType: Type;
265
+ readonly stringNumberSymbolType: Type;
266
+ readonly numberOrBigIntType: Type;
267
+ readonly numericStringType: Type;
268
+ readonly templateConstraintType: Type;
269
+ readonly uniqueLiteralType: IntrinsicType;
270
+ readonly emptyObjectType: ObjectType;
271
+ readonly emptyJsxObjectType: ObjectType;
272
+ readonly emptyFreshJsxObjectType: ObjectType;
273
+ readonly emptyTypeLiteralType: ObjectType;
274
+ readonly unknownEmptyObjectType: ObjectType;
275
+ readonly unknownUnionType: Type;
276
+ readonly emptyGenericType: ObjectType;
277
+ readonly anyFunctionType: ObjectType;
278
+ readonly noConstraintType: ObjectType;
279
+ readonly circularConstraintType: ObjectType;
280
+ readonly resolvingDefaultType: ObjectType;
281
+ readonly markerSuperType: TypeParameter;
282
+ readonly markerSubType: TypeParameter;
283
+ readonly markerOtherType: TypeParameter;
284
+ readonly markerSuperTypeForCheck: TypeParameter;
285
+ readonly markerSubTypeForCheck: TypeParameter;
286
+ readonly noTypePredicate: TypePredicate;
287
+ readonly anySignature: Signature;
288
+ readonly unknownSignature: Signature;
289
+ readonly resolvingSignature: Signature;
290
+ readonly silentNeverSignature: Signature;
291
+ readonly enumNumberIndexInfo: IndexInfo;
292
+ readonly anyBaseTypeIndexInfo: IndexInfo;
293
+ readonly emptyStringType: Type;
294
+ readonly zeroType: Type;
295
+ readonly zeroBigIntType: Type;
296
+ readonly typeofType: Type;
297
+ readonly reportUnreliableMapper: TypeMapper;
298
+ readonly reportUnmeasurableMapper: TypeMapper;
299
+ readonly restrictiveMapper: TypeMapper;
300
+ readonly permissiveMapper: TypeMapper;
301
+ readonly uniqueLiteralMapper: TypeMapper;
302
+ /** Set by the reporting mappers during variance measurement. */
303
+ reliabilityFlags: number;
304
+ readonly subtypeRelation: Relation;
305
+ readonly strictSubtypeRelation: Relation;
306
+ readonly assignableRelation: Relation;
307
+ readonly comparableRelation: Relation;
308
+ readonly identityRelation: Relation;
309
+ readonly enumRelation: Map<string, number>;
310
+ /** A relater that is not in use, kept so that relation checks don't allocate one each. */
311
+ spareRelater: Relater | undefined;
312
+ globalArrayType: Type;
313
+ globalObjectType: Type;
314
+ globalFunctionType: Type;
315
+ globalCallableFunctionType: Type;
316
+ globalNewableFunctionType: Type;
317
+ globalStringType: Type;
318
+ globalNumberType: Type;
319
+ globalBooleanType: Type;
320
+ globalRegExpType: Type;
321
+ anyArrayType: Type;
322
+ autoArrayType: Type;
323
+ globalReadonlyArrayType: Type;
324
+ anyReadonlyArrayType: Type;
325
+ globalThisType: Type;
326
+ /** Lazily resolved global types and symbols, by name. */
327
+ readonly globalTypeCache: Map<string, Map<number, Type>>;
328
+ /** Module namespace types with synthetic defaults, by kind and type id. */
329
+ readonly moduleTypeCache: Map<string, Type>;
330
+ readonly globalSymbolCache: Map<string, Symbol | null>;
331
+ resolutionStart: number;
332
+ inVarianceComputation: boolean;
333
+ instantiationDepth: number;
334
+ instantiationCount: number;
335
+ /** Instantiations over the checker's lifetime (statistics). */
336
+ totalInstantiations: number;
337
+ /** Mappers of the instantiations in progress: the first `activeMapperDepth` entries are live. */
338
+ readonly activeMappers: TypeMapper[];
339
+ activeMapperDepth: number;
340
+ /** Per active mapper: its instantiations by type id, created on the first nested write. */
341
+ readonly activeMapperCaches: (Map<number, Type> | undefined)[];
342
+ /** Per active mapper: its instantiations with an alias, by type id and alias key. */
343
+ readonly activeMapperAliasCaches: (Map<string, Type> | undefined)[];
344
+ /**
345
+ * Cleared caches of popped mappers, reused as tsgo's pushActiveMapper reuses the maps
346
+ * popActiveMapper clears: the first `freeMapperCacheCount` are free.
347
+ */
348
+ readonly freeMapperCaches: Map<number, Type>[];
349
+ freeMapperCacheCount: number;
350
+ conditionalConstraintDepth: number;
351
+ readonly suggestionResolver: SuggestionNameResolver;
352
+ readonly awaitedTypeStack: number[];
353
+ /** Iteration types by type id and iteration use. */
354
+ readonly iterationTypesCache: Map<number, IterationTypes>;
355
+ /** Whether diagnostics can be deferred to the end of the file being checked. */
356
+ saveDeferredDiagnostics: boolean;
357
+ deferredIterationErrors: DeferredIterationError[];
358
+ /** Collision checks waiting for the end of the file (checker-generated-code.ts). */
359
+ deferredCollisionChecks: DeferredCollisionCheck[];
360
+ /** Binding patterns whose implied type is being computed as a contextual type. */
361
+ readonly contextualBindingPatterns: Node[];
362
+ /** The binding pattern or assignment pattern that implied each type. */
363
+ readonly patternForType: Map<Type, Node>;
364
+ /** Spread element indices of array literals with contextually typed elements. */
365
+ readonly spreadIndices: Map<Node, SpreadIndices>;
366
+ /** Instantiation expression types by node and expression type id. */
367
+ readonly instantiationExpressionTypes: Map<string, Type>;
368
+ relationComparers: TypeComparer[];
369
+ readonly relationScratchKey: RelationKey;
370
+ /** Numbers for relation keys that are spelled as strings (see getRelationKey). */
371
+ readonly relationKeyIds: Map<string, number>;
372
+ /** Numbers for generic relation keys spelled as tokens, by a hash of the tokens. */
373
+ readonly relationKeyTokens: Map<number, InternedRelationKey>;
374
+ /** The number of interned relation keys of both kinds. */
375
+ relationKeyCount: number;
376
+ readonly markerTypes: Set<Type>;
377
+ readonly arrayVariances: VarianceFlags[];
378
+ nanLiteralType: LiteralType | undefined;
379
+ /** `{ meta: ImportMeta }`, the type of `import.meta` for symbol queries. */
380
+ importMetaExpressionType: Type | undefined;
381
+ flowAnalysisDisabled: boolean;
382
+ inlineLevel: number;
383
+ /**
384
+ * Shared flow nodes cached by the walks in progress, with their types: the first
385
+ * `sharedFlowCount` entries are live, later slots are reused.
386
+ */
387
+ readonly sharedFlowNodes: FlowNode[];
388
+ readonly sharedFlowTypes: Type[];
389
+ readonly sharedFlowIncomplete: boolean[];
390
+ sharedFlowCount: number;
391
+ /**
392
+ * For each walk in progress, by its depth (`flowStateDepth`), once it has cached
393
+ * `sharedFlowIndexThreshold` shared nodes: the index of each node's first entry in the cache above.
394
+ */
395
+ readonly sharedFlowIndexes: Map<FlowNode, number>[];
396
+ /**
397
+ * Flow states, reused as in tsgo's getFlowState/putFlowState: the first `flowStateDepth` belong
398
+ * to walks in progress, the rest are free.
399
+ */
400
+ readonly flowStates: FlowState[];
401
+ flowStateDepth: number;
402
+ readonly flowLoopCaches: Map<FlowNode, Map<string, Type>>;
403
+ /** The last long walk of each reference key outside loops: see `FlowWalk`. */
404
+ readonly flowWalks: Map<string, FlowWalk>;
405
+ flowLoopStack: FlowLoopInfo[];
406
+ /** Types of expressions whose computation needed flow analysis, outside loop back edges. */
407
+ flowTypeCache: Map<Node, Type> | undefined;
408
+ flowInvocationCount: number;
409
+ /** The reduce labels being passed, innermost last; each limits its target label's antecedents. */
410
+ readonly flowReduceLabels: FlowReduceLabel[];
411
+ readonly flowNodeReachable: Map<FlowNode, boolean>;
412
+ readonly flowNodePostSuper: Map<FlowNode, boolean>;
413
+ lastFlowNode: FlowNode | undefined;
414
+ lastFlowNodeReachable: boolean;
415
+ readonly assignmentMarker: AssignmentMarker;
416
+ readonly primitiveTypeAliasSuggestions: Map<string, Symbol>;
417
+ /** Renamed binding elements in parameters of bodiless signatures, checked for use with their file. */
418
+ readonly renamedBindingElementsInTypes: Node[];
419
+ /** The type parameter whose variance annotation is being checked, to name its marker types. */
420
+ varianceTypeParameter: Type | undefined;
421
+ /** Whether the statement being checked is unreachable, to report unreachable code once. */
422
+ withinUnreachableCode: boolean;
423
+ readonly reportedUnreachableNodes: Set<Node>;
424
+ /** The grammar checker of the file whose expressions are being checked. */
425
+ grammarChecker: GrammarChecker | undefined;
426
+ /** Nodes queued for a deferred check (checkNodeDeferred), each checked once. */
427
+ readonly deferredNodeIds: Set<number>;
428
+ readonly typeNodeVisitor: TypeNodeVisitor;
429
+ readonly jsx: JsxState;
430
+ /** Per file: its tslib module and the emit helpers checked against it (checkExternalEmitHelpers). */
431
+ readonly emitHelperFileLinks: Map<SourceFile, EmitHelperFileLinks>;
432
+ /** The file checkSourceFile is checking. */
433
+ fileBeingChecked: SourceFile | undefined;
434
+ readonly ambientModuleSymbols: Symbol[];
435
+ readonly patternAmbientModules: PatternAmbientModule[];
436
+ readonly patternAmbientModuleAugmentations: Map<string, Symbol>;
437
+ readonly inferenceCaches: InferenceCaches;
438
+ /** The type resolution stack: the first `resolutionDepth` entries are live, later slots are reused. */
439
+ readonly resolutionTargets: (Symbol | Type | Signature | Node)[];
440
+ readonly resolutionResults: boolean[];
441
+ readonly resolutionPropertyNames: number[];
442
+ resolutionDepth: number;
443
+ /** The number of resolution cycles found (`pushTypeResolution`). */
444
+ resolutionCycleCount: number;
445
+ constructor(host: CheckerHost);
446
+ /** Checks `file` if needed and returns its semantic diagnostics, sorted. */
447
+ getDiagnostics(file: SourceFile): Diagnostic[];
448
+ /** Checks `file`, including unused identifiers, and returns its suggestion diagnostics. */
449
+ getSuggestionDiagnostics(file: SourceFile): Diagnostic[];
450
+ /** Diagnostics without a file, such as missing global types. */
451
+ getGlobalDiagnostics(): Diagnostic[];
452
+ /** The rarely used links of `symbol`, created on first use. */
453
+ symbolLinks(symbol: Symbol): SymbolLinks;
454
+ /** The links of `symbol` if it has any, without creating them. */
455
+ existingSymbolLinks(symbol: Symbol): SymbolLinks | undefined;
456
+ /** The rarely used links of `node`, created on first use. */
457
+ nodeLinks(node: Node): NodeLinks;
458
+ /** The links of `node` if it has any, without creating them. */
459
+ existingNodeLinks(node: Node): NodeLinks | undefined;
460
+ nextTypeId(): number;
461
+ baseTypesOf(t: InterfaceType): readonly Type[];
462
+ trueTypeOf(t: ConditionalType): Type;
463
+ falseTypeOf(t: ConditionalType): Type;
464
+ newIntrinsicType(flags: TypeFlags, name: string, objectFlags: ObjectFlags): IntrinsicType;
465
+ newLiteralType(flags: TypeFlags, stringValue: string, numberValue: number, symbol: Symbol | undefined): LiteralType;
466
+ newTypeParameter(symbol: Symbol | undefined): TypeParameter;
467
+ newSymbol(flags: SymbolFlags, name: string): Symbol;
468
+ newSymbolWithCheckFlags(flags: SymbolFlags, name: string, checkFlags: CheckFlags): Symbol;
469
+ newSignature(flags: SignatureFlags, declaration: Node | undefined, typeParameters: Type[], thisParameter: Symbol | undefined, parameters: Symbol[], resolvedReturnType: Type | undefined, minArgumentCount: number): Signature;
470
+ /** Reports `message` at `node`, or as a global diagnostic without a node. */
471
+ error(node: Node | undefined, message: DiagnosticMessage, ...args: string[]): Diagnostic;
472
+ addDiagnostic(diagnostic: Diagnostic): void;
473
+ addSuggestion(diagnostic: Diagnostic): void;
474
+ /** Reports an error, or a suggestion when `isError` is false. */
475
+ addErrorOrSuggestion(isError: boolean, diagnostic: Diagnostic): void;
476
+ }
477
+ /**
478
+ * Drops a checker's links and type caches. Native builds free memory by reference counting, and
479
+ * the checker's caches, types and mappers reference each other; releasing them early lets most of
480
+ * them go without a cycle collection.
481
+ */
482
+ export declare function disposeChecker(c: Checker): void;
483
+ export declare const enum VarianceReporting {
484
+ Unreliable = 16,
485
+ Unmeasurable = 8
486
+ }
487
+ /** A diagnostic at `node`'s error range, or a global one without a node. */
488
+ export declare function createDiagnosticForNode(node: Node | undefined, message: DiagnosticMessage, args: string[]): Diagnostic;
489
+ /** A message for `chainDiagnostic`-style elaboration; the location is taken from the head. */
490
+ export declare function messageDiagnostic(message: DiagnosticMessage, args: string[]): Diagnostic;
491
+ export { Diagnostics, ScriptTarget };