@tsonic/emitter 0.0.62 → 0.0.63

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 (517) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapter-generator.d.ts +5 -15
  3. package/dist/adapter-generator.d.ts.map +1 -1
  4. package/dist/adapter-generator.js +60 -53
  5. package/dist/adapter-generator.js.map +1 -1
  6. package/dist/contracts/backend-adapter.d.ts +36 -0
  7. package/dist/contracts/backend-adapter.d.ts.map +1 -0
  8. package/dist/contracts/backend-adapter.js +9 -0
  9. package/dist/contracts/backend-adapter.js.map +1 -0
  10. package/dist/contracts/emitter-contract.d.ts +54 -0
  11. package/dist/contracts/emitter-contract.d.ts.map +1 -0
  12. package/dist/contracts/emitter-contract.js +8 -0
  13. package/dist/contracts/emitter-contract.js.map +1 -0
  14. package/dist/contracts/import-classifier.d.ts +36 -0
  15. package/dist/contracts/import-classifier.d.ts.map +1 -0
  16. package/dist/contracts/import-classifier.js +9 -0
  17. package/dist/contracts/import-classifier.js.map +1 -0
  18. package/dist/core/{attributes.d.ts → format/attributes.d.ts} +9 -14
  19. package/dist/core/format/attributes.d.ts.map +1 -0
  20. package/dist/core/format/attributes.js +190 -0
  21. package/dist/core/format/attributes.js.map +1 -0
  22. package/dist/core/format/attributes.test.d.ts.map +1 -0
  23. package/dist/core/{attributes.test.js → format/attributes.test.js} +70 -32
  24. package/dist/core/format/attributes.test.js.map +1 -0
  25. package/dist/core/format/backend-ast/index.d.ts +7 -0
  26. package/dist/core/format/backend-ast/index.d.ts.map +1 -0
  27. package/dist/core/format/backend-ast/index.js +6 -0
  28. package/dist/core/format/backend-ast/index.js.map +1 -0
  29. package/dist/core/format/backend-ast/printer.d.ts +33 -0
  30. package/dist/core/format/backend-ast/printer.d.ts.map +1 -0
  31. package/dist/core/format/backend-ast/printer.js +1151 -0
  32. package/dist/core/format/backend-ast/printer.js.map +1 -0
  33. package/dist/core/format/backend-ast/types.d.ts +504 -0
  34. package/dist/core/format/backend-ast/types.d.ts.map +1 -0
  35. package/dist/core/format/backend-ast/types.js +13 -0
  36. package/dist/core/format/backend-ast/types.js.map +1 -0
  37. package/dist/core/format/backend-ast/utils.d.ts +26 -0
  38. package/dist/core/format/backend-ast/utils.d.ts.map +1 -0
  39. package/dist/core/format/backend-ast/utils.js +65 -0
  40. package/dist/core/format/backend-ast/utils.js.map +1 -0
  41. package/dist/core/{exports.d.ts → format/exports.d.ts} +2 -2
  42. package/dist/core/format/exports.d.ts.map +1 -0
  43. package/dist/core/format/exports.js +22 -0
  44. package/dist/core/format/exports.js.map +1 -0
  45. package/dist/core/format/index.d.ts +9 -0
  46. package/dist/core/format/index.d.ts.map +1 -0
  47. package/dist/core/format/index.js +9 -0
  48. package/dist/core/format/index.js.map +1 -0
  49. package/dist/core/{local-names.d.ts → format/local-names.d.ts} +1 -1
  50. package/dist/core/format/local-names.d.ts.map +1 -0
  51. package/dist/core/{local-names.js → format/local-names.js} +1 -1
  52. package/dist/core/format/local-names.js.map +1 -0
  53. package/dist/core/format/module-emitter/assembly.d.ts +27 -0
  54. package/dist/core/format/module-emitter/assembly.d.ts.map +1 -0
  55. package/dist/core/format/module-emitter/assembly.js +44 -0
  56. package/dist/core/format/module-emitter/assembly.js.map +1 -0
  57. package/dist/core/{module-emitter → format/module-emitter}/header.d.ts +1 -1
  58. package/dist/core/format/module-emitter/header.d.ts.map +1 -0
  59. package/dist/core/{module-emitter → format/module-emitter}/header.js +1 -1
  60. package/dist/core/format/module-emitter/header.js.map +1 -0
  61. package/dist/core/format/module-emitter/index.d.ts.map +1 -0
  62. package/dist/core/format/module-emitter/index.js.map +1 -0
  63. package/dist/core/format/module-emitter/namespace.d.ts +21 -0
  64. package/dist/core/format/module-emitter/namespace.d.ts.map +1 -0
  65. package/dist/core/format/module-emitter/namespace.js +58 -0
  66. package/dist/core/format/module-emitter/namespace.js.map +1 -0
  67. package/dist/core/{module-emitter → format/module-emitter}/orchestrator.d.ts +1 -1
  68. package/dist/core/format/module-emitter/orchestrator.d.ts.map +1 -0
  69. package/dist/core/{module-emitter → format/module-emitter}/orchestrator.js +19 -19
  70. package/dist/core/format/module-emitter/orchestrator.js.map +1 -0
  71. package/dist/core/format/module-emitter/separation.d.ts.map +1 -0
  72. package/dist/core/format/module-emitter/separation.js.map +1 -0
  73. package/dist/core/{module-emitter → format/module-emitter}/static-container.d.ts +8 -3
  74. package/dist/core/format/module-emitter/static-container.d.ts.map +1 -0
  75. package/dist/core/format/module-emitter/static-container.js +202 -0
  76. package/dist/core/format/module-emitter/static-container.js.map +1 -0
  77. package/dist/core/format/module-emitter.d.ts.map +1 -0
  78. package/dist/core/format/module-emitter.js.map +1 -0
  79. package/dist/core/{options.d.ts → format/options.d.ts} +1 -1
  80. package/dist/core/format/options.d.ts.map +1 -0
  81. package/dist/core/format/options.js.map +1 -0
  82. package/dist/core/index.d.ts +2 -7
  83. package/dist/core/index.d.ts.map +1 -1
  84. package/dist/core/index.js +2 -7
  85. package/dist/core/index.js.map +1 -1
  86. package/dist/core/semantic/boolean-context.d.ts +44 -0
  87. package/dist/core/semantic/boolean-context.d.ts.map +1 -0
  88. package/dist/core/semantic/boolean-context.js +655 -0
  89. package/dist/core/semantic/boolean-context.js.map +1 -0
  90. package/dist/core/semantic/boolean-context.test.d.ts.map +1 -0
  91. package/dist/core/{boolean-context.test.js → semantic/boolean-context.test.js} +44 -108
  92. package/dist/core/semantic/boolean-context.test.js.map +1 -0
  93. package/dist/core/{imports.d.ts → semantic/imports.d.ts} +1 -5
  94. package/dist/core/semantic/imports.d.ts.map +1 -0
  95. package/dist/core/{imports.js → semantic/imports.js} +6 -77
  96. package/dist/core/semantic/imports.js.map +1 -0
  97. package/dist/core/semantic/imports.test.d.ts.map +1 -0
  98. package/dist/core/{imports.test.js → semantic/imports.test.js} +1 -1
  99. package/dist/core/semantic/imports.test.js.map +1 -0
  100. package/dist/core/semantic/index.d.ts +15 -0
  101. package/dist/core/semantic/index.d.ts.map +1 -0
  102. package/dist/core/semantic/index.js +15 -0
  103. package/dist/core/semantic/index.js.map +1 -0
  104. package/dist/core/{local-types.d.ts → semantic/local-types.d.ts} +1 -1
  105. package/dist/core/semantic/local-types.d.ts.map +1 -0
  106. package/dist/core/semantic/local-types.js.map +1 -0
  107. package/dist/core/{module-map.d.ts → semantic/module-map.d.ts} +1 -1
  108. package/dist/core/semantic/module-map.d.ts.map +1 -0
  109. package/dist/core/semantic/module-map.js.map +1 -0
  110. package/dist/core/semantic/module-map.test.d.ts.map +1 -0
  111. package/dist/core/semantic/module-map.test.js.map +1 -0
  112. package/dist/core/semantic/naming-collisions.d.ts.map +1 -0
  113. package/dist/core/{naming-collisions.js → semantic/naming-collisions.js} +1 -1
  114. package/dist/core/semantic/naming-collisions.js.map +1 -0
  115. package/dist/core/{type-alias-index.d.ts → semantic/type-alias-index.d.ts} +1 -1
  116. package/dist/core/semantic/type-alias-index.d.ts.map +1 -0
  117. package/dist/core/semantic/type-alias-index.js.map +1 -0
  118. package/dist/core/semantic/type-compatibility.d.ts.map +1 -0
  119. package/dist/core/semantic/type-compatibility.js.map +1 -0
  120. package/dist/core/{type-member-index.d.ts → semantic/type-member-index.d.ts} +1 -1
  121. package/dist/core/semantic/type-member-index.d.ts.map +1 -0
  122. package/dist/core/semantic/type-member-index.js.map +1 -0
  123. package/dist/core/semantic/type-params.d.ts.map +1 -0
  124. package/dist/core/semantic/type-params.js.map +1 -0
  125. package/dist/core/{type-resolution.d.ts → semantic/type-resolution.d.ts} +3 -6
  126. package/dist/core/semantic/type-resolution.d.ts.map +1 -0
  127. package/dist/core/{type-resolution.js → semantic/type-resolution.js} +15 -25
  128. package/dist/core/semantic/type-resolution.js.map +1 -0
  129. package/dist/core/semantic/type-resolution.test.d.ts.map +1 -0
  130. package/dist/core/{type-resolution.test.js → semantic/type-resolution.test.js} +11 -19
  131. package/dist/core/semantic/type-resolution.test.js.map +1 -0
  132. package/dist/core/semantic/unsafe.d.ts.map +1 -0
  133. package/dist/core/semantic/unsafe.js.map +1 -0
  134. package/dist/emitter-types/core.d.ts +4 -12
  135. package/dist/emitter-types/core.d.ts.map +1 -1
  136. package/dist/emitter-types/index.d.ts +1 -1
  137. package/dist/emitter-types/index.d.ts.map +1 -1
  138. package/dist/emitter-types/index.js.map +1 -1
  139. package/dist/emitter.d.ts +1 -1
  140. package/dist/emitter.d.ts.map +1 -1
  141. package/dist/emitter.js +9 -8
  142. package/dist/emitter.js.map +1 -1
  143. package/dist/expression-emitter.d.ts +10 -5
  144. package/dist/expression-emitter.d.ts.map +1 -1
  145. package/dist/expression-emitter.js +111 -117
  146. package/dist/expression-emitter.js.map +1 -1
  147. package/dist/expressions/access.d.ts +4 -3
  148. package/dist/expressions/access.d.ts.map +1 -1
  149. package/dist/expressions/access.js +176 -102
  150. package/dist/expressions/access.js.map +1 -1
  151. package/dist/expressions/calls/call-analysis.d.ts +86 -0
  152. package/dist/expressions/calls/call-analysis.d.ts.map +1 -0
  153. package/dist/expressions/calls/call-analysis.js +284 -0
  154. package/dist/expressions/calls/call-analysis.js.map +1 -0
  155. package/dist/expressions/calls/call-emitter.d.ts +13 -0
  156. package/dist/expressions/calls/call-emitter.d.ts.map +1 -0
  157. package/dist/expressions/calls/call-emitter.js +876 -0
  158. package/dist/expressions/calls/call-emitter.js.map +1 -0
  159. package/dist/expressions/calls/new-emitter.d.ts +13 -0
  160. package/dist/expressions/calls/new-emitter.d.ts.map +1 -0
  161. package/dist/expressions/calls/new-emitter.js +641 -0
  162. package/dist/expressions/calls/new-emitter.js.map +1 -0
  163. package/dist/expressions/calls.d.ts +2 -14
  164. package/dist/expressions/calls.d.ts.map +1 -1
  165. package/dist/expressions/calls.js +2 -909
  166. package/dist/expressions/calls.js.map +1 -1
  167. package/dist/expressions/collections.d.ts +6 -16
  168. package/dist/expressions/collections.d.ts.map +1 -1
  169. package/dist/expressions/collections.js +301 -217
  170. package/dist/expressions/collections.js.map +1 -1
  171. package/dist/expressions/functions.d.ts +6 -5
  172. package/dist/expressions/functions.d.ts.map +1 -1
  173. package/dist/expressions/functions.js +57 -62
  174. package/dist/expressions/functions.js.map +1 -1
  175. package/dist/expressions/identifiers.d.ts +11 -6
  176. package/dist/expressions/identifiers.d.ts.map +1 -1
  177. package/dist/expressions/identifiers.js +76 -25
  178. package/dist/expressions/identifiers.js.map +1 -1
  179. package/dist/expressions/index.d.ts +1 -1
  180. package/dist/expressions/index.d.ts.map +1 -1
  181. package/dist/expressions/index.js +1 -1
  182. package/dist/expressions/index.js.map +1 -1
  183. package/dist/expressions/index.test.js +143 -0
  184. package/dist/expressions/index.test.js.map +1 -1
  185. package/dist/expressions/literals.d.ts +4 -3
  186. package/dist/expressions/literals.d.ts.map +1 -1
  187. package/dist/expressions/literals.js +25 -17
  188. package/dist/expressions/literals.js.map +1 -1
  189. package/dist/expressions/literals.test.js +18 -18
  190. package/dist/expressions/literals.test.js.map +1 -1
  191. package/dist/expressions/operators/assignment-emitter.d.ts +16 -0
  192. package/dist/expressions/operators/assignment-emitter.d.ts.map +1 -0
  193. package/dist/expressions/operators/assignment-emitter.js +118 -0
  194. package/dist/expressions/operators/assignment-emitter.js.map +1 -0
  195. package/dist/expressions/operators/binary-emitter.d.ts +33 -0
  196. package/dist/expressions/operators/binary-emitter.d.ts.map +1 -0
  197. package/dist/expressions/operators/binary-emitter.js +398 -0
  198. package/dist/expressions/operators/binary-emitter.js.map +1 -0
  199. package/dist/expressions/operators/conditional-emitter.d.ts +17 -0
  200. package/dist/expressions/operators/conditional-emitter.d.ts.map +1 -0
  201. package/dist/expressions/operators/conditional-emitter.js +306 -0
  202. package/dist/expressions/operators/conditional-emitter.js.map +1 -0
  203. package/dist/expressions/operators/helpers.d.ts +37 -0
  204. package/dist/expressions/operators/helpers.d.ts.map +1 -0
  205. package/dist/expressions/operators/helpers.js +136 -0
  206. package/dist/expressions/operators/helpers.js.map +1 -0
  207. package/dist/expressions/operators/logical-emitter.d.ts +23 -0
  208. package/dist/expressions/operators/logical-emitter.d.ts.map +1 -0
  209. package/dist/expressions/operators/logical-emitter.js +73 -0
  210. package/dist/expressions/operators/logical-emitter.js.map +1 -0
  211. package/dist/expressions/operators/unary-emitter.d.ts +30 -0
  212. package/dist/expressions/operators/unary-emitter.d.ts.map +1 -0
  213. package/dist/expressions/operators/unary-emitter.js +244 -0
  214. package/dist/expressions/operators/unary-emitter.js.map +1 -0
  215. package/dist/expressions/operators.d.ts +5 -81
  216. package/dist/expressions/operators.d.ts.map +1 -1
  217. package/dist/expressions/operators.js +5 -949
  218. package/dist/expressions/operators.js.map +1 -1
  219. package/dist/expressions/other.d.ts +15 -11
  220. package/dist/expressions/other.d.ts.map +1 -1
  221. package/dist/expressions/other.js +51 -36
  222. package/dist/expressions/other.js.map +1 -1
  223. package/dist/expressions/precedence.test.js +1 -1
  224. package/dist/expressions/precedence.test.js.map +1 -1
  225. package/dist/generator-exchange.d.ts +10 -3
  226. package/dist/generator-exchange.d.ts.map +1 -1
  227. package/dist/generator-exchange.js +57 -54
  228. package/dist/generator-exchange.js.map +1 -1
  229. package/dist/generator-wrapper.d.ts +17 -65
  230. package/dist/generator-wrapper.d.ts.map +1 -1
  231. package/dist/generator-wrapper.js +396 -220
  232. package/dist/generator-wrapper.js.map +1 -1
  233. package/dist/generator-wrapper.test.js +22 -14
  234. package/dist/generator-wrapper.test.js.map +1 -1
  235. package/dist/integration.test.js +166 -1
  236. package/dist/integration.test.js.map +1 -1
  237. package/dist/patterns.d.ts +18 -88
  238. package/dist/patterns.d.ts.map +1 -1
  239. package/dist/patterns.js +540 -304
  240. package/dist/patterns.js.map +1 -1
  241. package/dist/patterns.test.js +5 -4
  242. package/dist/patterns.test.js.map +1 -1
  243. package/dist/specialization/generation.d.ts +7 -3
  244. package/dist/specialization/generation.d.ts.map +1 -1
  245. package/dist/specialization/generation.js +31 -15
  246. package/dist/specialization/generation.js.map +1 -1
  247. package/dist/specialization/type-aliases.test.js +3 -2
  248. package/dist/specialization/type-aliases.test.js.map +1 -1
  249. package/dist/statement-emitter.d.ts +15 -4
  250. package/dist/statement-emitter.d.ts.map +1 -1
  251. package/dist/statement-emitter.js +54 -47
  252. package/dist/statement-emitter.js.map +1 -1
  253. package/dist/statements/blocks.d.ts +24 -16
  254. package/dist/statements/blocks.d.ts.map +1 -1
  255. package/dist/statements/blocks.js +191 -65
  256. package/dist/statements/blocks.js.map +1 -1
  257. package/dist/statements/classes/index.d.ts +1 -1
  258. package/dist/statements/classes/index.d.ts.map +1 -1
  259. package/dist/statements/classes/index.js +1 -1
  260. package/dist/statements/classes/index.js.map +1 -1
  261. package/dist/statements/classes/inline-types.d.ts +4 -3
  262. package/dist/statements/classes/inline-types.d.ts.map +1 -1
  263. package/dist/statements/classes/inline-types.js +21 -21
  264. package/dist/statements/classes/inline-types.js.map +1 -1
  265. package/dist/statements/classes/members/constructors.d.ts +4 -3
  266. package/dist/statements/classes/members/constructors.d.ts.map +1 -1
  267. package/dist/statements/classes/members/constructors.js +57 -58
  268. package/dist/statements/classes/members/constructors.js.map +1 -1
  269. package/dist/statements/classes/members/methods.d.ts +4 -3
  270. package/dist/statements/classes/members/methods.d.ts.map +1 -1
  271. package/dist/statements/classes/members/methods.js +98 -98
  272. package/dist/statements/classes/members/methods.js.map +1 -1
  273. package/dist/statements/classes/members/orchestrator.d.ts +4 -3
  274. package/dist/statements/classes/members/orchestrator.d.ts.map +1 -1
  275. package/dist/statements/classes/members/orchestrator.js +2 -2
  276. package/dist/statements/classes/members/orchestrator.js.map +1 -1
  277. package/dist/statements/classes/members/properties.d.ts +4 -3
  278. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  279. package/dist/statements/classes/members/properties.js +105 -88
  280. package/dist/statements/classes/members/properties.js.map +1 -1
  281. package/dist/statements/classes/members/shadowing.test.js +7 -2
  282. package/dist/statements/classes/members/shadowing.test.js.map +1 -1
  283. package/dist/statements/classes/members/static-readonly-properties.test.js +4 -1
  284. package/dist/statements/classes/members/static-readonly-properties.test.js.map +1 -1
  285. package/dist/statements/classes/parameters.d.ts +8 -10
  286. package/dist/statements/classes/parameters.d.ts.map +1 -1
  287. package/dist/statements/classes/parameters.js +30 -26
  288. package/dist/statements/classes/parameters.js.map +1 -1
  289. package/dist/statements/classes/properties.d.ts +4 -3
  290. package/dist/statements/classes/properties.d.ts.map +1 -1
  291. package/dist/statements/classes/properties.js +76 -50
  292. package/dist/statements/classes/properties.js.map +1 -1
  293. package/dist/statements/classes.d.ts +1 -1
  294. package/dist/statements/classes.d.ts.map +1 -1
  295. package/dist/statements/classes.js +1 -1
  296. package/dist/statements/classes.js.map +1 -1
  297. package/dist/statements/control/conditionals/guard-analysis.d.ts +169 -0
  298. package/dist/statements/control/conditionals/guard-analysis.d.ts.map +1 -0
  299. package/dist/statements/control/conditionals/guard-analysis.js +591 -0
  300. package/dist/statements/control/conditionals/guard-analysis.js.map +1 -0
  301. package/dist/statements/control/conditionals/if-emitter.d.ts +14 -0
  302. package/dist/statements/control/conditionals/if-emitter.d.ts.map +1 -0
  303. package/dist/statements/control/conditionals/if-emitter.js +725 -0
  304. package/dist/statements/control/conditionals/if-emitter.js.map +1 -0
  305. package/dist/statements/control/conditionals/switch-emitter.d.ts +13 -0
  306. package/dist/statements/control/conditionals/switch-emitter.d.ts.map +1 -0
  307. package/dist/statements/control/conditionals/switch-emitter.js +60 -0
  308. package/dist/statements/control/conditionals/switch-emitter.js.map +1 -0
  309. package/dist/statements/control/conditionals.d.ts +3 -15
  310. package/dist/statements/control/conditionals.d.ts.map +1 -1
  311. package/dist/statements/control/conditionals.js +3 -1152
  312. package/dist/statements/control/conditionals.js.map +1 -1
  313. package/dist/statements/control/exceptions.d.ts +8 -6
  314. package/dist/statements/control/exceptions.d.ts.map +1 -1
  315. package/dist/statements/control/exceptions.js +35 -23
  316. package/dist/statements/control/exceptions.js.map +1 -1
  317. package/dist/statements/control/index.d.ts +3 -3
  318. package/dist/statements/control/index.d.ts.map +1 -1
  319. package/dist/statements/control/index.js +3 -3
  320. package/dist/statements/control/index.js.map +1 -1
  321. package/dist/statements/control/loops.d.ts +14 -12
  322. package/dist/statements/control/loops.d.ts.map +1 -1
  323. package/dist/statements/control/loops.js +147 -82
  324. package/dist/statements/control/loops.js.map +1 -1
  325. package/dist/statements/control.d.ts +1 -1
  326. package/dist/statements/control.d.ts.map +1 -1
  327. package/dist/statements/control.js +1 -1
  328. package/dist/statements/control.js.map +1 -1
  329. package/dist/statements/declarations/classes.d.ts +7 -3
  330. package/dist/statements/declarations/classes.d.ts.map +1 -1
  331. package/dist/statements/declarations/classes.js +66 -83
  332. package/dist/statements/declarations/classes.js.map +1 -1
  333. package/dist/statements/declarations/enums.d.ts +4 -3
  334. package/dist/statements/declarations/enums.d.ts.map +1 -1
  335. package/dist/statements/declarations/enums.js +16 -15
  336. package/dist/statements/declarations/enums.js.map +1 -1
  337. package/dist/statements/declarations/functions.d.ts +18 -2
  338. package/dist/statements/declarations/functions.d.ts.map +1 -1
  339. package/dist/statements/declarations/functions.js +625 -159
  340. package/dist/statements/declarations/functions.js.map +1 -1
  341. package/dist/statements/declarations/index.d.ts +2 -2
  342. package/dist/statements/declarations/index.d.ts.map +1 -1
  343. package/dist/statements/declarations/index.js +2 -2
  344. package/dist/statements/declarations/index.js.map +1 -1
  345. package/dist/statements/declarations/interfaces.d.ts +7 -3
  346. package/dist/statements/declarations/interfaces.d.ts.map +1 -1
  347. package/dist/statements/declarations/interfaces.js +119 -106
  348. package/dist/statements/declarations/interfaces.js.map +1 -1
  349. package/dist/statements/declarations/type-aliases.d.ts +7 -3
  350. package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
  351. package/dist/statements/declarations/type-aliases.js +95 -82
  352. package/dist/statements/declarations/type-aliases.js.map +1 -1
  353. package/dist/statements/declarations/variables.d.ts +12 -2
  354. package/dist/statements/declarations/variables.d.ts.map +1 -1
  355. package/dist/statements/declarations/variables.js +533 -425
  356. package/dist/statements/declarations/variables.js.map +1 -1
  357. package/dist/statements/declarations.d.ts +1 -1
  358. package/dist/statements/declarations.d.ts.map +1 -1
  359. package/dist/statements/declarations.js +1 -1
  360. package/dist/statements/declarations.js.map +1 -1
  361. package/dist/statements/index.d.ts +3 -3
  362. package/dist/statements/index.d.ts.map +1 -1
  363. package/dist/statements/index.js +5 -5
  364. package/dist/statements/index.js.map +1 -1
  365. package/dist/type-emitter.d.ts +1 -1
  366. package/dist/type-emitter.d.ts.map +1 -1
  367. package/dist/type-emitter.js +1 -1
  368. package/dist/type-emitter.js.map +1 -1
  369. package/dist/types/arrays.d.ts +3 -2
  370. package/dist/types/arrays.d.ts.map +1 -1
  371. package/dist/types/arrays.js +7 -5
  372. package/dist/types/arrays.js.map +1 -1
  373. package/dist/types/dictionaries.d.ts +6 -3
  374. package/dist/types/dictionaries.d.ts.map +1 -1
  375. package/dist/types/dictionaries.js +22 -10
  376. package/dist/types/dictionaries.js.map +1 -1
  377. package/dist/types/emitter.d.ts +8 -2
  378. package/dist/types/emitter.d.ts.map +1 -1
  379. package/dist/types/emitter.js +20 -6
  380. package/dist/types/emitter.js.map +1 -1
  381. package/dist/types/functions.d.ts +3 -2
  382. package/dist/types/functions.d.ts.map +1 -1
  383. package/dist/types/functions.js +36 -13
  384. package/dist/types/functions.js.map +1 -1
  385. package/dist/types/index.d.ts +2 -2
  386. package/dist/types/index.d.ts.map +1 -1
  387. package/dist/types/index.js +2 -2
  388. package/dist/types/index.js.map +1 -1
  389. package/dist/types/index.test.js +137 -0
  390. package/dist/types/index.test.js.map +1 -1
  391. package/dist/types/intersections.d.ts +3 -2
  392. package/dist/types/intersections.d.ts.map +1 -1
  393. package/dist/types/intersections.js +2 -2
  394. package/dist/types/intersections.js.map +1 -1
  395. package/dist/types/literals.d.ts +9 -2
  396. package/dist/types/literals.d.ts.map +1 -1
  397. package/dist/types/literals.js +11 -5
  398. package/dist/types/literals.js.map +1 -1
  399. package/dist/types/objects.d.ts +3 -2
  400. package/dist/types/objects.d.ts.map +1 -1
  401. package/dist/types/objects.js +1 -1
  402. package/dist/types/objects.js.map +1 -1
  403. package/dist/types/parameters.d.ts +6 -5
  404. package/dist/types/parameters.d.ts.map +1 -1
  405. package/dist/types/parameters.js +88 -29
  406. package/dist/types/parameters.js.map +1 -1
  407. package/dist/types/parameters.test.js +9 -4
  408. package/dist/types/parameters.test.js.map +1 -1
  409. package/dist/types/primitives.d.ts +5 -4
  410. package/dist/types/primitives.d.ts.map +1 -1
  411. package/dist/types/primitives.js +14 -13
  412. package/dist/types/primitives.js.map +1 -1
  413. package/dist/types/references.d.ts +3 -2
  414. package/dist/types/references.d.ts.map +1 -1
  415. package/dist/types/references.js +135 -111
  416. package/dist/types/references.js.map +1 -1
  417. package/dist/types/tuples.d.ts +3 -2
  418. package/dist/types/tuples.d.ts.map +1 -1
  419. package/dist/types/tuples.js +25 -11
  420. package/dist/types/tuples.js.map +1 -1
  421. package/dist/types/unions.d.ts +3 -2
  422. package/dist/types/unions.d.ts.map +1 -1
  423. package/dist/types/unions.js +36 -21
  424. package/dist/types/unions.js.map +1 -1
  425. package/dist/types.d.ts +1 -1
  426. package/dist/types.d.ts.map +1 -1
  427. package/dist/types.js.map +1 -1
  428. package/package.json +2 -2
  429. package/dist/core/attributes.d.ts.map +0 -1
  430. package/dist/core/attributes.js +0 -141
  431. package/dist/core/attributes.js.map +0 -1
  432. package/dist/core/attributes.test.d.ts.map +0 -1
  433. package/dist/core/attributes.test.js.map +0 -1
  434. package/dist/core/boolean-context.d.ts +0 -42
  435. package/dist/core/boolean-context.d.ts.map +0 -1
  436. package/dist/core/boolean-context.js +0 -442
  437. package/dist/core/boolean-context.js.map +0 -1
  438. package/dist/core/boolean-context.test.d.ts.map +0 -1
  439. package/dist/core/boolean-context.test.js.map +0 -1
  440. package/dist/core/exports.d.ts.map +0 -1
  441. package/dist/core/exports.js +0 -28
  442. package/dist/core/exports.js.map +0 -1
  443. package/dist/core/imports.d.ts.map +0 -1
  444. package/dist/core/imports.js.map +0 -1
  445. package/dist/core/imports.test.d.ts.map +0 -1
  446. package/dist/core/imports.test.js.map +0 -1
  447. package/dist/core/local-names.d.ts.map +0 -1
  448. package/dist/core/local-names.js.map +0 -1
  449. package/dist/core/local-types.d.ts.map +0 -1
  450. package/dist/core/local-types.js.map +0 -1
  451. package/dist/core/module-emitter/assembly.d.ts +0 -24
  452. package/dist/core/module-emitter/assembly.d.ts.map +0 -1
  453. package/dist/core/module-emitter/assembly.js +0 -69
  454. package/dist/core/module-emitter/assembly.js.map +0 -1
  455. package/dist/core/module-emitter/header.d.ts.map +0 -1
  456. package/dist/core/module-emitter/header.js.map +0 -1
  457. package/dist/core/module-emitter/index.d.ts.map +0 -1
  458. package/dist/core/module-emitter/index.js.map +0 -1
  459. package/dist/core/module-emitter/namespace.d.ts +0 -14
  460. package/dist/core/module-emitter/namespace.d.ts.map +0 -1
  461. package/dist/core/module-emitter/namespace.js +0 -26
  462. package/dist/core/module-emitter/namespace.js.map +0 -1
  463. package/dist/core/module-emitter/orchestrator.d.ts.map +0 -1
  464. package/dist/core/module-emitter/orchestrator.js.map +0 -1
  465. package/dist/core/module-emitter/separation.d.ts.map +0 -1
  466. package/dist/core/module-emitter/separation.js.map +0 -1
  467. package/dist/core/module-emitter/static-container.d.ts.map +0 -1
  468. package/dist/core/module-emitter/static-container.js +0 -139
  469. package/dist/core/module-emitter/static-container.js.map +0 -1
  470. package/dist/core/module-emitter.d.ts.map +0 -1
  471. package/dist/core/module-emitter.js.map +0 -1
  472. package/dist/core/module-map.d.ts.map +0 -1
  473. package/dist/core/module-map.js.map +0 -1
  474. package/dist/core/module-map.test.d.ts.map +0 -1
  475. package/dist/core/module-map.test.js.map +0 -1
  476. package/dist/core/naming-collisions.d.ts.map +0 -1
  477. package/dist/core/naming-collisions.js.map +0 -1
  478. package/dist/core/options.d.ts.map +0 -1
  479. package/dist/core/options.js.map +0 -1
  480. package/dist/core/type-alias-index.d.ts.map +0 -1
  481. package/dist/core/type-alias-index.js.map +0 -1
  482. package/dist/core/type-compatibility.d.ts.map +0 -1
  483. package/dist/core/type-compatibility.js.map +0 -1
  484. package/dist/core/type-member-index.d.ts.map +0 -1
  485. package/dist/core/type-member-index.js.map +0 -1
  486. package/dist/core/type-params.d.ts.map +0 -1
  487. package/dist/core/type-params.js.map +0 -1
  488. package/dist/core/type-resolution.d.ts.map +0 -1
  489. package/dist/core/type-resolution.js.map +0 -1
  490. package/dist/core/type-resolution.test.d.ts.map +0 -1
  491. package/dist/core/type-resolution.test.js.map +0 -1
  492. package/dist/core/unsafe.d.ts.map +0 -1
  493. package/dist/core/unsafe.js.map +0 -1
  494. /package/dist/core/{attributes.test.d.ts → format/attributes.test.d.ts} +0 -0
  495. /package/dist/core/{module-emitter → format/module-emitter}/index.d.ts +0 -0
  496. /package/dist/core/{module-emitter → format/module-emitter}/index.js +0 -0
  497. /package/dist/core/{module-emitter → format/module-emitter}/separation.d.ts +0 -0
  498. /package/dist/core/{module-emitter → format/module-emitter}/separation.js +0 -0
  499. /package/dist/core/{module-emitter.d.ts → format/module-emitter.d.ts} +0 -0
  500. /package/dist/core/{module-emitter.js → format/module-emitter.js} +0 -0
  501. /package/dist/core/{options.js → format/options.js} +0 -0
  502. /package/dist/core/{boolean-context.test.d.ts → semantic/boolean-context.test.d.ts} +0 -0
  503. /package/dist/core/{imports.test.d.ts → semantic/imports.test.d.ts} +0 -0
  504. /package/dist/core/{local-types.js → semantic/local-types.js} +0 -0
  505. /package/dist/core/{module-map.js → semantic/module-map.js} +0 -0
  506. /package/dist/core/{module-map.test.d.ts → semantic/module-map.test.d.ts} +0 -0
  507. /package/dist/core/{module-map.test.js → semantic/module-map.test.js} +0 -0
  508. /package/dist/core/{naming-collisions.d.ts → semantic/naming-collisions.d.ts} +0 -0
  509. /package/dist/core/{type-alias-index.js → semantic/type-alias-index.js} +0 -0
  510. /package/dist/core/{type-compatibility.d.ts → semantic/type-compatibility.d.ts} +0 -0
  511. /package/dist/core/{type-compatibility.js → semantic/type-compatibility.js} +0 -0
  512. /package/dist/core/{type-member-index.js → semantic/type-member-index.js} +0 -0
  513. /package/dist/core/{type-params.d.ts → semantic/type-params.d.ts} +0 -0
  514. /package/dist/core/{type-params.js → semantic/type-params.js} +0 -0
  515. /package/dist/core/{type-resolution.test.d.ts → semantic/type-resolution.test.d.ts} +0 -0
  516. /package/dist/core/{unsafe.d.ts → semantic/unsafe.d.ts} +0 -0
  517. /package/dist/core/{unsafe.js → semantic/unsafe.js} +0 -0
