@tsonic/frontend 0.0.13 → 0.0.15

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 (513) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/graph/builder.js +2 -2
  3. package/dist/graph/builder.js.map +1 -1
  4. package/dist/graph/extraction/imports.js +1 -1
  5. package/dist/graph/extraction/imports.js.map +1 -1
  6. package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
  7. package/dist/graph/extraction/orchestrator.js +1 -1
  8. package/dist/graph/extraction/orchestrator.js.map +1 -1
  9. package/dist/ir/binding/index.d.ts +134 -0
  10. package/dist/ir/binding/index.d.ts.map +1 -0
  11. package/dist/ir/binding/index.js +725 -0
  12. package/dist/ir/binding/index.js.map +1 -0
  13. package/dist/ir/binding-resolution.test.js +193 -52
  14. package/dist/ir/binding-resolution.test.js.map +1 -1
  15. package/dist/ir/builder/exports.d.ts +20 -2
  16. package/dist/ir/builder/exports.d.ts.map +1 -1
  17. package/dist/ir/builder/exports.js +65 -6
  18. package/dist/ir/builder/exports.js.map +1 -1
  19. package/dist/ir/builder/imports.d.ts +9 -5
  20. package/dist/ir/builder/imports.d.ts.map +1 -1
  21. package/dist/ir/builder/imports.js +20 -31
  22. package/dist/ir/builder/imports.js.map +1 -1
  23. package/dist/ir/builder/orchestrator.d.ts +10 -1
  24. package/dist/ir/builder/orchestrator.d.ts.map +1 -1
  25. package/dist/ir/builder/orchestrator.js +25 -14
  26. package/dist/ir/builder/orchestrator.js.map +1 -1
  27. package/dist/ir/builder/statements.d.ts +7 -1
  28. package/dist/ir/builder/statements.d.ts.map +1 -1
  29. package/dist/ir/builder/statements.js +7 -2
  30. package/dist/ir/builder/statements.js.map +1 -1
  31. package/dist/ir/builder/types.d.ts +3 -0
  32. package/dist/ir/builder/types.d.ts.map +1 -1
  33. package/dist/ir/builder/validation.d.ts +4 -1
  34. package/dist/ir/builder/validation.d.ts.map +1 -1
  35. package/dist/ir/builder/validation.js +37 -37
  36. package/dist/ir/builder/validation.js.map +1 -1
  37. package/dist/ir/builder.test.js +54 -111
  38. package/dist/ir/builder.test.js.map +1 -1
  39. package/dist/ir/clr-type-mappings.d.ts +42 -0
  40. package/dist/ir/clr-type-mappings.d.ts.map +1 -0
  41. package/dist/ir/clr-type-mappings.js +139 -0
  42. package/dist/ir/clr-type-mappings.js.map +1 -0
  43. package/dist/ir/converters/anonymous-synthesis.d.ts +30 -8
  44. package/dist/ir/converters/anonymous-synthesis.d.ts.map +1 -1
  45. package/dist/ir/converters/anonymous-synthesis.js +46 -55
  46. package/dist/ir/converters/anonymous-synthesis.js.map +1 -1
  47. package/dist/ir/converters/context.d.ts +40 -0
  48. package/dist/ir/converters/context.d.ts.map +1 -0
  49. package/dist/ir/converters/context.js +24 -0
  50. package/dist/ir/converters/context.js.map +1 -0
  51. package/dist/ir/converters/expressions/access.d.ts +6 -1
  52. package/dist/ir/converters/expressions/access.d.ts.map +1 -1
  53. package/dist/ir/converters/expressions/access.js +239 -15
  54. package/dist/ir/converters/expressions/access.js.map +1 -1
  55. package/dist/ir/converters/expressions/calls.d.ts +24 -3
  56. package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
  57. package/dist/ir/converters/expressions/calls.js +450 -385
  58. package/dist/ir/converters/expressions/calls.js.map +1 -1
  59. package/dist/ir/converters/expressions/collections.d.ts +16 -3
  60. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  61. package/dist/ir/converters/expressions/collections.js +300 -46
  62. package/dist/ir/converters/expressions/collections.js.map +1 -1
  63. package/dist/ir/converters/expressions/functions.d.ts +10 -3
  64. package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
  65. package/dist/ir/converters/expressions/functions.js +140 -32
  66. package/dist/ir/converters/expressions/functions.js.map +1 -1
  67. package/dist/ir/converters/expressions/helpers.d.ts +22 -23
  68. package/dist/ir/converters/expressions/helpers.d.ts.map +1 -1
  69. package/dist/ir/converters/expressions/helpers.js +242 -239
  70. package/dist/ir/converters/expressions/helpers.js.map +1 -1
  71. package/dist/ir/converters/expressions/index.d.ts +1 -1
  72. package/dist/ir/converters/expressions/index.d.ts.map +1 -1
  73. package/dist/ir/converters/expressions/index.js +1 -1
  74. package/dist/ir/converters/expressions/index.js.map +1 -1
  75. package/dist/ir/converters/expressions/literals.d.ts +12 -12
  76. package/dist/ir/converters/expressions/literals.d.ts.map +1 -1
  77. package/dist/ir/converters/expressions/literals.js +62 -17
  78. package/dist/ir/converters/expressions/literals.js.map +1 -1
  79. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts +5 -2
  80. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts.map +1 -1
  81. package/dist/ir/converters/expressions/numeric-recovery.test.js +62 -49
  82. package/dist/ir/converters/expressions/numeric-recovery.test.js.map +1 -1
  83. package/dist/ir/converters/expressions/operators.d.ts +13 -4
  84. package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
  85. package/dist/ir/converters/expressions/operators.js +179 -33
  86. package/dist/ir/converters/expressions/operators.js.map +1 -1
  87. package/dist/ir/converters/expressions/other.d.ts +11 -3
  88. package/dist/ir/converters/expressions/other.d.ts.map +1 -1
  89. package/dist/ir/converters/expressions/other.js +26 -10
  90. package/dist/ir/converters/expressions/other.js.map +1 -1
  91. package/dist/ir/converters/statements/control/blocks.d.ts +8 -2
  92. package/dist/ir/converters/statements/control/blocks.d.ts.map +1 -1
  93. package/dist/ir/converters/statements/control/blocks.js +7 -2
  94. package/dist/ir/converters/statements/control/blocks.js.map +1 -1
  95. package/dist/ir/converters/statements/control/conditionals.d.ts +14 -4
  96. package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
  97. package/dist/ir/converters/statements/control/conditionals.js +19 -10
  98. package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
  99. package/dist/ir/converters/statements/control/exceptions.d.ts +10 -3
  100. package/dist/ir/converters/statements/control/exceptions.d.ts.map +1 -1
  101. package/dist/ir/converters/statements/control/exceptions.js +13 -7
  102. package/dist/ir/converters/statements/control/exceptions.js.map +1 -1
  103. package/dist/ir/converters/statements/control/loops.d.ts +16 -5
  104. package/dist/ir/converters/statements/control/loops.d.ts.map +1 -1
  105. package/dist/ir/converters/statements/control/loops.js +25 -15
  106. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  107. package/dist/ir/converters/statements/declarations/classes/constructors.d.ts +3 -2
  108. package/dist/ir/converters/statements/declarations/classes/constructors.d.ts.map +1 -1
  109. package/dist/ir/converters/statements/declarations/classes/constructors.js +11 -7
  110. package/dist/ir/converters/statements/declarations/classes/constructors.js.map +1 -1
  111. package/dist/ir/converters/statements/declarations/classes/methods.d.ts +2 -1
  112. package/dist/ir/converters/statements/declarations/classes/methods.d.ts.map +1 -1
  113. package/dist/ir/converters/statements/declarations/classes/methods.js +63 -11
  114. package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -1
  115. package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts +2 -1
  116. package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts.map +1 -1
  117. package/dist/ir/converters/statements/declarations/classes/orchestrator.js +60 -40
  118. package/dist/ir/converters/statements/declarations/classes/orchestrator.js.map +1 -1
  119. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts +6 -2
  120. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts.map +1 -1
  121. package/dist/ir/converters/statements/declarations/classes/override-detection.js +49 -50
  122. package/dist/ir/converters/statements/declarations/classes/override-detection.js.map +1 -1
  123. package/dist/ir/converters/statements/declarations/classes/properties.d.ts +9 -1
  124. package/dist/ir/converters/statements/declarations/classes/properties.d.ts.map +1 -1
  125. package/dist/ir/converters/statements/declarations/classes/properties.js +119 -16
  126. package/dist/ir/converters/statements/declarations/classes/properties.js.map +1 -1
  127. package/dist/ir/converters/statements/declarations/enums.d.ts +2 -1
  128. package/dist/ir/converters/statements/declarations/enums.d.ts.map +1 -1
  129. package/dist/ir/converters/statements/declarations/enums.js +8 -2
  130. package/dist/ir/converters/statements/declarations/enums.js.map +1 -1
  131. package/dist/ir/converters/statements/declarations/functions.d.ts +2 -1
  132. package/dist/ir/converters/statements/declarations/functions.d.ts.map +1 -1
  133. package/dist/ir/converters/statements/declarations/functions.js +11 -6
  134. package/dist/ir/converters/statements/declarations/functions.js.map +1 -1
  135. package/dist/ir/converters/statements/declarations/index.d.ts +3 -1
  136. package/dist/ir/converters/statements/declarations/index.d.ts.map +1 -1
  137. package/dist/ir/converters/statements/declarations/index.js +3 -1
  138. package/dist/ir/converters/statements/declarations/index.js.map +1 -1
  139. package/dist/ir/converters/statements/declarations/interfaces.d.ts +3 -2
  140. package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -1
  141. package/dist/ir/converters/statements/declarations/interfaces.js +26 -20
  142. package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -1
  143. package/dist/ir/converters/statements/declarations/registry.d.ts +72 -0
  144. package/dist/ir/converters/statements/declarations/registry.d.ts.map +1 -1
  145. package/dist/ir/converters/statements/declarations/registry.js +92 -0
  146. package/dist/ir/converters/statements/declarations/registry.js.map +1 -1
  147. package/dist/ir/converters/statements/declarations/type-aliases.d.ts +2 -1
  148. package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -1
  149. package/dist/ir/converters/statements/declarations/type-aliases.js +6 -4
  150. package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
  151. package/dist/ir/converters/statements/declarations/variables.d.ts +11 -1
  152. package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -1
  153. package/dist/ir/converters/statements/declarations/variables.js +123 -19
  154. package/dist/ir/converters/statements/declarations/variables.js.map +1 -1
  155. package/dist/ir/converters/statements/declarations.d.ts +4 -1
  156. package/dist/ir/converters/statements/declarations.d.ts.map +1 -1
  157. package/dist/ir/converters/statements/declarations.js +4 -1
  158. package/dist/ir/converters/statements/declarations.js.map +1 -1
  159. package/dist/ir/converters/statements/helpers.d.ts +4 -3
  160. package/dist/ir/converters/statements/helpers.d.ts.map +1 -1
  161. package/dist/ir/converters/statements/helpers.js +55 -31
  162. package/dist/ir/converters/statements/helpers.js.map +1 -1
  163. package/dist/ir/converters/statements/index.d.ts +1 -1
  164. package/dist/ir/converters/statements/index.d.ts.map +1 -1
  165. package/dist/ir/converters/statements/index.js +2 -1
  166. package/dist/ir/converters/statements/index.js.map +1 -1
  167. package/dist/ir/expression-converter.d.ts +10 -3
  168. package/dist/ir/expression-converter.d.ts.map +1 -1
  169. package/dist/ir/expression-converter.js +150 -56
  170. package/dist/ir/expression-converter.js.map +1 -1
  171. package/dist/ir/hierarchical-bindings-e2e.test.js +10 -6
  172. package/dist/ir/hierarchical-bindings-e2e.test.js.map +1 -1
  173. package/dist/ir/index.d.ts +5 -0
  174. package/dist/ir/index.d.ts.map +1 -1
  175. package/dist/ir/index.js +5 -0
  176. package/dist/ir/index.js.map +1 -1
  177. package/dist/ir/no-ts-type-inference.test.d.ts +17 -0
  178. package/dist/ir/no-ts-type-inference.test.d.ts.map +1 -0
  179. package/dist/ir/no-ts-type-inference.test.js +171 -0
  180. package/dist/ir/no-ts-type-inference.test.js.map +1 -0
  181. package/dist/ir/program-context.d.ts +74 -0
  182. package/dist/ir/program-context.d.ts.map +1 -0
  183. package/dist/ir/program-context.js +286 -0
  184. package/dist/ir/program-context.js.map +1 -0
  185. package/dist/ir/statement-converter.d.ts +14 -4
  186. package/dist/ir/statement-converter.d.ts.map +1 -1
  187. package/dist/ir/statement-converter.js +31 -21
  188. package/dist/ir/statement-converter.js.map +1 -1
  189. package/dist/ir/syntax/binding-patterns.d.ts +22 -0
  190. package/dist/ir/syntax/binding-patterns.d.ts.map +1 -0
  191. package/dist/ir/syntax/binding-patterns.js +92 -0
  192. package/dist/ir/syntax/binding-patterns.js.map +1 -0
  193. package/dist/ir/thisarg-inference.test.d.ts +8 -0
  194. package/dist/ir/thisarg-inference.test.d.ts.map +1 -0
  195. package/dist/ir/thisarg-inference.test.js +94 -0
  196. package/dist/ir/thisarg-inference.test.js.map +1 -0
  197. package/dist/ir/type-converter.d.ts +5 -2
  198. package/dist/ir/type-converter.d.ts.map +1 -1
  199. package/dist/ir/type-converter.js +5 -2
  200. package/dist/ir/type-converter.js.map +1 -1
  201. package/dist/ir/type-system/core.d.ts +29 -0
  202. package/dist/ir/type-system/core.d.ts.map +1 -0
  203. package/dist/ir/type-system/core.js +456 -0
  204. package/dist/ir/type-system/core.js.map +1 -0
  205. package/dist/ir/type-system/index.d.ts +21 -0
  206. package/dist/ir/type-system/index.d.ts.map +1 -0
  207. package/dist/ir/type-system/index.js +43 -0
  208. package/dist/ir/type-system/index.js.map +1 -0
  209. package/dist/ir/type-system/internal/handle-types.d.ts +98 -0
  210. package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -0
  211. package/dist/ir/type-system/internal/handle-types.js +13 -0
  212. package/dist/ir/type-system/internal/handle-types.js.map +1 -0
  213. package/dist/ir/type-system/internal/nominal-env.d.ts +66 -0
  214. package/dist/ir/type-system/internal/nominal-env.d.ts.map +1 -0
  215. package/dist/ir/type-system/internal/nominal-env.js +301 -0
  216. package/dist/ir/type-system/internal/nominal-env.js.map +1 -0
  217. package/dist/ir/type-system/internal/type-converter/arrays.d.ts +11 -0
  218. package/dist/ir/type-system/internal/type-converter/arrays.d.ts.map +1 -0
  219. package/dist/ir/{type-converter → type-system/internal/type-converter}/arrays.js +2 -2
  220. package/dist/ir/type-system/internal/type-converter/arrays.js.map +1 -0
  221. package/dist/ir/type-system/internal/type-converter/converter.d.ts +17 -0
  222. package/dist/ir/type-system/internal/type-converter/converter.d.ts.map +1 -0
  223. package/dist/ir/type-system/internal/type-converter/converter.js +16 -0
  224. package/dist/ir/type-system/internal/type-converter/converter.js.map +1 -0
  225. package/dist/ir/type-system/internal/type-converter/functions.d.ts +14 -0
  226. package/dist/ir/type-system/internal/type-converter/functions.d.ts.map +1 -0
  227. package/dist/ir/type-system/internal/type-converter/functions.js +66 -0
  228. package/dist/ir/type-system/internal/type-converter/functions.js.map +1 -0
  229. package/dist/ir/type-system/internal/type-converter/index.d.ts +11 -0
  230. package/dist/ir/type-system/internal/type-converter/index.d.ts.map +1 -0
  231. package/dist/ir/type-system/internal/type-converter/index.js +11 -0
  232. package/dist/ir/type-system/internal/type-converter/index.js.map +1 -0
  233. package/dist/ir/type-system/internal/type-converter/inference.d.ts +37 -0
  234. package/dist/ir/type-system/internal/type-converter/inference.d.ts.map +1 -0
  235. package/dist/ir/type-system/internal/type-converter/inference.js +32 -0
  236. package/dist/ir/type-system/internal/type-converter/inference.js.map +1 -0
  237. package/dist/ir/{type-converter → type-system/internal/type-converter}/literals.d.ts +1 -1
  238. package/dist/ir/type-system/internal/type-converter/literals.d.ts.map +1 -0
  239. package/dist/ir/type-system/internal/type-converter/literals.js.map +1 -0
  240. package/dist/ir/type-system/internal/type-converter/objects.d.ts +20 -0
  241. package/dist/ir/type-system/internal/type-converter/objects.d.ts.map +1 -0
  242. package/dist/ir/{type-converter → type-system/internal/type-converter}/objects.js +56 -6
  243. package/dist/ir/type-system/internal/type-converter/objects.js.map +1 -0
  244. package/dist/ir/{type-converter → type-system/internal/type-converter}/orchestrator.d.ts +3 -2
  245. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -0
  246. package/dist/ir/{type-converter → type-system/internal/type-converter}/orchestrator.js +63 -21
  247. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -0
  248. package/dist/ir/type-system/internal/type-converter/patterns.d.ts +12 -0
  249. package/dist/ir/type-system/internal/type-converter/patterns.d.ts.map +1 -0
  250. package/dist/ir/{type-converter → type-system/internal/type-converter}/patterns.js +22 -6
  251. package/dist/ir/type-system/internal/type-converter/patterns.js.map +1 -0
  252. package/dist/ir/{type-converter → type-system/internal/type-converter}/primitives.d.ts +1 -1
  253. package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -0
  254. package/dist/ir/type-system/internal/type-converter/primitives.js.map +1 -0
  255. package/dist/ir/{type-converter → type-system/internal/type-converter}/references.d.ts +3 -2
  256. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -0
  257. package/dist/ir/type-system/internal/type-converter/references.js +551 -0
  258. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -0
  259. package/dist/ir/type-system/internal/type-converter/unions-intersections.d.ts +15 -0
  260. package/dist/ir/type-system/internal/type-converter/unions-intersections.d.ts.map +1 -0
  261. package/dist/ir/type-system/internal/type-converter/unions-intersections.js +22 -0
  262. package/dist/ir/type-system/internal/type-converter/unions-intersections.js.map +1 -0
  263. package/dist/ir/{type-converter → type-system/internal/type-converter}/utility-types.d.ts +23 -36
  264. package/dist/ir/type-system/internal/type-converter/utility-types.d.ts.map +1 -0
  265. package/dist/ir/type-system/internal/type-converter/utility-types.js +879 -0
  266. package/dist/ir/type-system/internal/type-converter/utility-types.js.map +1 -0
  267. package/dist/ir/type-system/internal/type-converter/utility-types.test.d.ts.map +1 -0
  268. package/dist/ir/{type-converter → type-system/internal/type-converter}/utility-types.test.js +398 -120
  269. package/dist/ir/type-system/internal/type-converter/utility-types.test.js.map +1 -0
  270. package/dist/ir/type-system/internal/type-converter.d.ts +9 -0
  271. package/dist/ir/type-system/internal/type-converter.d.ts.map +1 -0
  272. package/dist/ir/type-system/internal/type-converter.js +9 -0
  273. package/dist/ir/type-system/internal/type-converter.js.map +1 -0
  274. package/dist/ir/type-system/internal/type-registry.d.ts +107 -0
  275. package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -0
  276. package/dist/ir/type-system/internal/type-registry.js +534 -0
  277. package/dist/ir/type-system/internal/type-registry.js.map +1 -0
  278. package/dist/ir/type-system/internal/universe/alias-table.d.ts +92 -0
  279. package/dist/ir/type-system/internal/universe/alias-table.d.ts.map +1 -0
  280. package/dist/ir/type-system/internal/universe/alias-table.js +222 -0
  281. package/dist/ir/type-system/internal/universe/alias-table.js.map +1 -0
  282. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts +44 -0
  283. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -0
  284. package/dist/ir/type-system/internal/universe/clr-catalog.js +1176 -0
  285. package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -0
  286. package/dist/ir/type-system/internal/universe/index.d.ts +26 -0
  287. package/dist/ir/type-system/internal/universe/index.d.ts.map +1 -0
  288. package/dist/ir/type-system/internal/universe/index.js +30 -0
  289. package/dist/ir/type-system/internal/universe/index.js.map +1 -0
  290. package/dist/ir/type-system/internal/universe/resolution.d.ts +115 -0
  291. package/dist/ir/type-system/internal/universe/resolution.d.ts.map +1 -0
  292. package/dist/ir/type-system/internal/universe/resolution.js +181 -0
  293. package/dist/ir/type-system/internal/universe/resolution.js.map +1 -0
  294. package/dist/ir/type-system/internal/universe/source-catalog.d.ts +62 -0
  295. package/dist/ir/type-system/internal/universe/source-catalog.d.ts.map +1 -0
  296. package/dist/ir/type-system/internal/universe/source-catalog.js +91 -0
  297. package/dist/ir/type-system/internal/universe/source-catalog.js.map +1 -0
  298. package/dist/ir/type-system/internal/universe/types.d.ts +436 -0
  299. package/dist/ir/type-system/internal/universe/types.d.ts.map +1 -0
  300. package/dist/ir/type-system/internal/universe/types.js +69 -0
  301. package/dist/ir/type-system/internal/universe/types.js.map +1 -0
  302. package/dist/ir/type-system/internal/universe/unified-universe.d.ts +70 -0
  303. package/dist/ir/type-system/internal/universe/unified-universe.d.ts.map +1 -0
  304. package/dist/ir/type-system/internal/universe/unified-universe.js +319 -0
  305. package/dist/ir/type-system/internal/universe/unified-universe.js.map +1 -0
  306. package/dist/ir/type-system/type-system.d.ts +617 -0
  307. package/dist/ir/type-system/type-system.d.ts.map +1 -0
  308. package/dist/ir/type-system/type-system.js +2420 -0
  309. package/dist/ir/type-system/type-system.js.map +1 -0
  310. package/dist/ir/type-system/types.d.ts +176 -0
  311. package/dist/ir/type-system/types.d.ts.map +1 -0
  312. package/dist/ir/type-system/types.js +80 -0
  313. package/dist/ir/type-system/types.js.map +1 -0
  314. package/dist/ir/type-universe/assembly-catalog.d.ts +44 -0
  315. package/dist/ir/type-universe/assembly-catalog.d.ts.map +1 -0
  316. package/dist/ir/type-universe/assembly-catalog.js +532 -0
  317. package/dist/ir/type-universe/assembly-catalog.js.map +1 -0
  318. package/dist/ir/type-universe/assembly-catalog.test.d.ts +7 -0
  319. package/dist/ir/type-universe/assembly-catalog.test.d.ts.map +1 -0
  320. package/dist/ir/type-universe/assembly-catalog.test.js +105 -0
  321. package/dist/ir/type-universe/assembly-catalog.test.js.map +1 -0
  322. package/dist/ir/type-universe/index.d.ts +19 -0
  323. package/dist/ir/type-universe/index.d.ts.map +1 -0
  324. package/dist/ir/type-universe/index.js +21 -0
  325. package/dist/ir/type-universe/index.js.map +1 -0
  326. package/dist/ir/type-universe/types.d.ts +436 -0
  327. package/dist/ir/type-universe/types.d.ts.map +1 -0
  328. package/dist/ir/type-universe/types.js +69 -0
  329. package/dist/ir/type-universe/types.js.map +1 -0
  330. package/dist/ir/type-universe/unified-catalog.d.ts +70 -0
  331. package/dist/ir/type-universe/unified-catalog.d.ts.map +1 -0
  332. package/dist/ir/type-universe/unified-catalog.js +319 -0
  333. package/dist/ir/type-universe/unified-catalog.js.map +1 -0
  334. package/dist/ir/type-universe/unified-catalog.test.d.ts +7 -0
  335. package/dist/ir/type-universe/unified-catalog.test.d.ts.map +1 -0
  336. package/dist/ir/type-universe/unified-catalog.test.js +135 -0
  337. package/dist/ir/type-universe/unified-catalog.test.js.map +1 -0
  338. package/dist/ir/types/expressions.d.ts +74 -2
  339. package/dist/ir/types/expressions.d.ts.map +1 -1
  340. package/dist/ir/types/helpers.d.ts +22 -2
  341. package/dist/ir/types/helpers.d.ts.map +1 -1
  342. package/dist/ir/types/index.d.ts +4 -2
  343. package/dist/ir/types/index.d.ts.map +1 -1
  344. package/dist/ir/types/index.js +1 -0
  345. package/dist/ir/types/index.js.map +1 -1
  346. package/dist/ir/types/ir-substitution.d.ts +144 -0
  347. package/dist/ir/types/ir-substitution.d.ts.map +1 -0
  348. package/dist/ir/types/ir-substitution.js +569 -0
  349. package/dist/ir/types/ir-substitution.js.map +1 -0
  350. package/dist/ir/types/ir-types.d.ts +9 -3
  351. package/dist/ir/types/ir-types.d.ts.map +1 -1
  352. package/dist/ir/types/numeric-helpers.d.ts +2 -1
  353. package/dist/ir/types/numeric-helpers.d.ts.map +1 -1
  354. package/dist/ir/types/numeric-helpers.js +9 -3
  355. package/dist/ir/types/numeric-helpers.js.map +1 -1
  356. package/dist/ir/types/statements.d.ts +13 -1
  357. package/dist/ir/types/statements.d.ts.map +1 -1
  358. package/dist/ir/types.d.ts +1 -1
  359. package/dist/ir/types.d.ts.map +1 -1
  360. package/dist/ir/types.js.map +1 -1
  361. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  362. package/dist/ir/validation/anonymous-type-lowering-pass.js +165 -7
  363. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  364. package/dist/ir/validation/arrow-return-finalization-pass.d.ts +28 -0
  365. package/dist/ir/validation/arrow-return-finalization-pass.d.ts.map +1 -0
  366. package/dist/ir/validation/arrow-return-finalization-pass.js +416 -0
  367. package/dist/ir/validation/arrow-return-finalization-pass.js.map +1 -0
  368. package/dist/ir/validation/attribute-collection-pass.d.ts.map +1 -1
  369. package/dist/ir/validation/attribute-collection-pass.js +40 -6
  370. package/dist/ir/validation/attribute-collection-pass.js.map +1 -1
  371. package/dist/ir/validation/attribute-collection-pass.test.js +43 -36
  372. package/dist/ir/validation/attribute-collection-pass.test.js.map +1 -1
  373. package/dist/ir/validation/index.d.ts +3 -0
  374. package/dist/ir/validation/index.d.ts.map +1 -1
  375. package/dist/ir/validation/index.js +3 -0
  376. package/dist/ir/validation/index.js.map +1 -1
  377. package/dist/ir/validation/numeric-coercion-pass.d.ts +22 -16
  378. package/dist/ir/validation/numeric-coercion-pass.d.ts.map +1 -1
  379. package/dist/ir/validation/numeric-coercion-pass.js +159 -51
  380. package/dist/ir/validation/numeric-coercion-pass.js.map +1 -1
  381. package/dist/ir/validation/numeric-invariants.test.js +72 -108
  382. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  383. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  384. package/dist/ir/validation/numeric-proof-pass.js +71 -23
  385. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  386. package/dist/ir/validation/rest-type-synthesis-pass.d.ts +24 -0
  387. package/dist/ir/validation/rest-type-synthesis-pass.d.ts.map +1 -0
  388. package/dist/ir/validation/rest-type-synthesis-pass.js +417 -0
  389. package/dist/ir/validation/rest-type-synthesis-pass.js.map +1 -0
  390. package/dist/ir/validation/soundness-gate.d.ts +11 -1
  391. package/dist/ir/validation/soundness-gate.d.ts.map +1 -1
  392. package/dist/ir/validation/soundness-gate.js +42 -10
  393. package/dist/ir/validation/soundness-gate.js.map +1 -1
  394. package/dist/ir/validation/soundness-gate.test.js +19 -2
  395. package/dist/ir/validation/soundness-gate.test.js.map +1 -1
  396. package/dist/ir/validation/virtual-marking-pass.d.ts +16 -0
  397. package/dist/ir/validation/virtual-marking-pass.d.ts.map +1 -0
  398. package/dist/ir/validation/virtual-marking-pass.js +77 -0
  399. package/dist/ir/validation/virtual-marking-pass.js.map +1 -0
  400. package/dist/ir/validation/yield-lowering-pass.test.js +2 -2
  401. package/dist/ir/validation/yield-lowering-pass.test.js.map +1 -1
  402. package/dist/program/bindings.d.ts +28 -0
  403. package/dist/program/bindings.d.ts.map +1 -1
  404. package/dist/program/bindings.js +204 -2
  405. package/dist/program/bindings.js.map +1 -1
  406. package/dist/program/bindings.test.js +30 -0
  407. package/dist/program/bindings.test.js.map +1 -1
  408. package/dist/program/creation.d.ts.map +1 -1
  409. package/dist/program/creation.js +251 -4
  410. package/dist/program/creation.js.map +1 -1
  411. package/dist/program/dependency-graph.d.ts.map +1 -1
  412. package/dist/program/dependency-graph.js +25 -25
  413. package/dist/program/dependency-graph.js.map +1 -1
  414. package/dist/program/diagnostics.d.ts.map +1 -1
  415. package/dist/program/diagnostics.js +6 -0
  416. package/dist/program/diagnostics.js.map +1 -1
  417. package/dist/program/index.d.ts +1 -1
  418. package/dist/program/index.d.ts.map +1 -1
  419. package/dist/program/types.d.ts +8 -8
  420. package/dist/program/types.d.ts.map +1 -1
  421. package/dist/resolver/clr-bindings-resolver.d.ts +1 -0
  422. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  423. package/dist/resolver/clr-bindings-resolver.js +90 -34
  424. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  425. package/dist/resolver/import-resolution.d.ts +16 -1
  426. package/dist/resolver/import-resolution.d.ts.map +1 -1
  427. package/dist/resolver/import-resolution.js +29 -12
  428. package/dist/resolver/import-resolution.js.map +1 -1
  429. package/dist/resolver/naming.d.ts +1 -1
  430. package/dist/resolver/naming.d.ts.map +1 -1
  431. package/dist/resolver/naming.js +13 -2
  432. package/dist/resolver/naming.js.map +1 -1
  433. package/dist/resolver.test.js +4 -0
  434. package/dist/resolver.test.js.map +1 -1
  435. package/dist/symbol-table/builder.d.ts +3 -1
  436. package/dist/symbol-table/builder.d.ts.map +1 -1
  437. package/dist/symbol-table/builder.js +9 -8
  438. package/dist/symbol-table/builder.js.map +1 -1
  439. package/dist/symbol-table/types.d.ts +2 -2
  440. package/dist/symbol-table/types.d.ts.map +1 -1
  441. package/dist/types/diagnostic.d.ts +12 -2
  442. package/dist/types/diagnostic.d.ts.map +1 -1
  443. package/dist/types/diagnostic.js +5 -1
  444. package/dist/types/diagnostic.js.map +1 -1
  445. package/dist/validation/extension-methods.d.ts +17 -0
  446. package/dist/validation/extension-methods.d.ts.map +1 -0
  447. package/dist/validation/extension-methods.js +133 -0
  448. package/dist/validation/extension-methods.js.map +1 -0
  449. package/dist/validation/generics.d.ts.map +1 -1
  450. package/dist/validation/generics.js +1 -129
  451. package/dist/validation/generics.js.map +1 -1
  452. package/dist/validation/imports.js +1 -1
  453. package/dist/validation/imports.js.map +1 -1
  454. package/dist/validation/index.d.ts +1 -0
  455. package/dist/validation/index.d.ts.map +1 -1
  456. package/dist/validation/index.js +1 -0
  457. package/dist/validation/index.js.map +1 -1
  458. package/dist/validation/orchestrator.d.ts.map +1 -1
  459. package/dist/validation/orchestrator.js +2 -0
  460. package/dist/validation/orchestrator.js.map +1 -1
  461. package/dist/validation/static-safety.d.ts +1 -0
  462. package/dist/validation/static-safety.d.ts.map +1 -1
  463. package/dist/validation/static-safety.js +366 -96
  464. package/dist/validation/static-safety.js.map +1 -1
  465. package/dist/validator.test.js +77 -1
  466. package/dist/validator.test.js.map +1 -1
  467. package/package.json +2 -2
  468. package/dist/ir/type-converter/arrays.d.ts +0 -10
  469. package/dist/ir/type-converter/arrays.d.ts.map +0 -1
  470. package/dist/ir/type-converter/arrays.js.map +0 -1
  471. package/dist/ir/type-converter/converter.d.ts +0 -6
  472. package/dist/ir/type-converter/converter.d.ts.map +0 -1
  473. package/dist/ir/type-converter/converter.js +0 -6
  474. package/dist/ir/type-converter/converter.js.map +0 -1
  475. package/dist/ir/type-converter/functions.d.ts +0 -10
  476. package/dist/ir/type-converter/functions.d.ts.map +0 -1
  477. package/dist/ir/type-converter/functions.js +0 -15
  478. package/dist/ir/type-converter/functions.js.map +0 -1
  479. package/dist/ir/type-converter/index.d.ts +0 -7
  480. package/dist/ir/type-converter/index.d.ts.map +0 -1
  481. package/dist/ir/type-converter/index.js +0 -7
  482. package/dist/ir/type-converter/index.js.map +0 -1
  483. package/dist/ir/type-converter/inference.d.ts +0 -32
  484. package/dist/ir/type-converter/inference.d.ts.map +0 -1
  485. package/dist/ir/type-converter/inference.js +0 -297
  486. package/dist/ir/type-converter/inference.js.map +0 -1
  487. package/dist/ir/type-converter/literals.d.ts.map +0 -1
  488. package/dist/ir/type-converter/literals.js.map +0 -1
  489. package/dist/ir/type-converter/objects.d.ts +0 -16
  490. package/dist/ir/type-converter/objects.d.ts.map +0 -1
  491. package/dist/ir/type-converter/objects.js.map +0 -1
  492. package/dist/ir/type-converter/orchestrator.d.ts.map +0 -1
  493. package/dist/ir/type-converter/orchestrator.js.map +0 -1
  494. package/dist/ir/type-converter/patterns.d.ts +0 -10
  495. package/dist/ir/type-converter/patterns.d.ts.map +0 -1
  496. package/dist/ir/type-converter/patterns.js.map +0 -1
  497. package/dist/ir/type-converter/primitives.d.ts.map +0 -1
  498. package/dist/ir/type-converter/primitives.js.map +0 -1
  499. package/dist/ir/type-converter/references.d.ts.map +0 -1
  500. package/dist/ir/type-converter/references.js +0 -371
  501. package/dist/ir/type-converter/references.js.map +0 -1
  502. package/dist/ir/type-converter/unions-intersections.d.ts +0 -14
  503. package/dist/ir/type-converter/unions-intersections.d.ts.map +0 -1
  504. package/dist/ir/type-converter/unions-intersections.js +0 -22
  505. package/dist/ir/type-converter/unions-intersections.js.map +0 -1
  506. package/dist/ir/type-converter/utility-types.d.ts.map +0 -1
  507. package/dist/ir/type-converter/utility-types.js +0 -528
  508. package/dist/ir/type-converter/utility-types.js.map +0 -1
  509. package/dist/ir/type-converter/utility-types.test.d.ts.map +0 -1
  510. package/dist/ir/type-converter/utility-types.test.js.map +0 -1
  511. /package/dist/ir/{type-converter → type-system/internal/type-converter}/literals.js +0 -0
  512. /package/dist/ir/{type-converter → type-system/internal/type-converter}/primitives.js +0 -0
  513. /package/dist/ir/{type-converter → type-system/internal/type-converter}/utility-types.test.d.ts +0 -0
