@tsonic/emitter 0.0.61 → 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 (531) 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} +3 -2
  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/format/module-emitter/orchestrator.js +254 -0
  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/module-emitter.test.js.map +1 -1
  87. package/dist/core/semantic/boolean-context.d.ts +44 -0
  88. package/dist/core/semantic/boolean-context.d.ts.map +1 -0
  89. package/dist/core/semantic/boolean-context.js +655 -0
  90. package/dist/core/semantic/boolean-context.js.map +1 -0
  91. package/dist/core/semantic/boolean-context.test.d.ts.map +1 -0
  92. package/dist/core/{boolean-context.test.js → semantic/boolean-context.test.js} +56 -103
  93. package/dist/core/semantic/boolean-context.test.js.map +1 -0
  94. package/dist/core/{imports.d.ts → semantic/imports.d.ts} +1 -5
  95. package/dist/core/semantic/imports.d.ts.map +1 -0
  96. package/dist/core/{imports.js → semantic/imports.js} +9 -78
  97. package/dist/core/semantic/imports.js.map +1 -0
  98. package/dist/core/semantic/imports.test.d.ts.map +1 -0
  99. package/dist/core/{imports.test.js → semantic/imports.test.js} +1 -1
  100. package/dist/core/semantic/imports.test.js.map +1 -0
  101. package/dist/core/semantic/index.d.ts +15 -0
  102. package/dist/core/semantic/index.d.ts.map +1 -0
  103. package/dist/core/semantic/index.js +15 -0
  104. package/dist/core/semantic/index.js.map +1 -0
  105. package/dist/core/{local-types.d.ts → semantic/local-types.d.ts} +1 -1
  106. package/dist/core/semantic/local-types.d.ts.map +1 -0
  107. package/dist/core/semantic/local-types.js.map +1 -0
  108. package/dist/core/{module-map.d.ts → semantic/module-map.d.ts} +1 -1
  109. package/dist/core/semantic/module-map.d.ts.map +1 -0
  110. package/dist/core/semantic/module-map.js.map +1 -0
  111. package/dist/core/semantic/module-map.test.d.ts.map +1 -0
  112. package/dist/core/semantic/module-map.test.js.map +1 -0
  113. package/dist/core/semantic/naming-collisions.d.ts.map +1 -0
  114. package/dist/core/{naming-collisions.js → semantic/naming-collisions.js} +3 -2
  115. package/dist/core/semantic/naming-collisions.js.map +1 -0
  116. package/dist/core/{type-alias-index.d.ts → semantic/type-alias-index.d.ts} +1 -1
  117. package/dist/core/semantic/type-alias-index.d.ts.map +1 -0
  118. package/dist/core/semantic/type-alias-index.js.map +1 -0
  119. package/dist/core/semantic/type-compatibility.d.ts.map +1 -0
  120. package/dist/core/semantic/type-compatibility.js.map +1 -0
  121. package/dist/core/{type-member-index.d.ts → semantic/type-member-index.d.ts} +1 -1
  122. package/dist/core/semantic/type-member-index.d.ts.map +1 -0
  123. package/dist/core/semantic/type-member-index.js.map +1 -0
  124. package/dist/core/semantic/type-params.d.ts.map +1 -0
  125. package/dist/core/semantic/type-params.js.map +1 -0
  126. package/dist/core/{type-resolution.d.ts → semantic/type-resolution.d.ts} +3 -6
  127. package/dist/core/semantic/type-resolution.d.ts.map +1 -0
  128. package/dist/core/{type-resolution.js → semantic/type-resolution.js} +78 -47
  129. package/dist/core/semantic/type-resolution.js.map +1 -0
  130. package/dist/core/semantic/type-resolution.test.d.ts.map +1 -0
  131. package/dist/core/{type-resolution.test.js → semantic/type-resolution.test.js} +155 -20
  132. package/dist/core/semantic/type-resolution.test.js.map +1 -0
  133. package/dist/core/semantic/unsafe.d.ts.map +1 -0
  134. package/dist/core/{unsafe.js → semantic/unsafe.js} +8 -6
  135. package/dist/core/semantic/unsafe.js.map +1 -0
  136. package/dist/emitter-types/core.d.ts +50 -12
  137. package/dist/emitter-types/core.d.ts.map +1 -1
  138. package/dist/emitter-types/index.d.ts +1 -1
  139. package/dist/emitter-types/index.d.ts.map +1 -1
  140. package/dist/emitter-types/index.js.map +1 -1
  141. package/dist/emitter.d.ts +1 -1
  142. package/dist/emitter.d.ts.map +1 -1
  143. package/dist/emitter.js +216 -16
  144. package/dist/emitter.js.map +1 -1
  145. package/dist/expression-emitter.d.ts +10 -5
  146. package/dist/expression-emitter.d.ts.map +1 -1
  147. package/dist/expression-emitter.js +135 -121
  148. package/dist/expression-emitter.js.map +1 -1
  149. package/dist/expressions/access.d.ts +4 -3
  150. package/dist/expressions/access.d.ts.map +1 -1
  151. package/dist/expressions/access.js +299 -109
  152. package/dist/expressions/access.js.map +1 -1
  153. package/dist/expressions/calls/call-analysis.d.ts +86 -0
  154. package/dist/expressions/calls/call-analysis.d.ts.map +1 -0
  155. package/dist/expressions/calls/call-analysis.js +284 -0
  156. package/dist/expressions/calls/call-analysis.js.map +1 -0
  157. package/dist/expressions/calls/call-emitter.d.ts +13 -0
  158. package/dist/expressions/calls/call-emitter.d.ts.map +1 -0
  159. package/dist/expressions/calls/call-emitter.js +876 -0
  160. package/dist/expressions/calls/call-emitter.js.map +1 -0
  161. package/dist/expressions/calls/new-emitter.d.ts +13 -0
  162. package/dist/expressions/calls/new-emitter.d.ts.map +1 -0
  163. package/dist/expressions/calls/new-emitter.js +641 -0
  164. package/dist/expressions/calls/new-emitter.js.map +1 -0
  165. package/dist/expressions/calls.d.ts +2 -14
  166. package/dist/expressions/calls.d.ts.map +1 -1
  167. package/dist/expressions/calls.js +2 -744
  168. package/dist/expressions/calls.js.map +1 -1
  169. package/dist/expressions/collections.d.ts +6 -16
  170. package/dist/expressions/collections.d.ts.map +1 -1
  171. package/dist/expressions/collections.js +303 -218
  172. package/dist/expressions/collections.js.map +1 -1
  173. package/dist/expressions/functions.d.ts +6 -5
  174. package/dist/expressions/functions.d.ts.map +1 -1
  175. package/dist/expressions/functions.js +57 -62
  176. package/dist/expressions/functions.js.map +1 -1
  177. package/dist/expressions/identifiers.d.ts +11 -6
  178. package/dist/expressions/identifiers.d.ts.map +1 -1
  179. package/dist/expressions/identifiers.js +81 -25
  180. package/dist/expressions/identifiers.js.map +1 -1
  181. package/dist/expressions/index.d.ts +1 -1
  182. package/dist/expressions/index.d.ts.map +1 -1
  183. package/dist/expressions/index.js +1 -1
  184. package/dist/expressions/index.js.map +1 -1
  185. package/dist/expressions/index.test.js +522 -3
  186. package/dist/expressions/index.test.js.map +1 -1
  187. package/dist/expressions/literals.d.ts +4 -3
  188. package/dist/expressions/literals.d.ts.map +1 -1
  189. package/dist/expressions/literals.js +25 -17
  190. package/dist/expressions/literals.js.map +1 -1
  191. package/dist/expressions/literals.test.js +18 -18
  192. package/dist/expressions/literals.test.js.map +1 -1
  193. package/dist/expressions/operators/assignment-emitter.d.ts +16 -0
  194. package/dist/expressions/operators/assignment-emitter.d.ts.map +1 -0
  195. package/dist/expressions/operators/assignment-emitter.js +118 -0
  196. package/dist/expressions/operators/assignment-emitter.js.map +1 -0
  197. package/dist/expressions/operators/binary-emitter.d.ts +33 -0
  198. package/dist/expressions/operators/binary-emitter.d.ts.map +1 -0
  199. package/dist/expressions/operators/binary-emitter.js +398 -0
  200. package/dist/expressions/operators/binary-emitter.js.map +1 -0
  201. package/dist/expressions/operators/conditional-emitter.d.ts +17 -0
  202. package/dist/expressions/operators/conditional-emitter.d.ts.map +1 -0
  203. package/dist/expressions/operators/conditional-emitter.js +306 -0
  204. package/dist/expressions/operators/conditional-emitter.js.map +1 -0
  205. package/dist/expressions/operators/helpers.d.ts +37 -0
  206. package/dist/expressions/operators/helpers.d.ts.map +1 -0
  207. package/dist/expressions/operators/helpers.js +136 -0
  208. package/dist/expressions/operators/helpers.js.map +1 -0
  209. package/dist/expressions/operators/logical-emitter.d.ts +23 -0
  210. package/dist/expressions/operators/logical-emitter.d.ts.map +1 -0
  211. package/dist/expressions/operators/logical-emitter.js +73 -0
  212. package/dist/expressions/operators/logical-emitter.js.map +1 -0
  213. package/dist/expressions/operators/unary-emitter.d.ts +30 -0
  214. package/dist/expressions/operators/unary-emitter.d.ts.map +1 -0
  215. package/dist/expressions/operators/unary-emitter.js +244 -0
  216. package/dist/expressions/operators/unary-emitter.js.map +1 -0
  217. package/dist/expressions/operators.d.ts +5 -81
  218. package/dist/expressions/operators.d.ts.map +1 -1
  219. package/dist/expressions/operators.js +5 -868
  220. package/dist/expressions/operators.js.map +1 -1
  221. package/dist/expressions/other.d.ts +15 -11
  222. package/dist/expressions/other.d.ts.map +1 -1
  223. package/dist/expressions/other.js +55 -38
  224. package/dist/expressions/other.js.map +1 -1
  225. package/dist/expressions/parentheses.d.ts.map +1 -1
  226. package/dist/expressions/parentheses.js +2 -1
  227. package/dist/expressions/parentheses.js.map +1 -1
  228. package/dist/expressions/precedence.test.js +6 -2
  229. package/dist/expressions/precedence.test.js.map +1 -1
  230. package/dist/generator-exchange.d.ts +10 -3
  231. package/dist/generator-exchange.d.ts.map +1 -1
  232. package/dist/generator-exchange.js +57 -54
  233. package/dist/generator-exchange.js.map +1 -1
  234. package/dist/generator-wrapper.d.ts +17 -65
  235. package/dist/generator-wrapper.d.ts.map +1 -1
  236. package/dist/generator-wrapper.js +396 -220
  237. package/dist/generator-wrapper.js.map +1 -1
  238. package/dist/generator-wrapper.test.js +22 -14
  239. package/dist/generator-wrapper.test.js.map +1 -1
  240. package/dist/golden-shards.d.ts.map +1 -1
  241. package/dist/golden-shards.js.map +1 -1
  242. package/dist/golden-tests/runner.d.ts.map +1 -1
  243. package/dist/golden-tests/runner.js +3 -1
  244. package/dist/golden-tests/runner.js.map +1 -1
  245. package/dist/integration.test.js +166 -1
  246. package/dist/integration.test.js.map +1 -1
  247. package/dist/json-aot-generic.test.js +8 -2
  248. package/dist/json-aot-generic.test.js.map +1 -1
  249. package/dist/patterns.d.ts +18 -88
  250. package/dist/patterns.d.ts.map +1 -1
  251. package/dist/patterns.js +540 -304
  252. package/dist/patterns.js.map +1 -1
  253. package/dist/patterns.test.js +5 -4
  254. package/dist/patterns.test.js.map +1 -1
  255. package/dist/specialization/generation.d.ts +7 -3
  256. package/dist/specialization/generation.d.ts.map +1 -1
  257. package/dist/specialization/generation.js +32 -16
  258. package/dist/specialization/generation.js.map +1 -1
  259. package/dist/specialization/type-aliases.test.js +3 -2
  260. package/dist/specialization/type-aliases.test.js.map +1 -1
  261. package/dist/statement-emitter.d.ts +15 -4
  262. package/dist/statement-emitter.d.ts.map +1 -1
  263. package/dist/statement-emitter.js +54 -47
  264. package/dist/statement-emitter.js.map +1 -1
  265. package/dist/statements/blocks.d.ts +24 -16
  266. package/dist/statements/blocks.d.ts.map +1 -1
  267. package/dist/statements/blocks.js +193 -66
  268. package/dist/statements/blocks.js.map +1 -1
  269. package/dist/statements/classes/index.d.ts +1 -1
  270. package/dist/statements/classes/index.d.ts.map +1 -1
  271. package/dist/statements/classes/index.js +1 -1
  272. package/dist/statements/classes/index.js.map +1 -1
  273. package/dist/statements/classes/inline-types.d.ts +4 -3
  274. package/dist/statements/classes/inline-types.d.ts.map +1 -1
  275. package/dist/statements/classes/inline-types.js +21 -21
  276. package/dist/statements/classes/inline-types.js.map +1 -1
  277. package/dist/statements/classes/members/constructors.d.ts +4 -3
  278. package/dist/statements/classes/members/constructors.d.ts.map +1 -1
  279. package/dist/statements/classes/members/constructors.js +57 -58
  280. package/dist/statements/classes/members/constructors.js.map +1 -1
  281. package/dist/statements/classes/members/methods.d.ts +4 -3
  282. package/dist/statements/classes/members/methods.d.ts.map +1 -1
  283. package/dist/statements/classes/members/methods.js +98 -98
  284. package/dist/statements/classes/members/methods.js.map +1 -1
  285. package/dist/statements/classes/members/orchestrator.d.ts +4 -3
  286. package/dist/statements/classes/members/orchestrator.d.ts.map +1 -1
  287. package/dist/statements/classes/members/orchestrator.js +2 -2
  288. package/dist/statements/classes/members/orchestrator.js.map +1 -1
  289. package/dist/statements/classes/members/properties.d.ts +4 -3
  290. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  291. package/dist/statements/classes/members/properties.js +109 -89
  292. package/dist/statements/classes/members/properties.js.map +1 -1
  293. package/dist/statements/classes/members/shadowing.test.js +7 -2
  294. package/dist/statements/classes/members/shadowing.test.js.map +1 -1
  295. package/dist/statements/classes/members/static-readonly-properties.test.js +10 -2
  296. package/dist/statements/classes/members/static-readonly-properties.test.js.map +1 -1
  297. package/dist/statements/classes/parameters.d.ts +8 -10
  298. package/dist/statements/classes/parameters.d.ts.map +1 -1
  299. package/dist/statements/classes/parameters.js +30 -26
  300. package/dist/statements/classes/parameters.js.map +1 -1
  301. package/dist/statements/classes/properties.d.ts +4 -3
  302. package/dist/statements/classes/properties.d.ts.map +1 -1
  303. package/dist/statements/classes/properties.js +76 -50
  304. package/dist/statements/classes/properties.js.map +1 -1
  305. package/dist/statements/classes.d.ts +1 -1
  306. package/dist/statements/classes.d.ts.map +1 -1
  307. package/dist/statements/classes.js +1 -1
  308. package/dist/statements/classes.js.map +1 -1
  309. package/dist/statements/control/conditionals/guard-analysis.d.ts +169 -0
  310. package/dist/statements/control/conditionals/guard-analysis.d.ts.map +1 -0
  311. package/dist/statements/control/conditionals/guard-analysis.js +591 -0
  312. package/dist/statements/control/conditionals/guard-analysis.js.map +1 -0
  313. package/dist/statements/control/conditionals/if-emitter.d.ts +14 -0
  314. package/dist/statements/control/conditionals/if-emitter.d.ts.map +1 -0
  315. package/dist/statements/control/conditionals/if-emitter.js +725 -0
  316. package/dist/statements/control/conditionals/if-emitter.js.map +1 -0
  317. package/dist/statements/control/conditionals/switch-emitter.d.ts +13 -0
  318. package/dist/statements/control/conditionals/switch-emitter.d.ts.map +1 -0
  319. package/dist/statements/control/conditionals/switch-emitter.js +60 -0
  320. package/dist/statements/control/conditionals/switch-emitter.js.map +1 -0
  321. package/dist/statements/control/conditionals.d.ts +3 -15
  322. package/dist/statements/control/conditionals.d.ts.map +1 -1
  323. package/dist/statements/control/conditionals.js +3 -1065
  324. package/dist/statements/control/conditionals.js.map +1 -1
  325. package/dist/statements/control/exceptions.d.ts +8 -6
  326. package/dist/statements/control/exceptions.d.ts.map +1 -1
  327. package/dist/statements/control/exceptions.js +35 -23
  328. package/dist/statements/control/exceptions.js.map +1 -1
  329. package/dist/statements/control/index.d.ts +3 -3
  330. package/dist/statements/control/index.d.ts.map +1 -1
  331. package/dist/statements/control/index.js +3 -3
  332. package/dist/statements/control/index.js.map +1 -1
  333. package/dist/statements/control/loops.d.ts +14 -12
  334. package/dist/statements/control/loops.d.ts.map +1 -1
  335. package/dist/statements/control/loops.js +147 -82
  336. package/dist/statements/control/loops.js.map +1 -1
  337. package/dist/statements/control.d.ts +1 -1
  338. package/dist/statements/control.d.ts.map +1 -1
  339. package/dist/statements/control.js +1 -1
  340. package/dist/statements/control.js.map +1 -1
  341. package/dist/statements/declarations/classes.d.ts +7 -3
  342. package/dist/statements/declarations/classes.d.ts.map +1 -1
  343. package/dist/statements/declarations/classes.js +72 -86
  344. package/dist/statements/declarations/classes.js.map +1 -1
  345. package/dist/statements/declarations/enums.d.ts +4 -3
  346. package/dist/statements/declarations/enums.d.ts.map +1 -1
  347. package/dist/statements/declarations/enums.js +18 -16
  348. package/dist/statements/declarations/enums.js.map +1 -1
  349. package/dist/statements/declarations/functions.d.ts +18 -2
  350. package/dist/statements/declarations/functions.d.ts.map +1 -1
  351. package/dist/statements/declarations/functions.js +625 -159
  352. package/dist/statements/declarations/functions.js.map +1 -1
  353. package/dist/statements/declarations/index.d.ts +2 -2
  354. package/dist/statements/declarations/index.d.ts.map +1 -1
  355. package/dist/statements/declarations/index.js +2 -2
  356. package/dist/statements/declarations/index.js.map +1 -1
  357. package/dist/statements/declarations/interfaces.d.ts +7 -3
  358. package/dist/statements/declarations/interfaces.d.ts.map +1 -1
  359. package/dist/statements/declarations/interfaces.js +121 -107
  360. package/dist/statements/declarations/interfaces.js.map +1 -1
  361. package/dist/statements/declarations/type-aliases.d.ts +7 -3
  362. package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
  363. package/dist/statements/declarations/type-aliases.js +95 -79
  364. package/dist/statements/declarations/type-aliases.js.map +1 -1
  365. package/dist/statements/declarations/variables.d.ts +12 -2
  366. package/dist/statements/declarations/variables.d.ts.map +1 -1
  367. package/dist/statements/declarations/variables.js +535 -424
  368. package/dist/statements/declarations/variables.js.map +1 -1
  369. package/dist/statements/declarations.d.ts +1 -1
  370. package/dist/statements/declarations.d.ts.map +1 -1
  371. package/dist/statements/declarations.js +1 -1
  372. package/dist/statements/declarations.js.map +1 -1
  373. package/dist/statements/index.d.ts +3 -3
  374. package/dist/statements/index.d.ts.map +1 -1
  375. package/dist/statements/index.js +5 -5
  376. package/dist/statements/index.js.map +1 -1
  377. package/dist/type-emitter.d.ts +1 -1
  378. package/dist/type-emitter.d.ts.map +1 -1
  379. package/dist/type-emitter.js +1 -1
  380. package/dist/type-emitter.js.map +1 -1
  381. package/dist/types/arrays.d.ts +3 -2
  382. package/dist/types/arrays.d.ts.map +1 -1
  383. package/dist/types/arrays.js +7 -5
  384. package/dist/types/arrays.js.map +1 -1
  385. package/dist/types/dictionaries.d.ts +6 -3
  386. package/dist/types/dictionaries.d.ts.map +1 -1
  387. package/dist/types/dictionaries.js +22 -10
  388. package/dist/types/dictionaries.js.map +1 -1
  389. package/dist/types/emitter.d.ts +8 -2
  390. package/dist/types/emitter.d.ts.map +1 -1
  391. package/dist/types/emitter.js +23 -6
  392. package/dist/types/emitter.js.map +1 -1
  393. package/dist/types/functions.d.ts +3 -2
  394. package/dist/types/functions.d.ts.map +1 -1
  395. package/dist/types/functions.js +36 -13
  396. package/dist/types/functions.js.map +1 -1
  397. package/dist/types/index.d.ts +2 -2
  398. package/dist/types/index.d.ts.map +1 -1
  399. package/dist/types/index.js +2 -2
  400. package/dist/types/index.js.map +1 -1
  401. package/dist/types/index.test.js +137 -0
  402. package/dist/types/index.test.js.map +1 -1
  403. package/dist/types/intersections.d.ts +3 -2
  404. package/dist/types/intersections.d.ts.map +1 -1
  405. package/dist/types/intersections.js +2 -2
  406. package/dist/types/intersections.js.map +1 -1
  407. package/dist/types/literals.d.ts +9 -2
  408. package/dist/types/literals.d.ts.map +1 -1
  409. package/dist/types/literals.js +11 -5
  410. package/dist/types/literals.js.map +1 -1
  411. package/dist/types/objects.d.ts +3 -2
  412. package/dist/types/objects.d.ts.map +1 -1
  413. package/dist/types/objects.js +1 -1
  414. package/dist/types/objects.js.map +1 -1
  415. package/dist/types/parameters.d.ts +6 -5
  416. package/dist/types/parameters.d.ts.map +1 -1
  417. package/dist/types/parameters.js +92 -31
  418. package/dist/types/parameters.js.map +1 -1
  419. package/dist/types/parameters.test.js +9 -4
  420. package/dist/types/parameters.test.js.map +1 -1
  421. package/dist/types/primitives.d.ts +5 -4
  422. package/dist/types/primitives.d.ts.map +1 -1
  423. package/dist/types/primitives.js +14 -13
  424. package/dist/types/primitives.js.map +1 -1
  425. package/dist/types/references.d.ts +3 -2
  426. package/dist/types/references.d.ts.map +1 -1
  427. package/dist/types/references.js +187 -104
  428. package/dist/types/references.js.map +1 -1
  429. package/dist/types/references.test.js +138 -0
  430. package/dist/types/references.test.js.map +1 -1
  431. package/dist/types/tuples.d.ts +3 -2
  432. package/dist/types/tuples.d.ts.map +1 -1
  433. package/dist/types/tuples.js +25 -11
  434. package/dist/types/tuples.js.map +1 -1
  435. package/dist/types/unions.d.ts +3 -2
  436. package/dist/types/unions.d.ts.map +1 -1
  437. package/dist/types/unions.js +36 -21
  438. package/dist/types/unions.js.map +1 -1
  439. package/dist/types.d.ts +1 -1
  440. package/dist/types.d.ts.map +1 -1
  441. package/dist/types.js.map +1 -1
  442. package/package.json +2 -2
  443. package/dist/core/attributes.d.ts.map +0 -1
  444. package/dist/core/attributes.js +0 -141
  445. package/dist/core/attributes.js.map +0 -1
  446. package/dist/core/attributes.test.d.ts.map +0 -1
  447. package/dist/core/attributes.test.js.map +0 -1
  448. package/dist/core/boolean-context.d.ts +0 -42
  449. package/dist/core/boolean-context.d.ts.map +0 -1
  450. package/dist/core/boolean-context.js +0 -402
  451. package/dist/core/boolean-context.js.map +0 -1
  452. package/dist/core/boolean-context.test.d.ts.map +0 -1
  453. package/dist/core/boolean-context.test.js.map +0 -1
  454. package/dist/core/exports.d.ts.map +0 -1
  455. package/dist/core/exports.js +0 -28
  456. package/dist/core/exports.js.map +0 -1
  457. package/dist/core/imports.d.ts.map +0 -1
  458. package/dist/core/imports.js.map +0 -1
  459. package/dist/core/imports.test.d.ts.map +0 -1
  460. package/dist/core/imports.test.js.map +0 -1
  461. package/dist/core/local-names.d.ts.map +0 -1
  462. package/dist/core/local-names.js.map +0 -1
  463. package/dist/core/local-types.d.ts.map +0 -1
  464. package/dist/core/local-types.js.map +0 -1
  465. package/dist/core/module-emitter/assembly.d.ts +0 -24
  466. package/dist/core/module-emitter/assembly.d.ts.map +0 -1
  467. package/dist/core/module-emitter/assembly.js +0 -69
  468. package/dist/core/module-emitter/assembly.js.map +0 -1
  469. package/dist/core/module-emitter/header.d.ts.map +0 -1
  470. package/dist/core/module-emitter/header.js.map +0 -1
  471. package/dist/core/module-emitter/index.d.ts.map +0 -1
  472. package/dist/core/module-emitter/index.js.map +0 -1
  473. package/dist/core/module-emitter/namespace.d.ts +0 -14
  474. package/dist/core/module-emitter/namespace.d.ts.map +0 -1
  475. package/dist/core/module-emitter/namespace.js +0 -26
  476. package/dist/core/module-emitter/namespace.js.map +0 -1
  477. package/dist/core/module-emitter/orchestrator.d.ts.map +0 -1
  478. package/dist/core/module-emitter/orchestrator.js +0 -82
  479. package/dist/core/module-emitter/orchestrator.js.map +0 -1
  480. package/dist/core/module-emitter/separation.d.ts.map +0 -1
  481. package/dist/core/module-emitter/separation.js.map +0 -1
  482. package/dist/core/module-emitter/static-container.d.ts.map +0 -1
  483. package/dist/core/module-emitter/static-container.js +0 -139
  484. package/dist/core/module-emitter/static-container.js.map +0 -1
  485. package/dist/core/module-emitter.d.ts.map +0 -1
  486. package/dist/core/module-emitter.js.map +0 -1
  487. package/dist/core/module-map.d.ts.map +0 -1
  488. package/dist/core/module-map.js.map +0 -1
  489. package/dist/core/module-map.test.d.ts.map +0 -1
  490. package/dist/core/module-map.test.js.map +0 -1
  491. package/dist/core/naming-collisions.d.ts.map +0 -1
  492. package/dist/core/naming-collisions.js.map +0 -1
  493. package/dist/core/options.d.ts.map +0 -1
  494. package/dist/core/options.js.map +0 -1
  495. package/dist/core/type-alias-index.d.ts.map +0 -1
  496. package/dist/core/type-alias-index.js.map +0 -1
  497. package/dist/core/type-compatibility.d.ts.map +0 -1
  498. package/dist/core/type-compatibility.js.map +0 -1
  499. package/dist/core/type-member-index.d.ts.map +0 -1
  500. package/dist/core/type-member-index.js.map +0 -1
  501. package/dist/core/type-params.d.ts.map +0 -1
  502. package/dist/core/type-params.js.map +0 -1
  503. package/dist/core/type-resolution.d.ts.map +0 -1
  504. package/dist/core/type-resolution.js.map +0 -1
  505. package/dist/core/type-resolution.test.d.ts.map +0 -1
  506. package/dist/core/type-resolution.test.js.map +0 -1
  507. package/dist/core/unsafe.d.ts.map +0 -1
  508. package/dist/core/unsafe.js.map +0 -1
  509. /package/dist/core/{attributes.test.d.ts → format/attributes.test.d.ts} +0 -0
  510. /package/dist/core/{module-emitter → format/module-emitter}/index.d.ts +0 -0
  511. /package/dist/core/{module-emitter → format/module-emitter}/index.js +0 -0
  512. /package/dist/core/{module-emitter → format/module-emitter}/separation.d.ts +0 -0
  513. /package/dist/core/{module-emitter → format/module-emitter}/separation.js +0 -0
  514. /package/dist/core/{module-emitter.d.ts → format/module-emitter.d.ts} +0 -0
  515. /package/dist/core/{module-emitter.js → format/module-emitter.js} +0 -0
  516. /package/dist/core/{options.js → format/options.js} +0 -0
  517. /package/dist/core/{boolean-context.test.d.ts → semantic/boolean-context.test.d.ts} +0 -0
  518. /package/dist/core/{imports.test.d.ts → semantic/imports.test.d.ts} +0 -0
  519. /package/dist/core/{local-types.js → semantic/local-types.js} +0 -0
  520. /package/dist/core/{module-map.js → semantic/module-map.js} +0 -0
  521. /package/dist/core/{module-map.test.d.ts → semantic/module-map.test.d.ts} +0 -0
  522. /package/dist/core/{module-map.test.js → semantic/module-map.test.js} +0 -0
  523. /package/dist/core/{naming-collisions.d.ts → semantic/naming-collisions.d.ts} +0 -0
  524. /package/dist/core/{type-alias-index.js → semantic/type-alias-index.js} +0 -0
  525. /package/dist/core/{type-compatibility.d.ts → semantic/type-compatibility.d.ts} +0 -0
  526. /package/dist/core/{type-compatibility.js → semantic/type-compatibility.js} +0 -0
  527. /package/dist/core/{type-member-index.js → semantic/type-member-index.js} +0 -0
  528. /package/dist/core/{type-params.d.ts → semantic/type-params.d.ts} +0 -0
  529. /package/dist/core/{type-params.js → semantic/type-params.js} +0 -0
  530. /package/dist/core/{type-resolution.test.d.ts → semantic/type-resolution.test.d.ts} +0 -0
  531. /package/dist/core/{unsafe.d.ts → semantic/unsafe.d.ts} +0 -0