@@ -1,24 +1,32 @@
1
1
  /**
2
2
  * Block and simple statement emitters
3
+ *
4
+ * Returns CSharpStatementAst nodes. Multi-statement lowerings (e.g., void-return
5
+ * splitting into `expr; return;`) return arrays of statements that the parent
6
+ * block flattens into its own statements array.
3
7
  */
4
8
  import { IrStatement, IrExpression } from "@tsonic/frontend";
5
9
  import { EmitterContext } from "../types.js";
10
+ import type { CSharpStatementAst, CSharpBlockStatementAst } from "../core/format/backend-ast/types.js";
6
11
  /**
7
- * Emit a block statement
12
+ * Emit a block statement as AST
8
13
  */
9
- export declare const emitBlockStatement: (stmt: Extract<IrStatement, {
14
+ export declare const emitBlockStatementAst: (stmt: Extract<IrStatement, {
10
15
  kind: "blockStatement";
11
- }>, context: EmitterContext) => [string, EmitterContext];
16
+ }>, context: EmitterContext) => [CSharpBlockStatementAst, EmitterContext];
12
17
  /**
13
- * Emit a return statement
18
+ * Emit a return statement as AST.
14
19
  * Uses context.returnType to pass expectedType for null → default conversion in generic contexts.
20
+ *
21
+ * Returns an array because void-return lowering may produce multiple statements
22
+ * (e.g., `expr; return;` for side-effectful expressions in void-returning functions).
15
23
  */