@@ -0,0 +1,42 @@
1
+ /**
2
+ * CLR Type Mappings - Hardcoded mappings for @tsonic/globals and @tsonic/core types
3
+ *
4
+ * These are special built-in types that need specific fully-qualified names
5
+ * for .NET interop. The mappings are hardcoded because these are fundamental
6
+ * runtime types with fixed CLR identities.
7
+ *
8
+ * Part of Alice's specification for deterministic IR typing.
9
+ */
10
+ /**
11
+ * Maps TypeScript/IR primitive type names to their CLR System.* FQ names.
12
+ * Used for normalizing receiver types when resolving inherited members.
13
+ */
14
+ export declare const PRIMITIVE_TO_CLR_FQ: Readonly<Record<string, string>>;
15
+ /**
16
+ * Maps @tsonic/globals type names to their CLR System.* FQ names.
17
+ * These are the TypeScript-facing names that wrap CLR types.
18
+ */
19
+ export declare const GLOBALS_TO_CLR_FQ: Readonly<Record<string, string>>;
20
+ /**
21
+ * Maps CLR System.* FQ names back to simple names.
22
+ * Used for display and some lookup scenarios.
23
+ */
24
+ export declare const CLR_FQ_TO_SIMPLE: Readonly<Record<string, string>>;
25
+ /**
26
+ * Normalize a type name to its CLR fully-qualified name.
27
+ * Handles primitives, globals, and $instance interfaces.
28
+ *
29
+ * @param typeName - Simple or already-qualified type name
30
+ * @returns CLR FQ name (e.g., "System.String") or original if no mapping exists
31
+ */
32
+ export declare const normalizeToClrFQ: (typeName: string) => string;
33
+ /**
34
+ * Check if a type name is a known CLR primitive or global type.
35
+ */
36
+ export declare const isKnownClrType: (typeName: string) => boolean;
37
+ /**
38
+ * Get the $instance interface name for a CLR type.
39
+ * E.g., "System.String" → "String$instance", "String" → "String$instance"
40
+ */
41
+ export declare const getInstanceInterfaceName: (typeName: string) => string;
42
+ //# sourceMappingURL=clr-type-mappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clr-type-mappings.d.ts","sourceRoot":"","sources":["../../src/ir/clr-type-mappings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA+BhE,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc9D,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsB7D,CAAC;AAMF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,MAWnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,OAMjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,MAS3D,CAAC"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * CLR Type Mappings - Hardcoded mappings for @tsonic/globals and @tsonic/core types
3
+ *
4
+ * These are special built-in types that need specific fully-qualified names
5
+ * for .NET interop. The mappings are hardcoded because these are fundamental
6
+ * runtime types with fixed CLR identities.
7
+ *
8
+ * Part of Alice's specification for deterministic IR typing.
9
+ */
10
+ // ============================================================================
11
+ // Primitive Type → System.* Mappings
12
+ // ============================================================================
13
+ /**
14
+ * Maps TypeScript/IR primitive type names to their CLR System.* FQ names.
15
+ * Used for normalizing receiver types when resolving inherited members.
16
+ */
17
+ export const PRIMITIVE_TO_CLR_FQ = {
18
+ // Core primitives (TypeScript built-ins)
19
+ string: "System.String",
20
+ number: "System.Double",
21
+ boolean: "System.Boolean",
22
+ // @tsonic/core signed integers
23
+ sbyte: "System.SByte",
24
+ short: "System.Int16",
25
+ int: "System.Int32",
26
+ long: "System.Int64",
27
+ nint: "System.IntPtr",
28
+ int128: "System.Int128",
29
+ // @tsonic/core unsigned integers
30
+ byte: "System.Byte",
31
+ ushort: "System.UInt16",
32
+ uint: "System.UInt32",
33
+ ulong: "System.UInt64",
34
+ nuint: "System.UIntPtr",
35
+ uint128: "System.UInt128",
36
+ // @tsonic/core floating-point
37
+ half: "System.Half",
38
+ float: "System.Single",
39
+ double: "System.Double",
40
+ decimal: "System.Decimal",
41
+ // @tsonic/core other primitives
42
+ bool: "System.Boolean",
43
+ char: "System.Char",
44
+ };
45
+ // ============================================================================
46
+ // Global Type → System.* Mappings
47
+ // ============================================================================
48
+ /**
49
+ * Maps @tsonic/globals type names to their CLR System.* FQ names.
50
+ * These are the TypeScript-facing names that wrap CLR types.
51
+ */
52
+ export const GLOBALS_TO_CLR_FQ = {
53
+ // Globals from @tsonic/globals
54
+ String: "System.String",
55
+ Number: "System.Double",
56
+ Boolean: "System.Boolean",
57
+ Object: "System.Object",
58
+ Array: "System.Array",
59
+ // Instance interfaces (from @tsonic/dotnet)
60
+ String$instance: "System.String",
61
+ Double$instance: "System.Double",
62
+ Boolean$instance: "System.Boolean",
63
+ Object$instance: "System.Object",
64
+ Array$instance: "System.Array",
65
+ };
66
+ // ============================================================================
67
+ // Reverse Mappings (CLR → Simple Name)
68
+ // ============================================================================
69
+ /**
70
+ * Maps CLR System.* FQ names back to simple names.
71
+ * Used for display and some lookup scenarios.
72
+ */
73
+ export const CLR_FQ_TO_SIMPLE = {
74
+ "System.String": "String",
75
+ "System.Double": "Double",
76
+ "System.Single": "Single",
77
+ "System.Boolean": "Boolean",
78
+ "System.Object": "Object",
79
+ "System.Array": "Array",
80
+ "System.SByte": "SByte",
81
+ "System.Int16": "Int16",
82
+ "System.Int32": "Int32",
83
+ "System.Int64": "Int64",
84
+ "System.IntPtr": "IntPtr",
85
+ "System.Int128": "Int128",
86
+ "System.Byte": "Byte",
87
+ "System.UInt16": "UInt16",
88
+ "System.UInt32": "UInt32",
89
+ "System.UInt64": "UInt64",
90
+ "System.UIntPtr": "UIntPtr",
91
+ "System.UInt128": "UInt128",
92
+ "System.Half": "Half",
93
+ "System.Decimal": "Decimal",
94
+ "System.Char": "Char",
95
+ };
96
+ // ============================================================================
97
+ // Helper Functions
98
+ // ============================================================================
99
+ /**
100
+ * Normalize a type name to its CLR fully-qualified name.
101
+ * Handles primitives, globals, and $instance interfaces.
102
+ *
103
+ * @param typeName - Simple or already-qualified type name
104
+ * @returns CLR FQ name (e.g., "System.String") or original if no mapping exists
105
+ */
106
+ export const normalizeToClrFQ = (typeName) => {
107
+ // Check primitives first
108
+ const primitiveFQ = PRIMITIVE_TO_CLR_FQ[typeName];
109
+ if (primitiveFQ)
110
+ return primitiveFQ;
111
+ // Check globals
112
+ const globalsFQ = GLOBALS_TO_CLR_FQ[typeName];
113
+ if (globalsFQ)
114
+ return globalsFQ;
115
+ // Already qualified or unknown - return as-is
116
+ return typeName;
117
+ };
118
+ /**
119
+ * Check if a type name is a known CLR primitive or global type.
120
+ */
121
+ export const isKnownClrType = (typeName) => {
122
+ return (typeName in PRIMITIVE_TO_CLR_FQ ||
123
+ typeName in GLOBALS_TO_CLR_FQ ||
124
+ typeName in CLR_FQ_TO_SIMPLE);
125
+ };
126
+ /**
127
+ * Get the $instance interface name for a CLR type.
128
+ * E.g., "System.String" → "String$instance", "String" → "String$instance"
129
+ */
130
+ export const getInstanceInterfaceName = (typeName) => {
131
+ // If it's a System.* name, extract the simple part
132
+ if (typeName.startsWith("System.")) {
133
+ const simpleName = typeName.substring(7); // Remove "System."
134
+ return `${simpleName}$instance`;
135
+ }
136
+ // Already a simple name
137
+ return `${typeName}$instance`;
138
+ };
139
+ //# sourceMappingURL=clr-type-mappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clr-type-mappings.js","sourceRoot":"","sources":["../../src/ir/clr-type-mappings.ts"],"names":[],"mappings":"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"}
@@ -2,24 +2,40 @@
2
2
  * Anonymous Object Literal Synthesis (TSN7403)