@@ -1,98 +1,28 @@
1
1
  /**
2
- * Pattern Lowering Module
2
+ * Pattern lowering (AST-only).
3
3
  *
4
- * Transforms destructuring patterns into sequences of C# variable declarations.
5
- * This module is used by variable declarations, for-of loops, and function parameters.
6
- *
7
- * Example transformations:
8
- *
9
- * Array pattern:
10
- * const [a, b, c] = arr;
11
- * =>
12
- * var __t0 = arr;
13
- * var a = __t0[0];
14
- * var b = __t0[1];
15
- * var c = __t0[2];
16
- *
17
- * Array pattern with rest:
18
- * const [first, ...rest] = arr;
19
- * =>
20
- * var __t0 = arr;
21
- * var first = __t0[0];
22
- * var rest = Tsonic.Runtime.ArrayHelpers.Slice(__t0, 1);
23
- *
24
- * Object pattern:
25
- * const { name, age } = person;
26
- * =>
27
- * var __t0 = person;
28
- * var name = __t0.name;
29
- * var age = __t0.age;
30
- *
31
- * Object pattern with rest:
32
- * const { name, ...rest } = person;
33
- * =>
34
- * var __t0 = person;
35
- * var name = __t0.name;
36
- * var rest = new __Rest_xxxx { age = __t0.age, email = __t0.email };
4
+ * Handles destructuring for:
5
+ * - local declarations
6
+ * - static/module-level field declarations
7
+ * - assignment expressions
37
8
  */
