@scriptc/compiler 0.0.34 → 0.0.36

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 (424) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +7 -6
  2. package/dist/backend/build-cache.d.ts +44 -0
  3. package/dist/backend/build-cache.js +241 -0
  4. package/dist/backend/build-cache.js.map +1 -0
  5. package/dist/backend/{emission/emit-async.d.ts → c/async.d.ts} +21 -30
  6. package/dist/backend/{emission/emit-async.js → c/async.js} +270 -286
  7. package/dist/backend/c/async.js.map +1 -0
  8. package/dist/backend/{emission/emitter.d.ts → c/c-emitter.d.ts} +6 -23
  9. package/dist/backend/{emission/emitter.js → c/c-emitter.js} +53 -107
  10. package/dist/backend/c/c-emitter.js.map +1 -0
  11. package/dist/backend/c/exprs.d.ts +8 -0
  12. package/dist/backend/c/exprs.js +7913 -0
  13. package/dist/backend/c/exprs.js.map +1 -0
  14. package/dist/backend/{emission/emit-island.d.ts → c/island.d.ts} +5 -5
  15. package/dist/backend/{emission/emit-island.js → c/island.js} +24 -22
  16. package/dist/backend/c/island.js.map +1 -0
  17. package/dist/backend/{emission → c}/may-throw.d.ts +1 -1
  18. package/dist/backend/{emission → c}/may-throw.js +1 -1
  19. package/dist/backend/c/may-throw.js.map +1 -0
  20. package/dist/backend/{emission/emit-shapes.d.ts → c/shapes.d.ts} +19 -19
  21. package/dist/backend/{emission/emit-shapes.js → c/shapes.js} +78 -87
  22. package/dist/backend/c/shapes.js.map +1 -0
  23. package/dist/backend/{emission/emit-stmts.d.ts → c/stmts.d.ts} +12 -12
  24. package/dist/backend/{emission/emit-stmts.js → c/stmts.js} +377 -343
  25. package/dist/backend/c/stmts.js.map +1 -0
  26. package/dist/backend/{emission/emit-types.d.ts → c/types.d.ts} +1 -1
  27. package/dist/backend/{emission/emit-types.js → c/types.js} +42 -286
  28. package/dist/backend/c/types.js.map +1 -0
  29. package/dist/backend/c/types.test.js +25 -0
  30. package/dist/backend/c/types.test.js.map +1 -0
  31. package/dist/backend/{emission/emit-walkers.d.ts → c/walkers.d.ts} +19 -41
  32. package/dist/backend/{emission/emit-walkers.js → c/walkers.js} +238 -298
  33. package/dist/backend/c/walkers.js.map +1 -0
  34. package/dist/backend/ffi-callbacks.d.ts +1 -1
  35. package/dist/backend/ffi-callbacks.js +4 -3
  36. package/dist/backend/ffi-callbacks.js.map +1 -1
  37. package/dist/backend/{library-identity.d.ts → library-identity-markers.d.ts} +0 -4
  38. package/dist/backend/{library-identity.js → library-identity-markers.js} +10 -9
  39. package/dist/backend/library-identity-markers.js.map +1 -0
  40. package/dist/backend/llvm/blocks.d.ts +4 -0
  41. package/dist/backend/llvm/blocks.js +29 -0
  42. package/dist/backend/llvm/blocks.js.map +1 -1
  43. package/dist/backend/llvm/classes.d.ts +2 -19
  44. package/dist/backend/llvm/classes.js +20 -52
  45. package/dist/backend/llvm/classes.js.map +1 -1
  46. package/dist/backend/llvm/common.d.ts +4 -0
  47. package/dist/backend/llvm/common.js +27 -0
  48. package/dist/backend/llvm/common.js.map +1 -0
  49. package/dist/backend/llvm/dyn.d.ts +3 -8
  50. package/dist/backend/llvm/dyn.js +152 -224
  51. package/dist/backend/llvm/dyn.js.map +1 -1
  52. package/dist/backend/llvm/emitter.d.ts +4 -1
  53. package/dist/backend/llvm/emitter.js +514 -9981
  54. package/dist/backend/llvm/emitter.js.map +1 -1
  55. package/dist/backend/llvm/expr-async.d.ts +4 -0
  56. package/dist/backend/llvm/expr-async.js +726 -0
  57. package/dist/backend/llvm/expr-async.js.map +1 -0
  58. package/dist/backend/llvm/expr-bytes.d.ts +13 -0
  59. package/dist/backend/llvm/expr-bytes.js +456 -0
  60. package/dist/backend/llvm/expr-bytes.js.map +1 -0
  61. package/dist/backend/llvm/expr-callbacks.d.ts +22 -0
  62. package/dist/backend/llvm/expr-callbacks.js +520 -0
  63. package/dist/backend/llvm/expr-callbacks.js.map +1 -0
  64. package/dist/backend/llvm/expr-calls.d.ts +2 -0
  65. package/dist/backend/llvm/expr-calls.js +618 -0
  66. package/dist/backend/llvm/expr-calls.js.map +1 -0
  67. package/dist/backend/llvm/expr-containers.d.ts +25 -0
  68. package/dist/backend/llvm/expr-containers.js +623 -0
  69. package/dist/backend/llvm/expr-containers.js.map +1 -0
  70. package/dist/backend/llvm/expr-context.d.ts +255 -0
  71. package/dist/backend/llvm/expr-context.js +2 -0
  72. package/dist/backend/llvm/expr-context.js.map +1 -0
  73. package/dist/backend/llvm/expr-control.d.ts +2 -0
  74. package/dist/backend/llvm/expr-control.js +473 -0
  75. package/dist/backend/llvm/expr-control.js.map +1 -0
  76. package/dist/backend/llvm/expr-dispatch.d.ts +4 -0
  77. package/dist/backend/llvm/expr-dispatch.js +151 -0
  78. package/dist/backend/llvm/expr-dispatch.js.map +1 -0
  79. package/dist/backend/llvm/expr-dynamic.d.ts +2 -0
  80. package/dist/backend/llvm/expr-dynamic.js +810 -0
  81. package/dist/backend/llvm/expr-dynamic.js.map +1 -0
  82. package/dist/backend/llvm/expr-island.d.ts +15 -0
  83. package/dist/backend/llvm/expr-island.js +690 -0
  84. package/dist/backend/llvm/expr-island.js.map +1 -0
  85. package/dist/backend/llvm/expr-primitives.d.ts +6 -0
  86. package/dist/backend/llvm/expr-primitives.js +622 -0
  87. package/dist/backend/llvm/expr-primitives.js.map +1 -0
  88. package/dist/backend/llvm/expr-records.d.ts +9 -0
  89. package/dist/backend/llvm/expr-records.js +299 -0
  90. package/dist/backend/llvm/expr-records.js.map +1 -0
  91. package/dist/backend/llvm/expr-stream-bridges.d.ts +13 -0
  92. package/dist/backend/llvm/expr-stream-bridges.js +396 -0
  93. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -0
  94. package/dist/backend/llvm/expr-stream-callbacks.d.ts +12 -0
  95. package/dist/backend/llvm/expr-stream-callbacks.js +360 -0
  96. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -0
  97. package/dist/backend/llvm/lib-dispatch.d.ts +5 -0
  98. package/dist/backend/llvm/lib-dispatch.js +267 -0
  99. package/dist/backend/llvm/lib-dispatch.js.map +1 -0
  100. package/dist/backend/llvm/lib-filesystem.d.ts +6 -0
  101. package/dist/backend/llvm/lib-filesystem.js +594 -0
  102. package/dist/backend/llvm/lib-filesystem.js.map +1 -0
  103. package/dist/backend/llvm/lib-network.d.ts +2 -0
  104. package/dist/backend/llvm/lib-network.js +429 -0
  105. package/dist/backend/llvm/lib-network.js.map +1 -0
  106. package/dist/backend/llvm/lib-process.d.ts +5 -0
  107. package/dist/backend/llvm/lib-process.js +585 -0
  108. package/dist/backend/llvm/lib-process.js.map +1 -0
  109. package/dist/backend/llvm/lib-shared.d.ts +6 -0
  110. package/dist/backend/llvm/lib-shared.js +687 -0
  111. package/dist/backend/llvm/lib-shared.js.map +1 -0
  112. package/dist/backend/llvm/lib-stream.d.ts +2 -0
  113. package/dist/backend/llvm/lib-stream.js +470 -0
  114. package/dist/backend/llvm/lib-stream.js.map +1 -0
  115. package/dist/backend/llvm/shapes.d.ts +12 -2
  116. package/dist/backend/llvm/shapes.js +66 -307
  117. package/dist/backend/llvm/shapes.js.map +1 -1
  118. package/dist/backend/llvm/shapes.test.js +52 -0
  119. package/dist/backend/llvm/shapes.test.js.map +1 -0
  120. package/dist/backend/llvm/split.d.ts +43 -0
  121. package/dist/backend/llvm/split.js +227 -0
  122. package/dist/backend/llvm/split.js.map +1 -0
  123. package/dist/backend/llvm/split.test.d.ts +1 -0
  124. package/dist/backend/llvm/split.test.js +102 -0
  125. package/dist/backend/llvm/split.test.js.map +1 -0
  126. package/dist/backend/llvm/unsupported.d.ts +1 -1
  127. package/dist/backend/llvm/walkers.d.ts +2 -3
  128. package/dist/backend/llvm/walkers.js +164 -218
  129. package/dist/backend/llvm/walkers.js.map +1 -1
  130. package/dist/backend/native-codegen.d.ts +38 -0
  131. package/dist/backend/native-codegen.js +261 -0
  132. package/dist/backend/native-codegen.js.map +1 -0
  133. package/dist/backend/native-codegen.test.d.ts +1 -0
  134. package/dist/backend/native-codegen.test.js +188 -0
  135. package/dist/backend/native-codegen.test.js.map +1 -0
  136. package/dist/backend/native-link-info.d.ts +96 -0
  137. package/dist/backend/native-link-info.js +219 -0
  138. package/dist/backend/native-link-info.js.map +1 -0
  139. package/dist/backend/native-link-info.test.d.ts +1 -0
  140. package/dist/backend/native-link-info.test.js +134 -0
  141. package/dist/backend/native-link-info.test.js.map +1 -0
  142. package/dist/backend/{cc.d.ts → native-toolchain.d.ts} +139 -47
  143. package/dist/backend/{cc.js → native-toolchain.js} +1008 -910
  144. package/dist/backend/native-toolchain.js.map +1 -0
  145. package/dist/backend/native-toolchain.test.d.ts +1 -0
  146. package/dist/backend/{cc-cache.test.js → native-toolchain.test.js} +1297 -127
  147. package/dist/backend/native-toolchain.test.js.map +1 -0
  148. package/dist/backend/object-localize.js +1 -1
  149. package/dist/backend/object-localize.test.js +20 -0
  150. package/dist/backend/object-localize.test.js.map +1 -1
  151. package/dist/backend/runtime-abi.d.ts +10 -0
  152. package/dist/backend/runtime-abi.js +11 -0
  153. package/dist/backend/runtime-abi.js.map +1 -0
  154. package/dist/backend/runtime-pack.d.ts +137 -0
  155. package/dist/backend/runtime-pack.js +400 -0
  156. package/dist/backend/runtime-pack.js.map +1 -0
  157. package/dist/backend/runtime-pack.test.d.ts +1 -0
  158. package/dist/backend/runtime-pack.test.js +438 -0
  159. package/dist/backend/runtime-pack.test.js.map +1 -0
  160. package/dist/backend/targets.d.ts +30 -0
  161. package/dist/backend/targets.js +46 -0
  162. package/dist/backend/targets.js.map +1 -0
  163. package/dist/backend/targets.test.d.ts +1 -0
  164. package/dist/backend/targets.test.js +19 -0
  165. package/dist/backend/targets.test.js.map +1 -0
  166. package/dist/backend/vendor-archives.d.ts +41 -0
  167. package/dist/backend/vendor-archives.js +462 -0
  168. package/dist/backend/vendor-archives.js.map +1 -0
  169. package/dist/compat/fetch-profile.d.ts +0 -1
  170. package/dist/compat/fetch-profile.js +0 -1
  171. package/dist/compat/fetch-profile.js.map +1 -1
  172. package/dist/coverage/report.js +3 -3
  173. package/dist/coverage/report.js.map +1 -1
  174. package/dist/coverage/surface-manifest.js +25 -32
  175. package/dist/coverage/surface-manifest.js.map +1 -1
  176. package/dist/diagnostics/diagnostic.d.ts +11 -12
  177. package/dist/diagnostics/diagnostic.js +19 -17
  178. package/dist/diagnostics/diagnostic.js.map +1 -1
  179. package/dist/diagnostics/render.d.ts +1 -1
  180. package/dist/diagnostics/render.js +1 -1
  181. package/dist/diagnostics/render.js.map +1 -1
  182. package/dist/errors.d.ts +5 -0
  183. package/dist/errors.js +9 -0
  184. package/dist/errors.js.map +1 -0
  185. package/dist/executable/executable-cache.d.ts +86 -0
  186. package/dist/executable/executable-cache.js +398 -0
  187. package/dist/executable/executable-cache.js.map +1 -0
  188. package/dist/executable/executable-cache.test.d.ts +1 -0
  189. package/dist/executable/executable-cache.test.js +300 -0
  190. package/dist/executable/executable-cache.test.js.map +1 -0
  191. package/dist/ffi/{profile.d.ts → ffi-manifest.d.ts} +7 -2
  192. package/dist/ffi/{profile.js → ffi-manifest.js} +2 -1
  193. package/dist/ffi/ffi-manifest.js.map +1 -0
  194. package/dist/frontend/builtin-modules.d.ts +21 -0
  195. package/dist/frontend/builtin-modules.js +82 -0
  196. package/dist/frontend/builtin-modules.js.map +1 -0
  197. package/dist/frontend/cjs-lexer.d.ts +7 -0
  198. package/dist/frontend/cjs-lexer.js +15 -17
  199. package/dist/frontend/cjs-lexer.js.map +1 -1
  200. package/dist/frontend/dts-paths.d.ts +26 -0
  201. package/dist/frontend/dts-paths.js +41 -0
  202. package/dist/frontend/dts-paths.js.map +1 -0
  203. package/dist/frontend/input-tracker.d.ts +0 -2
  204. package/dist/frontend/input-tracker.js +1 -4
  205. package/dist/frontend/input-tracker.js.map +1 -1
  206. package/dist/frontend/lib-contract.d.ts +1 -5
  207. package/dist/frontend/lib-contract.js +1 -1
  208. package/dist/frontend/lib-contract.js.map +1 -1
  209. package/dist/frontend/lib-exports.d.ts +1 -1
  210. package/dist/frontend/lowering/call-position.d.ts +4 -0
  211. package/dist/frontend/lowering/call-position.js +7 -0
  212. package/dist/frontend/lowering/call-position.js.map +1 -0
  213. package/dist/frontend/lowering/callback-arg.d.ts +20 -0
  214. package/dist/frontend/lowering/callback-arg.js +44 -0
  215. package/dist/frontend/lowering/callback-arg.js.map +1 -0
  216. package/dist/frontend/lowering/lib-boundary.d.ts +1 -1
  217. package/dist/frontend/lowering/lib-boundary.js +34 -34
  218. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  219. package/dist/frontend/lowering/lower-assert.d.ts +3 -3
  220. package/dist/frontend/lowering/lower-assert.js +214 -241
  221. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  222. package/dist/frontend/lowering/lower-builtins.d.ts +74 -146
  223. package/dist/frontend/lowering/lower-builtins.js +1126 -1234
  224. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  225. package/dist/frontend/lowering/lower-calls.d.ts +56 -188
  226. package/dist/frontend/lowering/lower-calls.js +1409 -1494
  227. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  228. package/dist/frontend/lowering/lower-classes.d.ts +62 -125
  229. package/dist/frontend/lowering/lower-classes.js +832 -866
  230. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  231. package/dist/frontend/lowering/lower-comptime.d.ts +5 -12
  232. package/dist/frontend/lowering/lower-comptime.js +32 -31
  233. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  234. package/dist/frontend/lowering/lower-containers.d.ts +35 -135
  235. package/dist/frontend/lowering/lower-containers.js +1394 -1715
  236. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  237. package/dist/frontend/lowering/lower-dgram.d.ts +3 -7
  238. package/dist/frontend/lowering/lower-dgram.js +97 -111
  239. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  240. package/dist/frontend/lowering/lower-enums.d.ts +4 -4
  241. package/dist/frontend/lowering/lower-enums.js +30 -30
  242. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  243. package/dist/frontend/lowering/{lower-emitter.d.ts → lower-event-emitter.d.ts} +7 -18
  244. package/dist/frontend/lowering/{lower-emitter.js → lower-event-emitter.js} +172 -174
  245. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -0
  246. package/dist/frontend/lowering/lower-expando.d.ts +5 -5
  247. package/dist/frontend/lowering/lower-expando.js +40 -40
  248. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  249. package/dist/frontend/lowering/lower-exprs.d.ts +56 -264
  250. package/dist/frontend/lowering/lower-exprs.js +1644 -1704
  251. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  252. package/dist/frontend/lowering/lower-generators.d.ts +6 -6
  253. package/dist/frontend/lowering/lower-generators.js +73 -72
  254. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  255. package/dist/frontend/lowering/lower-inspect.d.ts +5 -17
  256. package/dist/frontend/lowering/lower-inspect.js +236 -238
  257. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  258. package/dist/frontend/lowering/lower-island.d.ts +34 -45
  259. package/dist/frontend/lowering/lower-island.js +440 -511
  260. package/dist/frontend/lowering/lower-island.js.map +1 -1
  261. package/dist/frontend/lowering/lower-mixins.d.ts +7 -10
  262. package/dist/frontend/lowering/lower-mixins.js +86 -86
  263. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  264. package/dist/frontend/lowering/lower-modules.d.ts +12 -18
  265. package/dist/frontend/lowering/lower-modules.js +284 -283
  266. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  267. package/dist/frontend/lowering/lower-namespaces.d.ts +23 -49
  268. package/dist/frontend/lowering/lower-namespaces.js +123 -115
  269. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  270. package/dist/frontend/lowering/lower-server.d.ts +18 -25
  271. package/dist/frontend/lowering/lower-server.js +899 -899
  272. package/dist/frontend/lowering/lower-server.js.map +1 -1
  273. package/dist/frontend/lowering/lower-stmts.d.ts +30 -149
  274. package/dist/frontend/lowering/lower-stmts.js +1176 -1229
  275. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  276. package/dist/frontend/lowering/lower-stream.d.ts +12 -12
  277. package/dist/frontend/lowering/lower-stream.js +300 -301
  278. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  279. package/dist/frontend/lowering/lower-test.d.ts +5 -5
  280. package/dist/frontend/lowering/lower-test.js +82 -82
  281. package/dist/frontend/lowering/lower-test.js.map +1 -1
  282. package/dist/frontend/lowering/lowerer.d.ts +66 -20
  283. package/dist/frontend/lowering/lowerer.js +421 -198
  284. package/dist/frontend/lowering/lowerer.js.map +1 -1
  285. package/dist/frontend/lowering/pairs-snapshot.d.ts +11 -0
  286. package/dist/frontend/lowering/pairs-snapshot.js +85 -0
  287. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -0
  288. package/dist/frontend/lowering/static-this.d.ts +6 -0
  289. package/dist/frontend/lowering/static-this.js +24 -0
  290. package/dist/frontend/lowering/static-this.js.map +1 -0
  291. package/dist/frontend/lowering/surfaces.d.ts +14 -33
  292. package/dist/frontend/lowering/surfaces.js +64 -64
  293. package/dist/frontend/lowering/surfaces.js.map +1 -1
  294. package/dist/frontend/npm-static-rewrite.js +6 -28
  295. package/dist/frontend/npm-static-rewrite.js.map +1 -1
  296. package/dist/frontend/npm-static.d.ts +0 -10
  297. package/dist/frontend/npm-static.js +4 -7
  298. package/dist/frontend/npm-static.js.map +1 -1
  299. package/dist/frontend/npm.d.ts +0 -24
  300. package/dist/frontend/npm.js +11 -85
  301. package/dist/frontend/npm.js.map +1 -1
  302. package/dist/frontend/program.d.ts +3 -1
  303. package/dist/frontend/program.js +51 -17
  304. package/dist/frontend/program.js.map +1 -1
  305. package/dist/frontend/provenance-registry.d.ts +0 -2
  306. package/dist/frontend/provenance-registry.js +0 -10
  307. package/dist/frontend/provenance-registry.js.map +1 -1
  308. package/dist/frontend/provenance.js +4 -7
  309. package/dist/frontend/provenance.js.map +1 -1
  310. package/dist/frontend/resolve.d.ts +7 -2
  311. package/dist/frontend/resolve.js +12 -17
  312. package/dist/frontend/resolve.js.map +1 -1
  313. package/dist/frontend/resolve.test.d.ts +1 -0
  314. package/dist/frontend/resolve.test.js +29 -0
  315. package/dist/frontend/resolve.test.js.map +1 -0
  316. package/dist/frontend/ts7/adapter.d.ts +2 -2
  317. package/dist/frontend/ts7/adapter.js +1 -1
  318. package/dist/frontend/ts7/adapter.js.map +1 -1
  319. package/dist/frontend/ts7/checker.d.ts +40 -2
  320. package/dist/frontend/ts7/checker.js +182 -54
  321. package/dist/frontend/ts7/checker.js.map +1 -1
  322. package/dist/frontend/ts7/enums.js +2 -1
  323. package/dist/frontend/ts7/enums.js.map +1 -1
  324. package/dist/frontend/ts7/{program.js → program-adapter.js} +7 -6
  325. package/dist/frontend/ts7/program-adapter.js.map +1 -0
  326. package/dist/frontend/ts7/world-check.d.ts +1 -3
  327. package/dist/frontend/ts7/world-check.js +3 -1
  328. package/dist/frontend/ts7/world-check.js.map +1 -1
  329. package/dist/frontend/tsc-codes.d.ts +8 -0
  330. package/dist/frontend/tsc-codes.js +109 -0
  331. package/dist/frontend/tsc-codes.js.map +1 -0
  332. package/dist/frontend/{types.d.ts → type-mapper.d.ts} +2 -25
  333. package/dist/frontend/{types.js → type-mapper.js} +31 -52
  334. package/dist/frontend/type-mapper.js.map +1 -0
  335. package/dist/frontend/workspace-registry.d.ts +26 -0
  336. package/dist/frontend/workspace-registry.js +71 -0
  337. package/dist/frontend/workspace-registry.js.map +1 -0
  338. package/dist/index.d.ts +115 -30
  339. package/dist/index.js +650 -146
  340. package/dist/index.js.map +1 -1
  341. package/dist/ir/analysis.d.ts +37 -0
  342. package/dist/ir/analysis.js +118 -0
  343. package/dist/ir/analysis.js.map +1 -0
  344. package/dist/ir/analysis.test.d.ts +1 -0
  345. package/dist/ir/analysis.test.js +21 -0
  346. package/dist/ir/analysis.test.js.map +1 -0
  347. package/dist/ir/build.d.ts +9 -0
  348. package/dist/ir/build.js +33 -0
  349. package/dist/ir/build.js.map +1 -0
  350. package/dist/ir/integer-loops.d.ts +1 -1
  351. package/dist/ir/{nodes.d.ts → ir.d.ts} +60 -26
  352. package/dist/ir/{nodes.js → ir.js} +173 -141
  353. package/dist/ir/ir.js.map +1 -0
  354. package/dist/ir/ir.test.d.ts +1 -0
  355. package/dist/ir/ir.test.js +17 -0
  356. package/dist/ir/ir.test.js.map +1 -0
  357. package/dist/ir/serialize.d.ts +1 -1
  358. package/dist/ir/serialize.js +2 -1
  359. package/dist/ir/serialize.js.map +1 -1
  360. package/dist/ir/validate.d.ts +1 -1
  361. package/dist/ir/validate.js +16 -5
  362. package/dist/ir/validate.js.map +1 -1
  363. package/dist/library/cache-primitives.d.ts +24 -0
  364. package/dist/library/cache-primitives.js +83 -0
  365. package/dist/library/cache-primitives.js.map +1 -0
  366. package/dist/library/cache-reset.test.d.ts +1 -0
  367. package/dist/library/cache-reset.test.js +47 -0
  368. package/dist/library/cache-reset.test.js.map +1 -0
  369. package/dist/library/compiler-self-identity.d.ts +23 -0
  370. package/dist/library/compiler-self-identity.js +84 -0
  371. package/dist/library/compiler-self-identity.js.map +1 -0
  372. package/dist/library/fence-eval.d.ts +3 -1
  373. package/dist/library/fence-eval.js +5 -1
  374. package/dist/library/fence-eval.js.map +1 -1
  375. package/dist/library/int-infer.d.ts +1 -36
  376. package/dist/library/int-infer.js +17 -17
  377. package/dist/library/int-infer.js.map +1 -1
  378. package/dist/library/{early-cache.d.ts → library-cache.d.ts} +1 -1
  379. package/dist/library/{early-cache.js → library-cache.js} +37 -111
  380. package/dist/library/library-cache.js.map +1 -0
  381. package/dist/library/library-cache.test.d.ts +1 -0
  382. package/dist/library/{early-cache.test.js → library-cache.test.js} +2 -2
  383. package/dist/library/library-cache.test.js.map +1 -0
  384. package/dist/library/{profile.d.ts → library-profile.d.ts} +4 -7
  385. package/dist/library/{profile.js → library-profile.js} +18 -11
  386. package/dist/library/library-profile.js.map +1 -0
  387. package/dist/library/semantic-source.js +2 -1
  388. package/dist/library/semantic-source.js.map +1 -1
  389. package/dist/library/sidecar.d.ts +5 -2
  390. package/dist/library/sidecar.js +11 -5
  391. package/dist/library/sidecar.js.map +1 -1
  392. package/dist/startup-cache.d.ts +6 -0
  393. package/dist/startup-cache.js +6 -0
  394. package/dist/startup-cache.js.map +1 -0
  395. package/package.json +7 -2
  396. package/surface-manifest.json +1 -1
  397. package/dist/backend/cc-cache.test.js.map +0 -1
  398. package/dist/backend/cc.js.map +0 -1
  399. package/dist/backend/emission/emit-async.js.map +0 -1
  400. package/dist/backend/emission/emit-exprs.d.ts +0 -13
  401. package/dist/backend/emission/emit-exprs.js +0 -7407
  402. package/dist/backend/emission/emit-exprs.js.map +0 -1
  403. package/dist/backend/emission/emit-island.js.map +0 -1
  404. package/dist/backend/emission/emit-shapes.js.map +0 -1
  405. package/dist/backend/emission/emit-stmts.js.map +0 -1
  406. package/dist/backend/emission/emit-types.js.map +0 -1
  407. package/dist/backend/emission/emit-walkers.js.map +0 -1
  408. package/dist/backend/emission/emitter.js.map +0 -1
  409. package/dist/backend/emission/may-throw.js.map +0 -1
  410. package/dist/backend/library-identity.js.map +0 -1
  411. package/dist/ffi/profile.js.map +0 -1
  412. package/dist/frontend/lowering/lower-emitter.js.map +0 -1
  413. package/dist/frontend/shared.d.ts +0 -82
  414. package/dist/frontend/shared.js +0 -308
  415. package/dist/frontend/shared.js.map +0 -1
  416. package/dist/frontend/ts7/program.js.map +0 -1
  417. package/dist/frontend/types.js.map +0 -1
  418. package/dist/ir/nodes.js.map +0 -1
  419. package/dist/library/early-cache.js.map +0 -1
  420. package/dist/library/early-cache.test.js.map +0 -1
  421. package/dist/library/profile.js.map +0 -1
  422. /package/dist/backend/{cc-cache.test.d.ts → c/types.test.d.ts} +0 -0
  423. /package/dist/{library/early-cache.test.d.ts → backend/llvm/shapes.test.d.ts} +0 -0
  424. /package/dist/frontend/ts7/{program.d.ts → program-adapter.d.ts} +0 -0
