@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 @@
1
+ {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,EAC/C,UAAU,OAAO,KAChB,0BAA0B,GAAG,SAO/B,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Type inference - Deterministic IR typing for lambda parameters
3
+ *
4
+ * IMPORTANT: Contextual type inference has been removed for INV-0 compliance.
5
+ * Lambda parameter types must now come from:
6
+ * 1. Explicit type annotations on parameters
7
+ * 2. ExpectedType threaded from call argument position
8
+ *
9
+ * The banned APIs (getContextualType, getTypeOfSymbolAtLocation, typeToTypeNode)
10
+ * are no longer used here. All typing is deterministic.
11
+ */
12
+ /**
13
+ * Infer parameter types for a lambda (arrow function or function expression).
14
+ *
15
+ * DETERMINISTIC IR TYPING (INV-0 compliant):
16
+ * This function no longer uses contextual type inference from TypeScript.
17
+ * Lambda parameter types are determined by:
18
+ * 1. Explicit type annotations on parameters → handled by param.type
19
+ * 2. ExpectedType threaded from call argument position → handled by calls.ts
20
+ *
21
+ * Returns undefined to indicate that no contextual inference is performed.
22
+ * The caller (expression converter) will use expectedType from the call site.
23
+ */
24
+ export const inferLambdaParamTypes = (_node, _binding) => {
25
+ // Contextual inference removed for deterministic IR typing (INV-0).
26
+ // Lambda params receive types via:
27
+ // 1. Explicit type annotations on parameters
28
+ // 2. ExpectedType threaded from call argument position (calls.ts:664-684)
29
+ // TSN5202 catches missing types during validation.
30
+ return undefined;
31
+ };
32
+ //# sourceMappingURL=inference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inference.js","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgBH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAA+C,EAC/C,QAAiB,EACuB,EAAE;IAC1C,oEAAoE;IACpE,mCAAmC;IACnC,6CAA6C;IAC7C,0EAA0E;IAC1E,mDAAmD;IACnD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Literal type conversion
3
3
  */
4
4
  import * as ts from "typescript";
5
- import { IrType } from "../types.js";
5
+ import { IrType } from "../../../types.js";
6
6
  /**
7
7
  * Convert TypeScript literal type to IR literal type
8
8
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literals.d.ts","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/literals.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,EAAE,CAAC,eAAe,KAAG,MA8B7D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literals.js","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/literals.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAwB,EAAU,EAAE;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,IAAI,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IAED,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACtD,CAAC;IAED,6DAA6D;IAC7D,yDAAyD;IACzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Object/interface type conversion
3
+ *
4
+ * Phase 5 Step 4: Uses local parameter helper (no ProgramContext dependency).
5
+ * Type conversion should NOT depend on statement conversion.
6
+ */
7
+ import * as ts from "typescript";
8
+ import { IrType, IrObjectType, IrDictionaryType } from "../../../types.js";
9
+ import type { Binding } from "../../../binding/index.js";
10
+ /**
11
+ * Convert TypeScript object literal type to IR type.
12
+ *
13
+ * Returns IrDictionaryType for pure index signature types like:
14
+ * - `{ [k: string]: T }`
15
+ * - `{ [k: number]: T }`
16
+ *
17
+ * Returns IrObjectType for regular object types with named members.
18
+ */
19
+ export declare const convertObjectType: (node: ts.TypeLiteralNode, binding: Binding, convertType: (node: ts.TypeNode, binding: Binding) => IrType) => IrObjectType | IrDictionaryType;
20
+ //# sourceMappingURL=objects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/objects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,gBAAgB,EAKjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,EAAE,CAAC,eAAe,EACxB,SAAS,OAAO,EAChB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,KAAK,MAAM,KAC3D,YAAY,GAAG,gBAqEjB,CAAC"}
@@ -1,8 +1,11 @@
1
1
  /**
2
2
  * Object/interface type conversion
3
+ *
4
+ * Phase 5 Step 4: Uses local parameter helper (no ProgramContext dependency).
5
+ * Type conversion should NOT depend on statement conversion.
3
6
  */
4
7
  import * as ts from "typescript";
5
- import { convertParameters as convertParametersFromStatement } from "../statement-converter.js";
8
+ import { convertBindingName } from "../../../syntax/binding-patterns.js";
6
9
  /**
7
10
  * Convert TypeScript object literal type to IR type.
8
11
  *
@@ -12,7 +15,7 @@ import { convertParameters as convertParametersFromStatement } from "../statemen
12
15
  *
13
16
  * Returns IrObjectType for regular object types with named members.
14
17
  */
15
- export const convertObjectType = (node, checker, convertType) => {
18
+ export const convertObjectType = (node, binding, convertType) => {
16
19
  // Check for pure index signature type (no other members)
17
20
  const indexSignatures = node.members.filter(ts.isIndexSignatureDeclaration);
18
21
  const otherMembers = node.members.filter((m) => !ts.isIndexSignatureDeclaration(m));
@@ -29,7 +32,7 @@ export const convertObjectType = (node, checker, convertType) => {
29
32
  // Determine value type - use anyType as marker if not specified
30
33
  // The IR soundness gate will catch this and emit TSN7414
31
34
  const valueType = indexSig.type
32
- ? convertType(indexSig.type, checker)
35
+ ? convertType(indexSig.type, binding)
33
36
  : { kind: "anyType" };
34
37
  return {
35
38
  kind: "dictionaryType",
@@ -46,7 +49,7 @@ export const convertObjectType = (node, checker, convertType) => {
46
49
  name: member.name && ts.isIdentifier(member.name)
47
50
  ? member.name.text
48
51
  : "[computed]",
49
- type: convertType(member.type, checker),
52
+ type: convertType(member.type, binding),
50
53
  isOptional: !!member.questionToken,
51
54
  isReadonly: !!member.modifiers?.some((m) => m.kind === ts.SyntaxKind.ReadonlyKeyword),
52
55
  };
@@ -58,8 +61,8 @@ export const convertObjectType = (node, checker, convertType) => {
58
61
  name: member.name && ts.isIdentifier(member.name)
59
62
  ? member.name.text
60
63
  : "[computed]",
61
- parameters: convertParametersFromStatement(member.parameters, checker),
62
- returnType: member.type ? convertType(member.type, checker) : undefined,
64
+ parameters: convertTypeParameters(member.parameters, binding, convertType),
65
+ returnType: member.type ? convertType(member.type, binding) : undefined,
63
66
  };
64
67
  members.push(methSig);
65
68
  }
@@ -80,4 +83,51 @@ const convertKeyType = (typeNode) => {
80
83
  // Fallback to string for other cases
81
84
  return { kind: "primitiveType", name: "string" };
82
85
  };
86
+ /**
87
+ * Convert parameters for method signatures (no initializers, no ProgramContext).
88
+ *
89
+ * This is used for MethodSignature in type contexts.
90
+ * Unlike statement-converter's convertParameters, this:
91
+ * - Does NOT convert initializers (type signatures don't have them)
92
+ * - Does NOT require ProgramContext
93
+ * - Takes a convertType function for type node conversion
94
+ */
95
+ const convertTypeParameters = (parameters, binding, convertType) => {
96
+ return parameters.map((param) => {
97
+ let passing = "value";
98
+ let actualType = param.type;
99
+ // Detect ref<T>, out<T>, in<T>, inref<T> wrapper types
100
+ if (param.type &&
101
+ ts.isTypeReferenceNode(param.type) &&
102
+ ts.isIdentifier(param.type.typeName)) {
103
+ const typeName = param.type.typeName.text;
104
+ if ((typeName === "ref" ||
105
+ typeName === "out" ||
106
+ typeName === "in" ||
107
+ typeName === "inref") &&
108
+ param.type.typeArguments &&
109
+ param.type.typeArguments.length > 0) {
110
+ // Set passing mode (both "in" and "inref" map to C# "in")
111
+ passing =
112
+ typeName === "in" || typeName === "inref"
113
+ ? "in"
114
+ : typeName;
115
+ // Extract wrapped type
116
+ actualType = param.type.typeArguments[0];
117
+ }
118
+ }
119
+ // Convert type if present
120
+ const paramType = actualType ? convertType(actualType, binding) : undefined;
121
+ return {
122
+ kind: "parameter",
123
+ pattern: convertBindingName(param.name),
124
+ type: paramType,
125
+ // Type signatures don't have initializers
126
+ initializer: undefined,
127
+ isOptional: !!param.questionToken,
128
+ isRest: !!param.dotDotDotToken,
129
+ passing,
130
+ };
131
+ });
132
+ };
83
133
  //# sourceMappingURL=objects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/objects.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,12 @@
2
2
  * Type conversion orchestrator
3
3
  */
4
4
  import * as ts from "typescript";
5
- import { IrType, IrFunctionType, IrObjectType, IrDictionaryType, IrTupleType } from "../types.js";
5
+ import { IrType, IrFunctionType, IrObjectType, IrDictionaryType, IrTupleType } from "../../../types.js";
6
+ import type { Binding } from "../../../binding/index.js";
6
7
  /**
7
8
  * Convert TypeScript type node to IR type
8
9
  */
9
- export declare const convertType: (typeNode: ts.TypeNode, checker: ts.TypeChecker) => IrType;
10
+ export declare const convertType: (typeNode: ts.TypeNode, binding: Binding) => IrType;
10
11
  export { convertFunctionType } from "./functions.js";
11
12
  export { convertObjectType } from "./objects.js";
12
13
  export type { IrFunctionType, IrObjectType, IrDictionaryType, IrTupleType };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/orchestrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,MAAM,EACN,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAW3B,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,2BAA2B,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,WAAW,GACtB,UAAU,EAAE,CAAC,QAAQ,EACrB,SAAS,OAAO,KACf,MA8JF,CAAC;AAGF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC"}
@@ -12,10 +12,38 @@ import { convertLiteralType } from "./literals.js";
12
12
  /**
13
13
  * Convert TypeScript type node to IR type
14
14
  */
15
- export const convertType = (typeNode, checker) => {
15
+ export const convertType = (typeNode, binding) => {
16
+ // Heritage clause type syntax (`extends Foo<T>`, `implements Bar<U>`) is represented
17
+ // as ExpressionWithTypeArguments in the TS AST. This must be treated like a normal
18
+ // type reference so NominalEnv can compute substitution through inheritance chains.
19
+ if (ts.isExpressionWithTypeArguments(typeNode)) {
20
+ const name = (() => {
21
+ const expr = typeNode.expression;
22
+ if (ts.isIdentifier(expr))
23
+ return expr.text;
24
+ if (ts.isPropertyAccessExpression(expr)) {
25
+ const parts = [];
26
+ let current = expr;
27
+ while (ts.isPropertyAccessExpression(current)) {
28
+ parts.unshift(current.name.text);
29
+ current = current.expression;
30
+ }
31
+ if (ts.isIdentifier(current)) {
32
+ parts.unshift(current.text);
33
+ return parts.join(".");
34
+ }
35
+ }
36
+ return expr.getText();
37
+ })();
38
+ return {
39
+ kind: "referenceType",
40
+ name,
41
+ typeArguments: typeNode.typeArguments?.map((t) => convertType(t, binding)),
42
+ };
43
+ }
16
44
  // Type references (including primitive type names)
17
45
  if (ts.isTypeReferenceNode(typeNode)) {
18
- return convertTypeReference(typeNode, checker, convertType);
46
+ return convertTypeReference(typeNode, binding, convertType);
19
47
  }
20
48
  // Primitive keywords
21
49
  const primitiveType = convertPrimitiveKeyword(typeNode.kind);
@@ -24,7 +52,7 @@ export const convertType = (typeNode, checker) => {
24
52
  }
25
53
  // Array types
26
54
  if (ts.isArrayTypeNode(typeNode)) {
27
- return convertArrayType(typeNode, checker, convertType);
55
+ return convertArrayType(typeNode, binding, convertType);
28
56
  }
29
57
  // Tuple types
30
58
  if (ts.isTupleTypeNode(typeNode)) {
@@ -33,7 +61,7 @@ export const convertType = (typeNode, checker) => {
33
61
  if (hasRest) {
34
62
  // If tuple is just [...T[]] (pure variadic), treat as array type
35
63
  // If tuple has both fixed and rest elements, fall through to anyType
36
- // (TODO: add proper diagnostic for mixed variadic tuples)
64
+ // Mixed variadic tuples are intentionally unsupported (IR gate emits TSN7414).
37
65
  const firstElement = typeNode.elements[0];
38
66
  if (typeNode.elements.length === 1 &&
39
67
  firstElement &&
@@ -42,7 +70,7 @@ export const convertType = (typeNode, checker) => {
42
70
  // [...T[]] → T[]
43
71
  return {
44
72
  kind: "arrayType",
45
- elementType: convertType(firstElement.type.elementType, checker),
73
+ elementType: convertType(firstElement.type.elementType, binding),
46
74
  origin: "explicit",
47
75
  };
48
76
  }
@@ -53,27 +81,27 @@ export const convertType = (typeNode, checker) => {
53
81
  const elementTypes = typeNode.elements.map((element) => {
54
82
  // Handle named tuple elements (e.g., [name: string, age: number])
55
83
  if (ts.isNamedTupleMember(element)) {
56
- return convertType(element.type, checker);
84
+ return convertType(element.type, binding);
57
85
  }
58
- return convertType(element, checker);
86
+ return convertType(element, binding);
59
87
  });
60
88
  return { kind: "tupleType", elementTypes };
61
89
  }
62
90
  // Function types
63
91
  if (ts.isFunctionTypeNode(typeNode)) {
64
- return convertFunctionType(typeNode, checker, convertType);
92
+ return convertFunctionType(typeNode, binding, convertType);
65
93
  }
66
94
  // Object/interface types
67
95
  if (ts.isTypeLiteralNode(typeNode)) {
68
- return convertObjectType(typeNode, checker, convertType);
96
+ return convertObjectType(typeNode, binding, convertType);
69
97
  }
70
98
  // Union types
71
99
  if (ts.isUnionTypeNode(typeNode)) {
72
- return convertUnionType(typeNode, checker, convertType);
100
+ return convertUnionType(typeNode, binding, convertType);
73
101
  }
74
102
  // Intersection types
75
103
  if (ts.isIntersectionTypeNode(typeNode)) {
76
- return convertIntersectionType(typeNode, checker, convertType);
104
+ return convertIntersectionType(typeNode, binding, convertType);
77
105
  }
78
106
  // Literal types
79
107
  if (ts.isLiteralTypeNode(typeNode)) {
@@ -81,7 +109,7 @@ export const convertType = (typeNode, checker) => {
81
109
  }
82
110
  // Parenthesized types
83
111
  if (ts.isParenthesizedTypeNode(typeNode)) {
84
- return convertType(typeNode.type, checker);
112
+ return convertType(typeNode.type, binding);
85
113
  }
86
114
  // Type predicate return types: (x is T) has no direct C# type-level equivalent.
87
115
  // MVP: lower to boolean so we can emit valid C# and avoid anyType/ICE.
@@ -89,18 +117,32 @@ export const convertType = (typeNode, checker) => {
89
117
  return { kind: "primitiveType", name: "boolean" };
90
118
  }
91
119
  // TypeQuery: typeof X - resolve to the type of the referenced value
120
+ // DETERMINISTIC: Get type from declaration's TypeNode, not TS inference
92
121
  if (ts.isTypeQueryNode(typeNode)) {
93
- // Get the type of the referenced expression
94
- const symbol = checker.getSymbolAtLocation(typeNode.exprName);
95
- if (symbol) {
96
- const type = checker.getTypeOfSymbolAtLocation(symbol, typeNode.exprName);
97
- // Convert the resolved type
98
- const typeNodeResolved = checker.typeToTypeNode(type, typeNode, ts.NodeBuilderFlags.None);
99
- if (typeNodeResolved && !ts.isTypeQueryNode(typeNodeResolved)) {
100
- return convertType(typeNodeResolved, checker);
122
+ // Resolve the expression name to its declaration using Binding
123
+ // For simple identifiers, use resolveIdentifier. For qualified names,
124
+ // we need to traverse the AST to find the declaration.
125
+ const exprName = typeNode.exprName;
126
+ if (ts.isIdentifier(exprName)) {
127
+ const declId = binding.resolveIdentifier(exprName);
128
+ if (declId) {
129
+ const declInfo = binding
130
+ ._getHandleRegistry()
131
+ .getDecl(declId);
132
+ // If we have a type node from the declaration, convert it
133
+ if (declInfo?.typeNode) {
134
+ return convertType(declInfo.typeNode, binding);
135
+ }
136
+ // For classes/interfaces, return a referenceType with the name
137
+ if (declInfo?.kind === "class" || declInfo?.kind === "interface") {
138
+ return { kind: "referenceType", name: exprName.text };
139
+ }
140
+ // For functions, we can't easily construct a function type without
141
+ // access to the declaration node itself, so fall through to anyType
101
142
  }
102
143
  }
103
- // Fallback: use anyType as marker - IR soundness gate will emit TSN7414
144
+ // For qualified names (A.B.C), fall through to anyType
145
+ // Qualified name typeof is intentionally unsupported here (IR gate emits TSN7414).
104
146
  return { kind: "anyType" };
105
147
  }
106
148
  // Default: use anyType as marker for unsupported types
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Binding pattern converter - TypeScript patterns to IR patterns
3
+ */
4
+ import * as ts from "typescript";
5
+ import { IrPattern } from "../../../types/helpers.js";
6
+ import type { Binding } from "../../../binding/index.js";
7
+ /**
8
+ * Convert TypeScript binding name to IR pattern.
9
+ * Optionally accepts a Binding for expression conversion (defaults, etc.)
10
+ */
11
+ export declare const convertBindingName: (name: ts.BindingName, binding?: Binding) => IrPattern;
12
+ //# sourceMappingURL=patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,SAAS,EAGV,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,EAAE,CAAC,WAAW,EACpB,UAAU,OAAO,KAChB,SAgFF,CAAC"}
@@ -2,10 +2,12 @@
2
2
  * Binding pattern converter - TypeScript patterns to IR patterns
3
3
  */
4
4
  import * as ts from "typescript";
5
+ import { convertExpression } from "../../../expression-converter.js";
5
6
  /**
6
- * Convert TypeScript binding name to IR pattern
7
+ * Convert TypeScript binding name to IR pattern.
8
+ * Optionally accepts a Binding for expression conversion (defaults, etc.)
7
9
  */
8
- export const convertBindingName = (name) => {
10
+ export const convertBindingName = (name, binding) => {
9
11
  if (ts.isIdentifier(name)) {
10
12
  return {
11
13
  kind: "identifierPattern",
@@ -20,7 +22,15 @@ export const convertBindingName = (name) => {
20
22
  return undefined; // Hole in array pattern
21
23
  }
22
24
  if (ts.isBindingElement(elem)) {
23
- return convertBindingName(elem.name);
25
+ const isRest = !!elem.dotDotDotToken;
26
+ const defaultExpr = elem.initializer && binding
27
+ ? convertExpression(elem.initializer, binding, undefined)
28
+ : undefined;
29
+ return {
30
+ pattern: convertBindingName(elem.name, binding),
31
+ defaultExpr,
32
+ isRest: isRest || undefined,
33
+ };
24
34
  }
25
35
  return undefined;
26
36
  }),
@@ -30,10 +40,12 @@ export const convertBindingName = (name) => {
30
40
  const properties = [];
31
41
  name.elements.forEach((elem) => {
32
42
  if (elem.dotDotDotToken) {
33
- // Rest property
43
+ // Rest property: { ...rest }
44
+ // Note: restShapeMembers and restSynthTypeName are computed later
45
+ // during rest type synthesis pass
34
46
  properties.push({
35
47
  kind: "rest",
36
- pattern: convertBindingName(elem.name),
48
+ pattern: convertBindingName(elem.name, binding),
37
49
  });
38
50
  }
39
51
  else {
@@ -44,11 +56,15 @@ export const convertBindingName = (name) => {
44
56
  : ts.isIdentifier(elem.name)
45
57
  ? elem.name.text
46
58
  : "[computed]";
59
+ const defaultExpr = elem.initializer && binding
60
+ ? convertExpression(elem.initializer, binding, undefined)
61
+ : undefined;
47
62
  properties.push({
48
63
  kind: "property",
49
64
  key,
50
- value: convertBindingName(elem.name),
65
+ value: convertBindingName(elem.name, binding),
51
66
  shorthand: !elem.propertyName,
67
+ defaultExpr,
52
68
  });
53
69
  }
54
70
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/patterns.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * These are distinct types, not decorated versions of each other.
8
8
  */
9
9
  import * as ts from "typescript";
10
- import { IrType, IrPrimitiveType } from "../types.js";
10
+ import { IrType, IrPrimitiveType } from "../../../types.js";
11
11
  /**
12
12
  * CLR numeric type names from @tsonic/core.
13
13
  * When user writes `: int`, it becomes primitiveType(name="int"), NOT referenceType.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,aAAmB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,EAAE,CAAC,UAAU,KAAG,MAAM,GAAG,IA4BtE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,KACf,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,WAIzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,QAAQ,IAAI,KAErE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,KAC/D,eAKF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,KAAK,KAAG,eAKrD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAmB,EAAiB,EAAE;IAC5E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;YAC9B,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACnD,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;YAC9B,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACnD,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc;YAC/B,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACpD,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW;YAC5B,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACjD,KAAK,EAAE,CAAC,UAAU,CAAC,gBAAgB;YACjC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QACtD,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW;YAC5B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,KAAK,EAAE,CAAC,UAAU,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc;YAC/B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjC,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY;YAC7B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC/B,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;YAC9B,gEAAgE;YAChE,sDAAsD;YACtD,6DAA6D;YAC7D,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QACtE;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAgB,EACoD,EAAE;IACtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAClE,QAAQ,CACT,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAqB,EAAE;IAC5E,OAAO,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAAgE,EAC/C,EAAE;IACnB,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;KACf,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAe,EAAmB,EAAE;IACtE,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;KACf,CAAC;AACJ,CAAC,CAAC"}
@@ -2,10 +2,11 @@
2
2
  * Reference type conversion
3
3
  */
4
4
  import * as ts from "typescript";
5
- import { IrType } from "../types.js";
5
+ import { IrType } from "../../../types.js";
6
+ import type { Binding } from "../../../binding/index.js";
6
7
  /**
7
8
  * Convert TypeScript type reference to IR type
8
9
  * Handles both primitive type names and user-defined types
9
10
  */
10
- export declare const convertTypeReference: (node: ts.TypeReferenceNode, checker: ts.TypeChecker, convertType: (node: ts.TypeNode, checker: ts.TypeChecker) => IrType) => IrType;
11
+ export declare const convertTypeReference: (node: ts.TypeReferenceNode, binding: Binding, convertType: (node: ts.TypeNode, binding: Binding) => IrType) => IrType;
11
12
  //# sourceMappingURL=references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/type-converter/references.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAuC,MAAM,mBAAmB,CAAC;AAiBhF,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,2BAA2B,CAAC;AAmV1E;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,EAAE,CAAC,iBAAiB,EAC1B,SAAS,OAAO,EAChB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,KAAK,MAAM,KAC3D,MA6SF,CAAC"}