tsc-ts 0.0.10 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) 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 +20 -15
  6. package/dist/api/compiler/ast.js +1023 -995
  7. package/dist/api/compiler/astnav.js +15 -15
  8. package/dist/api/compiler/binder-utilities.js +186 -186
  9. package/dist/api/compiler/binder.js +290 -263
  10. package/dist/api/compiler/character-codes.js +2 -2
  11. package/dist/api/compiler/checker-calls.js +173 -123
  12. package/dist/api/compiler/checker-classes.d.ts +14 -3
  13. package/dist/api/compiler/checker-classes.js +134 -90
  14. package/dist/api/compiler/checker-contextual.js +64 -61
  15. package/dist/api/compiler/checker-declaration-order.js +79 -79
  16. package/dist/api/compiler/checker-declarations.d.ts +1 -0
  17. package/dist/api/compiler/checker-declarations.js +160 -136
  18. package/dist/api/compiler/checker-declared-types.js +67 -65
  19. package/dist/api/compiler/checker-decorators.js +77 -77
  20. package/dist/api/compiler/checker-deprecation.d.ts +8 -3
  21. package/dist/api/compiler/checker-deprecation.js +76 -55
  22. package/dist/api/compiler/checker-destructuring.js +47 -45
  23. package/dist/api/compiler/checker-elaboration.js +24 -24
  24. package/dist/api/compiler/checker-emit-helpers.js +4 -4
  25. package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
  26. package/dist/api/compiler/checker-emit-resolver.js +25 -13
  27. package/dist/api/compiler/checker-evaluator.js +9 -9
  28. package/dist/api/compiler/checker-expressions.js +244 -211
  29. package/dist/api/compiler/checker-functions.js +113 -107
  30. package/dist/api/compiler/checker-generated-code.d.ts +0 -11
  31. package/dist/api/compiler/checker-generated-code.js +28 -52
  32. package/dist/api/compiler/checker-grammar.d.ts +1 -0
  33. package/dist/api/compiler/checker-grammar.js +469 -438
  34. package/dist/api/compiler/checker-heritage.js +91 -93
  35. package/dist/api/compiler/checker-inference.d.ts +77 -5
  36. package/dist/api/compiler/checker-inference.js +487 -113
  37. package/dist/api/compiler/checker-iteration.d.ts +0 -10
  38. package/dist/api/compiler/checker-iteration.js +35 -52
  39. package/dist/api/compiler/checker-javascript.js +14 -14
  40. package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
  41. package/dist/api/compiler/checker-jsdoc.js +67 -58
  42. package/dist/api/compiler/checker-jsx.js +105 -88
  43. package/dist/api/compiler/checker-members.d.ts +9 -2
  44. package/dist/api/compiler/checker-members.js +210 -74
  45. package/dist/api/compiler/checker-modules.d.ts +15 -6
  46. package/dist/api/compiler/checker-modules.js +469 -309
  47. package/dist/api/compiler/checker-narrowing.js +273 -189
  48. package/dist/api/compiler/checker-object-literals.js +25 -22
  49. package/dist/api/compiler/checker-operators.js +126 -118
  50. package/dist/api/compiler/checker-overloads.js +27 -27
  51. package/dist/api/compiler/checker-property-access.js +59 -55
  52. package/dist/api/compiler/checker-services.d.ts +1 -0
  53. package/dist/api/compiler/checker-services.js +222 -210
  54. package/dist/api/compiler/checker-signatures.js +65 -49
  55. package/dist/api/compiler/checker-source-file.d.ts +5 -0
  56. package/dist/api/compiler/checker-source-file.js +154 -130
  57. package/dist/api/compiler/checker-statements.js +33 -32
  58. package/dist/api/compiler/checker-super.js +50 -50
  59. package/dist/api/compiler/checker-symbol-types.js +109 -93
  60. package/dist/api/compiler/checker-symbols.d.ts +13 -1
  61. package/dist/api/compiler/checker-symbols.js +264 -149
  62. package/dist/api/compiler/checker-type-factory.d.ts +5 -0
  63. package/dist/api/compiler/checker-type-factory.js +137 -34
  64. package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
  65. package/dist/api/compiler/checker-type-nodes.js +179 -141
  66. package/dist/api/compiler/checker-type-operators.d.ts +2 -0
  67. package/dist/api/compiler/checker-type-operators.js +110 -63
  68. package/dist/api/compiler/checker-types.d.ts +80 -3
  69. package/dist/api/compiler/checker-types.js +121 -2
  70. package/dist/api/compiler/checker-unused.js +114 -118
  71. package/dist/api/compiler/checker-utilities.js +11 -11
  72. package/dist/api/compiler/checker.d.ts +93 -31
  73. package/dist/api/compiler/checker.js +143 -35
  74. package/dist/api/compiler/command-line.d.ts +1 -3
  75. package/dist/api/compiler/command-line.js +47 -44
  76. package/dist/api/compiler/compile-program.d.ts +19 -4
  77. package/dist/api/compiler/compile-program.js +45 -26
  78. package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
  79. package/dist/api/compiler/diagnostic-messages.js +128 -122
  80. package/dist/api/compiler/diagnostics.js +7 -7
  81. package/dist/api/compiler/emitter.d.ts +7 -1
  82. package/dist/api/compiler/emitter.js +53 -11
  83. package/dist/api/compiler/file-include.d.ts +2 -1
  84. package/dist/api/compiler/file-include.js +11 -7
  85. package/dist/api/compiler/file-loader.d.ts +10 -0
  86. package/dist/api/compiler/file-loader.js +138 -41
  87. package/dist/api/compiler/instantiation.d.ts +7 -0
  88. package/dist/api/compiler/instantiation.js +101 -49
  89. package/dist/api/compiler/jsdoc.js +23 -23
  90. package/dist/api/compiler/link-tables.d.ts +48 -18
  91. package/dist/api/compiler/link-tables.js +80 -37
  92. package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
  93. package/dist/api/compiler/locales/cs-CZ.js +1 -1
  94. package/dist/api/compiler/locales/de-DE.d.ts +1 -1
  95. package/dist/api/compiler/locales/de-DE.js +1 -1
  96. package/dist/api/compiler/locales/es-ES.d.ts +1 -1
  97. package/dist/api/compiler/locales/es-ES.js +1 -1
  98. package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
  99. package/dist/api/compiler/locales/fr-FR.js +1 -1
  100. package/dist/api/compiler/locales/it-IT.d.ts +1 -1
  101. package/dist/api/compiler/locales/it-IT.js +1 -1
  102. package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
  103. package/dist/api/compiler/locales/ja-JP.js +1 -1
  104. package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
  105. package/dist/api/compiler/locales/ko-KR.js +1 -1
  106. package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
  107. package/dist/api/compiler/locales/pl-PL.js +1 -1
  108. package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
  109. package/dist/api/compiler/locales/pt-BR.js +1 -1
  110. package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
  111. package/dist/api/compiler/locales/ru-RU.js +1 -1
  112. package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
  113. package/dist/api/compiler/locales/tr-TR.js +1 -1
  114. package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
  115. package/dist/api/compiler/locales/zh-CN.js +1 -1
  116. package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
  117. package/dist/api/compiler/locales/zh-TW.js +1 -1
  118. package/dist/api/compiler/module-resolution-types.js +6 -6
  119. package/dist/api/compiler/module-resolution.d.ts +10 -1
  120. package/dist/api/compiler/module-resolution.js +115 -84
  121. package/dist/api/compiler/module-specifiers.d.ts +15 -0
  122. package/dist/api/compiler/module-specifiers.js +24 -18
  123. package/dist/api/compiler/name-resolver.js +74 -65
  124. package/dist/api/compiler/node-builder-names.d.ts +11 -3
  125. package/dist/api/compiler/node-builder-names.js +210 -90
  126. package/dist/api/compiler/node-builder-pseudo.js +29 -31
  127. package/dist/api/compiler/node-builder-reuse.js +23 -22
  128. package/dist/api/compiler/node-builder.d.ts +18 -1
  129. package/dist/api/compiler/node-builder.js +191 -102
  130. package/dist/api/compiler/option-declarations.d.ts +2 -6
  131. package/dist/api/compiler/option-declarations.js +315 -375
  132. package/dist/api/compiler/options.d.ts +15 -33
  133. package/dist/api/compiler/options.js +21 -54
  134. package/dist/api/compiler/output-paths.d.ts +4 -1
  135. package/dist/api/compiler/output-paths.js +6 -11
  136. package/dist/api/compiler/package-json.d.ts +3 -3
  137. package/dist/api/compiler/package-json.js +11 -10
  138. package/dist/api/compiler/parser.d.ts +40 -19
  139. package/dist/api/compiler/parser.js +308 -216
  140. package/dist/api/compiler/path.d.ts +9 -0
  141. package/dist/api/compiler/path.js +20 -3
  142. package/dist/api/compiler/printer/emit-context.d.ts +3 -1
  143. package/dist/api/compiler/printer/emit-context.js +16 -1
  144. package/dist/api/compiler/printer/factory-base.d.ts +2 -2
  145. package/dist/api/compiler/printer/factory-base.js +7 -3
  146. package/dist/api/compiler/printer/factory.js +3 -1
  147. package/dist/api/compiler/printer/helpers.js +10 -1
  148. package/dist/api/compiler/printer/name-generator.d.ts +1 -1
  149. package/dist/api/compiler/printer/name-generator.js +35 -16
  150. package/dist/api/compiler/printer/printer.d.ts +1 -0
  151. package/dist/api/compiler/printer/printer.js +303 -281
  152. package/dist/api/compiler/printer/utilities.js +149 -147
  153. package/dist/api/compiler/program-checker.d.ts +8 -2
  154. package/dist/api/compiler/program-checker.js +84 -34
  155. package/dist/api/compiler/program-utilities.d.ts +3 -1
  156. package/dist/api/compiler/program-utilities.js +28 -15
  157. package/dist/api/compiler/program.d.ts +2 -0
  158. package/dist/api/compiler/program.js +69 -57
  159. package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
  160. package/dist/api/compiler/pseudo-bigint.js +18 -0
  161. package/dist/api/compiler/regexp-checker.d.ts +1 -1
  162. package/dist/api/compiler/regexp-checker.js +93 -76
  163. package/dist/api/compiler/relations.d.ts +27 -4
  164. package/dist/api/compiler/relations.js +337 -180
  165. package/dist/api/compiler/reparser.js +60 -56
  166. package/dist/api/compiler/scanner.d.ts +19 -2
  167. package/dist/api/compiler/scanner.js +123 -108
  168. package/dist/api/compiler/shared-results.d.ts +463 -0
  169. package/dist/api/compiler/shared-results.js +2128 -0
  170. package/dist/api/compiler/sourcemap.js +2 -2
  171. package/dist/api/compiler/symbol-accessibility.js +87 -74
  172. package/dist/api/compiler/symbol.d.ts +22 -13
  173. package/dist/api/compiler/symbol.js +15 -1
  174. package/dist/api/compiler/syntax-kind.d.ts +198 -197
  175. package/dist/api/compiler/transformers/alias-references.js +247 -139
  176. package/dist/api/compiler/transformers/async-utilities.js +25 -25
  177. package/dist/api/compiler/transformers/async.d.ts +0 -1
  178. package/dist/api/compiler/transformers/async.js +64 -77
  179. package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
  180. package/dist/api/compiler/transformers/class-fields.js +81 -78
  181. package/dist/api/compiler/transformers/commonjs-module.js +18 -15
  182. package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
  183. package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
  184. package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
  185. package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
  186. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
  187. package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
  188. package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
  189. package/dist/api/compiler/transformers/declarations.d.ts +4 -1
  190. package/dist/api/compiler/transformers/declarations.js +305 -238
  191. package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
  192. package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
  193. package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
  194. package/dist/api/compiler/transformers/destructuring.js +19 -18
  195. package/dist/api/compiler/transformers/emit-resolver.js +1 -1
  196. package/dist/api/compiler/transformers/es-decorators.js +55 -55
  197. package/dist/api/compiler/transformers/external-module-info.js +3 -3
  198. package/dist/api/compiler/transformers/for-await.js +25 -25
  199. package/dist/api/compiler/transformers/import-elision.js +14 -14
  200. package/dist/api/compiler/transformers/jsx.js +12 -12
  201. package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
  202. package/dist/api/compiler/transformers/module.js +8 -8
  203. package/dist/api/compiler/transformers/named-evaluation.js +4 -4
  204. package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
  205. package/dist/api/compiler/transformers/optional-chain.js +10 -10
  206. package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
  207. package/dist/api/compiler/transformers/reference-resolver.js +131 -69
  208. package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
  209. package/dist/api/compiler/transformers/subtree-facts.js +47 -47
  210. package/dist/api/compiler/transformers/syntax-facts.js +56 -58
  211. package/dist/api/compiler/transformers/type-eraser.js +73 -66
  212. package/dist/api/compiler/transformers/type-serialization.js +24 -24
  213. package/dist/api/compiler/transformers/using.js +12 -12
  214. package/dist/api/compiler/transformers/utilities.js +77 -77
  215. package/dist/api/compiler/transformers/visitor-base.js +172 -172
  216. package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
  217. package/dist/api/compiler/tsconfig.d.ts +10 -2
  218. package/dist/api/compiler/tsconfig.js +136 -48
  219. package/dist/api/compiler/type-printer.js +40 -3
  220. package/dist/api/compiler/types.d.ts +2 -1
  221. package/dist/api/library/ast.generated.d.ts +42 -39
  222. package/dist/api/library/ast.generated.js +1 -1
  223. package/dist/api/library/compiler-options.generated.d.ts +111 -100
  224. package/dist/api/library/compiler-options.generated.js +1 -1
  225. package/dist/api/library/disk.js +12 -1
  226. package/dist/api/library/enums.generated.d.ts +206 -206
  227. package/dist/api/library/enums.generated.js +206 -206
  228. package/dist/api/library/nodes.js +26 -26
  229. package/package.json +9 -9
  230. package/src/compiler/ast-utilities.ts +99 -7
  231. package/src/compiler/ast.ts +55 -26
  232. package/src/compiler/binder.ts +39 -4
  233. package/src/compiler/character-codes.ts +2 -2
  234. package/src/compiler/checker-calls.ts +76 -8
  235. package/src/compiler/checker-classes.ts +78 -24
  236. package/src/compiler/checker-contextual.ts +6 -1
  237. package/src/compiler/checker-declarations.ts +31 -4
  238. package/src/compiler/checker-declared-types.ts +8 -5
  239. package/src/compiler/checker-decorators.ts +1 -1
  240. package/src/compiler/checker-deprecation.ts +29 -8
  241. package/src/compiler/checker-destructuring.ts +10 -3
  242. package/src/compiler/checker-emit-helpers.ts +1 -0
  243. package/src/compiler/checker-emit-resolver.ts +16 -6
  244. package/src/compiler/checker-expressions.ts +79 -46
  245. package/src/compiler/checker-functions.ts +21 -6
  246. package/src/compiler/checker-generated-code.ts +2 -22
  247. package/src/compiler/checker-grammar.ts +133 -60
  248. package/src/compiler/checker-heritage.ts +22 -21
  249. package/src/compiler/checker-inference.ts +514 -87
  250. package/src/compiler/checker-iteration.ts +18 -31
  251. package/src/compiler/checker-javascript.ts +1 -1
  252. package/src/compiler/checker-jsdoc.ts +50 -27
  253. package/src/compiler/checker-jsx.ts +26 -4
  254. package/src/compiler/checker-members.ts +197 -55
  255. package/src/compiler/checker-modules.ts +332 -65
  256. package/src/compiler/checker-narrowing.ts +98 -19
  257. package/src/compiler/checker-object-literals.ts +3 -0
  258. package/src/compiler/checker-operators.ts +11 -4
  259. package/src/compiler/checker-property-access.ts +7 -2
  260. package/src/compiler/checker-services.ts +39 -12
  261. package/src/compiler/checker-signatures.ts +15 -1
  262. package/src/compiler/checker-source-file.ts +39 -13
  263. package/src/compiler/checker-statements.ts +3 -2
  264. package/src/compiler/checker-symbol-types.ts +29 -6
  265. package/src/compiler/checker-symbols.ts +158 -15
  266. package/src/compiler/checker-type-factory.ts +120 -21
  267. package/src/compiler/checker-type-nodes.ts +46 -3
  268. package/src/compiler/checker-type-operators.ts +83 -26
  269. package/src/compiler/checker-types.ts +147 -4
  270. package/src/compiler/checker-unused.ts +9 -14
  271. package/src/compiler/checker.ts +168 -41
  272. package/src/compiler/command-line.ts +28 -28
  273. package/src/compiler/compile-program.ts +51 -25
  274. package/src/compiler/decoder.ts +13 -4
  275. package/src/compiler/diagnostic-messages.ts +1973 -1892
  276. package/src/compiler/emitter.ts +57 -8
  277. package/src/compiler/encoder.ts +23 -8
  278. package/src/compiler/file-include.ts +9 -3
  279. package/src/compiler/file-loader.ts +139 -32
  280. package/src/compiler/help.ts +10 -14
  281. package/src/compiler/incremental.ts +86 -18
  282. package/src/compiler/init.ts +2 -7
  283. package/src/compiler/instantiation.ts +77 -22
  284. package/src/compiler/jsdoc.ts +3 -1
  285. package/src/compiler/link-tables.ts +82 -37
  286. package/src/compiler/locales/cs-CZ.ts +1 -1
  287. package/src/compiler/locales/de-DE.ts +1 -1
  288. package/src/compiler/locales/es-ES.ts +1 -1
  289. package/src/compiler/locales/fr-FR.ts +1 -1
  290. package/src/compiler/locales/it-IT.ts +1 -1
  291. package/src/compiler/locales/ja-JP.ts +1 -1
  292. package/src/compiler/locales/ko-KR.ts +1 -1
  293. package/src/compiler/locales/pl-PL.ts +1 -1
  294. package/src/compiler/locales/pt-BR.ts +1 -1
  295. package/src/compiler/locales/ru-RU.ts +1 -1
  296. package/src/compiler/locales/tr-TR.ts +1 -1
  297. package/src/compiler/locales/zh-CN.ts +1 -1
  298. package/src/compiler/locales/zh-TW.ts +1 -1
  299. package/src/compiler/module-resolution.ts +44 -8
  300. package/src/compiler/module-specifiers.ts +62 -20
  301. package/src/compiler/name-resolver.ts +9 -1
  302. package/src/compiler/node-builder-names.ts +236 -54
  303. package/src/compiler/node-builder-pseudo.ts +4 -7
  304. package/src/compiler/node-builder-reuse.ts +5 -4
  305. package/src/compiler/node-builder.ts +130 -31
  306. package/src/compiler/option-declarations.ts +33 -103
  307. package/src/compiler/options.ts +23 -62
  308. package/src/compiler/output-paths.ts +5 -18
  309. package/src/compiler/package-entrypoints.ts +345 -0
  310. package/src/compiler/package-json.ts +4 -4
  311. package/src/compiler/parallel-check.ts +197 -8
  312. package/src/compiler/parallel-emit.ts +1 -1
  313. package/src/compiler/parser.ts +156 -39
  314. package/src/compiler/path.ts +22 -2
  315. package/src/compiler/printer/emit-context.ts +16 -0
  316. package/src/compiler/printer/factory-base.ts +10 -3
  317. package/src/compiler/printer/factory.ts +4 -1
  318. package/src/compiler/printer/helpers.ts +10 -1
  319. package/src/compiler/printer/name-generator.ts +24 -2
  320. package/src/compiler/printer/printer.ts +35 -14
  321. package/src/compiler/printer/utilities.ts +8 -2
  322. package/src/compiler/program-checker.ts +53 -5
  323. package/src/compiler/program-utilities.ts +23 -10
  324. package/src/compiler/program.ts +13 -1
  325. package/src/compiler/pseudo-bigint.ts +17 -0
  326. package/src/compiler/regexp-checker.ts +63 -30
  327. package/src/compiler/relations.ts +233 -77
  328. package/src/compiler/reparser.ts +7 -2
  329. package/src/compiler/scanner.ts +109 -79
  330. package/src/compiler/shared-results.ts +2414 -0
  331. package/src/compiler/show-config.ts +18 -1
  332. package/src/compiler/sourcemap.ts +2 -2
  333. package/src/compiler/symbol-accessibility.ts +26 -3
  334. package/src/compiler/symbol.ts +31 -14
  335. package/src/compiler/syntax-kind.ts +188 -187
  336. package/src/compiler/thread-entry.ts +19 -2
  337. package/src/compiler/transformers/alias-references.ts +123 -4
  338. package/src/compiler/transformers/async.ts +2 -17
  339. package/src/compiler/transformers/class-fields.ts +13 -12
  340. package/src/compiler/transformers/commonjs-module.ts +11 -7
  341. package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
  342. package/src/compiler/transformers/declarations-pseudo.ts +2 -4
  343. package/src/compiler/transformers/declarations-resolver.ts +0 -3
  344. package/src/compiler/transformers/declarations-syntactic.ts +1 -21
  345. package/src/compiler/transformers/declarations.ts +134 -48
  346. package/src/compiler/transformers/decorator-metadata.ts +9 -1
  347. package/src/compiler/transformers/destructuring.ts +4 -3
  348. package/src/compiler/transformers/external-module-info.ts +1 -1
  349. package/src/compiler/transformers/jsx.ts +2 -1
  350. package/src/compiler/transformers/reference-resolver.ts +83 -19
  351. package/src/compiler/transformers/runtime-syntax.ts +6 -1
  352. package/src/compiler/transformers/syntax-facts.ts +2 -7
  353. package/src/compiler/transformers/type-eraser.ts +10 -1
  354. package/src/compiler/transformers/type-serialization.ts +3 -2
  355. package/src/compiler/transformers/visitor-base.ts +2 -1
  356. package/src/compiler/transformers/visitor-hooks.ts +9 -4
  357. package/src/compiler/tsc-build.ts +3 -0
  358. package/src/compiler/tsc-cli.ts +2 -0
  359. package/src/compiler/tsc-compile.ts +7 -2
  360. package/src/compiler/tsc-watch.ts +74 -45
  361. package/src/compiler/tsconfig.ts +176 -19
  362. package/src/compiler/type-printer.ts +36 -2
  363. package/src/compiler/types.ts +2 -1
  364. package/src/library/ast.generated.ts +57 -41
  365. package/src/library/compiler-options.generated.ts +117 -103
  366. package/src/library/disk.ts +10 -1
  367. package/src/library/enums.generated.ts +196 -196