3
3
  *
4
4
  * When an object literal has no contextual nominal type, we synthesize a
5
- * nominal type from the TypeScript-inferred type. This enables:
5
+ * nominal type from the AST structure. This enables:
6
6
  * - Object literals without explicit type annotations
7
7
  * - Spread expressions in object literals
8
8
  * - Function-valued properties (as delegates)
9
9
  *
10
+ * DETERMINISTIC IR TYPING (INV-0 compliant):
11
+ * This module uses only AST-based synthesis. Property types come from the
12
+ * converted expression's inferredType, not from TS computed types.
13
+ *
10
14
  * Eligibility:
11
- * ✅ Allowed: identifier keys, string literal keys, spreads, arrow functions
15
+ * ✅ Allowed: identifier keys, string literal keys, spreads with typed sources, arrow functions
12
16
  * ❌ Rejected: computed keys, symbol keys, method shorthand, getters/setters
13
17
  */
14
18
  import * as ts from "typescript";
15
19
  import { IrType, IrInterfaceDeclaration, IrTypeParameter } from "../types.js";
20
+ import type { ProgramContext } from "../program-context.js";
21
+ /**
22
+ * Property info for shape signature (AST-based, no TS type computation)
23
+ */
24
+ export type PropertyInfo = {
25
+ readonly name: string;
26
+ readonly type: IrType;
27
+ readonly optional: boolean;
28
+ readonly readonly: boolean;
29
+ };
16
30
  /**
17
- * Compute a stable shape signature from property info
31
+ * Compute a stable shape signature from property info (AST-based)
32
+ *
33
+ * DETERMINISTIC: Takes pre-computed PropertyInfo array, no TS type computation.
18
34
  *
19
35
  * Format: sorted properties with their types, optionality, and readonly flags
20
36
  * Example: "count:number;name?:string;readonly:id:string"
21
37
  */