@@ -1,19 +1,19 @@
1
1
  import * as ts from "../ts7/adapter.js";
2
2
  import type { Lowerer } from "./lowerer.js";
3
- import { IrExpr, IrStmt, IrType } from "../../ir/nodes.js";
3
+ import { IrExpr, IrStmt, IrType } from "../../ir/ir.js";
4
4
  type GenType = IrType & {
5
5
  kind: "generator";
6
6
  };
7
7
  /** `yield e` / `yield;` — only inside a generator body the signature
8
- * collection accepted (L.ctx.generator carries the channels). `yield*`
8
+ * collection accepted (lowerer.ctx.generator carries the channels). `yield*`
9
9
  * lowers in STATEMENT position only (lowerYieldStarStatement — the value
10
10
  * of a delegation needs the whole forwarding loop in expression position,
11
11
  * which has no lowering yet). */
12
- export declare function lowerYield(L: Lowerer, expr: ts.YieldExpression): IrExpr;
12
+ export declare function lowerYield(lowerer: Lowerer, expr: ts.YieldExpression): IrExpr;
13
13
  /** `g.next(v)` / `g.return(v)` / `g.throw(e)` on a generator-typed
14
14
  * receiver → genResume. Null when this is not that call (the dispatch
15
15
  * chain moves on). */