16
- export declare const emitReturnStatement: (stmt: Extract<IrStatement, {
24
+ export declare const emitReturnStatementAst: (stmt: Extract<IrStatement, {
17
25
  kind: "returnStatement";
18
- }>, context: EmitterContext) => [string, EmitterContext];
26
+ }>, context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext];
19
27
  /**
20
28
  * Emit yield expression as C# yield return with exchange object pattern
21
- * (Legacy handler for IrYieldExpression - used for unidirectional generators)
29
+ * (Handler for IrYieldExpression in unidirectional generators)
22
30
  *
23
31
  * TypeScript: yield value
24
32
  * C#:
@@ -30,9 +38,9 @@ export declare const emitReturnStatement: (stmt: Extract<IrStatement, {
30
38
  * foreach (var item in OtherGenerator())
31
39
  * yield return item;
32
40
  */
33
- export declare const emitYieldExpression: (expr: Extract<IrExpression, {
41
+ export declare const emitYieldExpressionAst: (expr: Extract<IrExpression, {
34
42
  kind: "yield";
35
- }>, context: EmitterContext) => [string, EmitterContext];
43
+ }>, context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext];
36
44
  /**
37
45
  * Emit IrYieldStatement (lowered form from yield-lowering pass)
38
46
  * Handles bidirectional communication: const x = yield value;
@@ -48,15 +56,15 @@ export declare const emitYieldExpression: (expr: Extract<IrExpression, {
48
56
  * exchange.Output = value;
49
57
  * yield return exchange;
50
58
  */