@@ -0,0 +1,463 @@
1
+ import { type Node, type SourceFile } from './ast.js';
2
+ import type { Checker } from './checker.js';
3
+ import { ConditionalType, LiteralType, ObjectType, TupleType, Type, TypeAlias, UnionType, Signature } from './checker-types.js';
4
+ import { type Symbol } from './symbol.js';
5
+ declare const enum RecordKind {
6
+ /** A type the checker creates when it starts: `num` is its position in `initialTypes`. */
7
+ Initial = 0,
8
+ /** A regular literal type: `flags`, `text` or `num`. */
9
+ Literal = 1,
10
+ /** The fresh type of the literal type `refs[0]`. */
11
+ FreshLiteral = 2,
12
+ /** The literal type of the enum member `symbol`. */
13
+ EnumLiteral = 3,
14
+ /** The unique symbol type of `symbol`. */
15
+ UniqueSymbol = 4,
16
+ /** The declared type of `symbol` (class, interface, enum, type parameter). */
17
+ Declared = 5,
18
+ /** The this-type of the declared class or interface type of `symbol`. */
19
+ ThisType = 6,
20
+ /** The type of the value `symbol` (the anonymous type of a function, class, enum or module). */
21
+ SymbolType = 7,
22
+ /** The type of the type node `node` (a type literal, function or constructor type, mapped or conditional type). */
23
+ NodeType = 8,
24
+ /** A reference to the generic type `refs[0]` with the type arguments `refs[1..]`. */
25
+ Reference = 9,
26
+ /** The tuple target with the element flags `nums`, labeled by `nodes`, readonly when `num` is 1. */
27
+ TupleTarget = 10,
28
+ /**
29
+ * The instantiation of the anonymous, mapped or deferred reference type `refs[0]` with the `num` outer type arguments
30
+ * after it, then the return types its signatures had resolved (built after it).
31
+ */
32
+ Instantiation = 11,
33
+ /** A union of `refs`, with the origin `num` (a record index, or -1). */
34
+ Union = 12,
35
+ /** An intersection of `refs`. */
36
+ Intersection = 13,
37
+ /** `keyof refs[0]` with the index flags `num`. */
38
+ Index = 14,
39
+ /** `refs[0][refs[1]]` with the access flags `num`. */
40
+ IndexedAccess = 15,
41
+ /** The instantiation of the conditional type of `node` with outer type arguments `refs`, for constraints when `num` is 1. */
42
+ Conditional = 16,
43
+ /** A template literal type of `texts` and `refs`. */
44
+ Template = 17,
45
+ /** The string mapping `symbol` of `refs[0]`. */
46
+ StringMapping = 18,
47
+ /** A substitution type of `refs[0]` constrained by `refs[1]`. */
48
+ Substitution = 19,
49
+ /** `NoInfer<refs[0]>`. */
50
+ NoInfer = 20,
51
+ /**
52
+ * The member for the constituent `refs[last]` of the distribution of the conditional type of `node` instantiated
53
+ * with outer type arguments `refs[0..last)`, for constraints when `num` is 1.
54
+ */
55
+ DistributedConditional = 21,
56
+ /**
57
+ * An anonymous object type of the object literal `symbol` with members resolved when it was created (an object
58
+ * literal type, or its regular, widened or spread form), with the object flags `flags`. Its members come with the
59
+ * `CompleteObject` record that follows them.
60
+ */
61
+ AnonymousObject = 22,
62
+ /** The members of the `AnonymousObject` record `num`: the properties `refs` and the index infos `indexInfos`. */
63
+ CompleteObject = 23,
64
+ /**
65
+ * A property symbol a checker created (`text` its name, `flags` its symbol flags, `num` its check flags): its
66
+ * declarations `nodes`, value declaration `node`, type `refs[0]`, name type `refs[1]` (or -1), the symbol it was
67
+ * made from `refs[2]` (a property record, or -1 for `symbol`, a symbol of the program) and its parent `aliasSymbol`.
68
+ */
69
+ Property = 24
70
+ }
71
+ /** An index signature of an `AnonymousObject` record. */
72
+ export declare class PortableIndexInfo {
73
+ readonly keyType: number;
74
+ readonly valueType: number;
75
+ readonly isReadonly: boolean;
76
+ readonly declaration: Node | undefined;
77
+ readonly components: readonly Node[];
78
+ constructor(keyType: number, valueType: number, isReadonly: boolean, declaration: Node | undefined, components: readonly Node[]);
79
+ }
80
+ export declare class PortableRecord {
81
+ readonly kind: RecordKind;
82
+ readonly flags: number;
83
+ readonly num: number;
84
+ readonly text: string;
85
+ symbol: Symbol | undefined;
86
+ readonly node: Node | undefined;
87
+ readonly refs: readonly number[];
88
+ nums: readonly number[];
89
+ nodes: readonly (Node | undefined)[];
90
+ texts: readonly string[];
91
+ /** For a symbol a checker merged: the id of a symbol it merged, which keys every checker's merged symbol. */
92
+ mergedId: number;
93
+ /** The alias: its symbol and the records of its type arguments. */
94
+ aliasSymbol: Symbol | undefined;
95
+ aliasMergedId: number;
96
+ aliasRefs: readonly number[];
97
+ indexInfos: readonly PortableIndexInfo[];
98
+ /** The producer's type id, which keys the consumer's translations of the producer's types. */
99
+ readonly id: number;
100
+ constructor(kind: RecordKind, id: number, flags: number, num: number, text: string, symbol: Symbol | undefined, node: Node | undefined, refs: readonly number[]);
101
+ }
102
+ /** The types every checker creates when it starts, in the same order; marker types are left out. */
103
+ export declare function initialTypes(c: Checker): Type[];
104
+ /** A checker's `Exporter.mergedOrigins`, kept while its merged symbols stay the same. */
105
+ export declare class MergedOrigins {
106
+ origins: Map<Symbol, number>;
107
+ size: number;
108
+ }
109
+ /** Writes a result as records; `failure` names the first part that has no record kind. */
110
+ export declare class Exporter {
111
+ readonly c: Checker;
112
+ records: PortableRecord[];
113
+ readonly indexes: Map<Type, number>;
114
+ /**
115
+ * The index of `records[0]`. A checker's exporter keeps the indexes of the types it exported before
116
+ * (`ThreadSharing.post`): their records are in its store already, and a result's records are only the new ones.
117
+ */
118
+ base: number;
119
+ /** The types and properties the export in progress gave indexes, which a failed export forgets again. */
120
+ readonly addedTypes: Type[];
121
+ readonly addedProperties: Symbol[];
122
+ /** Appends `record`; its index. */
123
+ push(record: PortableRecord): number;
124
+ readonly initial: Map<Type, number>;
125
+ failure: string | undefined;
126
+ /** The ids above which nodes and symbols are the checker thread's own (lazily parsed JSDoc), or Infinity. */
127
+ nodeLimit: number;
128
+ symbolLimit: number;
129
+ constructor(c: Checker, initial: Map<Type, number>);
130
+ /** Whether `node` is one every checker shares; fails if not. */
131
+ sharedNode(node: Node | undefined): boolean;
132
+ /** The ids of the symbols each merged symbol merged (`getMergedSymbol`), built on first use. */
133
+ mergedOrigins: Map<Symbol, number> | undefined;
134
+ /** Where the checker keeps `mergedOrigins` between exports. */
135
+ originsCache: MergedOrigins | undefined;
136
+ /**
137
+ * Sets the symbol of `record`: a symbol of the program, which every checker shares, or a symbol the checker merged,
138
+ * by the id of a symbol it merged. Other symbols are the checker's own.
139
+ */
140
+ symbolOf(record: PortableRecord, symbol: Symbol, alias: boolean): boolean;
141
+ /** `new PortableRecord` with the symbol `symbol` (see `symbolOf`); undefined if it is the checker's own. */
142
+ withSymbol(kind: RecordKind, t: Type, symbol: Symbol, num: number, refs: readonly number[]): PortableRecord | undefined;
143
+ addWithSymbol(kind: RecordKind, t: Type, symbol: Symbol, num: number, refs: readonly number[]): number;
144
+ fail(reason: string): number;
145
+ add(t: Type, record: PortableRecord): number;
146
+ types(list: readonly Type[]): number[];
147
+ aliasOf(record: PortableRecord, alias: TypeAlias | undefined): PortableRecord;
148
+ type(t: Type): number;
149
+ literal(t: LiteralType): number;
150
+ union(t: UnionType): number;
151
+ object(t: ObjectType): number;
152
+ /** An object literal type, or one made from one, with its properties and index infos. */
153
+ anonymousObject(t: ObjectType): number;
154
+ /** The records of property symbols, by symbol. */
155
+ readonly properties: Map<Symbol, number>;
156
+ /** A property symbol of an object literal type: a checker's own, made from one of the program or from another. */
157
+ property(prop: Symbol): number;
158
+ tupleTarget(t: TupleType): number;
159
+ /** An instantiated anonymous or mapped type, or a deferred type reference: its target and outer type arguments. */
160
+ instantiation(t: ObjectType): number;
161
+ /**
162
+ * Adds to `refs` the return types the checker resolved for the signatures of the instantiation `t`, exported after
163
+ * it. The consumer then creates them right after `t` and before the types that contain it, as this checker did:
164
+ * inference stops at references whose type ids grow along its stack (`isDeeplyNestedType`), so a consumer that
165
+ * created them later, when it resolved them, could stop an inference this checker made.
166
+ */
167
+ resolvedReturnTypes(t: ObjectType, refs: number[]): void;
168
+ /**
169
+ * The record of `t`, or -1 if it can't be exported; that leaves the export in progress as it was. An export that
170
+ * failed before stays failed.
171
+ */
172
+ optionalType(t: Type): number;
173
+ conditional(t: ConditionalType): number;
174
+ }
175
+ /** Translates records into a checker's own types; one translation per producer type. */
176
+ export declare class Translator {
177
+ readonly c: Checker;
178
+ readonly translated: Map<number, Type>;
179
+ readonly initial: Type[];
180
+ /** Set when a record has no counterpart here; the translation is then abandoned. */
181
+ failed: boolean;
182
+ constructor(c: Checker);
183
+ /** A property symbol made as the producer made it. */
184
+ property(r: PortableRecord, types: Type[], symbols: (Symbol | undefined)[]): Symbol;
185
+ /** Sets the members of the `AnonymousObject` record a `CompleteObject` record completes. */
186
+ complete(r: PortableRecord, types: Type[], symbols: (Symbol | undefined)[]): void;
187
+ record(r: PortableRecord, types: Type[]): Type;
188
+ /**
189
+ * Resolves the declared type of the type alias whose declaration contains the type node `node`, as resolving its
190
+ * nodes through the alias does: that records the alias's type parameters, which its variances are measured with.
191
+ * Sets `failed` if the alias's declared type is being resolved here.
192
+ */
193
+ aliasOfNode(node: Node): void;
194
+ alias(r: PortableRecord, types: Type[]): TypeAlias | undefined;
195
+ symbol(r: PortableRecord): Symbol;
196
+ build(r: PortableRecord, types: Type[]): Type;
197
+ }
198
+ /** Whether the type of `symbol` is shared: a variable or property declared in the program, other than parameters. */
199
+ export declare function isSharedValueSymbol(symbol: Symbol): boolean;
200
+ /** Whether the return type of `sig` is shared: the signature of a declaration, as `getSignatureFromDeclaration` makes it. */
201
+ export declare function isSharedReturnSignature(c: Checker, sig: Signature): boolean;
202
+ /** Whether checker threads share results (TSC_TS_SHARE=1). */
203
+ export declare const shareThreads: boolean;
204
+ /**
205
+ * What a checker thread needs to share results with the others; posted in its `workerData` (a plain object: class
206
+ * instances arrive without their class).
207
+ */
208
+ export interface ThreadSharingData {
209
+ readonly index: number;
210
+ readonly count: number;
211
+ /**
212
+ * For each file, by file index: -2 if no checker checks it, -1 if checkers check it in statement ranges, 0 until a
213
+ * checker takes it, and 1 + k once checker k took it.
214
+ */
215
+ readonly takers: SharedArrayBuffer;
216
+ /**
217
+ * For each file, by file index, the checkers (one bit each) that took a result for a declaration in it before any
218
+ * checker took the file: they never check it, and hand its positions on (`handoff`).
219
+ */
220
+ readonly forbidden: SharedArrayBuffer;
221
+ /**
222
+ * Positions of the order a checker handed on: a lock, their number, the number of checkers that may still hand
223
+ * positions on, then the positions.
224
+ */
225
+ readonly handoff: SharedArrayBuffer;
226
+ readonly typeTable: SharedArrayBuffer;
227
+ readonly returnTable: SharedArrayBuffer;
228
+ /** The ids above which nodes and symbols are a thread's own. */
229
+ readonly nodeIds: number;
230
+ readonly symbolIds: number;
231
+ /**
232
+ * Each checker's store of the records of the results it shares, by checker index: their numbers, and the code units
233
+ * of their strings. `used` has two counters per checker, how much of each it wrote. (Results go through shared
234
+ * memory: a message a worker receives synchronously makes the native build store the number fields of classes as
235
+ * doubles.)
236
+ */
237
+ readonly numberLogs: SharedArrayBuffer[];
238
+ readonly stringLogs: SharedArrayBuffer[];
239
+ readonly used: SharedArrayBuffer;
240
+ /** For each checker, where each record of its store is in its number log, and each object's completion. */
241
+ readonly recordTables: SharedArrayBuffer[];
242
+ }
243
+ /**
244
+ * The size of each checker's logs: numbers (int32s) and string code units (2 bytes each), 8 MB and 2 MB. Only the
245
+ * pages a checker writes take memory.
246
+ */
247
+ export declare const numberLogSize: number;
248
+ export declare const stringLogSize: number;
249
+ /** The number of records each checker's store can hold. */
250
+ export declare const recordTableSize: number;
251
+ /** The number of entries of each result table: a power of two. */
252
+ export declare const resultTableSize: number;
253
+ /**
254
+ * The most checker threads that share results: a result's state (`postedState`) holds the checker and an offset in
255
+ * its number log, below `numberLogSize` (2^21), in one int32, so the count times 2^21 stays below 2^31 - 2.
256
+ */
257
+ export declare const maxSharingCheckers = 1023;
258
+ /** The state of the result checker `producer` of `count` posted at `offset` of its number log. */
259
+ export declare function postedState(count: number, producer: number, offset: number): number;
260
+ /** The checker that posted the result of `state`, of `count` checkers. */
261
+ export declare function postedProducer(count: number, state: number): number;
262
+ /** The offset in its producer's number log of the result of `state`, of `count` checkers. */
263
+ export declare function postedOffset(count: number, state: number): number;
264
+ /** The int32 words of each file's forbidden bits (`ThreadSharingData.forbidden`): a bit for each of `count` checkers. */
265
+ export declare function forbiddenWords(count: number): number;
266
+ /** Whether checker `index` of `count` took results for declarations of file `file` before any checker took it. */
267
+ export declare function isForbidden(forbidden: Int32Array, count: number, file: number, index: number): boolean;
268
+ /**
269
+ * An open-addressing table in a SharedArrayBuffer, from a key (a symbol or node id) to a result's state: 0 until a
270
+ * checker posts it, then `postedState`.
271
+ */
272
+ export declare class ResultTable {
273
+ readonly words: Int32Array;
274
+ constructor(buffer: SharedArrayBuffer);
275
+ /** The slot of `key`, inserted if absent; -1 if the table is full. */
276
+ slot(key: number): number;
277
+ state(slot: number): number;
278
+ /** The slot of `key`, or -1 if it has none. */
279
+ find(key: number): number;
280
+ /** Sets the state of `slot` to a posted result's unless one is there already. */
281
+ publish(slot: number, state: number): void;
282
+ }
283
+ /** Sets the sharing data of this checker thread; its first checker shares with the other threads. */
284
+ export declare function setThreadSharingData(data: ThreadSharingData | undefined): void;
285
+ /** Gives `c` the thread's sharing state, if the thread shares and no checker of it has it yet. */
286
+ export declare function startThreadSharing(c: Checker): void;
287
+ /** A checker's state of sharing with the other checker threads. */
288
+ /** A set of ids (symbol or node ids), a bit each. */
289
+ export declare class IdBits {
290
+ private bits;
291
+ has(id: number): boolean;
292
+ add(id: number): void;
293
+ }
294
+ /**
295
+ * The files of the diagnostics of results, by key (a symbol or declaration id), with a bit per key: most results have
296
+ * none, and the bit answers that without a lookup.
297
+ */
298
+ export declare class FilesByKey {
299
+ private readonly files;
300
+ private readonly keys;
301
+ get(key: number): readonly string[] | undefined;
302
+ set(key: number, files: readonly string[]): void;
303
+ }
304
+ export declare class ThreadSharing {
305
+ readonly c: Checker;
306
+ readonly data: ThreadSharingData;
307
+ readonly types: ResultTable;
308
+ readonly returns: ResultTable;
309
+ /** TSC_TS_SHARE_MIN_MS: the shortest computation this checker posts. */
310
+ readonly minMs: number;
311
+ readonly initialIndexes: Map<Type, number>;
312
+ readonly initial: Type[];
313
+ readonly numberLogs: Int32Array[];
314
+ readonly recordTables: Int32Array[];
315
+ readonly stringLogs: Uint16Array[];
316
+ readonly used: Int32Array;
317
+ readonly takers: Int32Array;
318
+ readonly forbidden: Int32Array;
319
+ /** The number of results this checker posted. */
320
+ posted: number;
321
+ translated: number;
322
+ /** Outermost shared-kind computations: nesting depth, the kind of the current one, and the time by kind. */
323
+ depth: number;
324
+ kind: number;
325
+ readonly kindMs: number[];
326
+ /** Kinds: 0 owned, 1 computed here for a file another checker took, 2 translated, 3 other. */
327
+ addOutermost(ms: number): void;
328
+ notShareable: number;
329
+ notShareableMs: number;
330
+ /** Whether the outermost computations are timed by kind (TSC_TS_SHARE_SUMMARY). */
331
+ readonly timing: boolean;
332
+ /** TSC_TS_SHARE_VERIFY: translations checked, and those equal only as text. */
333
+ verified: number;
334
+ verifiedIdentity: number;
335
+ belowMin: number;
336
+ belowMinMs: number;
337
+ exportFailed: number;
338
+ exportFailedMs: number;
339
+ readonly exportFailures: Map<string, number>;
340
+ packFailed: number;
341
+ /** Of `packFailed`, the results that didn't fit in this checker's logs. */
342
+ logFull: number;
343
+ computedPrivately: number;
344
+ /** How often a posted result couldn't be taken here; and results for declarations of the checker's own files. */
345
+ sawDoneUnusable: number;
346
+ owned: number;
347
+ unpackMs: number;
348
+ /** The program's nodes results named, by id. */
349
+ readonly nodesById: Map<number, Node>;
350
+ readonly origins: MergedOrigins;
351
+ translationMs: number;
352
+ exportMs: number;
353
+ /** The symbol and signature whose next `getTypeOfSymbol` or `getReturnTypeOfSignature` computes here. */
354
+ computing: Symbol | undefined;
355
+ computingSignature: Signature | undefined;
356
+ /** The value type of `symbol`, or else the return type of `sig`, computed here. */
357
+ computeHere(symbol: Symbol | undefined, sig: Signature | undefined): Type;
358
+ /**
359
+ * The files of the diagnostics each value type (by symbol id) and return type (by declaration id) reported, with
360
+ * those of the results it used, cached and translated ones too; only for results with diagnostics. A checker that
361
+ * takes a result checks none of these files, since it would have reported the diagnostics in them.
362
+ */
363
+ readonly typeFiles: FilesByKey;
364
+ readonly returnFiles: FilesByKey;
365
+ /** The files of the computations in progress, innermost last. */
366
+ readonly fileStack: (Set<string> | undefined)[];
367
+ /** Adds `files` to those of the computation in progress. */
368
+ noteFiles(files: readonly string[] | undefined): void;
369
+ /** The last `computeShared`: whether its result can be shared, and how long it took. */
370
+ lastShareable: boolean;
371
+ lastMs: number;
372
+ /** `tracked`, recording whether the result can be shared, which it can't when the computation met a resolution cycle. */
373
+ computeShared(files: FilesByKey, key: number, symbol: Symbol | undefined, sig: Signature | undefined): Type;
374
+ /** Runs `compute`, keeping in `files` under `key` the files of its diagnostics and of the results it used. */
375
+ tracked(files: FilesByKey, key: number, symbol: Symbol | undefined, sig: Signature | undefined): Type;
376
+ constructor(c: Checker, data: ThreadSharingData);
377
+ summary(): string;
378
+ /**
379
+ * Whether this checker checks `file`, or may: a result computed for a declaration in it is never taken here. That is
380
+ * a file it took, and one checked in statement ranges; a file no checker took yet it never checks once it took a
381
+ * result for it (`forbid`).
382
+ */
383
+ owns(file: SourceFile): boolean;
384
+ /** After taking a result for a declaration in `file`: if no checker took the file yet, this one never will. */
385
+ forbid(file: SourceFile): void;
386
+ /**
387
+ * Whether taking a result would leave file `index` to no checker: no checker took it, and every other checker
388
+ * took results for its declarations already. The main thread would check it, alone.
389
+ */
390
+ forbidsLast(index: number): boolean;
391
+ forbidsLastNamed(fileName: string): boolean;
392
+ forbidNamed(fileName: string): void;
393
+ filesByName: Map<string, SourceFile> | undefined;
394
+ ownsFileNamed(fileName: string): boolean;
395
+ /** The result checker `k` posted at `offset` in its number log. */
396
+ result(k: number, offset: number): StoredResult;
397
+ /** The exporter of this checker's store: it exports each type once. */
398
+ storeExporter: Exporter | undefined;
399
+ /**
400
+ * Exports `t` into this checker's store and logs a result with it as the root; returns its state for the result
401
+ * tables, -1 if it doesn't fit in the logs or a node or symbol in it can't be named across threads, or why it can't
402
+ * be exported.
403
+ */
404
+ post(t: Type, diagnosticFiles: readonly string[]): number | string;
405
+ /** The records this checker stored. */
406
+ storedRecords: number;
407
+ /** The readers of the other checkers' stores. */
408
+ readonly readers: (StoreReader | undefined)[];
409
+ /** The translation of `posted` into this checker, or undefined if it can't be taken here. */
410
+ translatePosted(producer: number, posted: StoredResult, files: FilesByKey, key: number, declarationFile: SourceFile): Type | undefined;
411
+ }
412
+ /** A result in a checker's store: the record of its type, and the files of its diagnostics. */
413
+ export declare class StoredResult {
414
+ readonly root: number;
415
+ readonly files: string[];
416
+ constructor(root: number, files: string[]);
417
+ }
418
+ /** Shares the value type of `symbol` with the other checker threads, computing it with `compute` where needed. */
419
+ export declare function threadTypeOfSymbol(c: Checker, symbol: Symbol): Type;
420
+ /** Notes that the computation in progress used the cached return type of `sig` (see `ThreadSharing.typeFiles`). */
421
+ export declare function noteReturnTypeUse(c: Checker, sig: Signature): void;
422
+ export declare function threadReturnType(c: Checker, sig: Signature): Type;
423
+ /** Reads records from a checker's store. */
424
+ declare class RecordUnpacker {
425
+ readonly c: Checker;
426
+ readonly f: Int32Array;
427
+ readonly strings: Uint16Array;
428
+ at: number;
429
+ failed: boolean;
430
+ /** The nodes found so far, by id. */
431
+ readonly nodesById: Map<number, Node>;
432
+ constructor(c: Checker, numbers: Int32Array, strings: Uint16Array, nodesById: Map<number, Node>);
433
+ next(): number;
434
+ double(): number;
435
+ text(): string;
436
+ list(): number[];
437
+ node(): Node | undefined;
438
+ nodes(): (Node | undefined)[];
439
+ symbol(): Symbol | undefined;
440
+ }
441
+ /**
442
+ * A consumer's translations of another checker's store: each record is read and translated once, when a result
443
+ * first needs it, in the order of the store, which is the order the producer exported them in.
444
+ */
445
+ declare class StoreReader {
446
+ readonly sharing: ThreadSharing;
447
+ readonly producer: number;
448
+ readonly translator: Translator;
449
+ readonly table: Int32Array;
450
+ readonly unpacker: RecordUnpacker;
451
+ /** By record: the record, its translation and whether it is translated. */
452
+ readonly records: (PortableRecord | undefined)[];
453
+ readonly types: Type[];
454
+ readonly symbols: (Symbol | undefined)[];
455
+ readonly built: number[];
456
+ constructor(sharing: ThreadSharing, producer: number);
457
+ private ensure;
458
+ /** Record `index`, read on first use; undefined if a node or symbol in it isn't in this program. */
459
+ private record;
460
+ /** The translation of record `root` and the records it needs; undefined if one can't be translated here. */
461
+ translate(root: number): Type | undefined;
462
+ }
463
+ export {};