22
- export declare const computeShapeSignature: (type: ts.Type, checker: ts.TypeChecker) => string;
38
+ export declare const computeShapeSignature: (props: readonly PropertyInfo[]) => string;
23
39
  /**
24
40
  * Registry entry for a synthetic type
25
41
  */
@@ -41,9 +57,10 @@ export declare const generateSyntheticName: (fileStem: string, line: number, col
41
57
  /**
42
58
  * Get or create a synthetic type for a shape
43
59
  *
44
- * Returns existing type if shape was seen before (deduplication)
60
+ * DETERMINISTIC: Takes pre-computed PropertyInfo array, no TS type computation.
61
+ * Returns existing type if shape was seen before (deduplication).
45
62
  */
46
- export declare const getOrCreateSyntheticType: (shapeSignature: string, name: string, type: ts.Type, checker: ts.TypeChecker, capturedTypeParams: readonly IrTypeParameter[]) => SyntheticTypeEntry;
63
+ export declare const getOrCreateSyntheticType: (shapeSignature: string, name: string, props: readonly PropertyInfo[], capturedTypeParams: readonly IrTypeParameter[]) => SyntheticTypeEntry;
47
64
  /**
48
65
  * Get all synthetic type declarations (call after processing a file)
49
66
  */
@@ -60,14 +77,19 @@ export type EligibilityResult = {
60
77
  /**
61
78
  * Check if an object literal expression is eligible for synthesis
62
79
  *
80
+ * DETERMINISTIC IR TYPING (INV-0 compliant):
81
+ * Uses symbol-based checks, not getTypeAtLocation.
82
+ *
63
83
  * Eligible:
64
84
  * - All property keys are identifiers or string literals
65
- * - Spread expressions have resolvable object types
85
+ * - Spread expressions have typed sources (identifiers with type annotations)
66
86
  * - No method shorthand (arrow functions are ok)
67
87
  * - No getters/setters
68
88
  * - No computed keys with non-literal expressions
89
+ *
90
+ * Phase 5 Step 4: Uses ProgramContext for unified semantic access.
69
91
  */
70
- export declare const checkSynthesisEligibility: (node: ts.ObjectLiteralExpression, checker: ts.TypeChecker) => EligibilityResult;
92
+ export declare const checkSynthesisEligibility: (node: ts.ObjectLiteralExpression, ctx: ProgramContext) => EligibilityResult;
71
93
  /**
72
94
  * Find type parameters used in a type
73
95
  */
@@ -1 +1 @@
1
- {"version":3,"file":"anonymous-synthesis.d.ts","sourceRoot":"","sources":["../../../src/ir/converters/anonymous-synthesis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,MAAM,EACN,sBAAsB,EAEtB,eAAe,EAChB,MAAM,aAAa,CAAC;AAsHrB;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,EAAE,CAAC,IAAI,EACb,SAAS,EAAE,CAAC,WAAW,KACtB,MASF,CAAC;AAMF;;GAEG;AACH,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,SAAS,eAAe,EAAE,CAAC;CACrD,CAAC;AAQF;;GAEG;AACH,eAAO,MAAM,sBAAsB,QAAO,IAEzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,MAAM,MAAM,EACZ,KAAK,MAAM,KACV,MAIF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,MAAM,EACtB,MAAM,MAAM,EACZ,MAAM,EAAE,CAAC,IAAI,EACb,SAAS,EAAE,CAAC,WAAW,EACvB,oBAAoB,SAAS,eAAe,EAAE,KAC7C,kBAoCF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAC/B,SAAS,sBAAsB,EAElC,CAAC;AAMJ;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClB;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,EAAE,CAAC,uBAAuB,EAChC,SAAS,EAAE,CAAC,WAAW,KACtB,iBAmEF,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EACZ,eAAe,WAAW,CAAC,MAAM,CAAC,KACjC,GAAG,CAAC,MAAM,CAiDZ,CAAC"}
1
+ {"version":3,"file":"anonymous-synthesis.d.ts","sourceRoot":"","sources":["../../../src/ir/converters/anonymous-synthesis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,MAAM,EACN,sBAAsB,EAEtB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AA6DF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,SAAS,YAAY,EAAE,KAAG,MAQzD,CAAC;AAMf;;GAEG;AACH,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,SAAS,eAAe,EAAE,CAAC;CACrD,CAAC;AAQF;;GAEG;AACH,eAAO,MAAM,sBAAsB,QAAO,IAEzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,MAAM,MAAM,EACZ,KAAK,MAAM,KACV,MAIF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,MAAM,EACtB,MAAM,MAAM,EACZ,OAAO,SAAS,YAAY,EAAE,EAC9B,oBAAoB,SAAS,eAAe,EAAE,KAC7C,kBAmCF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAC/B,SAAS,sBAAsB,EAElC,CAAC;AAMJ;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClB;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,EAAE,CAAC,uBAAuB,EAChC,KAAK,cAAc,KAClB,iBAoFF,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EACZ,eAAe,WAAW,CAAC,MAAM,CAAC,KACjC,GAAG,CAAC,MAAM,CAiDZ,CAAC"}
@@ -2,46 +2,20 @@
2
2
  * Anonymous Object Literal Synthesis (TSN7403)
3
3
  *
4
4
  * When an object literal has no contextual nominal type, we synthesize a
5
- * nominal type from the TypeScript-inferred type. This enables:
5
+ * nominal type from the AST structure. This enables:
6
6
  * - Object literals without explicit type annotations
7
7
  * - Spread expressions in object literals
8
8
  * - Function-valued properties (as delegates)
9
9
  *
10
+ * DETERMINISTIC IR TYPING (INV-0 compliant):
11
+ * This module uses only AST-based synthesis. Property types come from the
12
+ * converted expression's inferredType, not from TS computed types.
13
+ *
10
14
  * Eligibility:
11
- * ✅ Allowed: identifier keys, string literal keys, spreads, arrow functions
15
+ * ✅ Allowed: identifier keys, string literal keys, spreads with typed sources, arrow functions
12
16
  * ❌ Rejected: computed keys, symbol keys, method shorthand, getters/setters
13
17
  */
14
18
  import * as ts from "typescript";
15
- import { convertType } from "../type-converter.js";
16
- /**
17
- * Extract property info from a TypeScript object type
18
- */
19
- const extractPropertyInfo = (type, checker) => {
20
- const properties = type.getProperties();
21
- const result = [];
22
- for (const prop of properties) {
23
- const propType = checker.getTypeOfSymbolAtLocation(prop, prop.valueDeclaration ?? prop.declarations?.[0] ?? {});
24
- const flags = prop.flags;
25
- const optional = (flags & ts.SymbolFlags.Optional) !== 0;
26
- // Check readonly via declaration modifiers
27
- const decl = prop.valueDeclaration;
28
- const readonly = decl !== undefined &&
29
- ts.isPropertySignature(decl) &&
30
- decl.modifiers?.some((m) => m.kind === ts.SyntaxKind.ReadonlyKeyword) ===
31
- true;
32
- const typeNode = checker.typeToTypeNode(propType, undefined, undefined);
33
- if (typeNode) {
34
- result.push({
35
- name: prop.name,
36
- type: convertType(typeNode, checker),
37
- optional,
38
- readonly,
39
- });
40
- }
41
- }
42
- // Sort by name for stable signature
43
- return result.sort((a, b) => a.name.localeCompare(b.name));
44
- };
45
19
  /**
46
20
  * Serialize an IrType to a stable string for shape signature
47
21
  */
@@ -96,21 +70,21 @@ const serializeType = (type) => {
96
70
  }
97
71
  };
98
72
  /**
99
- * Compute a stable shape signature from property info
73
+ * Compute a stable shape signature from property info (AST-based)
74
+ *
75
+ * DETERMINISTIC: Takes pre-computed PropertyInfo array, no TS type computation.
100
76
  *
101
77
  * Format: sorted properties with their types, optionality, and readonly flags
102
78
  * Example: "count:number;name?:string;readonly:id:string"
103
79
  */
104
- export const computeShapeSignature = (type, checker) => {
105
- const props = extractPropertyInfo(type, checker);
106
- return props
107
- .map((p) => {
108
- const prefix = p.readonly ? "ro:" : "";
109
- const suffix = p.optional ? "?" : "";
110
- return `${prefix}${p.name}${suffix}:${serializeType(p.type)}`;
111
- })
112
- .join(";");
113
- };
80
+ export const computeShapeSignature = (props) => [...props]
81
+ .sort((a, b) => a.name.localeCompare(b.name))
82
+ .map((p) => {
83
+ const prefix = p.readonly ? "ro:" : "";
84
+ const suffix = p.optional ? "?" : "";
85
+ return `${prefix}${p.name}${suffix}:${serializeType(p.type)}`;
86
+ })
87
+ .join(";");
114
88
  /**
115
89
  * Mutable registry for synthetic types (module-scoped)
116
90
  * Key: shape signature, Value: synthetic type entry
@@ -135,16 +109,16 @@ export const generateSyntheticName = (fileStem, line, col) => {
135
109
  /**
136
110
  * Get or create a synthetic type for a shape
137
111
  *
138
- * Returns existing type if shape was seen before (deduplication)
112
+ * DETERMINISTIC: Takes pre-computed PropertyInfo array, no TS type computation.
113
+ * Returns existing type if shape was seen before (deduplication).
139
114
  */
140
- export const getOrCreateSyntheticType = (shapeSignature, name, type, checker, capturedTypeParams) => {
115
+ export const getOrCreateSyntheticType = (shapeSignature, name, props, capturedTypeParams) => {
141
116
  // Check if we already have a synthetic for this shape
142
117
  const existing = syntheticTypeRegistry.get(shapeSignature);
143
118
  if (existing) {
144
119
  return existing;
145
120
  }
146
- // Create new synthetic interface declaration
147
- const props = extractPropertyInfo(type, checker);
121
+ // Create new synthetic interface declaration from pre-computed props
148
122
  const members = props.map((p) => ({
149
123
  kind: "propertySignature",
150
124
  name: p.name,
@@ -178,14 +152,19 @@ export const getSyntheticDeclarations = () => {
178
152
  /**
179
153
  * Check if an object literal expression is eligible for synthesis
180
154
  *
155
+ * DETERMINISTIC IR TYPING (INV-0 compliant):
156
+ * Uses symbol-based checks, not getTypeAtLocation.
157
+ *
181
158
  * Eligible:
182
159
  * - All property keys are identifiers or string literals
183
- * - Spread expressions have resolvable object types
160
+ * - Spread expressions have typed sources (identifiers with type annotations)
184
161
  * - No method shorthand (arrow functions are ok)
185
162
  * - No getters/setters
186
163
  * - No computed keys with non-literal expressions
164
+ *
165
+ * Phase 5 Step 4: Uses ProgramContext for unified semantic access.
187
166
  */
188
- export const checkSynthesisEligibility = (node, checker) => {
167
+ export const checkSynthesisEligibility = (node, ctx) => {
189
168
  for (const prop of node.properties) {
190
169
  // Property assignment: check key type
191
170
  if (ts.isPropertyAssignment(prop)) {
@@ -211,19 +190,31 @@ export const checkSynthesisEligibility = (node, checker) => {
211
190
  if (ts.isShorthandPropertyAssignment(prop)) {
212
191
  continue;
213
192
  }
214
- // Spread: check that the spread expression has a resolvable type
193
+ // Spread: check that the spread source is a typed identifier (symbol-based, no getTypeAtLocation)
215
194
  if (ts.isSpreadAssignment(prop)) {
216
- const spreadType = checker.getTypeAtLocation(prop.expression);
217
- if (spreadType.flags & ts.TypeFlags.Any) {
195
+ // Only allow spread of identifiers with declarations we can resolve
196
+ if (!ts.isIdentifier(prop.expression)) {
197
+ return {
198
+ eligible: false,
199
+ reason: `Spread source must be a simple identifier (TSN5215)`,
200
+ };
201
+ }
202
+ // Use Binding to resolve the spread source
203
+ const declId = ctx.binding.resolveIdentifier(prop.expression);
204
+ if (!declId) {
218
205
  return {
219
206
  eligible: false,
220
- reason: `Spread expression has type 'any' which cannot be synthesized`,
207
+ reason: `Spread source '${prop.expression.text}' could not be resolved`,
221
208
  };
222
209
  }
223
- if (spreadType.flags & ts.TypeFlags.Unknown) {
210
+ // ALICE'S SPEC (Phase 5): Use TypeSystem from context
211
+ const typeSystem = ctx.typeSystem;
212
+ // Check if declaration has a type annotation (deterministic typing requirement)
213
+ const hasType = typeSystem.declHasTypeAnnotation(declId);
214
+ if (!hasType) {
224
215
  return {
225
216
  eligible: false,
226
- reason: `Spread expression has type 'unknown' which cannot be synthesized`,
217
+ reason: `Spread source '${prop.expression.text}' requires type annotation (TSN5215)`,
227
218
  };
228
219
  }
229
220
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"anonymous-synthesis.js","sourceRoot":"","sources":["../../../src/ir/converters/anonymous-synthesis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anonymous-synthesis.js","sourceRoot":"","sources":["../../../src/ir/converters/anonymous-synthesis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAuBjC;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE;IAC7C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,OAAO,OAAO,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,KAAK,eAAe;YAClB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxD,OAAO,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAChF,CAAC;YACD,OAAO,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,OAAO,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAClD,KAAK,WAAW;YACd,OAAO,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACnE,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU;iBAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACpD,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,OAAO,MAAM,MAAM,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,CAAC;QACD,KAAK,WAAW;YACd,OAAO,UAAU,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAC9D,KAAK,mBAAmB;YACtB,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,KAAK,UAAU;YACb,OAAO,MAAM,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,SAAS,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,OAAO,CAAC;QACjB,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,qEAAqE;YACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;iBACzB,MAAM,CACL,CAAC,CAAC,EAAyD,EAAE,CAC3D,CAAC,CAAC,IAAI,KAAK,mBAAmB,CACjC;iBACA,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CACtE;iBACA,IAAI,EAAE;iBACN,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,QAAQ,OAAO,GAAG,CAAC;QAC5B,CAAC;QACD,KAAK,gBAAgB;YACnB,OAAO,SAAS,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAClF,KAAK,kBAAkB;YACrB,OAAO,iBAAiB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACrE;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAA8B,EAAU,EAAE,CAC9E,CAAC,GAAG,KAAK,CAAC;KACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACT,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAChE,CAAC,CAAC;KACD,IAAI,CAAC,GAAG,CAAC,CAAC;AAef;;;GAGG;AACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA8B,CAAC;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAS,EAAE;IAC/C,qBAAqB,CAAC,KAAK,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAAgB,EAChB,IAAY,EACZ,GAAW,EACH,EAAE;IACV,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACzD,OAAO,UAAU,QAAQ,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,cAAsB,EACtB,IAAY,EACZ,KAA8B,EAC9B,kBAA8C,EAC1B,EAAE;IACtB,sDAAsD;IACtD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,MAAM,OAAO,GAAwB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,EAAE,mBAA4B;QAClC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,QAAQ;QACtB,UAAU,EAAE,CAAC,CAAC,QAAQ;KACvB,CAAC,CAAC,CAAC;IAEJ,MAAM,WAAW,GAA2B;QAC1C,IAAI,EAAE,sBAAsB;QAC5B,IAAI;QACJ,cAAc,EACZ,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;QAChE,OAAO,EAAE,EAAE;QACX,OAAO;QACP,UAAU,EAAE,IAAI,EAAE,wDAAwD;QAC1E,QAAQ,EAAE,KAAK;KAChB,CAAC;IAEF,MAAM,KAAK,GAAuB;QAChC,IAAI;QACJ,WAAW;QACX,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,qBAAqB,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GACnC,GAAsC,EAAE;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAC9E,CAAC,CAAC;AAaJ;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,IAAgC,EAChC,GAAmB,EACA,EAAE;IACrB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,sCAAsC;QACtC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,gDAAgD;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBAClC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,OAAO;wBACL,QAAQ,EAAE,KAAK;wBACf,MAAM,EAAE,+CAA+C;qBACxD,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,wBAAwB;YACxB,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,oDAAoD;iBAC7D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,IAAI,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,kGAAkG;QAClG,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,oEAAoE;YACpE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,qDAAqD;iBAC9D,CAAC;YACJ,CAAC;YAED,2CAA2C;YAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,kBAAkB,IAAI,CAAC,UAAU,CAAC,IAAI,yBAAyB;iBACxE,CAAC;YACJ,CAAC;YAED,sDAAsD;YACtD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;YAElC,gFAAgF;YAChF,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAEzD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,kBAAkB,IAAI,CAAC,UAAU,CAAC,IAAI,sCAAsC;iBACrF,CAAC;YACJ,CAAC;YAED,SAAS;QACX,CAAC;QAED,2DAA2D;QAC3D,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,iFAAiF;aAC1F,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,IACE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACjC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,EACjC,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,4DAA4D;aACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAY,EACZ,aAAkC,EACrB,EAAE;IACf,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,KAAK,GAAG,CAAC,CAAS,EAAQ,EAAE;QAChC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,mBAAmB;gBACtB,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBACD,MAAM;YACR,KAAK,eAAe;gBAClB,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACrB,MAAM;YACR,KAAK,WAAW;gBACd,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,cAAc;gBACjB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACzB,IAAI,CAAC,CAAC,IAAI;wBAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACpB,MAAM;YACR,KAAK,WAAW;gBACd,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,YAAY;gBACf,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACtB,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;wBACnC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;yBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;wBACxC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;4BACzB,IAAI,CAAC,CAAC,IAAI;gCAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC5B,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,CAAC,UAAU;4BAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,gBAAgB;gBACnB,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACjB,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACnB,MAAM;QACV,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * ConverterContext — Re-exports ProgramContext for backward compatibility
3
+ *
4
+ * Phase 5 Step 4: ConverterContext is now an alias for ProgramContext.
5
+ * All converters use ProgramContext, but we keep ConverterContext as an alias
6
+ * to avoid breaking existing code during migration.
7
+ */
8
+ import type { ProgramContext } from "../program-context.js";
9
+ import type { Binding } from "../binding/index.js";
10
+ import type { TypeAuthority } from "../type-system/type-system.js";
11
+ import type { DotnetMetadataRegistry } from "../../dotnet-metadata.js";
12
+ import type { BindingRegistry } from "../../program/bindings.js";
13
+ import type { ClrBindingsResolver } from "../../resolver/clr-bindings-resolver.js";
14
+ /**
15
+ * ConverterContext is an alias for ProgramContext.
16
+ *
17
+ * Use ProgramContext directly in new code.
18
+ */
19
+ export type ConverterContext = ProgramContext;
20
+ /**
21
+ * Re-export ProgramContext for direct use.
22
+ */
23
+ export type { ProgramContext } from "../program-context.js";
24
+ /**
25
+ * Re-export createProgramContext for direct use.
26
+ */
27
+ export { createProgramContext } from "../program-context.js";
28
+ /**
29
+ * Create a ConverterContext from individual components.
30
+ *
31
+ * @deprecated Use createProgramContext instead.
32
+ */
33
+ export declare const createConverterContext: (params: {
34
+ binding: Binding;
35
+ typeSystem: TypeAuthority;
36
+ metadata: DotnetMetadataRegistry;
37
+ bindings: BindingRegistry;
38
+ clrResolver: ClrBindingsResolver;
39
+ }) => ConverterContext;
40
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/ir/converters/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE9C;;GAEG;AACH,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,mBAAmB,CAAC;CAClC,KAAG,gBAMF,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * ConverterContext — Re-exports ProgramContext for backward compatibility
3
+ *
4
+ * Phase 5 Step 4: ConverterContext is now an alias for ProgramContext.
5
+ * All converters use ProgramContext, but we keep ConverterContext as an alias
6
+ * to avoid breaking existing code during migration.
7
+ */
8
+ /**
9
+ * Re-export createProgramContext for direct use.
10
+ */
11
+ export { createProgramContext } from "../program-context.js";
12
+ /**
13
+ * Create a ConverterContext from individual components.
14
+ *
15
+ * @deprecated Use createProgramContext instead.
16
+ */
17
+ export const createConverterContext = (params) => ({
18
+ binding: params.binding,
19
+ typeSystem: params.typeSystem,
20
+ metadata: params.metadata,
21
+ bindings: params.bindings,
22
+ clrResolver: params.clrResolver,
23
+ });
24
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/ir/converters/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAMtC,EAAoB,EAAE,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,UAAU,EAAE,MAAM,CAAC,UAAU;IAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,WAAW,EAAE,MAAM,CAAC,WAAW;CAChC,CAAC,CAAC"}
@@ -1,10 +1,15 @@
1
1
  /**
2
2
  * Member access expression converters
3
+ *
4
+ * ALICE'S SPEC: All member type queries go through TypeSystem.typeOfMember().
5
+ * Falls back to Binding-resolved MemberId only when the receiver type cannot
6
+ * be normalized nominally (e.g., tsbindgen `$instance & __views` intersections).
3
7
  */
4
8
  import * as ts from "typescript";
5
9
  import { IrMemberExpression } from "../../types.js";
10
+ import type { ProgramContext } from "../../program-context.js";
6
11
  /**
7
12
  * Convert property access or element access expression
8
13
  */
9
- export declare const convertMemberExpression: (node: ts.PropertyAccessExpression | ts.ElementAccessExpression, checker: ts.TypeChecker) => IrMemberExpression;
14
+ export declare const convertMemberExpression: (node: ts.PropertyAccessExpression | ts.ElementAccessExpression, ctx: ProgramContext) => IrMemberExpression;
10
15
  //# sourceMappingURL=access.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/access.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAA8B,MAAM,gBAAgB,CAAC;AAsPhF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,EAAE,CAAC,wBAAwB,GAAG,EAAE,CAAC,uBAAuB,EAC9D,SAAS,EAAE,CAAC,WAAW,KACtB,kBA0CF,CAAC"}
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../../src/ir/converters/expressions/access.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAA8B,MAAM,gBAAgB,CAAC;AAGhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA2e/D;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,EAAE,CAAC,wBAAwB,GAAG,EAAE,CAAC,uBAAuB,EAC9D,KAAK,cAAc,KAClB,kBAwFF,CAAC"}