51
- export declare const emitYieldStatement: (stmt: Extract<IrStatement, {
59
+ export declare const emitYieldStatementAst: (stmt: Extract<IrStatement, {
52
60
  kind: "yieldStatement";
53
- }>, context: EmitterContext) => [string, EmitterContext];
61
+ }>, context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext];
54
62
  /**
55
- * Emit an expression statement
63
+ * Emit an expression statement as AST
56
64
  */
57
- export declare const emitExpressionStatement: (stmt: Extract<IrStatement, {
65
+ export declare const emitExpressionStatementAst: (stmt: Extract<IrStatement, {
58
66
  kind: "expressionStatement";
59
- }>, context: EmitterContext) => [string, EmitterContext];
67
+ }>, context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext];
60
68
  /**
61
69
  * Emit IrGeneratorReturnStatement (lowered form from yield-lowering pass)
62
70
  * Handles return statements in generators with TReturn.
@@ -73,7 +81,7 @@ export declare const emitExpressionStatement: (stmt: Extract<IrStatement, {
73
81
  * The __returnValue variable is declared in the enclosing function emission.
74
82
  * The wrapper's _getReturnValue closure captures this value when iteration completes.
75
83
  */
76
- export declare const emitGeneratorReturnStatement: (stmt: Extract<IrStatement, {
84
+ export declare const emitGeneratorReturnStatementAst: (stmt: Extract<IrStatement, {
77
85
  kind: "generatorReturnStatement";
78
- }>, context: EmitterContext) => [string, EmitterContext];
86
+ }>, context: EmitterContext) => [readonly CSharpStatementAst[], EmitterContext];
79
87
  //# sourceMappingURL=blocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAa,MAAM,aAAa,CAAC;AAMxD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAqBzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACvD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAsDzB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,EAC9C,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA2CzB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAqDzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAoCzB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,GACvC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,CAAC,EAChE,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CAoBzB,CAAC"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EAExB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,uBAAuB,EAAE,cAAc,CAmB1C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACvD,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CAsEhD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,EAC9C,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CA+EhD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EACtD,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CAoGhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC,EAC3D,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CA8ChD,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,+BAA+B,GAC1C,MAAM,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,CAAC,EAChE,SAAS,cAAc,KACtB,CAAC,SAAS,kBAAkB,EAAE,EAAE,cAAc,CA2BhD,CAAC"}