16
- export declare function lowerGenMethodCall(L: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
16
+ export declare function lowerGenMethodCall(lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
17
17
  /** `for (const x of gen)` — the desugared drive:
18
18
  *
19
19
  * { const %gof = <iterable>; let %gdone = false;
@@ -32,7 +32,7 @@ export declare function lowerGenMethodCall(L: Lowerer, call: ts.CallExpression,
32
32
  * `return`/`throw` abandoning the loop does NOT close (numbered
33
33
  * divergence — the desugar cannot ride a finally, whose regions reject
34
34
  * the loop's own break). */
35
- export declare function lowerForOfGenerator(L: Lowerer, stmt: ts.ForOfStatement, iterable: IrExpr & {
35
+ export declare function lowerForOfGenerator(lowerer: Lowerer, stmt: ts.ForOfStatement, iterable: IrExpr & {
36
36
  type: GenType;
37
37
  }, labels?: string[]): IrStmt;
38
38
  /** Statement-position `yield* e;` — the forwarding loop:
@@ -46,5 +46,5 @@ export declare function lowerForOfGenerator(L: Lowerer, stmt: ts.ForOfStatement,
46
46
  * result. Consumer `.return()`/`.throw()` while suspended here unwinds
47
47
  * the OUTER generator without forwarding to the delegate (numbered
48
48
  * divergence). Null when this is not a yield* statement. */
49
- export declare function lowerYieldStarStatement(L: Lowerer, expr: ts.Expression): IrStmt | null;
49
+ export declare function lowerYieldStarStatement(lowerer: Lowerer, expr: ts.Expression): IrStmt | null;
50
50
  export {};
@@ -1,3 +1,4 @@
1
+ import { InternalCompilerError } from "../../errors.js";
1
2
  /* Generator lowering: yield / yield* expressions, the consumer surface
2
3
  * (.next/.return/.throw → genResume), and the for-of-over-generator
3
4
  * desugar. The design: a generator body is an ordinary
@@ -7,22 +8,22 @@
7
8
  * mapType's IteratorResult alias mapping so unannotated `const r =
8
9
  * g.next()` binds and reads flow. */
9
10
  import * as ts from "../ts7/adapter.js";
10
- import { BOOL, DYN, UNDEFINED_T, VOID, isUnitType, typeEquals } from "../../ir/nodes.js";
11
+ import { BOOL, DYN, UNDEFINED_T, VOID, isUnitType, typeEquals } from "../../ir/ir.js";
11
12
  import { locOf } from "../program.js";
12
- import { genResultRecord } from "../types.js";
13
+ import { genResultRecord } from "../type-mapper.js";
13
14
  import { forOfVarTarget } from "./lower-stmts.js";
14
15
  /** The interned IteratorResult record of a generator type (never null for
15
16
  * a MAPPED generator — mapType required it to intern). */
16
- function resultRecordOf(L, genT) {
17
- const rec = genResultRecord(genT.yieldT, genT.retT, L.shapes, L.unions);
17
+ function resultRecordOf(lowerer, genT) {
18
+ const rec = genResultRecord(genT.yieldT, genT.retT, lowerer.shapes, lowerer.unions);
18
19
  if (!rec)
19
- throw new Error("lowerer bug: mapped generator without a result record");
20
+ throw new InternalCompilerError("lowerer bug: mapped generator without a result record");
20
21
  return rec;
21
22
  }
22
23
  /** The undefined value coerced into a yield/return channel — `yield;`,
23
24
  * `.return()`'s absent argument evaluated as a value. Null when the
24
25
  * channel cannot hold undefined. */
25
- function channelUndefined(L, channel, loc) {
26
+ function channelUndefined(lowerer, channel, loc) {
26
27
  if (channel.kind === "dyn") {
27
28
  return {
28
29
  kind: "dynFrom",
@@ -32,33 +33,33 @@ function channelUndefined(L, channel, loc) {
32
33
  };
33
34
  }
34
35
  if (channel.kind === "union")
35
- return L.wrappedUndefined(channel, loc);
36
+ return lowerer.wrappedUndefined(channel, loc);
36
37
  return null;
37
38
  }
38
39
  /** `yield e` / `yield;` — only inside a generator body the signature
39
- * collection accepted (L.ctx.generator carries the channels). `yield*`
40
+ * collection accepted (lowerer.ctx.generator carries the channels). `yield*`
40
41
  * lowers in STATEMENT position only (lowerYieldStarStatement — the value
41
42
  * of a delegation needs the whole forwarding loop in expression position,
42
43
  * which has no lowering yet). */
43
- export function lowerYield(L, expr) {
44
+ export function lowerYield(lowerer, expr) {
44
45
  const loc = locOf(expr);
45
- const gen = L.ctx.generator;
46
+ const gen = lowerer.ctx.generator;
46
47
  if (!gen) {
47
48
  // A yield in a body this compiler did not lower as a generator (an
48
49
  // async generator's, a comptime callback's) — the blanket fence.
49
- L.unsupported("SC1071", expr);
50
+ lowerer.unsupported("SC1071", expr);
50
51
  }
51
52
  if (expr.asteriskToken) {
52
- L.unsupported("SC1071", expr, "the value of 'yield*' (statement-position delegation compiles: 'yield* inner();' — bind the delegate's return value through its .next() protocol instead)");
53
+ lowerer.unsupported("SC1071", expr, "the value of 'yield*' (statement-position delegation compiles: 'yield* inner();' — bind the delegate's return value through its .next() protocol instead)");
53
54
  }
54
55
  let value;
55
56
  if (expr.expression) {
56
- value = L.lowerExprExpecting(expr.expression, gen.yieldT);
57
+ value = lowerer.lowerExprExpecting(expr.expression, gen.yieldT);
57
58
  }
58
59
  else {
59
- const u = channelUndefined(L, gen.yieldT, loc);
60
+ const u = channelUndefined(lowerer, gen.yieldT, loc);
60
61
  if (!u) {
61
- L.unsupported("SC1071", expr, `a bare 'yield;' on a '${L.fmt(gen.yieldT)}' yield channel (it would yield undefined — yield a value)`);
62
+ lowerer.unsupported("SC1071", expr, `a bare 'yield;' on a '${lowerer.fmt(gen.yieldT)}' yield channel (it would yield undefined — yield a value)`);
62
63
  }
63
64
  value = u;
64
65
  }
@@ -71,43 +72,43 @@ export function lowerYield(L, expr) {
71
72
  /** `g.next(v)` / `g.return(v)` / `g.throw(e)` on a generator-typed
72
73
  * receiver → genResume. Null when this is not that call (the dispatch
73
74
  * chain moves on). */
74
- export function lowerGenMethodCall(L, call, access) {
75
- if (L.chainBlocked(access, call))
75
+ export function lowerGenMethodCall(lowerer, call, access) {
76
+ if (lowerer.chainBlocked(access, call))
76
77
  return null;
77
78
  const name = access.name.text;
78
79
  if (name !== "next" && name !== "return" && name !== "throw")
79
80
  return null;
80
- if (L.mapTypeOf(L.typeOf(access.expression))?.kind !== "generator")
81
+ if (lowerer.mapTypeOf(lowerer.typeOf(access.expression))?.kind !== "generator")
81
82
  return null;
82
83
  if (call.arguments.some(ts.isSpreadElement)) {
83
- L.unsupported("SC1090", call, "spread arguments");
84
+ lowerer.unsupported("SC1090", call, "spread arguments");
84
85
  }
85
86
  const loc = locOf(call);
86
- const gen = L.lowerExpr(access.expression);
87
+ const gen = lowerer.lowerExpr(access.expression);
87
88
  if (gen.type.kind !== "generator")
88
89
  return null;
89
90
  const genT = gen.type;
90
- const recT = resultRecordOf(L, genT);
91
+ const recT = resultRecordOf(lowerer, genT);
91
92
  const argNode = call.arguments[0];
92
93
  let arg = null;
93
94
  if (name === "next") {
94
95
  if (argNode === undefined) {
95
96
  if (genT.nextT.kind !== "undefinedT" && genT.nextT.kind !== "dyn") {
96
- L.unsupported("SC1071", call, `a valueless .next() on a '${L.fmt(genT.nextT)}' next channel (it would deliver undefined into a typed yield — pass .next(value))`);
97
+ lowerer.unsupported("SC1071", call, `a valueless .next() on a '${lowerer.fmt(genT.nextT)}' next channel (it would deliver undefined into a typed yield — pass .next(value))`);
97
98
  }
98
99
  arg = null; // the runtime sends undefined
99
100
  }
100
101
  else if (genT.nextT.kind === "undefinedT") {
101
102
  // `.next(undefined)` on a valueless channel: the literal is a no-op;
102
103
  // anything effectful has no evaluate-then-drop slot here.
103
- const lowered = L.lowerExpr(argNode);
104
+ const lowered = lowerer.lowerExpr(argNode);
104
105
  if (lowered.kind !== "unitLit") {
105
- L.unsupported("SC1071", call, ".next(value) on a generator that never reads resumed values (call .next() with no argument)");
106
+ lowerer.unsupported("SC1071", call, ".next(value) on a generator that never reads resumed values (call .next() with no argument)");
106
107
  }
107
108
  arg = null;
108
109
  }
109
110
  else {
110
- arg = L.lowerExprExpecting(argNode, genT.nextT);
111
+ arg = lowerer.lowerExprExpecting(argNode, genT.nextT);
111
112
  }
112
113
  }
113
114
  else if (name === "return") {
@@ -115,25 +116,25 @@ export function lowerGenMethodCall(L, call, access) {
115
116
  arg = null; // undefined done-value
116
117
  }
117
118
  else if (genT.retT.kind === "void") {
118
- L.unsupported("SC1071", call, ".return(value) on a generator whose return type carries no value (call .return() with no argument)");
119
+ lowerer.unsupported("SC1071", call, ".return(value) on a generator whose return type carries no value (call .return() with no argument)");
119
120
  }
120
121
  else {
121
- arg = L.lowerExprExpecting(argNode, genT.retT);
122
+ arg = lowerer.lowerExprExpecting(argNode, genT.retT);
122
123
  }
123
124
  }
124
125
  else {
125
126
  if (argNode === undefined) {
126
- L.unsupported("SC1071", call, ".throw() with no argument (Node would throw undefined into the generator — pass the error)");
127
+ lowerer.unsupported("SC1071", call, ".throw() with no argument (Node would throw undefined into the generator — pass the error)");
127
128
  }
128
- arg = L.lowerExpr(argNode);
129
+ arg = lowerer.lowerExpr(argNode);
129
130
  if (arg.type.kind === "date") {
130
- L.unsupported("SC1090", argNode, ".throw() with a Date value (the exception channel cannot preserve Date's object kind; throw an Error or primitive instead)");
131
+ lowerer.unsupported("SC1090", argNode, ".throw() with a Date value (the exception channel cannot preserve Date's object kind; throw an Error or primitive instead)");
131
132
  }
132
133
  if (arg.type.kind === "void" ||
133
134
  arg.type.kind === "dyn" ||
134
135
  arg.type.kind === "caught" ||
135
136
  isUnitType(arg.type)) {
136
- L.unsupported("SC1090", argNode, `.throw() of a '${L.fmt(arg.type)}' value (throw numbers, strings, booleans, or Error instances)`);
137
+ lowerer.unsupported("SC1090", argNode, `.throw() of a '${lowerer.fmt(arg.type)}' value (throw numbers, strings, booleans, or Error instances)`);
137
138
  }
138
139
  }
139
140
  return { kind: "genResume", mode: name, gen, arg, type: recT, loc };
@@ -146,7 +147,7 @@ export function lowerGenMethodCall(L, call, access) {
146
147
  * re-tags through the retag helper with the non-channel arms marked
147
148
  * trappable (the same proved-away contract, proved here by the desugar's
148
149
  * own done test). Null when no extraction exists. */
149
- function extractYieldValue(L, genT, valueT, read, loc) {
150
+ function extractYieldValue(lowerer, genT, valueT, read, loc) {
150
151
  const yt = genT.yieldT;
151
152
  if (valueT.kind === "dyn")
152
153
  return read; // the dyn channel: V IS the value
@@ -155,20 +156,20 @@ function extractYieldValue(L, genT, valueT, read, loc) {
155
156
  if (typeEquals(valueT, yt))
156
157
  return read;
157
158
  if (yt.kind !== "union") {
158
- const tag = L.armTag(valueT.unionId, yt);
159
+ const tag = lowerer.armTag(valueT.unionId, yt);
159
160
  if (tag < 0)
160
161
  return null;
161
162
  return { kind: "unionNarrow", unionId: valueT.unionId, tag, value: read, type: yt, loc };
162
163
  }
163
- const vDef = L.unions.get(valueT.unionId);
164
+ const vDef = lowerer.unions.get(valueT.unionId);
164
165
  if (!vDef)
165
166
  return null;
166
167
  const trappable = new Set();
167
168
  vDef.arms.forEach((arm, i) => {
168
- if (L.armTag(yt.unionId, arm) < 0)
169
+ if (lowerer.armTag(yt.unionId, arm) < 0)
169
170
  trappable.add(i);
170
171
  });
171
- const helper = L.unionRetagHelper(valueT.unionId, yt.unionId, loc, trappable);
172
+ const helper = lowerer.unionRetagHelper(valueT.unionId, yt.unionId, loc, trappable);
172
173
  if (!helper)
173
174
  return null;
174
175
  return { kind: "call", callee: helper, args: [read], type: yt, loc };
@@ -191,48 +192,48 @@ function extractYieldValue(L, genT, valueT, read, loc) {
191
192
  * `return`/`throw` abandoning the loop does NOT close (numbered
192
193
  * divergence — the desugar cannot ride a finally, whose regions reject
193
194
  * the loop's own break). */
194
- export function lowerForOfGenerator(L, stmt, iterable, labels) {
195
+ export function lowerForOfGenerator(lowerer, stmt, iterable, labels) {
195
196
  if (!ts.isVariableDeclarationList(stmt.initializer)) {
196
- L.unsupported("SC1090", stmt.initializer, "for-of over a pre-declared variable (declare the loop variable in the loop: for (const x of ...))");
197
+ lowerer.unsupported("SC1090", stmt.initializer, "for-of over a pre-declared variable (declare the loop variable in the loop: for (const x of ...))");
197
198
  }
198
199
  const list = stmt.initializer;
199
200
  if ((list.flags & ts.NodeFlags.Using) !== 0) {
200
- L.unsupported("SC1090", list, "'using' declarations (dispose-at-scope-exit semantics)");
201
+ lowerer.unsupported("SC1090", list, "'using' declarations (dispose-at-scope-exit semantics)");
201
202
  }
202
203
  const isLet = (list.flags & ts.NodeFlags.Let) !== 0;
203
204
  const decl = list.declarations[0];
204
205
  if (!ts.isIdentifier(decl.name))
205
- L.unsupported("SC1031", decl.name);
206
+ lowerer.unsupported("SC1031", decl.name);
206
207
  const genT = iterable.type;
207
208
  if (genT.yieldT.kind === "void") {
208
- L.unsupported("SC1090", stmt.expression, "for-of over a generator that never yields (its element type is never)");
209
+ lowerer.unsupported("SC1090", stmt.expression, "for-of over a generator that never yields (its element type is never)");
209
210
  }
210
211
  if (genT.nextT.kind !== "undefinedT" && genT.nextT.kind !== "dyn") {
211
- L.unsupported("SC1090", stmt.expression, `for-of over a generator whose yields expect .next(value) ('${L.fmt(genT.nextT)}' — drive it with .next() calls instead)`);
212
+ lowerer.unsupported("SC1090", stmt.expression, `for-of over a generator whose yields expect .next(value) ('${lowerer.fmt(genT.nextT)}' — drive it with .next() calls instead)`);
212
213
  }
213
214
  const loc = locOf(stmt);
214
- const recT = resultRecordOf(L, genT);
215
- const shape = L.shapes.get(recT.shapeId);
215
+ const recT = resultRecordOf(lowerer, genT);
216
+ const shape = lowerer.shapes.get(recT.shapeId);
216
217
  const valueT = shape.fields.find((f) => f.name === "value").type;
217
- L.scopes.push(new Map());
218
+ lowerer.scopes.push(new Map());
218
219
  try {
219
- const g = L.declareHiddenLocal("%gof", genT);
220
- const done = L.declareHiddenLocal("%gdone", BOOL);
220
+ const g = lowerer.declareHiddenLocal("%gof", genT);
221
+ const done = lowerer.declareHiddenLocal("%gdone", BOOL);
221
222
  done.mutable = true;
222
- const r = L.declareHiddenLocal("%gres", recT);
223
+ const r = lowerer.declareHiddenLocal("%gres", recT);
223
224
  const gRef = () => ({ kind: "varRef", localId: g.id, type: genT, loc });
224
225
  const rRef = () => ({ kind: "varRef", localId: r.id, type: recT, loc });
225
226
  const valueRead = { kind: "recordGet", obj: rRef(), shapeId: recT.shapeId, field: "value", type: valueT, loc };
226
- const extracted = extractYieldValue(L, genT, valueT, valueRead, loc);
227
+ const extracted = extractYieldValue(lowerer, genT, valueT, valueRead, loc);
227
228
  if (!extracted) {
228
- L.unsupported("SC1090", stmt.expression, `for-of over a generator yielding '${L.fmt(genT.yieldT)}' (no per-element extraction exists — drive it with .next() and narrow r.value)`);
229
+ lowerer.unsupported("SC1090", stmt.expression, `for-of over a generator yielding '${lowerer.fmt(genT.yieldT)}' (no per-element extraction exists — drive it with .next() and narrow r.value)`);
229
230
  }
230
231
  // `for (var x of gen)`: the mechanics stay on a hidden per-iteration
231
232
  // local; the body opens by assigning into the hoisted var binding.
232
- const varTarget = forOfVarTarget(L, decl);
233
+ const varTarget = forOfVarTarget(lowerer, decl);
233
234
  const x = varTarget
234
- ? L.declareHiddenLocal("%vof", genT.yieldT)
235
- : L.declareLocal(decl.name, decl.name.text, genT.yieldT, isLet);
235
+ ? lowerer.declareHiddenLocal("%vof", genT.yieldT)
236
+ : lowerer.declareLocal(decl.name, decl.name.text, genT.yieldT, isLet);
236
237
  const xRef = { kind: "varRef", localId: x.id, type: genT.yieldT, loc };
237
238
  const head = [
238
239
  {
@@ -260,10 +261,10 @@ export function lowerForOfGenerator(L, stmt, iterable, labels) {
260
261
  },
261
262
  { kind: "varDecl", localId: x.id, init: extracted, loc },
262
263
  ...(varTarget
263
- ? [{ kind: "assign", localId: varTarget.id, value: L.coerceInto(decl.name, xRef, varTarget.type), loc }]
264
+ ? [{ kind: "assign", localId: varTarget.id, value: lowerer.coerceInto(decl.name, xRef, varTarget.type), loc }]
264
265
  : []),
265
266
  ];
266
- const body = L.inCtl("loop", () => L.lowerScopedBlock(stmt.statement), labels);
267
+ const body = lowerer.inCtl("loop", () => lowerer.lowerScopedBlock(stmt.statement), labels);
267
268
  return {
268
269
  kind: "block",
269
270
  body: [
@@ -302,7 +303,7 @@ export function lowerForOfGenerator(L, stmt, iterable, labels) {
302
303
  };
303
304
  }
304
305
  finally {
305
- L.scopes.pop();
306
+ lowerer.scopes.pop();
306
307
  }
307
308
  }
308
309
  /** Statement-position `yield* e;` — the forwarding loop:
@@ -316,37 +317,37 @@ export function lowerForOfGenerator(L, stmt, iterable, labels) {
316
317
  * result. Consumer `.return()`/`.throw()` while suspended here unwinds
317
318
  * the OUTER generator without forwarding to the delegate (numbered
318
319
  * divergence). Null when this is not a yield* statement. */
319
- export function lowerYieldStarStatement(L, expr) {
320
+ export function lowerYieldStarStatement(lowerer, expr) {
320
321
  if (!ts.isYieldExpression(expr) || expr.asteriskToken === undefined)
321
322
  return null;
322
- const gen = L.ctx.generator;
323
+ const gen = lowerer.ctx.generator;
323
324
  if (!gen)
324
- L.unsupported("SC1071", expr);
325
+ lowerer.unsupported("SC1071", expr);
325
326
  if (!expr.expression)
326
- L.unsupported("SC1071", expr, "'yield*' with no operand");
327
+ lowerer.unsupported("SC1071", expr, "'yield*' with no operand");
327
328
  const loc = locOf(expr);
328
- const delegate = L.lowerExpr(expr.expression);
329
+ const delegate = lowerer.lowerExpr(expr.expression);
329
330
  if (delegate.type.kind !== "generator") {
330
- L.unsupported("SC1071", expr, `'yield*' over '${L.fmt(delegate.type)}' (only generator delegates have a lowering — spell out the loop for other iterables)`);
331
+ lowerer.unsupported("SC1071", expr, `'yield*' over '${lowerer.fmt(delegate.type)}' (only generator delegates have a lowering — spell out the loop for other iterables)`);
331
332
  }
332
333
  const dT = delegate.type;
333
334
  if (dT.nextT.kind !== "undefinedT" && dT.nextT.kind !== "dyn" && !typeEquals(dT.nextT, gen.nextT)) {
334
- L.unsupported("SC1071", expr, `'yield*' into a '${L.fmt(dT.nextT)}' next channel from a '${gen.nextT.kind === "undefinedT" ? "undefined" : L.fmt(gen.nextT)}' one (the consumer's .next(v) cannot forward across these channels)`);
335
+ lowerer.unsupported("SC1071", expr, `'yield*' into a '${lowerer.fmt(dT.nextT)}' next channel from a '${gen.nextT.kind === "undefinedT" ? "undefined" : lowerer.fmt(gen.nextT)}' one (the consumer's .next(v) cannot forward across these channels)`);
335
336
  }
336
- const recT = resultRecordOf(L, dT);
337
- const shape = L.shapes.get(recT.shapeId);
337
+ const recT = resultRecordOf(lowerer, dT);
338
+ const shape = lowerer.shapes.get(recT.shapeId);
338
339
  const valueT = shape.fields.find((f) => f.name === "value").type;
339
- L.scopes.push(new Map());
340
+ lowerer.scopes.push(new Map());
340
341
  try {
341
- const d = L.declareHiddenLocal("%dele", dT);
342
- const r = L.declareHiddenLocal("%dres", recT);
342
+ const d = lowerer.declareHiddenLocal("%dele", dT);
343
+ const r = lowerer.declareHiddenLocal("%dres", recT);
343
344
  r.mutable = true;
344
345
  const dRef = () => ({ kind: "varRef", localId: d.id, type: dT, loc });
345
346
  const rRef = () => ({ kind: "varRef", localId: r.id, type: recT, loc });
346
347
  const valueRead = { kind: "recordGet", obj: rRef(), shapeId: recT.shapeId, field: "value", type: valueT, loc };
347
- const inner = extractYieldValue(L, dT, valueT, valueRead, loc);
348
+ const inner = extractYieldValue(lowerer, dT, valueT, valueRead, loc);
348
349
  if (!inner) {
349
- L.unsupported("SC1071", expr, `'yield*' over a generator yielding '${L.fmt(dT.yieldT)}' (no per-element extraction exists)`);
350
+ lowerer.unsupported("SC1071", expr, `'yield*' over a generator yielding '${lowerer.fmt(dT.yieldT)}' (no per-element extraction exists)`);
350
351
  }
351
352
  // The re-yield: the delegate's value coerced into the outer yield
352
353
  // channel; the resumed value (outer nextT) forwards into the
@@ -355,7 +356,7 @@ export function lowerYieldStarStatement(L, expr) {
355
356
  kind: "yieldExpr",
356
357
  value: typeEquals(dT.yieldT, gen.yieldT) && typeEquals(inner.type, gen.yieldT)
357
358
  ? inner
358
- : L.coerceInto(expr.expression, inner, gen.yieldT),
359
+ : lowerer.coerceInto(expr.expression, inner, gen.yieldT),
359
360
  type: gen.nextT.kind === "undefinedT" ? VOID : gen.nextT,
360
361
  loc,
361
362
  };
@@ -421,7 +422,7 @@ export function lowerYieldStarStatement(L, expr) {
421
422
  };
422
423
  }
423
424
  finally {
424
- L.scopes.pop();
425
+ lowerer.scopes.pop();
425
426
  }
426
427
  }
427
428
  //# sourceMappingURL=lower-generators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lower-generators.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-generators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lower-generators.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-generators.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,30 @@
1
1
  import * as ts from "../ts7/adapter.js";
2
2
  import type { Lowerer } from "./lowerer.js";
3
- import { IrExpr, IrType, SrcLoc } from "../../ir/nodes.js";
4
- /** strEscape's quote ladder over a COMPILE-TIME string (record field
5
- * names, format-string chunks never pass through here — only keys).
6
- * Mirrors scr_inspect.c's insp_quote_into byte-for-byte. */
7
- export declare function inspectQuote(s: string): string;
3
+ import { IrExpr, IrType, SrcLoc } from "../../ir/ir.js";
8
4
  /** True when a VALUE of `t` can contain itself — t's type graph reaches t
9
5
  * again through record fields (index values included), array elements,
10
6
  * union arms, map keys/values, set elements, or class fields. Inspect
11
7
  * helpers over such types run Node's circular machinery (seen stack +
12
8
  * <ref *N>/[Circular *N]); everything acyclic keeps the zero-cost path
13
9
  * (a value of an acyclic type can never repeat on its own path). */
14
- export declare function typeReachesItself(L: Lowerer, t: IrType): boolean;
15
- /** Node's formatWithOptions REST-ARG rule over one statically-typed value
16
- * (console.log's non-format arguments, util.format's %s and trailing
17
- * arguments): a STRING prints VERBATIM — never quote-wrapped, the classic
18
- * console.log vs inspect distinction — and every other kind renders
19
- * exactly as inspect at the given depth. Unions dispatch per arm AT
20
- * RUNTIME through an interned helper, so a string arm stays verbatim
21
- * while its sibling arms inspect. Callers check inspectSupport first. */
22
- export declare function formatValueExpr(L: Lowerer, t: IrType, value: IrExpr, depth: number, loc: SrcLoc): IrExpr;
10
+ export declare function typeReachesItself(lowerer: Lowerer, t: IrType): boolean;
23
11
  /** One console.log/info/debug/error/warn argument OUTSIDE the direct
24
12
  * scalar set (number/string/boolean ride the ScrLogArg protocol
25
13
  * untouched, and dyn/function values have their own paths at the call
26
14
  * site): the rendered STRING under Node's console semantics — inspect at
27
15
  * the rest-args depth 2 — or the honest fence naming the first
28
16
  * unsupported constituent. */
29
- export declare function lowerConsoleInspectArg(L: Lowerer, node: ts.Expression, value: IrExpr, surface: string, loc: SrcLoc): IrExpr;
17
+ export declare function lowerConsoleInspectArg(lowerer: Lowerer, node: ts.Expression, value: IrExpr, surface: string, loc: SrcLoc): IrExpr;
30
18
  /** util.format(...) / util.formatWithOptions({}, ...): the compile-time
31
19
  * %-substitution over a literal format string (formatWithOptionsInternal
32
20
  * ported exactly — the arg cursor, the args-exhausted guard, %c's
33
21
  * consume-and-drop), with per-static-type conversions. Non-literal
34
22
  * format strings lower only in the substitution-free shapes. */
35
- export declare function lowerFormatCall(L: Lowerer, expr: ts.CallExpression, loc: SrcLoc, withOptions: boolean): IrExpr;
23
+ export declare function lowerFormatCall(lowerer: Lowerer, expr: ts.CallExpression, loc: SrcLoc, withOptions: boolean): IrExpr;
36
24
  /** The spoke's entry, called from both the named-import and namespace/
37
25
  * default-import call paths. Null for other modules and members (the
38
26
  * module tables' fence takes over). */
39
- export declare function lowerUtilModuleCall(L: Lowerer, expr: ts.CallExpression, bi: {
27
+ export declare function lowerUtilModuleCall(lowerer: Lowerer, expr: ts.CallExpression, bi: {
40
28
  module: string;
41
29
  member: string;
42
30
  }, loc: SrcLoc): IrExpr | null;