38
9
  import { IrPattern, IrType } from "@tsonic/frontend";
39
10
  import { EmitterContext } from "./emitter-types/index.js";
40
- /**
41
- * Result of pattern lowering - a list of C# statements
42
- */
43
- export type LoweringResult = {
44
- /** Variable declarations generated from the pattern */
45
- readonly statements: readonly string[];
46
- /** The context after lowering (with any new locals registered) */
11
+ import type { CSharpExpressionAst, CSharpMemberAst, CSharpStatementAst } from "./core/format/backend-ast/types.js";
12
+ export type LoweringResultAst = {
13
+ readonly statements: readonly CSharpStatementAst[];
47
14
  readonly context: EmitterContext;
48
15
  };
49
- /**
50
- * Lower a pattern to a sequence of C# statements
51
- *
52
- * @param pattern - The pattern to lower (identifier, array, or object)
53
- * @param inputExpr - The C# expression being destructured
54
- * @param type - The type of the input expression (for type annotations)
55
- * @param indent - Indentation prefix for generated code
56
- * @param ctx - The current emitter context
57
- * @returns The generated statements and updated context
58
- */
59
- export declare const lowerPattern: (pattern: IrPattern, inputExpr: string, type: IrType | undefined, indent: string, ctx: EmitterContext) => LoweringResult;
60
- /**
61
- * Lower a pattern for a for-of loop variable
62
- * Similar to lowerPattern but handles the iteration context
63
- */
64
- export declare const lowerForOfPattern: (pattern: IrPattern, iteratorVar: string, elementType: IrType | undefined, indent: string, ctx: EmitterContext) => LoweringResult;
65
- /**
66
- * Lower a parameter pattern for function definitions
67
- * Generates statements to go at the beginning of the function body
68
- */
69
- export declare const lowerParameterPattern: (pattern: IrPattern, paramName: string, paramType: IrType | undefined, indent: string, ctx: EmitterContext) => LoweringResult;
70
- /**
71
- * Result of assignment pattern lowering - an expression and context
72
- *
73
- * Assignment destructuring is an expression (returns the RHS value),
74
- * so we return an expression string instead of statements.
75
- */
76
- export type AssignmentLoweringResult = {
77
- /** The C# expression that performs the assignment and returns the value */
78
- readonly expression: string;
79
- /** The context after lowering */
16
+ export declare const lowerPatternAst: (pattern: IrPattern, inputExpr: CSharpExpressionAst, type: IrType | undefined, ctx: EmitterContext) => LoweringResultAst;
17
+ export type StaticPatternLoweringResultAst = {
18
+ readonly members: readonly CSharpMemberAst[];
80
19
  readonly context: EmitterContext;
81
20
  };
82
- /**
83
- * Lower an assignment pattern to a C# expression
84
- *
85
- * In JavaScript, destructuring assignment is an expression that returns the RHS:
86
- * const result = ([a, b] = arr); // result === arr
87
- *
88
- * We emit this as a parenthesized sequence expression:
89
- * ((__t = rhs), (a = __t[0]), (b = __t[1]), __t)
90
- *
91
- * @param pattern - The pattern being assigned to
92
- * @param rhsExpr - The C# expression for the right-hand side
93
- * @param type - The type of the RHS expression
94
- * @param ctx - The current emitter context
95
- * @returns The expression and updated context
96
- */
97
- export declare const lowerAssignmentPattern: (pattern: IrPattern, rhsExpr: string, type: IrType | undefined, ctx: EmitterContext) => AssignmentLoweringResult;
21
+ export declare const lowerPatternToStaticMembersAst: (pattern: IrPattern, inputExpr: CSharpExpressionAst, type: IrType | undefined, ctx: EmitterContext) => StaticPatternLoweringResultAst;
22
+ type AssignmentPatternLoweringResultAst = {
23
+ readonly expression: CSharpExpressionAst;
24
+ readonly context: EmitterContext;
25
+ };
26
+ export declare const lowerAssignmentPatternAst: (pattern: IrPattern, rhsExpr: CSharpExpressionAst, rhsType: IrType | undefined, ctx: EmitterContext) => AssignmentPatternLoweringResultAst;
27
+ export {};
98
28
  //# sourceMappingURL=patterns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EACL,SAAS,EAGT,MAAM,EAEP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS1D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,CAAC;AAkUF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GACvB,SAAS,SAAS,EAClB,WAAW,MAAM,EACjB,MAAM,MAAM,GAAG,SAAS,EACxB,QAAQ,MAAM,EACd,KAAK,cAAc,KAClB,cA6BF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,SAAS,EAClB,aAAa,MAAM,EACnB,aAAa,MAAM,GAAG,SAAS,EAC/B,QAAQ,MAAM,EACd,KAAK,cAAc,KAClB,cASF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,SAAS,EAClB,WAAW,MAAM,EACjB,WAAW,MAAM,GAAG,SAAS,EAC7B,QAAQ,MAAM,EACd,KAAK,cAAc,KAClB,cAQF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,GACjC,SAAS,SAAS,EAClB,SAAS,MAAM,EACf,MAAM,MAAM,GAAG,SAAS,EACxB,KAAK,cAAc,KAClB,wBAoFF,CAAC"}
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAIL,SAAS,EACT,MAAM,EACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS1D,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAEnB,MAAM,oCAAoC,CAAC;AA6F5C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,CAAC;AA6NF,eAAO,MAAM,eAAe,GAC1B,SAAS,SAAS,EAClB,WAAW,mBAAmB,EAC9B,MAAM,MAAM,GAAG,SAAS,EACxB,KAAK,cAAc,KAClB,iBAYF,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,CAAC;AA0OF,eAAO,MAAM,8BAA8B,GACzC,SAAS,SAAS,EAClB,WAAW,mBAAmB,EAC9B,MAAM,MAAM,GAAG,SAAS,EACxB,KAAK,cAAc,KAClB,8BAkBF,CAAC;AAEF,KAAK,kCAAkC,GAAG;IACxC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,CAAC;AAuNF,eAAO,MAAM,yBAAyB,GACpC,SAAS,SAAS,EAClB,SAAS,mBAAmB,EAC5B,SAAS,MAAM,GAAG,SAAS,EAC3B,KAAK,cAAc,KAClB,kCAgFF,CAAC"}