@@ -1,16 +1,18 @@
1
1
  /**
2
2
  * Block and simple statement emitters
3
+ *
4
+ * Returns CSharpStatementAst nodes. Multi-statement lowerings (e.g., void-return
5
+ * splitting into `expr; return;`) return arrays of statements that the parent
6
+ * block flattens into its own statements array.
3
7
  */
4
- import { getIndent } from "../types.js";
5
- import { emitExpression } from "../expression-emitter.js";
6
- import { emitStatement } from "../statement-emitter.js";
7
- import { lowerPattern } from "../patterns.js";
8
- import { allocateLocalName } from "../core/local-names.js";
8
+ import { emitExpressionAst } from "../expression-emitter.js";
9
+ import { emitStatementAst } from "../statement-emitter.js";
10
+ import { lowerPatternAst } from "../patterns.js";
11
+ import { allocateLocalName } from "../core/format/local-names.js";
9
12
  /**
10
- * Emit a block statement
13
+ * Emit a block statement as AST
11
14
  */
12
- export const emitBlockStatement = (stmt, context) => {
13
- const ind = getIndent(context);
15
+ export const emitBlockStatementAst = (stmt, context) => {
14
16
  const outerNameMap = context.localNameMap;
15
17
  // New lexical scope for locals (prevents C# CS0136 shadowing errors).
16
18
  let currentContext = {
@@ -19,22 +21,23 @@ export const emitBlockStatement = (stmt, context) => {
19
21
  };
20
22
  const statements = [];
21
23
  for (const s of stmt.statements) {
22
- const [code, newContext] = emitStatement(s, currentContext);
23
- statements.push(code);
24
+ const [stmts, newContext] = emitStatementAst(s, currentContext);
25
+ statements.push(...stmts);
24
26
  currentContext = newContext;
25
27
  }
26
- const bodyCode = statements.join("\n");
27
28
  return [
28
- `${ind}{\n${bodyCode}\n${ind}}`,
29
+ { kind: "blockStatement", statements },
29
30
  { ...currentContext, localNameMap: outerNameMap },
30
31
  ];
31
32
  };
32
33
  /**
33
- * Emit a return statement
34
+ * Emit a return statement as AST.
34
35
  * Uses context.returnType to pass expectedType for null → default conversion in generic contexts.
36
+ *
37
+ * Returns an array because void-return lowering may produce multiple statements
38
+ * (e.g., `expr; return;` for side-effectful expressions in void-returning functions).
35
39
  */
36
- export const emitReturnStatement = (stmt, context) => {
37
- const ind = getIndent(context);
40
+ export const emitReturnStatementAst = (stmt, context) => {
38
41
  if (stmt.expression) {
39
42
  // In TypeScript, `return expr;` is permitted in a `void`-returning function and
40
43
  // simply returns `undefined` after evaluating `expr` for side effects.
@@ -51,28 +54,45 @@ export const emitReturnStatement = (stmt, context) => {
51
54
  (expr.value === undefined || expr.value === null)) ||
52
55
  (expr.kind === "identifier" &&
53
56
  (expr.name === "undefined" || expr.name === "null"));
54
- const [exprFrag, newContext] = emitExpression(expr, context);
57
+ const [exprAst, newContext] = emitExpressionAst(expr, context);
55
58
  if (isNoopExpr) {
56
- return [`${ind}return;`, newContext];
59
+ return [[{ kind: "returnStatement" }], newContext];
57
60
  }
61
+ const returnStmt = { kind: "returnStatement" };
58
62
  if (expr.kind === "call" ||
59
63
  expr.kind === "new" ||
60
64
  expr.kind === "assignment" ||
61
65
  expr.kind === "update" ||
62
66
  expr.kind === "await") {
63
- return [`${ind}${exprFrag.text};\n${ind}return;`, newContext];
67
+ return [
68
+ [{ kind: "expressionStatement", expression: exprAst }, returnStmt],
69
+ newContext,
70
+ ];
64
71
  }
65
- return [`${ind}_ = ${exprFrag.text};\n${ind}return;`, newContext];
72
+ // Use discard assignment for expressions that aren't valid C# statement-expressions
73
+ const discardAssign = {
74
+ kind: "assignmentExpression",
75
+ operatorToken: "=",
76
+ left: { kind: "identifierExpression", identifier: "_" },
77
+ right: exprAst,
78
+ };
79
+ return [
80
+ [
81
+ { kind: "expressionStatement", expression: discardAssign },
82
+ returnStmt,
83
+ ],
84
+ newContext,
85
+ ];
66
86
  }
67
87
  // Pass returnType as expectedType for null → default conversion in generic contexts
68
- const [exprFrag, newContext] = emitExpression(stmt.expression, context, context.returnType);
69
- return [`${ind}return ${exprFrag.text};`, newContext];
88
+ const [exprAst, newContext] = emitExpressionAst(stmt.expression, context, context.returnType);
89
+ return [[{ kind: "returnStatement", expression: exprAst }], newContext];
70
90
  }
71
- return [`${ind}return;`, context];
91
+ return [[{ kind: "returnStatement" }], context];
72
92
  };
73
93
  /**
74
94
  * Emit yield expression as C# yield return with exchange object pattern
75
- * (Legacy handler for IrYieldExpression - used for unidirectional generators)
95
+ * (Handler for IrYieldExpression in unidirectional generators)
76
96
  *
77
97
  * TypeScript: yield value
78
98
  * C#:
@@ -84,41 +104,79 @@ export const emitReturnStatement = (stmt, context) => {
84
104
  * foreach (var item in OtherGenerator())
85
105
  * yield return item;
86
106
  */
87
- export const emitYieldExpression = (expr, context) => {
88
- const ind = getIndent(context);
107
+ export const emitYieldExpressionAst = (expr, context) => {
89
108
  let currentContext = context;
90
109
  const parts = [];
91
110
  if (expr.delegate) {
92
111
  // yield* delegation
93
112
  if (expr.expression) {
94
- const [delegateFrag, newContext] = emitExpression(expr.expression, currentContext);
113
+ const [delegateAst, newContext] = emitExpressionAst(expr.expression, currentContext);
95
114
  currentContext = newContext;
96
115
  // Use await foreach for async generators, foreach for sync
97
- const foreachKeyword = currentContext.isAsync
98
- ? "await foreach"
99
- : "foreach";
100
116
  const itemAlloc = allocateLocalName("item", currentContext);
101
117
  currentContext = itemAlloc.context;
102
- parts.push(`${ind}${foreachKeyword} (var ${itemAlloc.emittedName} in ${delegateFrag.text})`);
103
- parts.push(`${ind} yield return ${itemAlloc.emittedName};`);
118
+ parts.push({
119
+ kind: "foreachStatement",
120
+ isAwait: currentContext.isAsync,
121
+ type: { kind: "varType" },
122
+ identifier: itemAlloc.emittedName,
123
+ expression: delegateAst,
124
+ body: {
125
+ kind: "yieldStatement",
126
+ isBreak: false,
127
+ expression: {
128
+ kind: "identifierExpression",
129
+ identifier: itemAlloc.emittedName,
130
+ },
131
+ },
132
+ });
104
133
  }
105
134
  }
106
135
  else {
107
136
  // Regular yield
108
137
  if (expr.expression) {
109
- const [valueFrag, newContext] = emitExpression(expr.expression, currentContext);
138
+ const [valueAst, newContext] = emitExpressionAst(expr.expression, currentContext);
110
139
  currentContext = newContext;
111
140
  const exchangeVar = currentContext.generatorExchangeVar ?? "exchange";
112
- parts.push(`${ind}${exchangeVar}.Output = ${valueFrag.text};`);
113
- parts.push(`${ind}yield return ${exchangeVar};`);
141
+ parts.push({
142
+ kind: "expressionStatement",
143
+ expression: {
144
+ kind: "assignmentExpression",
145
+ operatorToken: "=",
146
+ left: {
147
+ kind: "memberAccessExpression",
148
+ expression: {
149
+ kind: "identifierExpression",
150
+ identifier: exchangeVar,
151
+ },
152
+ memberName: "Output",
153
+ },
154
+ right: valueAst,
155
+ },
156
+ });
157
+ parts.push({
158
+ kind: "yieldStatement",
159
+ isBreak: false,
160
+ expression: {
161
+ kind: "identifierExpression",
162
+ identifier: exchangeVar,
163
+ },
164
+ });
114
165
  }
115
166
  else {
116
167
  // Bare yield (no value)
117
168
  const exchangeVar = currentContext.generatorExchangeVar ?? "exchange";
118
- parts.push(`${ind}yield return ${exchangeVar};`);
169
+ parts.push({
170
+ kind: "yieldStatement",
171
+ isBreak: false,
172
+ expression: {
173
+ kind: "identifierExpression",
174
+ identifier: exchangeVar,
175
+ },
176
+ });
119
177
  }
120
178
  }
121
- return [parts.join("\n"), currentContext];
179
+ return [parts, currentContext];
122
180
  };
123
181
  /**
124
182
  * Emit IrYieldStatement (lowered form from yield-lowering pass)
@@ -135,54 +193,103 @@ export const emitYieldExpression = (expr, context) => {
135
193
  * exchange.Output = value;
136
194
  * yield return exchange;
137
195
  */
138
- export const emitYieldStatement = (stmt, context) => {
139
- const ind = getIndent(context);
196
+ export const emitYieldStatementAst = (stmt, context) => {
140
197
  let currentContext = context;
141
198
  const parts = [];
142
199
  if (stmt.delegate) {
143
200
  // yield* delegation - emit foreach pattern
144
201
  if (stmt.output) {
145
- const [delegateFrag, newContext] = emitExpression(stmt.output, currentContext);
202
+ const [delegateAst, newContext] = emitExpressionAst(stmt.output, currentContext);
146
203
  currentContext = newContext;
147
204
  // Use await foreach for async generators, foreach for sync
148
- const foreachKeyword = currentContext.isAsync
149
- ? "await foreach"
150
- : "foreach";
151
205
  const itemAlloc = allocateLocalName("item", currentContext);
152
206
  currentContext = itemAlloc.context;
153
- parts.push(`${ind}${foreachKeyword} (var ${itemAlloc.emittedName} in ${delegateFrag.text})`);
154
- parts.push(`${ind} yield return ${itemAlloc.emittedName};`);
207
+ parts.push({
208
+ kind: "foreachStatement",
209
+ isAwait: currentContext.isAsync,
210
+ type: { kind: "varType" },
211
+ identifier: itemAlloc.emittedName,
212
+ expression: delegateAst,
213
+ body: {
214
+ kind: "yieldStatement",
215
+ isBreak: false,
216
+ expression: {
217
+ kind: "identifierExpression",
218
+ identifier: itemAlloc.emittedName,
219
+ },
220
+ },
221
+ });
155
222
  }
156
223
  }
157
224
  else {
158
225
  // Regular yield with optional bidirectional support
159
226
  if (stmt.output) {
160
- const [valueFrag, newContext] = emitExpression(stmt.output, currentContext);
227
+ const [valueAst, newContext] = emitExpressionAst(stmt.output, currentContext);
161
228
  currentContext = newContext;
162
229
  const exchangeVar = currentContext.generatorExchangeVar ?? "exchange";
163
- parts.push(`${ind}${exchangeVar}.Output = ${valueFrag.text};`);
230
+ parts.push({
231
+ kind: "expressionStatement",
232
+ expression: {
233
+ kind: "assignmentExpression",
234
+ operatorToken: "=",
235
+ left: {
236
+ kind: "memberAccessExpression",
237
+ expression: {
238
+ kind: "identifierExpression",
239
+ identifier: exchangeVar,
240
+ },
241
+ memberName: "Output",
242
+ },
243
+ right: valueAst,
244
+ },
245
+ });
164
246
  }
165
247
  const exchangeVar = currentContext.generatorExchangeVar ?? "exchange";
166
- parts.push(`${ind}yield return ${exchangeVar};`);
248
+ parts.push({
249
+ kind: "yieldStatement",
250
+ isBreak: false,
251
+ expression: {
252
+ kind: "identifierExpression",
253
+ identifier: exchangeVar,
254
+ },
255
+ });
167
256
  // Handle receiveTarget for bidirectional communication
168
257
  if (stmt.receiveTarget) {
169
- const lowered = lowerPattern(stmt.receiveTarget, `(${exchangeVar}.Input ?? default!)`, stmt.receivedType, ind, currentContext);
258
+ const inputExpr = {
259
+ kind: "parenthesizedExpression",
260
+ expression: {
261
+ kind: "binaryExpression",
262
+ operatorToken: "??",
263
+ left: {
264
+ kind: "memberAccessExpression",
265
+ expression: {
266
+ kind: "identifierExpression",
267
+ identifier: exchangeVar,
268
+ },
269
+ memberName: "Input",
270
+ },
271
+ right: {
272
+ kind: "suppressNullableWarningExpression",
273
+ expression: { kind: "defaultExpression" },
274
+ },
275
+ },
276
+ };
277
+ const lowered = lowerPatternAst(stmt.receiveTarget, inputExpr, stmt.receivedType, currentContext);
170
278
  parts.push(...lowered.statements);
171
279
  currentContext = lowered.context;
172
280
  }
173
281
  }
174
- return [parts.join("\n"), currentContext];
282
+ return [parts, currentContext];
175
283
  };
176
284
  /**
177
- * Emit an expression statement
285
+ * Emit an expression statement as AST
178
286
  */
179
- export const emitExpressionStatement = (stmt, context) => {
180
- const ind = getIndent(context);
287
+ export const emitExpressionStatementAst = (stmt, context) => {
181
288
  // Special handling for yield expressions in generators
182
289
  // Note: After yield-lowering pass, generators will have IrYieldStatement nodes instead
183
- // This is kept for backward compatibility with unprocessed IR
290
+ // Handles unprocessed IR (before yield-lowering pass)
184
291
  if (stmt.expression.kind === "yield") {
185
- return emitYieldExpression(stmt.expression, context);
292
+ return emitYieldExpressionAst(stmt.expression, context);
186
293
  }
187
294
  // TypeScript `void expr;` evaluates `expr` and discards the result.
188
295
  //
@@ -191,7 +298,7 @@ export const emitExpressionStatement = (stmt, context) => {
191
298
  // without introducing runtime helpers.
192
299
  if (stmt.expression.kind === "unary" && stmt.expression.operator === "void") {
193
300
  const operand = stmt.expression.expression;
194
- const [operandFrag, newContext] = emitExpression(operand, context);
301
+ const [operandAst, newContext] = emitExpressionAst(operand, context);
195
302
  // If the operand is already a valid statement-expression (call/new/assignment/
196
303
  // update/await), emit it directly. Otherwise, use a discard assignment.
197
304
  if (operand.kind === "call" ||
@@ -199,12 +306,24 @@ export const emitExpressionStatement = (stmt, context) => {
199
306
  operand.kind === "assignment" ||
200
307
  operand.kind === "update" ||
201
308
  operand.kind === "await") {
202
- return [`${ind}${operandFrag.text};`, newContext];
309
+ return [
310
+ [{ kind: "expressionStatement", expression: operandAst }],
311
+ newContext,
312
+ ];
203
313
  }
204
- return [`${ind}_ = ${operandFrag.text};`, newContext];
314
+ const discardAssign = {
315
+ kind: "assignmentExpression",
316
+ operatorToken: "=",
317
+ left: { kind: "identifierExpression", identifier: "_" },
318
+ right: operandAst,
319
+ };
320
+ return [
321
+ [{ kind: "expressionStatement", expression: discardAssign }],
322
+ newContext,
323
+ ];
205
324
  }
206
- const [exprFrag, newContext] = emitExpression(stmt.expression, context);
207
- return [`${ind}${exprFrag.text};`, newContext];
325
+ const [exprAst, newContext] = emitExpressionAst(stmt.expression, context);
326
+ return [[{ kind: "expressionStatement", expression: exprAst }], newContext];
208
327
  };
209
328
  /**
210
329
  * Emit IrGeneratorReturnStatement (lowered form from yield-lowering pass)
@@ -222,19 +341,26 @@ export const emitExpressionStatement = (stmt, context) => {
222
341
  * The __returnValue variable is declared in the enclosing function emission.
223
342
  * The wrapper's _getReturnValue closure captures this value when iteration completes.
224
343
  */
225
- export const emitGeneratorReturnStatement = (stmt, context) => {
226
- const ind = getIndent(context);
344
+ export const emitGeneratorReturnStatementAst = (stmt, context) => {
227
345
  let currentContext = context;
228
346
  const returnVar = currentContext.generatorReturnValueVar ?? "__returnValue";
229
347
  const parts = [];
230
348
  if (stmt.expression) {
231
349
  // Capture the return value in __returnValue before terminating
232
- const [valueFrag, newContext] = emitExpression(stmt.expression, currentContext);
350
+ const [valueAst, newContext] = emitExpressionAst(stmt.expression, currentContext);
233
351
  currentContext = newContext;
234
- parts.push(`${ind}${returnVar} = ${valueFrag.text};`);
352
+ parts.push({
353
+ kind: "expressionStatement",
354
+ expression: {
355
+ kind: "assignmentExpression",
356
+ operatorToken: "=",
357
+ left: { kind: "identifierExpression", identifier: returnVar },
358
+ right: valueAst,
359
+ },
360
+ });
235
361
  }
236
362
  // Terminate the iterator
237
- parts.push(`${ind}yield break;`);
238
- return [parts.join("\n"), currentContext];
363
+ parts.push({ kind: "yieldStatement", isBreak: true });
364
+ return [parts, currentContext];
239
365
  };
240
366
  //# sourceMappingURL=blocks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/statements/blocks.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Class-related helpers - Public API
3
3
  */
4
4
  export { capitalize } from "./helpers.js";
5
- export { emitParameters, emitParametersWithDestructuring, generateParameterDestructuring, type ParameterEmissionResult, } from "./parameters.js";
5
+ export { emitParameters, emitParametersWithDestructuring, generateParameterDestructuringAst, type ParameterEmissionResult, } from "./parameters.js";
6
6
  export { emitClassMember } from "./members.js";
7
7
  export { emitInterfaceMemberAsProperty } from "./properties.js";
8
8
  export { extractInlineObjectTypes, emitExtractedType, type ExtractedType, } from "./inline-types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,+BAA+B,EAC/B,8BAA8B,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,+BAA+B,EAC/B,iCAAiC,EACjC,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Class-related helpers - Public API
3
3
  */
4
4
  export { capitalize } from "./helpers.js";
5
- export { emitParameters, emitParametersWithDestructuring, generateParameterDestructuring, } from "./parameters.js";
5
+ export { emitParameters, emitParametersWithDestructuring, generateParameterDestructuringAst, } from "./parameters.js";
6
6
  export { emitClassMember } from "./members.js";
7
7
  export { emitInterfaceMemberAsProperty } from "./properties.js";
8
8
  export { extractInlineObjectTypes, emitExtractedType, } from "./inline-types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/statements/classes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,+BAA+B,EAC/B,8BAA8B,GAE/B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAElB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/statements/classes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,+BAA+B,EAC/B,iCAAiC,GAElC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAElB,MAAM,mBAAmB,CAAC"}
@@ -1,8 +1,9 @@
1
1
  /**
2
- * Inline object type extraction and emission
2
+ * Inline object type extraction and emission — returns CSharpTypeDeclarationAst
3
3
  */
4
4
  import { IrInterfaceMember } from "@tsonic/frontend";
5
5
  import { EmitterContext } from "../../types.js";
6
+ import type { CSharpTypeDeclarationAst } from "../../core/format/backend-ast/types.js";
6
7
  /**
7
8
  * Extracted inline object type
8
9
  */
@@ -15,7 +16,7 @@ export type ExtractedType = {
15
16
  */
16
17
  export declare const extractInlineObjectTypes: (members: readonly IrInterfaceMember[], context: EmitterContext) => readonly ExtractedType[];
17
18
  /**
18
- * Emit an extracted inline object type as a class
19
+ * Emit an extracted inline object type as CSharpClassDeclarationAst
19
20
  */
20
- export declare const emitExtractedType: (extracted: ExtractedType, context: EmitterContext) => [string, EmitterContext];
21
+ export declare const emitExtractedType: (extracted: ExtractedType, context: EmitterContext) => [CSharpTypeDeclarationAst, EmitterContext];
21
22
  //# sourceMappingURL=inline-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-types.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/inline-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAMnE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,SAAS,iBAAiB,EAAE,EACrC,SAAS,cAAc,KACtB,SAAS,aAAa,EAkBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,aAAa,EACxB,SAAS,cAAc,KACtB,CAAC,MAAM,EAAE,cAAc,CA2CzB,CAAC"}
1
+ {"version":3,"file":"inline-types.d.ts","sourceRoot":"","sources":["../../../src/statements/classes/inline-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,wCAAwC,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,SAAS,iBAAiB,EAAE,EACrC,SAAS,cAAc,KACtB,SAAS,aAAa,EAkBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,aAAa,EACxB,SAAS,cAAc,KACtB,CAAC,wBAAwB,EAAE,cAAc,CAwC3C,CAAC"}