@tsonic/frontend 0.0.14 → 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 +431 -391
  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 +132 -57
  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 +33 -7
  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 +152 -8
  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,617 @@
1
+ /**
2
+ * TypeAuthority — Alice's 100% Specification
3
+ *
4
+ * The single, authoritative type facility for Tsonic. This is the ONLY place
5
+ * where type information is computed or queried. All converters, validation,
6
+ * and utilities use this interface exclusively.
7
+ *
8
+ * INVARIANTS (enforced by scripts/verify-invariants.sh):
9
+ * - INV-0: No TS computed type APIs outside Binding
10
+ * - INV-1: No convertType/getHandleRegistry outside TypeAuthority
11
+ * - INV-2: Deterministic type sources only
12
+ * - INV-3: Poison-on-missing-types (return unknownType + emit diagnostic)
13
+ */
14
+ import type { IrType, IrFunctionType, IrMethodSignature } from "../types/index.js";
15
+ import type { Diagnostic } from "../../types/diagnostic.js";
16
+ import type { DeclId, SignatureId, MemberId, TypeSyntaxId, TypeParameterInfo, UtilityTypeName, ParameterMode } from "./types.js";
17
+ import type { AliasTable } from "./internal/universe/alias-table.js";
18
+ import type { TypeId, UnifiedTypeCatalog } from "./internal/universe/types.js";
19
+ /**
20
+ * TypeAuthority interface — Alice's exact specification.
21
+ *
22
+ * Key method: resolveCall(query) — single entry point for all call resolution.
23
+ */
24
+ export interface TypeAuthority {
25
+ /**
26
+ * Convert a captured type syntax to IrType.
27
+ *
28
+ * This is the correct way for converters to convert inline type syntax
29
+ * (as X, satisfies Y, generic args) that was captured via Binding.captureTypeSyntax().
30
+ *
31
+ * ALICE'S SPEC (Phase 4): TypeSystem receives opaque handles, not ts.TypeNode.
32
+ * This keeps the TypeSystem public API free of TypeScript types.
33
+ *
34
+ * NOTE: The deprecated convertTypeNode() method has been removed.
35
+ * All converters now use captureTypeSyntax() + typeFromSyntax().
36
+ */
37
+ typeFromSyntax(typeSyntaxId: TypeSyntaxId): IrType;
38
+ /**
39
+ * Get the type of a declaration by its handle.
40
+ *
41
+ * Returns unknownType + TSN5201/TSN5203 diagnostic if type cannot be determined.
42
+ */
43
+ typeOfDecl(declId: DeclId): IrType;
44
+ /**
45
+ * Get the declared type of a member (fully substituted through inheritance).
46
+ *
47
+ * Handles:
48
+ * - Reference types: looks up in TypeRegistry + applies NominalEnv substitution
49
+ * - Object types: direct structural lookup
50
+ * - Primitive types: maps to nominal (string→String) for member lookup
51
+ *
52
+ * Returns unknownType + TSN5203 diagnostic if member not found.
53
+ */
54
+ typeOfMember(receiver: IrType, member: MemberRef, site?: Site): IrType;
55
+ /**
56
+ * Resolve a call site: returns fully instantiated param/return types + modes.
57
+ *
58
+ * This is the SINGLE method for all call resolution. It:
59
+ * 1. Loads raw signature from SignatureId
60
+ * 2. Computes receiver substitution (class type params)
61
+ * 3. Computes call substitution (method type params from explicit args + unification)
62
+ * 4. Returns final instantiated types
63
+ *
64
+ * Returns poisoned call on conflict (TSN5202).
65
+ */
66
+ resolveCall(query: CallQuery): ResolvedCall;
67
+ /**
68
+ * Convert a CLR delegate nominal type (Func/Action/custom delegates) into a function type.
69
+ *
70
+ * Used for deterministic lambda contextual typing and generic inference when
71
+ * signatures use delegate types (e.g., LINQ's Func<T, bool>).
72
+ */
73
+ delegateToFunctionType(type: IrType): IrFunctionType | undefined;
74
+ /**
75
+ * Expand a utility type (Partial, Pick, ReturnType, etc.).
76
+ *
77
+ * All 13 utilities with deterministic constraints:
78
+ * - Partial/Required/Readonly: T must be object-like
79
+ * - Pick/Omit: K must be string literal union
80
+ * - ReturnType/Parameters: F must be single function
81
+ * - NonNullable: Works on any type
82
+ * - Exclude/Extract: Works on any types
83
+ * - Awaited: Recursive on Promise<T>
84
+ * - Record: K must be string/number or literal union
85
+ *
86
+ * Returns unknownType + TSN7414 diagnostic on constraint violation.
87
+ */
88
+ expandUtility(name: UtilityTypeName, args: readonly IrType[], site?: Site): IrType;
89
+ /**
90
+ * Substitute type parameters with concrete types.
91
+ *
92
+ * Pure IR-to-IR transformation.
93
+ */
94
+ substitute(type: IrType, subst: TypeSubstitutionMap): IrType;
95
+ /**
96
+ * Instantiate a generic type with type arguments.
97
+ *
98
+ * Example: instantiate("Array", [string]) → Array<string> with members substituted.
99
+ */
100
+ instantiate(typeName: string, typeArgs: readonly IrType[], site?: Site): IrType;
101
+ /**
102
+ * Check if source type is assignable to target type.
103
+ *
104
+ * Conservative implementation — returns false if unsure.
105
+ */
106
+ isAssignableTo(source: IrType, target: IrType): boolean;
107
+ /**
108
+ * Check if two types are structurally equal.
109
+ */
110
+ typesEqual(a: IrType, b: IrType): boolean;
111
+ /**
112
+ * Check if a type contains unresolved type parameters.
113
+ */
114
+ containsTypeParameter(type: IrType): boolean;
115
+ /**
116
+ * Check if a declaration has type parameters (is generic).
117
+ *
118
+ * Used by getConstructedType to detect if `new Foo()` needs explicit type args.
119
+ * Returns true for generic classes/interfaces/type aliases.
120
+ */
121
+ hasTypeParameters(declId: DeclId): boolean;
122
+ /**
123
+ * Get the type of a member by its handle.
124
+ *
125
+ * Used by property access fallback when TypeSystem.typeOfMember() can't resolve
126
+ * the member through TypeRegistry/NominalEnv (e.g., CLR-bound members).
127
+ *
128
+ * Returns unknownType if member not found or has no type annotation.
129
+ */
130
+ typeOfMemberId(memberId: MemberId): IrType;
131
+ /**
132
+ * Get the fully-qualified name of a declaration.
133
+ *
134
+ * Used to detect aliased imports (e.g., `import { String as ClrString }`).
135
+ * Returns undefined if no fqName is available.
136
+ */
137
+ getFQNameOfDecl(declId: DeclId): string | undefined;
138
+ /**
139
+ * Check if a declaration is a type (interface, class, type alias, or enum).
140
+ *
141
+ * Used by import processing to distinguish type imports from value imports.
142
+ */
143
+ isTypeDecl(declId: DeclId): boolean;
144
+ /**
145
+ * Check if a declaration is an interface.
146
+ *
147
+ * Used by validation to detect nominalized interfaces.
148
+ */
149
+ isInterfaceDecl(declId: DeclId): boolean;
150
+ /**
151
+ * Check if a declaration is a type alias to an object literal type.
152
+ *
153
+ * Used by validation to detect nominalized type aliases.
154
+ */
155
+ isTypeAliasToObjectLiteral(declId: DeclId): boolean;
156
+ /**
157
+ * Check if a signature has a conditional return type.
158
+ *
159
+ * This is used to detect if a call requires specialization due to
160
+ * conditional return types like `T extends string ? A : B`.
161
+ * The check is done inside TypeSystem to avoid exposing ts.TypeNode.
162
+ */
163
+ signatureHasConditionalReturn(sigId: SignatureId): boolean;
164
+ /**
165
+ * Check if a signature has variadic type parameters.
166
+ *
167
+ * Variadic patterns like `T extends unknown[]` require specialization.
168
+ * This encapsulates the AST inspection inside TypeSystem.
169
+ *
170
+ * ALICE'S SPEC (Phase 5): Semantic method replaces getSignatureInfo.
171
+ */
172
+ signatureHasVariadicTypeParams(sigId: SignatureId): boolean;
173
+ /**
174
+ * Check if a declaration has an explicit type annotation.
175
+ *
176
+ * Used for deterministic typing checks (e.g., spread sources must have types).
177
+ * Returns true if the declaration has a typeNode.
178
+ *
179
+ * ALICE'S SPEC (Phase 5): Semantic method replaces getDeclInfo.typeNode check.
180
+ */
181
+ declHasTypeAnnotation(declId: DeclId): boolean;
182
+ /**
183
+ * Check if a member in a TypeScript base class is overridable.
184
+ *
185
+ * For TypeScript classes, checks if the base class has the given member.
186
+ * In TypeScript, all methods can be overridden (no `final` keyword).
187
+ *
188
+ * ALICE'S SPEC (Phase 5): Semantic method replaces getDeclInfo for override detection.
189
+ *
190
+ * @param declId The declaration ID of the base class
191
+ * @param memberName Name of the member to check
192
+ * @param memberKind Whether it's a method or property
193
+ * @returns { isOverride: true } if member exists and can be overridden
194
+ */
195
+ checkTsClassMemberOverride(declId: DeclId, memberName: string, memberKind: "method" | "property"): {
196
+ isOverride: boolean;
197
+ isShadow: boolean;
198
+ };
199
+ /**
200
+ * Get all diagnostics emitted during type queries.
201
+ *
202
+ * Call this after completing IR conversion to collect type-related diagnostics.
203
+ */
204
+ getDiagnostics(): readonly Diagnostic[];
205
+ /**
206
+ * Clear accumulated diagnostics.
207
+ */
208
+ clearDiagnostics(): void;
209
+ }
210
+ /**
211
+ * MemberRef — Reference to a member by ID or name.
212
+ *
213
+ * byId: Use when MemberId is available (stable identity).
214
+ * byName: Use for dynamic access (property access expressions).
215
+ */
216
+ export type MemberRef = {
217
+ readonly kind: "byId";
218
+ readonly id: MemberId;
219
+ } | {
220
+ readonly kind: "byName";
221
+ readonly name: string;
222
+ };
223
+ /**
224
+ * CallQuery — Input to resolveCall().
225
+ *
226
+ * Contains all information needed to resolve a call site.
227
+ *
228
+ * IMPORTANT (Alice's spec): argumentCount is REQUIRED for totality.
229
+ * Even if signature lookup fails, TypeSystem must return correct-arity
230
+ * arrays filled with unknownType. This prevents fallback behavior.
231
+ */
232
+ export type CallQuery = {
233
+ /** The signature being called (from Binding.resolveCallSignature) */
234
+ readonly sigId: SignatureId;
235
+ /**
236
+ * Number of arguments at the call site.
237
+ *
238
+ * REQUIRED for totality: Used to construct correct-arity poisoned result
239
+ * when signature lookup fails. Without this, TypeSystem cannot guarantee
240
+ * parameterTypes.length === argumentCount.
241
+ */
242
+ readonly argumentCount: number;
243
+ /** Receiver type for member calls (e.g., `arr` in `arr.map(...)`) */
244
+ readonly receiverType?: IrType;
245
+ /** Explicit type arguments from call syntax (e.g., `fn<string>(...)`) */
246
+ readonly explicitTypeArgs?: readonly IrType[];
247
+ /** Argument types for deterministic unification (undefined = unknown) */
248
+ readonly argTypes?: readonly (IrType | undefined)[];
249
+ /** Blame location for diagnostics */
250
+ readonly site?: Site;
251
+ };
252
+ /**
253
+ * ResolvedCall — Output of resolveCall().
254
+ *
255
+ * Contains fully instantiated types after all substitutions applied.
256
+ */
257
+ export type ResolvedCall = {
258
+ /** Fully instantiated parameter types (undefined = missing annotation) */
259
+ readonly parameterTypes: readonly (IrType | undefined)[];
260
+ /** Parameter passing modes (value, ref, out, in) */
261
+ readonly parameterModes: readonly ParameterMode[];
262
+ /** Fully instantiated return type */
263
+ readonly returnType: IrType;
264
+ /**
265
+ * Type predicate info for narrowing (x is T).
266
+ * Only present if the function has a type predicate return type.
267
+ */
268
+ readonly typePredicate?: TypePredicateResult;
269
+ /** Diagnostics emitted during resolution */
270
+ readonly diagnostics: readonly Diagnostic[];
271
+ };
272
+ /**
273
+ * TypePredicateResult — Resolved type predicate info.
274
+ *
275
+ * Extracted from SignatureInfo.typePredicate and converted to IR types.
276
+ */
277
+ export type TypePredicateResult = {
278
+ readonly kind: "param";
279
+ readonly parameterIndex: number;
280
+ readonly targetType: IrType;
281
+ } | {
282
+ readonly kind: "this";
283
+ readonly targetType: IrType;
284
+ };
285
+ /**
286
+ * Site — Blame location for diagnostics.
287
+ *
288
+ * Used to report errors at the correct source location.
289
+ */
290
+ export type Site = {
291
+ /** Source file path */
292
+ readonly file?: string;
293
+ /** 0-based line number */
294
+ readonly line?: number;
295
+ /** 0-based column number */
296
+ readonly column?: number;
297
+ /** Original AST node (for detailed location) */
298
+ readonly node?: unknown;
299
+ };
300
+ /**
301
+ * Type substitution map — maps type parameter names to concrete types.
302
+ */
303
+ export type TypeSubstitutionMap = ReadonlyMap<string, IrType>;
304
+ /**
305
+ * Raw signature information extracted from Binding.
306
+ *
307
+ * This is the pre-substitution form stored in the signature cache.
308
+ */
309
+ export type RawSignatureInfo = {
310
+ /** Parameter types (undefined = missing annotation → TSN5201) */
311
+ readonly parameterTypes: readonly (IrType | undefined)[];
312
+ /** Return type (voidType if not specified) */
313
+ readonly returnType: IrType;
314
+ /** Parameter modes */
315
+ readonly parameterModes: readonly ParameterMode[];
316
+ /** Type parameters for generic methods */
317
+ readonly typeParameters: readonly TypeParameterInfo[];
318
+ /** Parameter names (for diagnostics) */
319
+ readonly parameterNames: readonly string[];
320
+ /**
321
+ * Type predicate (x is T) - extracted at Binding registration time.
322
+ * Contains target type as IrType.
323
+ */
324
+ readonly typePredicate?: TypePredicateResult;
325
+ /**
326
+ * Declaring identity — CRITICAL for inheritance substitution.
327
+ *
328
+ * Without this, resolveCall cannot compute receiver substitution.
329
+ * Uses simple TS name, resolved via UnifiedTypeCatalog.resolveTsName().
330
+ */
331
+ readonly declaringTypeTsName?: string;
332
+ readonly declaringMemberName?: string;
333
+ };
334
+ /**
335
+ * Configuration for creating a TypeSystem instance.
336
+ */
337
+ export type TypeSystemConfig = {
338
+ /**
339
+ * Handle registry for looking up declarations and signatures.
340
+ *
341
+ * This is obtained from Binding via the internal _getHandleRegistry().
342
+ */
343
+ readonly handleRegistry: HandleRegistry;
344
+ /**
345
+ * TypeRegistry for nominal type lookup.
346
+ *
347
+ * After Step 3, this stores pure IR (IrType), not TypeNodes.
348
+ */
349
+ readonly typeRegistry: TypeRegistryAPI;
350
+ /**
351
+ * NominalEnv for inheritance chain and substitution computation.
352
+ */
353
+ readonly nominalEnv: NominalEnvAPI;
354
+ /**
355
+ * Type converter for converting TypeNodes to IrType.
356
+ *
357
+ * Used during TypeSystem construction only. After Step 3, TypeRegistry
358
+ * stores pure IR, so this is only needed for on-demand conversion.
359
+ *
360
+ * NOTE: Takes `unknown` because HandleRegistry stores TypeNodes as opaque.
361
+ * This is used internally by TypeSystem methods (resolveCall, typeOfDecl, etc.)
362
+ * and by typeFromSyntax. External callers don't access this directly.
363
+ */
364
+ readonly convertTypeNode: (node: unknown) => IrType;
365
+ /**
366
+ * Unified type catalog for CLR assembly type lookups.
367
+ *
368
+ * When provided, member lookups will fall through to this catalog
369
+ * for types not found in TypeRegistry (e.g., System.String, System.Int32).
370
+ * This enables method chain type recovery for built-in types.
371
+ *
372
+ * Optional during migration; will become required when migration completes.
373
+ */
374
+ readonly unifiedCatalog: UnifiedTypeCatalog;
375
+ /**
376
+ * Alias table mapping surface names to canonical TypeIds.
377
+ *
378
+ * This is required for Alice's invariant:
379
+ * - "string" and "System.String" unify to the same TypeId (stableId)
380
+ */
381
+ readonly aliasTable: AliasTable;
382
+ /**
383
+ * Binding-powered symbol/signature resolution helpers (opaque boundary).
384
+ *
385
+ * ALICE'S SPEC: TypeSystem may depend on Binding for symbol resolution,
386
+ * but must never use TypeScript computed type APIs directly.
387
+ *
388
+ * These accept `unknown` to keep the TypeSystem public surface TS-free.
389
+ */
390
+ readonly resolveIdentifier: (node: unknown) => DeclId | undefined;
391
+ readonly resolveCallSignature: (node: unknown) => SignatureId | undefined;
392
+ readonly resolveConstructorSignature: (node: unknown) => SignatureId | undefined;
393
+ };
394
+ /**
395
+ * HandleRegistry — maps opaque handles to their underlying data.
396
+ *
397
+ * Created and managed by the Binding layer. TypeSystem uses this
398
+ * to look up declaration and signature information.
399
+ */
400
+ export interface HandleRegistry {
401
+ /** Get declaration info for a DeclId */
402
+ getDecl(id: DeclId): DeclInfo | undefined;
403
+ /** Get signature info for a SignatureId */
404
+ getSignature(id: SignatureId): SignatureInfo | undefined;
405
+ /** Get member info for a MemberId */
406
+ getMember(id: MemberId): MemberInfo | undefined;
407
+ /**
408
+ * Get captured type syntax for a TypeSyntaxId.
409
+ *
410
+ * Returns the TypeNode that was captured via Binding.captureTypeSyntax().
411
+ * TypeSystem uses this internally to convert captured syntax to IrType.
412
+ */
413
+ getTypeSyntax(id: TypeSyntaxId): TypeSyntaxInfo | undefined;
414
+ }
415
+ /**
416
+ * Type syntax info stored in the handle registry.
417
+ */
418
+ export type TypeSyntaxInfo = {
419
+ /** The captured TypeNode (ts.TypeNode, cast to unknown) */
420
+ readonly typeNode: unknown;
421
+ };
422
+ /**
423
+ * Captured class member names for override detection.
424
+ * Pure data — no TS nodes.
425
+ */
426
+ export type ClassMemberNames = {
427
+ readonly methods: ReadonlySet<string>;
428
+ readonly properties: ReadonlySet<string>;
429
+ };
430
+ /**
431
+ * Declaration info in the handle registry.
432
+ */
433
+ export type DeclInfo = {
434
+ /** Explicit type annotation (ts.TypeNode, cast to unknown) */
435
+ readonly typeNode?: unknown;
436
+ /** Declaration kind */
437
+ readonly kind: DeclKind;
438
+ /** Fully-qualified name */
439
+ readonly fqName?: string;
440
+ /** Declaration AST node (ts.Declaration, cast to unknown) */
441
+ readonly declNode?: unknown;
442
+ /** Captured class member names (for class declarations only) */
443
+ readonly classMemberNames?: ClassMemberNames;
444
+ };
445
+ export type DeclKind = "variable" | "function" | "class" | "interface" | "typeAlias" | "enum" | "parameter" | "property" | "method";
446
+ /**
447
+ * Signature info in the handle registry.
448
+ *
449
+ * IMPORTANT: Must include declaring identity for resolveCall().
450
+ */
451
+ export type SignatureInfo = {
452
+ /** Parameter nodes */
453
+ readonly parameters: readonly ParameterNode[];
454
+ /** Return type node (ts.TypeNode, cast to unknown) */
455
+ readonly returnTypeNode?: unknown;
456
+ /** Type parameters */
457
+ readonly typeParameters?: readonly TypeParameterNode[];
458
+ /**
459
+ * Declaring type simple TS name (e.g., "Box" not "Test.Box").
460
+ *
461
+ * CRITICAL: Required for inheritance substitution in resolveCall().
462
+ * Resolved via UnifiedTypeCatalog.resolveTsName() to get CLR FQ name.
463
+ */
464
+ readonly declaringTypeTsName?: string;
465
+ /**
466
+ * Declaring member name.
467
+ *
468
+ * CRITICAL: Required for inheritance substitution in resolveCall().
469
+ */
470
+ readonly declaringMemberName?: string;
471
+ /**
472
+ * Type predicate information for `x is T` return types.
473
+ *
474
+ * Extracted at registration time via pure syntax inspection.
475
+ * Contains targetTypeNode which TypeSystem converts to IrType.
476
+ */
477
+ readonly typePredicate?: SignatureTypePredicateRaw;
478
+ };
479
+ /**
480
+ * Raw type predicate info as stored in SignatureInfo.
481
+ * Contains TypeNode, not IrType.
482
+ */
483
+ export type SignatureTypePredicateRaw = {
484
+ readonly kind: "param";
485
+ readonly parameterName: string;
486
+ readonly parameterIndex: number;
487
+ readonly targetTypeNode: unknown;
488
+ } | {
489
+ readonly kind: "this";
490
+ readonly targetTypeNode: unknown;
491
+ };
492
+ export type ParameterNode = {
493
+ readonly name: string;
494
+ readonly typeNode?: unknown;
495
+ readonly isOptional: boolean;
496
+ readonly isRest: boolean;
497
+ readonly mode?: ParameterMode;
498
+ };
499
+ export type TypeParameterNode = {
500
+ readonly name: string;
501
+ readonly constraintNode?: unknown;
502
+ readonly defaultNode?: unknown;
503
+ };
504
+ /**
505
+ * Member info in the handle registry.
506
+ */
507
+ export type MemberInfo = {
508
+ readonly name: string;
509
+ readonly declNode?: unknown;
510
+ readonly typeNode?: unknown;
511
+ readonly isOptional: boolean;
512
+ readonly isReadonly: boolean;
513
+ };
514
+ /**
515
+ * TypeRegistry API — minimal interface needed by TypeSystem.
516
+ *
517
+ * After Step 3, TypeRegistry stores pure IR.
518
+ */
519
+ export interface TypeRegistryAPI {
520
+ /** Resolve a type by fully-qualified name */
521
+ resolveNominal(fqName: string): TypeRegistryEntry | undefined;
522
+ /** Resolve a type by simple name (returns first match) */
523
+ resolveBySimpleName(simpleName: string): TypeRegistryEntry | undefined;
524
+ /** Get fully-qualified name from simple name */
525
+ getFQName(simpleName: string): string | undefined;
526
+ /** Get member type from a nominal type (pure IR after Step 3) */
527
+ getMemberType(fqNominal: string, memberName: string): IrType | undefined;
528
+ /** Check if a type is registered */
529
+ hasType(fqName: string): boolean;
530
+ }
531
+ /**
532
+ * Type parameter info in TypeRegistry.
533
+ *
534
+ * Pure IR representation of type parameters.
535
+ */
536
+ export type TypeParameterEntry = {
537
+ readonly name: string;
538
+ readonly constraint?: IrType;
539
+ readonly defaultType?: IrType;
540
+ };
541
+ /**
542
+ * TypeRegistry entry.
543
+ *
544
+ * After Step 3, members/heritage store IrType, not TypeNodes.
545
+ */
546
+ export type TypeRegistryEntry = {
547
+ readonly kind: "class" | "interface" | "typeAlias";
548
+ readonly name: string;
549
+ readonly fullyQualifiedName: string;
550
+ readonly typeParameters: readonly TypeParameterEntry[];
551
+ readonly members: ReadonlyMap<string, TypeRegistryMemberInfo>;
552
+ };
553
+ /**
554
+ * Member info in TypeRegistry.
555
+ *
556
+ * Pure IR representation - stores IrType, not TypeNode.
557
+ */
558
+ export type TypeRegistryMemberInfo = {
559
+ readonly kind: "property" | "method" | "indexSignature";
560
+ readonly name: string;
561
+ readonly type: IrType | undefined;
562
+ readonly isOptional: boolean;
563
+ readonly isReadonly: boolean;
564
+ readonly methodSignatures?: readonly IrMethodSignature[];
565
+ };
566
+ /**
567
+ * NominalEnv API — Phase 6: TypeId-based interface.
568
+ */
569
+ export interface NominalEnvAPI {
570
+ /** Get inheritance chain for a type (returns TypeIds) */
571
+ getInheritanceChain(typeId: TypeId): readonly TypeId[];
572
+ /** Get substitution for a parent type given child instantiation */
573
+ getInstantiation(receiverTypeId: TypeId, receiverTypeArgs: readonly IrType[], targetTypeId: TypeId): ReadonlyMap<string, IrType> | undefined;
574
+ /** Find the declaring type of a member in the inheritance chain */
575
+ findMemberDeclaringType(receiverTypeId: TypeId, receiverTypeArgs: readonly IrType[], memberName: string): MemberLookupResult | undefined;
576
+ }
577
+ /**
578
+ * Result of looking up a member in the inheritance chain.
579
+ */
580
+ export type MemberLookupResult = {
581
+ /** TypeId of the type that declares the member */
582
+ readonly declaringTypeId: TypeId;
583
+ /** Substitution to apply to the member's declared type */
584
+ readonly substitution: ReadonlyMap<string, IrType>;
585
+ };
586
+ /**
587
+ * Mapping from primitive type names to their nominal type names.
588
+ *
589
+ * Used by typeOfMember to look up members on primitives.
590
+ * e.g., `"hello".length` → String.length
591
+ */
592
+ export declare const BUILTIN_NOMINALS: Readonly<Record<string, string>>;
593
+ /** Poison type for undeterminable types */
594
+ export declare const unknownType: IrType;
595
+ /** Poison type for impossible types */
596
+ export declare const neverType: IrType;
597
+ /** Void type for functions with no return */
598
+ export declare const voidType: IrType;
599
+ /**
600
+ * Create a poisoned ResolvedCall with correct arity.
601
+ *
602
+ * CRITICAL (Alice's spec): Empty arrays are ILLEGAL.
603
+ * Poisoned results must have correct arity so callers cannot
604
+ * detect failure via `length === 0` and fall back to legacy.
605
+ *
606
+ * @param arity Number of parameters/arguments (from CallQuery.argumentCount)
607
+ * @param diagnostics Diagnostics explaining why resolution failed
608
+ */
609
+ export declare const poisonedCall: (arity: number, diagnostics: readonly Diagnostic[]) => ResolvedCall;
610
+ /**
611
+ * Create a TypeSystem instance with internal caches.
612
+ *
613
+ * This is the single factory for TypeSystem. All type queries go through
614
+ * the returned TypeSystem instance.
615
+ */
616
+ export declare const createTypeSystem: (config: TypeSystemConfig) => TypeAuthority;
617
+ //# sourceMappingURL=type-system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-system.d.ts","sourceRoot":"","sources":["../../../src/ir/type-system/type-system.ts"],"names":[],"mappings":"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"}