@tsonic/frontend 0.0.73 → 0.0.75

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 (1786) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core-intrinsics/provenance.d.ts +7 -0
  3. package/dist/core-intrinsics/provenance.d.ts.map +1 -1
  4. package/dist/core-intrinsics/provenance.js +28 -8
  5. package/dist/core-intrinsics/provenance.js.map +1 -1
  6. package/dist/graph/extraction/imports.d.ts.map +1 -1
  7. package/dist/graph/extraction/imports.js +2 -0
  8. package/dist/graph/extraction/imports.js.map +1 -1
  9. package/dist/ir/binding/binding-call-resolution-calls.d.ts +11 -0
  10. package/dist/ir/binding/binding-call-resolution-calls.d.ts.map +1 -0
  11. package/dist/ir/binding/binding-call-resolution-calls.js +974 -0
  12. package/dist/ir/binding/binding-call-resolution-calls.js.map +1 -0
  13. package/dist/ir/binding/binding-call-resolution-candidates.d.ts +15 -0
  14. package/dist/ir/binding/binding-call-resolution-candidates.d.ts.map +1 -0
  15. package/dist/ir/binding/binding-call-resolution-candidates.js +178 -0
  16. package/dist/ir/binding/binding-call-resolution-candidates.js.map +1 -0
  17. package/dist/ir/binding/binding-call-resolution.d.ts +11 -0
  18. package/dist/ir/binding/binding-call-resolution.d.ts.map +1 -0
  19. package/dist/ir/binding/binding-call-resolution.js +11 -0
  20. package/dist/ir/binding/binding-call-resolution.js.map +1 -0
  21. package/dist/ir/binding/binding-factory.d.ts +7 -4
  22. package/dist/ir/binding/binding-factory.d.ts.map +1 -1
  23. package/dist/ir/binding/binding-factory.js +44 -829
  24. package/dist/ir/binding/binding-factory.js.map +1 -1
  25. package/dist/ir/binding/binding-helpers.d.ts +1 -0
  26. package/dist/ir/binding/binding-helpers.d.ts.map +1 -1
  27. package/dist/ir/binding/binding-helpers.js +37 -14
  28. package/dist/ir/binding/binding-helpers.js.map +1 -1
  29. package/dist/ir/binding/binding-registry.d.ts +52 -0
  30. package/dist/ir/binding/binding-registry.d.ts.map +1 -0
  31. package/dist/ir/binding/binding-registry.js +582 -0
  32. package/dist/ir/binding/binding-registry.js.map +1 -0
  33. package/dist/ir/binding/binding-types.d.ts +2 -0
  34. package/dist/ir/binding/binding-types.d.ts.map +1 -1
  35. package/dist/ir/binding-resolution-cases/extension-method-binding.test.d.ts +7 -0
  36. package/dist/ir/binding-resolution-cases/extension-method-binding.test.d.ts.map +1 -0
  37. package/dist/ir/binding-resolution-cases/extension-method-binding.test.js +463 -0
  38. package/dist/ir/binding-resolution-cases/extension-method-binding.test.js.map +1 -0
  39. package/dist/ir/binding-resolution-cases/extension-method-owner-resolution.test.d.ts +6 -0
  40. package/dist/ir/binding-resolution-cases/extension-method-owner-resolution.test.d.ts.map +1 -0
  41. package/dist/ir/binding-resolution-cases/extension-method-owner-resolution.test.js +252 -0
  42. package/dist/ir/binding-resolution-cases/extension-method-owner-resolution.test.js.map +1 -0
  43. package/dist/ir/binding-resolution-cases/extension-method-tsbindgen-modifiers.test.d.ts +6 -0
  44. package/dist/ir/binding-resolution-cases/extension-method-tsbindgen-modifiers.test.d.ts.map +1 -0
  45. package/dist/ir/binding-resolution-cases/extension-method-tsbindgen-modifiers.test.js +369 -0
  46. package/dist/ir/binding-resolution-cases/extension-method-tsbindgen-modifiers.test.js.map +1 -0
  47. package/dist/ir/binding-resolution-cases/extract-type-name.test.d.ts +5 -0
  48. package/dist/ir/binding-resolution-cases/extract-type-name.test.d.ts.map +1 -0
  49. package/dist/ir/binding-resolution-cases/extract-type-name.test.js +57 -0
  50. package/dist/ir/binding-resolution-cases/extract-type-name.test.js.map +1 -0
  51. package/dist/ir/binding-resolution-cases/global-binding-preferences.test.d.ts +5 -0
  52. package/dist/ir/binding-resolution-cases/global-binding-preferences.test.d.ts.map +1 -0
  53. package/dist/ir/binding-resolution-cases/global-binding-preferences.test.js +323 -0
  54. package/dist/ir/binding-resolution-cases/global-binding-preferences.test.js.map +1 -0
  55. package/dist/ir/binding-resolution-cases/global-identifier-resolution.test.d.ts +5 -0
  56. package/dist/ir/binding-resolution-cases/global-identifier-resolution.test.d.ts.map +1 -0
  57. package/dist/ir/binding-resolution-cases/global-identifier-resolution.test.js +1057 -0
  58. package/dist/ir/binding-resolution-cases/global-identifier-resolution.test.js.map +1 -0
  59. package/dist/ir/binding-resolution-cases/helpers.d.ts +38 -0
  60. package/dist/ir/binding-resolution-cases/helpers.d.ts.map +1 -0
  61. package/dist/ir/binding-resolution-cases/helpers.js +59 -0
  62. package/dist/ir/binding-resolution-cases/helpers.js.map +1 -0
  63. package/dist/ir/binding-resolution-cases/hierarchical-binding-resolution.test.d.ts +5 -0
  64. package/dist/ir/binding-resolution-cases/hierarchical-binding-resolution.test.d.ts.map +1 -0
  65. package/dist/ir/binding-resolution-cases/hierarchical-binding-resolution.test.js +259 -0
  66. package/dist/ir/binding-resolution-cases/hierarchical-binding-resolution.test.js.map +1 -0
  67. package/dist/ir/binding-resolution-cases/imported-globals-shadowing.test.d.ts +2 -0
  68. package/dist/ir/binding-resolution-cases/imported-globals-shadowing.test.d.ts.map +1 -0
  69. package/dist/ir/binding-resolution-cases/imported-globals-shadowing.test.js +566 -0
  70. package/dist/ir/binding-resolution-cases/imported-globals-shadowing.test.js.map +1 -0
  71. package/dist/ir/binding-resolution-cases/js-array-member-binding.test.d.ts +5 -0
  72. package/dist/ir/binding-resolution-cases/js-array-member-binding.test.d.ts.map +1 -0
  73. package/dist/ir/binding-resolution-cases/js-array-member-binding.test.js +186 -0
  74. package/dist/ir/binding-resolution-cases/js-array-member-binding.test.js.map +1 -0
  75. package/dist/ir/binding-resolution-cases/module-import-type-alias-renaming.test.d.ts +6 -0
  76. package/dist/ir/binding-resolution-cases/module-import-type-alias-renaming.test.d.ts.map +1 -0
  77. package/dist/ir/binding-resolution-cases/module-import-type-alias-renaming.test.js +198 -0
  78. package/dist/ir/binding-resolution-cases/module-import-type-alias-renaming.test.js.map +1 -0
  79. package/dist/ir/binding-resolution.test.d.ts +9 -4
  80. package/dist/ir/binding-resolution.test.d.ts.map +1 -1
  81. package/dist/ir/binding-resolution.test.js +9 -1428
  82. package/dist/ir/binding-resolution.test.js.map +1 -1
  83. package/dist/ir/bindings-disambiguation-cases/failure-disambiguation.test.d.ts +8 -0
  84. package/dist/ir/bindings-disambiguation-cases/failure-disambiguation.test.d.ts.map +1 -0
  85. package/dist/ir/bindings-disambiguation-cases/failure-disambiguation.test.js +255 -0
  86. package/dist/ir/bindings-disambiguation-cases/failure-disambiguation.test.js.map +1 -0
  87. package/dist/ir/bindings-disambiguation-cases/success-disambiguation.test.d.ts +11 -0
  88. package/dist/ir/bindings-disambiguation-cases/success-disambiguation.test.d.ts.map +1 -0
  89. package/dist/ir/bindings-disambiguation-cases/success-disambiguation.test.js +326 -0
  90. package/dist/ir/bindings-disambiguation-cases/success-disambiguation.test.js.map +1 -0
  91. package/dist/ir/bindings-disambiguation.test.d.ts +2 -10
  92. package/dist/ir/bindings-disambiguation.test.d.ts.map +1 -1
  93. package/dist/ir/bindings-disambiguation.test.js +2 -561
  94. package/dist/ir/bindings-disambiguation.test.js.map +1 -1
  95. package/dist/ir/builder/exports.d.ts +2 -2
  96. package/dist/ir/builder/exports.d.ts.map +1 -1
  97. package/dist/ir/builder/exports.js +6 -10
  98. package/dist/ir/builder/exports.js.map +1 -1
  99. package/dist/ir/builder/imports.d.ts.map +1 -1
  100. package/dist/ir/builder/imports.js +105 -62
  101. package/dist/ir/builder/imports.js.map +1 -1
  102. package/dist/ir/builder/orchestrator.d.ts.map +1 -1
  103. package/dist/ir/builder/orchestrator.js +7 -9
  104. package/dist/ir/builder/orchestrator.js.map +1 -1
  105. package/dist/ir/builder/statements.d.ts +5 -0
  106. package/dist/ir/builder/statements.d.ts.map +1 -1
  107. package/dist/ir/builder/statements.js +16 -5
  108. package/dist/ir/builder/statements.js.map +1 -1
  109. package/dist/ir/builder-cases/_test-helpers.d.ts +61 -0
  110. package/dist/ir/builder-cases/_test-helpers.d.ts.map +1 -0
  111. package/dist/ir/builder-cases/_test-helpers.js +123 -0
  112. package/dist/ir/builder-cases/_test-helpers.js.map +1 -0
  113. package/dist/ir/builder-cases/call-inference-generics/alias-cache.test.d.ts +2 -0
  114. package/dist/ir/builder-cases/call-inference-generics/alias-cache.test.d.ts.map +1 -0
  115. package/dist/ir/builder-cases/call-inference-generics/alias-cache.test.js +123 -0
  116. package/dist/ir/builder-cases/call-inference-generics/alias-cache.test.js.map +1 -0
  117. package/dist/ir/builder-cases/call-inference-generics/context-threading.test.d.ts +2 -0
  118. package/dist/ir/builder-cases/call-inference-generics/context-threading.test.d.ts.map +1 -0
  119. package/dist/ir/builder-cases/call-inference-generics/context-threading.test.js +839 -0
  120. package/dist/ir/builder-cases/call-inference-generics/context-threading.test.js.map +1 -0
  121. package/dist/ir/builder-cases/clr-identity.test.d.ts +5 -0
  122. package/dist/ir/builder-cases/clr-identity.test.d.ts.map +1 -0
  123. package/dist/ir/builder-cases/clr-identity.test.js +188 -0
  124. package/dist/ir/builder-cases/clr-identity.test.js.map +1 -0
  125. package/dist/ir/builder-cases/clr-iterable-overload-resolution.test.d.ts +2 -0
  126. package/dist/ir/builder-cases/clr-iterable-overload-resolution.test.d.ts.map +1 -0
  127. package/dist/ir/builder-cases/clr-iterable-overload-resolution.test.js +1436 -0
  128. package/dist/ir/builder-cases/clr-iterable-overload-resolution.test.js.map +1 -0
  129. package/dist/ir/builder-cases/conditional-narrowing.test.d.ts +5 -0
  130. package/dist/ir/builder-cases/conditional-narrowing.test.d.ts.map +1 -0
  131. package/dist/ir/builder-cases/conditional-narrowing.test.js +598 -0
  132. package/dist/ir/builder-cases/conditional-narrowing.test.js.map +1 -0
  133. package/dist/ir/builder-cases/contextual-typing-middleware.test.d.ts +5 -0
  134. package/dist/ir/builder-cases/contextual-typing-middleware.test.d.ts.map +1 -0
  135. package/dist/ir/builder-cases/contextual-typing-middleware.test.js +384 -0
  136. package/dist/ir/builder-cases/contextual-typing-middleware.test.js.map +1 -0
  137. package/dist/ir/builder-cases/expression-conversion.test.d.ts +5 -0
  138. package/dist/ir/builder-cases/expression-conversion.test.d.ts.map +1 -0
  139. package/dist/ir/builder-cases/expression-conversion.test.js +712 -0
  140. package/dist/ir/builder-cases/expression-conversion.test.js.map +1 -0
  141. package/dist/ir/builder-cases/fluent-and-nullable-params.test.d.ts +5 -0
  142. package/dist/ir/builder-cases/fluent-and-nullable-params.test.d.ts.map +1 -0
  143. package/dist/ir/builder-cases/fluent-and-nullable-params.test.js +170 -0
  144. package/dist/ir/builder-cases/fluent-and-nullable-params.test.js.map +1 -0
  145. package/dist/ir/builder-cases/for-of-loops.test.d.ts +5 -0
  146. package/dist/ir/builder-cases/for-of-loops.test.d.ts.map +1 -0
  147. package/dist/ir/builder-cases/for-of-loops.test.js +367 -0
  148. package/dist/ir/builder-cases/for-of-loops.test.js.map +1 -0
  149. package/dist/ir/builder-cases/generic-call-parameter-specialization.test.d.ts +2 -0
  150. package/dist/ir/builder-cases/generic-call-parameter-specialization.test.d.ts.map +1 -0
  151. package/dist/ir/builder-cases/generic-call-parameter-specialization.test.js +192 -0
  152. package/dist/ir/builder-cases/generic-call-parameter-specialization.test.js.map +1 -0
  153. package/dist/ir/builder-cases/implements-and-struct.test.d.ts +5 -0
  154. package/dist/ir/builder-cases/implements-and-struct.test.d.ts.map +1 -0
  155. package/dist/ir/builder-cases/implements-and-struct.test.js +145 -0
  156. package/dist/ir/builder-cases/implements-and-struct.test.js.map +1 -0
  157. package/dist/ir/builder-cases/import-extraction.test.d.ts +5 -0
  158. package/dist/ir/builder-cases/import-extraction.test.d.ts.map +1 -0
  159. package/dist/ir/builder-cases/import-extraction.test.js +852 -0
  160. package/dist/ir/builder-cases/import-extraction.test.js.map +1 -0
  161. package/dist/ir/builder-cases/imported-null-guard-assignments.test.d.ts +2 -0
  162. package/dist/ir/builder-cases/imported-null-guard-assignments.test.d.ts.map +1 -0
  163. package/dist/ir/builder-cases/imported-null-guard-assignments.test.js +185 -0
  164. package/dist/ir/builder-cases/imported-null-guard-assignments.test.js.map +1 -0
  165. package/dist/ir/builder-cases/imported-union-aliases.test.d.ts +2 -0
  166. package/dist/ir/builder-cases/imported-union-aliases.test.d.ts.map +1 -0
  167. package/dist/ir/builder-cases/imported-union-aliases.test.js +255 -0
  168. package/dist/ir/builder-cases/imported-union-aliases.test.js.map +1 -0
  169. package/dist/ir/builder-cases/installed-source-package-deterministic-typing.test.d.ts +2 -0
  170. package/dist/ir/builder-cases/installed-source-package-deterministic-typing.test.d.ts.map +1 -0
  171. package/dist/ir/builder-cases/installed-source-package-deterministic-typing.test.js +1267 -0
  172. package/dist/ir/builder-cases/installed-source-package-deterministic-typing.test.js.map +1 -0
  173. package/dist/ir/builder-cases/invocation-flow-assertions.test.d.ts +2 -0
  174. package/dist/ir/builder-cases/invocation-flow-assertions.test.d.ts.map +1 -0
  175. package/dist/ir/builder-cases/invocation-flow-assertions.test.js +198 -0
  176. package/dist/ir/builder-cases/invocation-flow-assertions.test.js.map +1 -0
  177. package/dist/ir/builder-cases/js-surface-helpers.test.d.ts +5 -0
  178. package/dist/ir/builder-cases/js-surface-helpers.test.d.ts.map +1 -0
  179. package/dist/ir/builder-cases/js-surface-helpers.test.js +1990 -0
  180. package/dist/ir/builder-cases/js-surface-helpers.test.js.map +1 -0
  181. package/dist/ir/builder-cases/module-structure-and-exports.test.d.ts +5 -0
  182. package/dist/ir/builder-cases/module-structure-and-exports.test.d.ts.map +1 -0
  183. package/dist/ir/builder-cases/module-structure-and-exports.test.js +97 -0
  184. package/dist/ir/builder-cases/module-structure-and-exports.test.js.map +1 -0
  185. package/dist/ir/builder-cases/namespace-imports-and-function-narrowing.test.d.ts +5 -0
  186. package/dist/ir/builder-cases/namespace-imports-and-function-narrowing.test.d.ts.map +1 -0
  187. package/dist/ir/builder-cases/namespace-imports-and-function-narrowing.test.js +511 -0
  188. package/dist/ir/builder-cases/namespace-imports-and-function-narrowing.test.js.map +1 -0
  189. package/dist/ir/builder-cases/narrowing-isarray-and-typeof.test.d.ts +5 -0
  190. package/dist/ir/builder-cases/narrowing-isarray-and-typeof.test.d.ts.map +1 -0
  191. package/dist/ir/builder-cases/narrowing-isarray-and-typeof.test.js +676 -0
  192. package/dist/ir/builder-cases/narrowing-isarray-and-typeof.test.js.map +1 -0
  193. package/dist/ir/builder-cases/object-exports-and-member-inference.test.d.ts +5 -0
  194. package/dist/ir/builder-cases/object-exports-and-member-inference.test.d.ts.map +1 -0
  195. package/dist/ir/builder-cases/object-exports-and-member-inference.test.js +159 -0
  196. package/dist/ir/builder-cases/object-exports-and-member-inference.test.js.map +1 -0
  197. package/dist/ir/builder-cases/object-synthesis-advanced.test.d.ts +5 -0
  198. package/dist/ir/builder-cases/object-synthesis-advanced.test.d.ts.map +1 -0
  199. package/dist/ir/builder-cases/object-synthesis-advanced.test.js +250 -0
  200. package/dist/ir/builder-cases/object-synthesis-advanced.test.js.map +1 -0
  201. package/dist/ir/builder-cases/object-synthesis.test.d.ts +5 -0
  202. package/dist/ir/builder-cases/object-synthesis.test.d.ts.map +1 -0
  203. package/dist/ir/builder-cases/object-synthesis.test.js +254 -0
  204. package/dist/ir/builder-cases/object-synthesis.test.js.map +1 -0
  205. package/dist/ir/builder-cases/overload-family-markers.test.d.ts +2 -0
  206. package/dist/ir/builder-cases/overload-family-markers.test.d.ts.map +1 -0
  207. package/dist/ir/builder-cases/overload-family-markers.test.js +264 -0
  208. package/dist/ir/builder-cases/overload-family-markers.test.js.map +1 -0
  209. package/dist/ir/builder-cases/overload-null-guard-selection.test.d.ts +2 -0
  210. package/dist/ir/builder-cases/overload-null-guard-selection.test.d.ts.map +1 -0
  211. package/dist/ir/builder-cases/overload-null-guard-selection.test.js +210 -0
  212. package/dist/ir/builder-cases/overload-null-guard-selection.test.js.map +1 -0
  213. package/dist/ir/builder-cases/overload-stub-typing.test.d.ts +2 -0
  214. package/dist/ir/builder-cases/overload-stub-typing.test.d.ts.map +1 -0
  215. package/dist/ir/builder-cases/overload-stub-typing.test.js +111 -0
  216. package/dist/ir/builder-cases/overload-stub-typing.test.js.map +1 -0
  217. package/dist/ir/builder-cases/private-members-and-instanceof.test.d.ts +5 -0
  218. package/dist/ir/builder-cases/private-members-and-instanceof.test.d.ts.map +1 -0
  219. package/dist/ir/builder-cases/private-members-and-instanceof.test.js +239 -0
  220. package/dist/ir/builder-cases/private-members-and-instanceof.test.js.map +1 -0
  221. package/dist/ir/builder-cases/promise-callback-typing.test.d.ts +5 -0
  222. package/dist/ir/builder-cases/promise-callback-typing.test.d.ts.map +1 -0
  223. package/dist/ir/builder-cases/promise-callback-typing.test.js +977 -0
  224. package/dist/ir/builder-cases/promise-callback-typing.test.js.map +1 -0
  225. package/dist/ir/builder-cases/recursive-aliases-and-flow-types.test.d.ts +5 -0
  226. package/dist/ir/builder-cases/recursive-aliases-and-flow-types.test.d.ts.map +1 -0
  227. package/dist/ir/builder-cases/recursive-aliases-and-flow-types.test.js +509 -0
  228. package/dist/ir/builder-cases/recursive-aliases-and-flow-types.test.js.map +1 -0
  229. package/dist/ir/builder-cases/statement-conversion.test.d.ts +5 -0
  230. package/dist/ir/builder-cases/statement-conversion.test.d.ts.map +1 -0
  231. package/dist/ir/builder-cases/statement-conversion.test.js +240 -0
  232. package/dist/ir/builder-cases/statement-conversion.test.js.map +1 -0
  233. package/dist/ir/builder-cases/type-access-and-records.test.d.ts +5 -0
  234. package/dist/ir/builder-cases/type-access-and-records.test.d.ts.map +1 -0
  235. package/dist/ir/builder-cases/type-access-and-records.test.js +420 -0
  236. package/dist/ir/builder-cases/type-access-and-records.test.js.map +1 -0
  237. package/dist/ir/builder-cases/typeof-narrowing-and-intrinsics.test.d.ts +5 -0
  238. package/dist/ir/builder-cases/typeof-narrowing-and-intrinsics.test.d.ts.map +1 -0
  239. package/dist/ir/builder-cases/typeof-narrowing-and-intrinsics.test.js +187 -0
  240. package/dist/ir/builder-cases/typeof-narrowing-and-intrinsics.test.js.map +1 -0
  241. package/dist/ir/builder.test.d.ts +27 -4
  242. package/dist/ir/builder.test.d.ts.map +1 -1
  243. package/dist/ir/builder.test.js +27 -3579
  244. package/dist/ir/builder.test.js.map +1 -1
  245. package/dist/ir/converters/access-paths.d.ts +20 -0
  246. package/dist/ir/converters/access-paths.d.ts.map +1 -0
  247. package/dist/ir/converters/access-paths.js +163 -0
  248. package/dist/ir/converters/access-paths.js.map +1 -0
  249. package/dist/ir/converters/array-type-guards.d.ts +7 -0
  250. package/dist/ir/converters/array-type-guards.d.ts.map +1 -0
  251. package/dist/ir/converters/array-type-guards.js +33 -0
  252. package/dist/ir/converters/array-type-guards.js.map +1 -0
  253. package/dist/ir/converters/assertion-wrapping.d.ts +4 -0
  254. package/dist/ir/converters/assertion-wrapping.d.ts.map +1 -0
  255. package/dist/ir/converters/assertion-wrapping.js +40 -0
  256. package/dist/ir/converters/assertion-wrapping.js.map +1 -0
  257. package/dist/ir/converters/expressions/access/access-converter.d.ts.map +1 -1
  258. package/dist/ir/converters/expressions/access/access-converter.js +104 -41
  259. package/dist/ir/converters/expressions/access/access-converter.js.map +1 -1
  260. package/dist/ir/converters/expressions/access/binding-resolution-hierarchical.d.ts +18 -0
  261. package/dist/ir/converters/expressions/access/binding-resolution-hierarchical.d.ts.map +1 -0
  262. package/dist/ir/converters/expressions/access/binding-resolution-hierarchical.js +347 -0
  263. package/dist/ir/converters/expressions/access/binding-resolution-hierarchical.js.map +1 -0
  264. package/dist/ir/converters/expressions/access/binding-resolution-memberid.d.ts +28 -0
  265. package/dist/ir/converters/expressions/access/binding-resolution-memberid.d.ts.map +1 -0
  266. package/dist/ir/converters/expressions/access/binding-resolution-memberid.js +522 -0
  267. package/dist/ir/converters/expressions/access/binding-resolution-memberid.js.map +1 -0
  268. package/dist/ir/converters/expressions/access/binding-resolution.d.ts +7 -31
  269. package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -1
  270. package/dist/ir/converters/expressions/access/binding-resolution.js +7 -490
  271. package/dist/ir/converters/expressions/access/binding-resolution.js.map +1 -1
  272. package/dist/ir/converters/expressions/access/member-resolution.d.ts +7 -6
  273. package/dist/ir/converters/expressions/access/member-resolution.d.ts.map +1 -1
  274. package/dist/ir/converters/expressions/access/member-resolution.js +323 -77
  275. package/dist/ir/converters/expressions/access/member-resolution.js.map +1 -1
  276. package/dist/ir/converters/expressions/ambient-global-source-owner.d.ts +5 -0
  277. package/dist/ir/converters/expressions/ambient-global-source-owner.d.ts.map +1 -0
  278. package/dist/ir/converters/expressions/ambient-global-source-owner.js +252 -0
  279. package/dist/ir/converters/expressions/ambient-global-source-owner.js.map +1 -0
  280. package/dist/ir/converters/expressions/array-literals.d.ts +25 -0
  281. package/dist/ir/converters/expressions/array-literals.d.ts.map +1 -0
  282. package/dist/ir/converters/expressions/array-literals.js +356 -0
  283. package/dist/ir/converters/expressions/array-literals.js.map +1 -0
  284. package/dist/ir/converters/expressions/calls/bound-global-call-parameters.d.ts +13 -0
  285. package/dist/ir/converters/expressions/calls/bound-global-call-parameters.d.ts.map +1 -0
  286. package/dist/ir/converters/expressions/calls/bound-global-call-parameters.js +56 -0
  287. package/dist/ir/converters/expressions/calls/bound-global-call-parameters.js.map +1 -0
  288. package/dist/ir/converters/expressions/calls/call-converter.d.ts +7 -17
  289. package/dist/ir/converters/expressions/calls/call-converter.d.ts.map +1 -1
  290. package/dist/ir/converters/expressions/calls/call-converter.js +7 -648
  291. package/dist/ir/converters/expressions/calls/call-converter.js.map +1 -1
  292. package/dist/ir/converters/expressions/calls/call-expression.d.ts +9 -0
  293. package/dist/ir/converters/expressions/calls/call-expression.d.ts.map +1 -0
  294. package/dist/ir/converters/expressions/calls/call-expression.js +9 -0
  295. package/dist/ir/converters/expressions/calls/call-expression.js.map +1 -0
  296. package/dist/ir/converters/expressions/calls/call-general.d.ts +25 -0
  297. package/dist/ir/converters/expressions/calls/call-general.d.ts.map +1 -0
  298. package/dist/ir/converters/expressions/calls/call-general.js +2237 -0
  299. package/dist/ir/converters/expressions/calls/call-general.js.map +1 -0
  300. package/dist/ir/converters/expressions/calls/call-intrinsics.d.ts +16 -0
  301. package/dist/ir/converters/expressions/calls/call-intrinsics.d.ts.map +1 -0
  302. package/dist/ir/converters/expressions/calls/call-intrinsics.js +308 -0
  303. package/dist/ir/converters/expressions/calls/call-intrinsics.js.map +1 -0
  304. package/dist/ir/converters/expressions/calls/call-resolution.d.ts +58 -0
  305. package/dist/ir/converters/expressions/calls/call-resolution.d.ts.map +1 -0
  306. package/dist/ir/converters/expressions/calls/call-resolution.js +293 -0
  307. package/dist/ir/converters/expressions/calls/call-resolution.js.map +1 -0
  308. package/dist/ir/converters/expressions/calls/call-site-analysis-argument-passing.d.ts +51 -0
  309. package/dist/ir/converters/expressions/calls/call-site-analysis-argument-passing.d.ts.map +1 -0
  310. package/dist/ir/converters/expressions/calls/call-site-analysis-argument-passing.js +313 -0
  311. package/dist/ir/converters/expressions/calls/call-site-analysis-argument-passing.js.map +1 -0
  312. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.d.ts +13 -0
  313. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.d.ts.map +1 -0
  314. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.js +251 -0
  315. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.js.map +1 -0
  316. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.test.d.ts +2 -0
  317. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.test.d.ts.map +1 -0
  318. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.test.js +18 -0
  319. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.test.js.map +1 -0
  320. package/dist/ir/converters/expressions/calls/call-site-analysis.d.ts +12 -51
  321. package/dist/ir/converters/expressions/calls/call-site-analysis.d.ts.map +1 -1
  322. package/dist/ir/converters/expressions/calls/call-site-analysis.js +9 -524
  323. package/dist/ir/converters/expressions/calls/call-site-analysis.js.map +1 -1
  324. package/dist/ir/converters/expressions/calls/invocation-finalization.d.ts +56 -0
  325. package/dist/ir/converters/expressions/calls/invocation-finalization.d.ts.map +1 -0
  326. package/dist/ir/converters/expressions/calls/invocation-finalization.js +723 -0
  327. package/dist/ir/converters/expressions/calls/invocation-finalization.js.map +1 -0
  328. package/dist/ir/converters/expressions/calls/new-converter.d.ts.map +1 -1
  329. package/dist/ir/converters/expressions/calls/new-converter.js +78 -3
  330. package/dist/ir/converters/expressions/calls/new-converter.js.map +1 -1
  331. package/dist/ir/converters/expressions/calls/source-backed-constructor-metadata.d.ts +22 -0
  332. package/dist/ir/converters/expressions/calls/source-backed-constructor-metadata.d.ts.map +1 -0
  333. package/dist/ir/converters/expressions/calls/source-backed-constructor-metadata.js +257 -0
  334. package/dist/ir/converters/expressions/calls/source-backed-constructor-metadata.js.map +1 -0
  335. package/dist/ir/converters/expressions/collections.d.ts +5 -25
  336. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  337. package/dist/ir/converters/expressions/collections.js +5 -883
  338. package/dist/ir/converters/expressions/collections.js.map +1 -1
  339. package/dist/ir/converters/expressions/dynamic-import.d.ts.map +1 -1
  340. package/dist/ir/converters/expressions/dynamic-import.js.map +1 -1
  341. package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
  342. package/dist/ir/converters/expressions/functions.js +80 -65
  343. package/dist/ir/converters/expressions/functions.js.map +1 -1
  344. package/dist/ir/converters/expressions/helpers.js +1 -1
  345. package/dist/ir/converters/expressions/helpers.js.map +1 -1
  346. package/dist/ir/converters/expressions/import-meta.d.ts +3 -3
  347. package/dist/ir/converters/expressions/import-meta.d.ts.map +1 -1
  348. package/dist/ir/converters/expressions/import-meta.js +22 -8
  349. package/dist/ir/converters/expressions/import-meta.js.map +1 -1
  350. package/dist/ir/converters/expressions/literals.d.ts.map +1 -1
  351. package/dist/ir/converters/expressions/literals.js +31 -6
  352. package/dist/ir/converters/expressions/literals.js.map +1 -1
  353. package/dist/ir/converters/expressions/numeric-recovery-cases/call-return-and-intent.test.d.ts +9 -0
  354. package/dist/ir/converters/expressions/numeric-recovery-cases/call-return-and-intent.test.d.ts.map +1 -0
  355. package/dist/ir/converters/expressions/numeric-recovery-cases/call-return-and-intent.test.js +124 -0
  356. package/dist/ir/converters/expressions/numeric-recovery-cases/call-return-and-intent.test.js.map +1 -0
  357. package/dist/ir/converters/expressions/numeric-recovery-cases/e2e-integration.test.d.ts +8 -0
  358. package/dist/ir/converters/expressions/numeric-recovery-cases/e2e-integration.test.d.ts.map +1 -0
  359. package/dist/ir/converters/expressions/numeric-recovery-cases/e2e-integration.test.js +117 -0
  360. package/dist/ir/converters/expressions/numeric-recovery-cases/e2e-integration.test.js.map +1 -0
  361. package/dist/ir/converters/expressions/numeric-recovery-cases/property-access-recovery.test.d.ts +8 -0
  362. package/dist/ir/converters/expressions/numeric-recovery-cases/property-access-recovery.test.d.ts.map +1 -0
  363. package/dist/ir/converters/expressions/numeric-recovery-cases/property-access-recovery.test.js +170 -0
  364. package/dist/ir/converters/expressions/numeric-recovery-cases/property-access-recovery.test.js.map +1 -0
  365. package/dist/ir/converters/expressions/numeric-recovery-cases/test-helpers.d.ts +31 -0
  366. package/dist/ir/converters/expressions/numeric-recovery-cases/test-helpers.d.ts.map +1 -0
  367. package/dist/ir/converters/expressions/numeric-recovery-cases/test-helpers.js +183 -0
  368. package/dist/ir/converters/expressions/numeric-recovery-cases/test-helpers.js.map +1 -0
  369. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts +3 -16
  370. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts.map +1 -1
  371. package/dist/ir/converters/expressions/numeric-recovery.test.js +3 -407
  372. package/dist/ir/converters/expressions/numeric-recovery.test.js.map +1 -1
  373. package/dist/ir/converters/expressions/object-literal-helpers.d.ts +12 -0
  374. package/dist/ir/converters/expressions/object-literal-helpers.d.ts.map +1 -0
  375. package/dist/ir/converters/expressions/object-literal-helpers.js +12 -0
  376. package/dist/ir/converters/expressions/object-literal-helpers.js.map +1 -0
  377. package/dist/ir/converters/expressions/object-literal-synthesis.d.ts +27 -0
  378. package/dist/ir/converters/expressions/object-literal-synthesis.d.ts.map +1 -0
  379. package/dist/ir/converters/expressions/object-literal-synthesis.js +459 -0
  380. package/dist/ir/converters/expressions/object-literal-synthesis.js.map +1 -0
  381. package/dist/ir/converters/expressions/object-literal-type-helpers.d.ts +27 -0
  382. package/dist/ir/converters/expressions/object-literal-type-helpers.d.ts.map +1 -0
  383. package/dist/ir/converters/expressions/object-literal-type-helpers.js +267 -0
  384. package/dist/ir/converters/expressions/object-literal-type-helpers.js.map +1 -0
  385. package/dist/ir/converters/expressions/object-literals.d.ts +16 -0
  386. package/dist/ir/converters/expressions/object-literals.d.ts.map +1 -0
  387. package/dist/ir/converters/expressions/object-literals.js +317 -0
  388. package/dist/ir/converters/expressions/object-literals.js.map +1 -0
  389. package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
  390. package/dist/ir/converters/expressions/operators.js +33 -19
  391. package/dist/ir/converters/expressions/operators.js.map +1 -1
  392. package/dist/ir/converters/expressions/other.d.ts +4 -2
  393. package/dist/ir/converters/expressions/other.d.ts.map +1 -1
  394. package/dist/ir/converters/expressions/other.js +32 -10
  395. package/dist/ir/converters/expressions/other.js.map +1 -1
  396. package/dist/ir/converters/flow-narrowing.d.ts +6 -25
  397. package/dist/ir/converters/flow-narrowing.d.ts.map +1 -1
  398. package/dist/ir/converters/flow-narrowing.js +5 -416
  399. package/dist/ir/converters/flow-narrowing.js.map +1 -1
  400. package/dist/ir/converters/heritage-reference-type.d.ts +5 -0
  401. package/dist/ir/converters/heritage-reference-type.d.ts.map +1 -0
  402. package/dist/ir/converters/heritage-reference-type.js +22 -0
  403. package/dist/ir/converters/heritage-reference-type.js.map +1 -0
  404. package/dist/ir/converters/narrowing-candidates.d.ts +7 -0
  405. package/dist/ir/converters/narrowing-candidates.d.ts.map +1 -0
  406. package/dist/ir/converters/narrowing-candidates.js +5 -0
  407. package/dist/ir/converters/narrowing-candidates.js.map +1 -0
  408. package/dist/ir/converters/narrowing-collection.d.ts +10 -0
  409. package/dist/ir/converters/narrowing-collection.d.ts.map +1 -0
  410. package/dist/ir/converters/narrowing-collection.js +10 -0
  411. package/dist/ir/converters/narrowing-collection.js.map +1 -0
  412. package/dist/ir/converters/narrowing-environment.d.ts +13 -0
  413. package/dist/ir/converters/narrowing-environment.d.ts.map +1 -0
  414. package/dist/ir/converters/narrowing-environment.js +83 -0
  415. package/dist/ir/converters/narrowing-environment.js.map +1 -0
  416. package/dist/ir/converters/narrowing-property-helpers.d.ts +8 -0
  417. package/dist/ir/converters/narrowing-property-helpers.d.ts.map +1 -0
  418. package/dist/ir/converters/narrowing-property-helpers.js +57 -0
  419. package/dist/ir/converters/narrowing-property-helpers.js.map +1 -0
  420. package/dist/ir/converters/narrowing-resolvers-equality.d.ts +22 -0
  421. package/dist/ir/converters/narrowing-resolvers-equality.d.ts.map +1 -0
  422. package/dist/ir/converters/narrowing-resolvers-equality.js +309 -0
  423. package/dist/ir/converters/narrowing-resolvers-equality.js.map +1 -0
  424. package/dist/ir/converters/narrowing-resolvers-equality.test.d.ts +2 -0
  425. package/dist/ir/converters/narrowing-resolvers-equality.test.d.ts.map +1 -0
  426. package/dist/ir/converters/narrowing-resolvers-equality.test.js +159 -0
  427. package/dist/ir/converters/narrowing-resolvers-equality.test.js.map +1 -0
  428. package/dist/ir/converters/narrowing-resolvers-typeof.d.ts +41 -0
  429. package/dist/ir/converters/narrowing-resolvers-typeof.d.ts.map +1 -0
  430. package/dist/ir/converters/narrowing-resolvers-typeof.js +251 -0
  431. package/dist/ir/converters/narrowing-resolvers-typeof.js.map +1 -0
  432. package/dist/ir/converters/narrowing-resolvers.d.ts +12 -0
  433. package/dist/ir/converters/narrowing-resolvers.d.ts.map +1 -0
  434. package/dist/ir/converters/narrowing-resolvers.js +10 -0
  435. package/dist/ir/converters/narrowing-resolvers.js.map +1 -0
  436. package/dist/ir/converters/narrowing-truthy.d.ts +19 -0
  437. package/dist/ir/converters/narrowing-truthy.d.ts.map +1 -0
  438. package/dist/ir/converters/narrowing-truthy.js +355 -0
  439. package/dist/ir/converters/narrowing-truthy.js.map +1 -0
  440. package/dist/ir/converters/reference-type-guards.d.ts +8 -0
  441. package/dist/ir/converters/reference-type-guards.d.ts.map +1 -0
  442. package/dist/ir/converters/reference-type-guards.js +51 -0
  443. package/dist/ir/converters/reference-type-guards.js.map +1 -0
  444. package/dist/ir/converters/reference-type-guards.test.d.ts +2 -0
  445. package/dist/ir/converters/reference-type-guards.test.d.ts.map +1 -0
  446. package/dist/ir/converters/reference-type-guards.test.js +51 -0
  447. package/dist/ir/converters/reference-type-guards.test.js.map +1 -0
  448. package/dist/ir/converters/return-expression-types.d.ts +3 -0
  449. package/dist/ir/converters/return-expression-types.d.ts.map +1 -0
  450. package/dist/ir/converters/return-expression-types.js +10 -0
  451. package/dist/ir/converters/return-expression-types.js.map +1 -0
  452. package/dist/ir/converters/statements/control/blocks.d.ts.map +1 -1
  453. package/dist/ir/converters/statements/control/blocks.js +75 -3
  454. package/dist/ir/converters/statements/control/blocks.js.map +1 -1
  455. package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
  456. package/dist/ir/converters/statements/control/conditionals.js +2 -12
  457. package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
  458. package/dist/ir/converters/statements/control/loops.d.ts.map +1 -1
  459. package/dist/ir/converters/statements/control/loops.js +18 -4
  460. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  461. package/dist/ir/converters/statements/declarations/classes/constructors.d.ts.map +1 -1
  462. package/dist/ir/converters/statements/declarations/classes/constructors.js +36 -19
  463. package/dist/ir/converters/statements/declarations/classes/constructors.js.map +1 -1
  464. package/dist/ir/converters/statements/declarations/classes/member-names.d.ts +5 -0
  465. package/dist/ir/converters/statements/declarations/classes/member-names.d.ts.map +1 -0
  466. package/dist/ir/converters/statements/declarations/classes/member-names.js +6 -0
  467. package/dist/ir/converters/statements/declarations/classes/member-names.js.map +1 -0
  468. package/dist/ir/converters/statements/declarations/classes/method-declaration.d.ts +11 -0
  469. package/dist/ir/converters/statements/declarations/classes/method-declaration.d.ts.map +1 -0
  470. package/dist/ir/converters/statements/declarations/classes/method-declaration.js +54 -0
  471. package/dist/ir/converters/statements/declarations/classes/method-declaration.js.map +1 -0
  472. package/dist/ir/converters/statements/declarations/classes/methods.d.ts +2 -15
  473. package/dist/ir/converters/statements/declarations/classes/methods.d.ts.map +1 -1
  474. package/dist/ir/converters/statements/declarations/classes/methods.js +2 -810
  475. package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -1
  476. package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts.map +1 -1
  477. package/dist/ir/converters/statements/declarations/classes/orchestrator.js +15 -41
  478. package/dist/ir/converters/statements/declarations/classes/orchestrator.js.map +1 -1
  479. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts +4 -1
  480. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts.map +1 -1
  481. package/dist/ir/converters/statements/declarations/classes/override-detection.js +18 -10
  482. package/dist/ir/converters/statements/declarations/classes/override-detection.js.map +1 -1
  483. package/dist/ir/converters/statements/declarations/classes/properties.d.ts.map +1 -1
  484. package/dist/ir/converters/statements/declarations/classes/properties.js +10 -3
  485. package/dist/ir/converters/statements/declarations/classes/properties.js.map +1 -1
  486. package/dist/ir/converters/statements/declarations/functions.d.ts.map +1 -1
  487. package/dist/ir/converters/statements/declarations/functions.js +8 -2
  488. package/dist/ir/converters/statements/declarations/functions.js.map +1 -1
  489. package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -1
  490. package/dist/ir/converters/statements/declarations/interfaces.js +67 -2
  491. package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -1
  492. package/dist/ir/converters/statements/declarations/overload-family-builders.d.ts +9 -0
  493. package/dist/ir/converters/statements/declarations/overload-family-builders.d.ts.map +1 -0
  494. package/dist/ir/converters/statements/declarations/overload-family-builders.js +21 -0
  495. package/dist/ir/converters/statements/declarations/overload-family-builders.js.map +1 -0
  496. package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -1
  497. package/dist/ir/converters/statements/declarations/type-aliases.js +12 -1
  498. package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
  499. package/dist/ir/converters/statements/declarations/variable-generic-lowering.d.ts +50 -0
  500. package/dist/ir/converters/statements/declarations/variable-generic-lowering.d.ts.map +1 -0
  501. package/dist/ir/converters/statements/declarations/variable-generic-lowering.js +281 -0
  502. package/dist/ir/converters/statements/declarations/variable-generic-lowering.js.map +1 -0
  503. package/dist/ir/converters/statements/declarations/variable-helpers.d.ts +29 -0
  504. package/dist/ir/converters/statements/declarations/variable-helpers.d.ts.map +1 -0
  505. package/dist/ir/converters/statements/declarations/variable-helpers.js +58 -0
  506. package/dist/ir/converters/statements/declarations/variable-helpers.js.map +1 -0
  507. package/dist/ir/converters/statements/declarations/variables-generic-function-values.d.ts +21 -0
  508. package/dist/ir/converters/statements/declarations/variables-generic-function-values.d.ts.map +1 -0
  509. package/dist/ir/converters/statements/declarations/variables-generic-function-values.js +263 -0
  510. package/dist/ir/converters/statements/declarations/variables-generic-function-values.js.map +1 -0
  511. package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -1
  512. package/dist/ir/converters/statements/declarations/variables.js +3 -262
  513. package/dist/ir/converters/statements/declarations/variables.js.map +1 -1
  514. package/dist/ir/converters/synthetic-types.d.ts.map +1 -1
  515. package/dist/ir/converters/synthetic-types.js +83 -4
  516. package/dist/ir/converters/synthetic-types.js.map +1 -1
  517. package/dist/ir/converters/type-env.d.ts +3 -1
  518. package/dist/ir/converters/type-env.d.ts.map +1 -1
  519. package/dist/ir/converters/type-env.js +52 -19
  520. package/dist/ir/converters/type-env.js.map +1 -1
  521. package/dist/ir/expression-converter-dispatch.d.ts +21 -0
  522. package/dist/ir/expression-converter-dispatch.d.ts.map +1 -0
  523. package/dist/ir/expression-converter-dispatch.js +550 -0
  524. package/dist/ir/expression-converter-dispatch.js.map +1 -0
  525. package/dist/ir/expression-converter-helpers.d.ts +27 -0
  526. package/dist/ir/expression-converter-helpers.d.ts.map +1 -0
  527. package/dist/ir/expression-converter-helpers.js +172 -0
  528. package/dist/ir/expression-converter-helpers.js.map +1 -0
  529. package/dist/ir/expression-converter.d.ts +5 -15
  530. package/dist/ir/expression-converter.d.ts.map +1 -1
  531. package/dist/ir/expression-converter.js +5 -410
  532. package/dist/ir/expression-converter.js.map +1 -1
  533. package/dist/ir/field-marker.test.js +1 -1
  534. package/dist/ir/field-marker.test.js.map +1 -1
  535. package/dist/ir/json-global-typing.test.d.ts +2 -0
  536. package/dist/ir/json-global-typing.test.d.ts.map +1 -0
  537. package/dist/ir/json-global-typing.test.js +80 -0
  538. package/dist/ir/json-global-typing.test.js.map +1 -0
  539. package/dist/ir/program-context-factory.d.ts +25 -0
  540. package/dist/ir/program-context-factory.d.ts.map +1 -0
  541. package/dist/ir/program-context-factory.js +196 -0
  542. package/dist/ir/program-context-factory.js.map +1 -0
  543. package/dist/ir/program-context-types.d.ts +147 -0
  544. package/dist/ir/program-context-types.d.ts.map +1 -0
  545. package/dist/ir/program-context-types.js +123 -0
  546. package/dist/ir/program-context-types.js.map +1 -0
  547. package/dist/ir/program-context.d.ts +6 -122
  548. package/dist/ir/program-context.d.ts.map +1 -1
  549. package/dist/ir/program-context.js +5 -347
  550. package/dist/ir/program-context.js.map +1 -1
  551. package/dist/ir/program-context.test.js +20 -0
  552. package/dist/ir/program-context.test.js.map +1 -1
  553. package/dist/ir/syntax/overload-stubs.d.ts +4 -0
  554. package/dist/ir/syntax/overload-stubs.d.ts.map +1 -0
  555. package/dist/ir/syntax/overload-stubs.js +32 -0
  556. package/dist/ir/syntax/overload-stubs.js.map +1 -0
  557. package/dist/ir/syntax/property-names.d.ts +6 -0
  558. package/dist/ir/syntax/property-names.d.ts.map +1 -0
  559. package/dist/ir/syntax/property-names.js +116 -0
  560. package/dist/ir/syntax/property-names.js.map +1 -0
  561. package/dist/ir/type-system/call-resolution-callable-types.d.ts +10 -0
  562. package/dist/ir/type-system/call-resolution-callable-types.d.ts.map +1 -0
  563. package/dist/ir/type-system/call-resolution-callable-types.js +288 -0
  564. package/dist/ir/type-system/call-resolution-callable-types.js.map +1 -0
  565. package/dist/ir/type-system/call-resolution-candidate-selection.d.ts +9 -0
  566. package/dist/ir/type-system/call-resolution-candidate-selection.d.ts.map +1 -0
  567. package/dist/ir/type-system/call-resolution-candidate-selection.js +413 -0
  568. package/dist/ir/type-system/call-resolution-candidate-selection.js.map +1 -0
  569. package/dist/ir/type-system/call-resolution-inference.d.ts +12 -0
  570. package/dist/ir/type-system/call-resolution-inference.d.ts.map +1 -0
  571. package/dist/ir/type-system/call-resolution-inference.js +12 -0
  572. package/dist/ir/type-system/call-resolution-inference.js.map +1 -0
  573. package/dist/ir/type-system/call-resolution-method-substitution.d.ts +12 -0
  574. package/dist/ir/type-system/call-resolution-method-substitution.d.ts.map +1 -0
  575. package/dist/ir/type-system/call-resolution-method-substitution.js +115 -0
  576. package/dist/ir/type-system/call-resolution-method-substitution.js.map +1 -0
  577. package/dist/ir/type-system/call-resolution-parameters.d.ts +30 -0
  578. package/dist/ir/type-system/call-resolution-parameters.d.ts.map +1 -0
  579. package/dist/ir/type-system/call-resolution-parameters.js +167 -0
  580. package/dist/ir/type-system/call-resolution-parameters.js.map +1 -0
  581. package/dist/ir/type-system/call-resolution-receiver-substitution.d.ts +12 -0
  582. package/dist/ir/type-system/call-resolution-receiver-substitution.d.ts.map +1 -0
  583. package/dist/ir/type-system/call-resolution-receiver-substitution.js +134 -0
  584. package/dist/ir/type-system/call-resolution-receiver-substitution.js.map +1 -0
  585. package/dist/ir/type-system/call-resolution-resolve.d.ts +12 -0
  586. package/dist/ir/type-system/call-resolution-resolve.d.ts.map +1 -0
  587. package/dist/ir/type-system/call-resolution-resolve.js +275 -0
  588. package/dist/ir/type-system/call-resolution-resolve.js.map +1 -0
  589. package/dist/ir/type-system/call-resolution-scoring.d.ts +18 -0
  590. package/dist/ir/type-system/call-resolution-scoring.d.ts.map +1 -0
  591. package/dist/ir/type-system/call-resolution-scoring.js +166 -0
  592. package/dist/ir/type-system/call-resolution-scoring.js.map +1 -0
  593. package/dist/ir/type-system/call-resolution-signatures-catalog.d.ts +19 -0
  594. package/dist/ir/type-system/call-resolution-signatures-catalog.d.ts.map +1 -0
  595. package/dist/ir/type-system/call-resolution-signatures-catalog.js +121 -0
  596. package/dist/ir/type-system/call-resolution-signatures-catalog.js.map +1 -0
  597. package/dist/ir/type-system/call-resolution-signatures-catalog.test.d.ts +2 -0
  598. package/dist/ir/type-system/call-resolution-signatures-catalog.test.d.ts.map +1 -0
  599. package/dist/ir/type-system/call-resolution-signatures-catalog.test.js +88 -0
  600. package/dist/ir/type-system/call-resolution-signatures-catalog.test.js.map +1 -0
  601. package/dist/ir/type-system/call-resolution-signatures-raw.d.ts +21 -0
  602. package/dist/ir/type-system/call-resolution-signatures-raw.d.ts.map +1 -0
  603. package/dist/ir/type-system/call-resolution-signatures-raw.js +242 -0
  604. package/dist/ir/type-system/call-resolution-signatures-raw.js.map +1 -0
  605. package/dist/ir/type-system/call-resolution-signatures.d.ts +10 -0
  606. package/dist/ir/type-system/call-resolution-signatures.d.ts.map +1 -0
  607. package/dist/ir/type-system/call-resolution-signatures.js +10 -0
  608. package/dist/ir/type-system/call-resolution-signatures.js.map +1 -0
  609. package/dist/ir/type-system/call-resolution-type-ids.d.ts +43 -0
  610. package/dist/ir/type-system/call-resolution-type-ids.d.ts.map +1 -0
  611. package/dist/ir/type-system/call-resolution-type-ids.js +465 -0
  612. package/dist/ir/type-system/call-resolution-type-ids.js.map +1 -0
  613. package/dist/ir/type-system/call-resolution-type-ids.test.d.ts +2 -0
  614. package/dist/ir/type-system/call-resolution-type-ids.test.d.ts.map +1 -0
  615. package/dist/ir/type-system/call-resolution-type-ids.test.js +63 -0
  616. package/dist/ir/type-system/call-resolution-type-ids.test.js.map +1 -0
  617. package/dist/ir/type-system/call-resolution-unification.d.ts +18 -0
  618. package/dist/ir/type-system/call-resolution-unification.d.ts.map +1 -0
  619. package/dist/ir/type-system/call-resolution-unification.js +637 -0
  620. package/dist/ir/type-system/call-resolution-unification.js.map +1 -0
  621. package/dist/ir/type-system/call-resolution-utilities.d.ts +11 -0
  622. package/dist/ir/type-system/call-resolution-utilities.d.ts.map +1 -0
  623. package/dist/ir/type-system/call-resolution-utilities.js +11 -0
  624. package/dist/ir/type-system/call-resolution-utilities.js.map +1 -0
  625. package/dist/ir/type-system/inference-declarations-overrides.d.ts +33 -0
  626. package/dist/ir/type-system/inference-declarations-overrides.d.ts.map +1 -0
  627. package/dist/ir/type-system/inference-declarations-overrides.js +241 -0
  628. package/dist/ir/type-system/inference-declarations-overrides.js.map +1 -0
  629. package/dist/ir/type-system/inference-declarations-types.d.ts +20 -0
  630. package/dist/ir/type-system/inference-declarations-types.d.ts.map +1 -0
  631. package/dist/ir/type-system/inference-declarations-types.js +475 -0
  632. package/dist/ir/type-system/inference-declarations-types.js.map +1 -0
  633. package/dist/ir/type-system/inference-declarations.d.ts +10 -0
  634. package/dist/ir/type-system/inference-declarations.d.ts.map +1 -0
  635. package/dist/ir/type-system/inference-declarations.js +10 -0
  636. package/dist/ir/type-system/inference-declarations.js.map +1 -0
  637. package/dist/ir/type-system/inference-expressions-infer.d.ts +25 -0
  638. package/dist/ir/type-system/inference-expressions-infer.d.ts.map +1 -0
  639. package/dist/ir/type-system/inference-expressions-infer.js +427 -0
  640. package/dist/ir/type-system/inference-expressions-infer.js.map +1 -0
  641. package/dist/ir/type-system/inference-expressions-lambda.d.ts +13 -0
  642. package/dist/ir/type-system/inference-expressions-lambda.d.ts.map +1 -0
  643. package/dist/ir/type-system/inference-expressions-lambda.js +101 -0
  644. package/dist/ir/type-system/inference-expressions-lambda.js.map +1 -0
  645. package/dist/ir/type-system/inference-expressions.d.ts +10 -0
  646. package/dist/ir/type-system/inference-expressions.d.ts.map +1 -0
  647. package/dist/ir/type-system/inference-expressions.js +10 -0
  648. package/dist/ir/type-system/inference-expressions.js.map +1 -0
  649. package/dist/ir/type-system/inference-initializers-call.d.ts +37 -0
  650. package/dist/ir/type-system/inference-initializers-call.d.ts.map +1 -0
  651. package/dist/ir/type-system/inference-initializers-call.js +242 -0
  652. package/dist/ir/type-system/inference-initializers-call.js.map +1 -0
  653. package/dist/ir/type-system/inference-initializers-variable.d.ts +14 -0
  654. package/dist/ir/type-system/inference-initializers-variable.d.ts.map +1 -0
  655. package/dist/ir/type-system/inference-initializers-variable.js +178 -0
  656. package/dist/ir/type-system/inference-initializers-variable.js.map +1 -0
  657. package/dist/ir/type-system/inference-initializers.d.ts +10 -0
  658. package/dist/ir/type-system/inference-initializers.d.ts.map +1 -0
  659. package/dist/ir/type-system/inference-initializers.js +10 -0
  660. package/dist/ir/type-system/inference-initializers.js.map +1 -0
  661. package/dist/ir/type-system/inference-member-id.d.ts +21 -0
  662. package/dist/ir/type-system/inference-member-id.d.ts.map +1 -0
  663. package/dist/ir/type-system/inference-member-id.js +402 -0
  664. package/dist/ir/type-system/inference-member-id.js.map +1 -0
  665. package/dist/ir/type-system/inference-member-lookup.d.ts +15 -0
  666. package/dist/ir/type-system/inference-member-lookup.d.ts.map +1 -0
  667. package/dist/ir/type-system/inference-member-lookup.js +567 -0
  668. package/dist/ir/type-system/inference-member-lookup.js.map +1 -0
  669. package/dist/ir/type-system/inference-member-resolution.d.ts +10 -0
  670. package/dist/ir/type-system/inference-member-resolution.d.ts.map +1 -0
  671. package/dist/ir/type-system/inference-member-resolution.js +10 -0
  672. package/dist/ir/type-system/inference-member-resolution.js.map +1 -0
  673. package/dist/ir/type-system/inference-type-preference.d.ts +9 -0
  674. package/dist/ir/type-system/inference-type-preference.d.ts.map +1 -0
  675. package/dist/ir/type-system/inference-type-preference.js +67 -0
  676. package/dist/ir/type-system/inference-type-preference.js.map +1 -0
  677. package/dist/ir/type-system/inference-utilities.d.ts +48 -0
  678. package/dist/ir/type-system/inference-utilities.d.ts.map +1 -0
  679. package/dist/ir/type-system/inference-utilities.js +182 -0
  680. package/dist/ir/type-system/inference-utilities.js.map +1 -0
  681. package/dist/ir/type-system/internal/handle-types.d.ts +12 -0
  682. package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -1
  683. package/dist/ir/type-system/internal/nominal-env.d.ts +1 -1
  684. package/dist/ir/type-system/internal/nominal-env.d.ts.map +1 -1
  685. package/dist/ir/type-system/internal/nominal-env.js +12 -114
  686. package/dist/ir/type-system/internal/nominal-env.js.map +1 -1
  687. package/dist/ir/type-system/internal/registry-builder.d.ts +19 -0
  688. package/dist/ir/type-system/internal/registry-builder.d.ts.map +1 -0
  689. package/dist/ir/type-system/internal/registry-builder.js +292 -0
  690. package/dist/ir/type-system/internal/registry-builder.js.map +1 -0
  691. package/dist/ir/type-system/internal/registry-helpers-extraction.d.ts +69 -0
  692. package/dist/ir/type-system/internal/registry-helpers-extraction.d.ts.map +1 -0
  693. package/dist/ir/type-system/internal/registry-helpers-extraction.js +429 -0
  694. package/dist/ir/type-system/internal/registry-helpers-extraction.js.map +1 -0
  695. package/dist/ir/type-system/internal/registry-helpers-inference.d.ts +19 -0
  696. package/dist/ir/type-system/internal/registry-helpers-inference.d.ts.map +1 -0
  697. package/dist/ir/type-system/internal/registry-helpers-inference.js +237 -0
  698. package/dist/ir/type-system/internal/registry-helpers-inference.js.map +1 -0
  699. package/dist/ir/type-system/internal/registry-helpers.d.ts +12 -0
  700. package/dist/ir/type-system/internal/registry-helpers.d.ts.map +1 -0
  701. package/dist/ir/type-system/internal/registry-helpers.js +12 -0
  702. package/dist/ir/type-system/internal/registry-helpers.js.map +1 -0
  703. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-core.d.ts +53 -0
  704. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-core.d.ts.map +1 -0
  705. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-core.js +281 -0
  706. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-core.js.map +1 -0
  707. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-extract.d.ts +35 -0
  708. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-extract.d.ts.map +1 -0
  709. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-extract.js +308 -0
  710. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-extract.js.map +1 -0
  711. package/dist/ir/type-system/internal/type-converter/conditional-utility-types.d.ts +23 -0
  712. package/dist/ir/type-system/internal/type-converter/conditional-utility-types.d.ts.map +1 -0
  713. package/dist/ir/type-system/internal/type-converter/conditional-utility-types.js +23 -0
  714. package/dist/ir/type-system/internal/type-converter/conditional-utility-types.js.map +1 -0
  715. package/dist/ir/type-system/internal/type-converter/direct-alias-expansion.d.ts +5 -0
  716. package/dist/ir/type-system/internal/type-converter/direct-alias-expansion.d.ts.map +1 -0
  717. package/dist/ir/type-system/internal/type-converter/direct-alias-expansion.js +232 -0
  718. package/dist/ir/type-system/internal/type-converter/direct-alias-expansion.js.map +1 -0
  719. package/dist/ir/type-system/internal/type-converter/functions.d.ts.map +1 -1
  720. package/dist/ir/type-system/internal/type-converter/functions.js +21 -0
  721. package/dist/ir/type-system/internal/type-converter/functions.js.map +1 -1
  722. package/dist/ir/type-system/internal/type-converter/mapped-utility-expansion.d.ts +37 -0
  723. package/dist/ir/type-system/internal/type-converter/mapped-utility-expansion.d.ts.map +1 -0
  724. package/dist/ir/type-system/internal/type-converter/mapped-utility-expansion.js +334 -0
  725. package/dist/ir/type-system/internal/type-converter/mapped-utility-expansion.js.map +1 -0
  726. package/dist/ir/type-system/internal/type-converter/mapped-utility-record.d.ts +27 -0
  727. package/dist/ir/type-system/internal/type-converter/mapped-utility-record.d.ts.map +1 -0
  728. package/dist/ir/type-system/internal/type-converter/mapped-utility-record.js +174 -0
  729. package/dist/ir/type-system/internal/type-converter/mapped-utility-record.js.map +1 -0
  730. package/dist/ir/type-system/internal/type-converter/mapped-utility-types.d.ts +10 -0
  731. package/dist/ir/type-system/internal/type-converter/mapped-utility-types.d.ts.map +1 -0
  732. package/dist/ir/type-system/internal/type-converter/mapped-utility-types.js +10 -0
  733. package/dist/ir/type-system/internal/type-converter/mapped-utility-types.js.map +1 -0
  734. package/dist/ir/type-system/internal/type-converter/objects.d.ts.map +1 -1
  735. package/dist/ir/type-system/internal/type-converter/objects.js +11 -6
  736. package/dist/ir/type-system/internal/type-converter/objects.js.map +1 -1
  737. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts +6 -5
  738. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -1
  739. package/dist/ir/type-system/internal/type-converter/orchestrator.js +80 -457
  740. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -1
  741. package/dist/ir/type-system/internal/type-converter/orchestrator.test.js +49 -59
  742. package/dist/ir/type-system/internal/type-converter/orchestrator.test.js.map +1 -1
  743. package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -1
  744. package/dist/ir/type-system/internal/type-converter/primitives.js +9 -1
  745. package/dist/ir/type-system/internal/type-converter/primitives.js.map +1 -1
  746. package/dist/ir/type-system/internal/type-converter/references-alias.d.ts +21 -0
  747. package/dist/ir/type-system/internal/type-converter/references-alias.d.ts.map +1 -0
  748. package/dist/ir/type-system/internal/type-converter/references-alias.js +267 -0
  749. package/dist/ir/type-system/internal/type-converter/references-alias.js.map +1 -0
  750. package/dist/ir/type-system/internal/type-converter/references-converter.d.ts +16 -0
  751. package/dist/ir/type-system/internal/type-converter/references-converter.d.ts.map +1 -0
  752. package/dist/ir/type-system/internal/type-converter/references-converter.js +203 -0
  753. package/dist/ir/type-system/internal/type-converter/references-converter.js.map +1 -0
  754. package/dist/ir/type-system/internal/type-converter/references-normalize.d.ts +49 -0
  755. package/dist/ir/type-system/internal/type-converter/references-normalize.d.ts.map +1 -0
  756. package/dist/ir/type-system/internal/type-converter/references-normalize.js +162 -0
  757. package/dist/ir/type-system/internal/type-converter/references-normalize.js.map +1 -0
  758. package/dist/ir/type-system/internal/type-converter/references-structural-bindings.d.ts +52 -0
  759. package/dist/ir/type-system/internal/type-converter/references-structural-bindings.d.ts.map +1 -0
  760. package/dist/ir/type-system/internal/type-converter/references-structural-bindings.js +295 -0
  761. package/dist/ir/type-system/internal/type-converter/references-structural-bindings.js.map +1 -0
  762. package/dist/ir/type-system/internal/type-converter/references-structural-members.d.ts +55 -0
  763. package/dist/ir/type-system/internal/type-converter/references-structural-members.d.ts.map +1 -0
  764. package/dist/ir/type-system/internal/type-converter/references-structural-members.js +334 -0
  765. package/dist/ir/type-system/internal/type-converter/references-structural-members.js.map +1 -0
  766. package/dist/ir/type-system/internal/type-converter/references-structural.d.ts +12 -0
  767. package/dist/ir/type-system/internal/type-converter/references-structural.d.ts.map +1 -0
  768. package/dist/ir/type-system/internal/type-converter/references-structural.js +12 -0
  769. package/dist/ir/type-system/internal/type-converter/references-structural.js.map +1 -0
  770. package/dist/ir/type-system/internal/type-converter/references.d.ts +8 -9
  771. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
  772. package/dist/ir/type-system/internal/type-converter/references.js +7 -980
  773. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
  774. package/dist/ir/type-system/internal/type-converter/type-operators.d.ts +16 -0
  775. package/dist/ir/type-system/internal/type-converter/type-operators.d.ts.map +1 -0
  776. package/dist/ir/type-system/internal/type-converter/type-operators.js +197 -0
  777. package/dist/ir/type-system/internal/type-converter/type-operators.js.map +1 -0
  778. package/dist/ir/type-system/internal/type-converter/unions-intersections.d.ts.map +1 -1
  779. package/dist/ir/type-system/internal/type-converter/unions-intersections.js +2 -4
  780. package/dist/ir/type-system/internal/type-converter/unions-intersections.js.map +1 -1
  781. package/dist/ir/type-system/internal/type-converter/utility-types-cases/comprehensive-expansion.test.d.ts +2 -0
  782. package/dist/ir/type-system/internal/type-converter/utility-types-cases/comprehensive-expansion.test.d.ts.map +1 -0
  783. package/dist/ir/type-system/internal/type-converter/utility-types-cases/comprehensive-expansion.test.js +246 -0
  784. package/dist/ir/type-system/internal/type-converter/utility-types-cases/comprehensive-expansion.test.js.map +1 -0
  785. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-awaited-constructor-instance.test.d.ts +2 -0
  786. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-awaited-constructor-instance.test.d.ts.map +1 -0
  787. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-awaited-constructor-instance.test.js +179 -0
  788. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-awaited-constructor-instance.test.js.map +1 -0
  789. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-nonnullable-exclude-extract.test.d.ts +2 -0
  790. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-nonnullable-exclude-extract.test.d.ts.map +1 -0
  791. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-nonnullable-exclude-extract.test.js +277 -0
  792. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-nonnullable-exclude-extract.test.js.map +1 -0
  793. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-return-params.test.d.ts +2 -0
  794. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-return-params.test.d.ts.map +1 -0
  795. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-return-params.test.js +163 -0
  796. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-return-params.test.js.map +1 -0
  797. package/dist/ir/type-system/internal/type-converter/utility-types-cases/expansion-safety.test.d.ts +2 -0
  798. package/dist/ir/type-system/internal/type-converter/utility-types-cases/expansion-safety.test.d.ts.map +1 -0
  799. package/dist/ir/type-system/internal/type-converter/utility-types-cases/expansion-safety.test.js +305 -0
  800. package/dist/ir/type-system/internal/type-converter/utility-types-cases/expansion-safety.test.js.map +1 -0
  801. package/dist/ir/type-system/internal/type-converter/utility-types-cases/helpers.d.ts +38 -0
  802. package/dist/ir/type-system/internal/type-converter/utility-types-cases/helpers.d.ts.map +1 -0
  803. package/dist/ir/type-system/internal/type-converter/utility-types-cases/helpers.js +127 -0
  804. package/dist/ir/type-system/internal/type-converter/utility-types-cases/helpers.js.map +1 -0
  805. package/dist/ir/type-system/internal/type-converter/utility-types-cases/record-expansion.test.d.ts +2 -0
  806. package/dist/ir/type-system/internal/type-converter/utility-types-cases/record-expansion.test.d.ts.map +1 -0
  807. package/dist/ir/type-system/internal/type-converter/utility-types-cases/record-expansion.test.js +145 -0
  808. package/dist/ir/type-system/internal/type-converter/utility-types-cases/record-expansion.test.js.map +1 -0
  809. package/dist/ir/type-system/internal/type-converter/utility-types.d.ts +6 -76
  810. package/dist/ir/type-system/internal/type-converter/utility-types.d.ts.map +1 -1
  811. package/dist/ir/type-system/internal/type-converter/utility-types.js +6 -1031
  812. package/dist/ir/type-system/internal/type-converter/utility-types.js.map +1 -1
  813. package/dist/ir/type-system/internal/type-converter/utility-types.test.d.ts +6 -9
  814. package/dist/ir/type-system/internal/type-converter/utility-types.test.d.ts.map +1 -1
  815. package/dist/ir/type-system/internal/type-converter/utility-types.test.js +6 -1416
  816. package/dist/ir/type-system/internal/type-converter/utility-types.test.js.map +1 -1
  817. package/dist/ir/type-system/internal/type-converter/value-inference.d.ts +13 -0
  818. package/dist/ir/type-system/internal/type-converter/value-inference.d.ts.map +1 -0
  819. package/dist/ir/type-system/internal/type-converter/value-inference.js +311 -0
  820. package/dist/ir/type-system/internal/type-converter/value-inference.js.map +1 -0
  821. package/dist/ir/type-system/internal/type-registry.d.ts +12 -12
  822. package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -1
  823. package/dist/ir/type-system/internal/type-registry.js +4 -529
  824. package/dist/ir/type-system/internal/type-registry.js.map +1 -1
  825. package/dist/ir/type-system/internal/universe/catalog-types.d.ts +260 -0
  826. package/dist/ir/type-system/internal/universe/catalog-types.d.ts.map +1 -0
  827. package/dist/ir/type-system/internal/universe/catalog-types.js +12 -0
  828. package/dist/ir/type-system/internal/universe/catalog-types.js.map +1 -0
  829. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts +7 -5
  830. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -1
  831. package/dist/ir/type-system/internal/universe/clr-catalog.js +160 -90
  832. package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -1
  833. package/dist/ir/type-system/internal/universe/clr-catalog.test.js +166 -72
  834. package/dist/ir/type-system/internal/universe/clr-catalog.test.js.map +1 -1
  835. package/dist/ir/type-system/internal/universe/clr-entry-converter.d.ts +7 -47
  836. package/dist/ir/type-system/internal/universe/clr-entry-converter.d.ts.map +1 -1
  837. package/dist/ir/type-system/internal/universe/clr-entry-converter.js +6 -694
  838. package/dist/ir/type-system/internal/universe/clr-entry-converter.js.map +1 -1
  839. package/dist/ir/type-system/internal/universe/clr-heritage-enrichment.d.ts +10 -0
  840. package/dist/ir/type-system/internal/universe/clr-heritage-enrichment.d.ts.map +1 -0
  841. package/dist/ir/type-system/internal/universe/clr-heritage-enrichment.js +168 -0
  842. package/dist/ir/type-system/internal/universe/clr-heritage-enrichment.js.map +1 -0
  843. package/dist/ir/type-system/internal/universe/clr-heritage-extraction.d.ts +28 -0
  844. package/dist/ir/type-system/internal/universe/clr-heritage-extraction.d.ts.map +1 -0
  845. package/dist/ir/type-system/internal/universe/clr-heritage-extraction.js +307 -0
  846. package/dist/ir/type-system/internal/universe/clr-heritage-extraction.js.map +1 -0
  847. package/dist/ir/type-system/internal/universe/clr-heritage-extractor.d.ts +11 -0
  848. package/dist/ir/type-system/internal/universe/clr-heritage-extractor.d.ts.map +1 -0
  849. package/dist/ir/type-system/internal/universe/clr-heritage-extractor.js +10 -0
  850. package/dist/ir/type-system/internal/universe/clr-heritage-extractor.js.map +1 -0
  851. package/dist/ir/type-system/internal/universe/clr-raw-converter.d.ts +41 -0
  852. package/dist/ir/type-system/internal/universe/clr-raw-converter.d.ts.map +1 -0
  853. package/dist/ir/type-system/internal/universe/clr-raw-converter.js +364 -0
  854. package/dist/ir/type-system/internal/universe/clr-raw-converter.js.map +1 -0
  855. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts +3 -41
  856. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts.map +1 -1
  857. package/dist/ir/type-system/internal/universe/clr-type-parser.js +3 -470
  858. package/dist/ir/type-system/internal/universe/clr-type-parser.js.map +1 -1
  859. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js +13 -2
  860. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js.map +1 -1
  861. package/dist/ir/type-system/internal/universe/clr-type-string-parsing.d.ts +28 -0
  862. package/dist/ir/type-system/internal/universe/clr-type-string-parsing.d.ts.map +1 -0
  863. package/dist/ir/type-system/internal/universe/clr-type-string-parsing.js +208 -0
  864. package/dist/ir/type-system/internal/universe/clr-type-string-parsing.js.map +1 -0
  865. package/dist/ir/type-system/internal/universe/dts-type-node-conversion.d.ts +28 -0
  866. package/dist/ir/type-system/internal/universe/dts-type-node-conversion.d.ts.map +1 -0
  867. package/dist/ir/type-system/internal/universe/dts-type-node-conversion.js +279 -0
  868. package/dist/ir/type-system/internal/universe/dts-type-node-conversion.js.map +1 -0
  869. package/dist/ir/type-system/internal/universe/index.d.ts +1 -1
  870. package/dist/ir/type-system/internal/universe/index.d.ts.map +1 -1
  871. package/dist/ir/type-system/internal/universe/index.js.map +1 -1
  872. package/dist/ir/type-system/internal/universe/raw-bindings-types.d.ts +167 -0
  873. package/dist/ir/type-system/internal/universe/raw-bindings-types.d.ts.map +1 -0
  874. package/dist/ir/type-system/internal/universe/raw-bindings-types.js +79 -0
  875. package/dist/ir/type-system/internal/universe/raw-bindings-types.js.map +1 -0
  876. package/dist/ir/type-system/internal/universe/source-catalog.d.ts +1 -1
  877. package/dist/ir/type-system/internal/universe/source-catalog.d.ts.map +1 -1
  878. package/dist/ir/type-system/internal/universe/source-catalog.js.map +1 -1
  879. package/dist/ir/type-system/internal/universe/types.d.ts +4 -388
  880. package/dist/ir/type-system/internal/universe/types.d.ts.map +1 -1
  881. package/dist/ir/type-system/internal/universe/types.js +2 -60
  882. package/dist/ir/type-system/internal/universe/types.js.map +1 -1
  883. package/dist/ir/type-system/internal/universe/unified-universe.d.ts +2 -2
  884. package/dist/ir/type-system/internal/universe/unified-universe.d.ts.map +1 -1
  885. package/dist/ir/type-system/internal/universe/unified-universe.js +467 -19
  886. package/dist/ir/type-system/internal/universe/unified-universe.js.map +1 -1
  887. package/dist/ir/type-system/internal/universe/unified-universe.test.js +7 -2
  888. package/dist/ir/type-system/internal/universe/unified-universe.test.js.map +1 -1
  889. package/dist/ir/type-system/iterable-type-shapes.d.ts +8 -0
  890. package/dist/ir/type-system/iterable-type-shapes.d.ts.map +1 -0
  891. package/dist/ir/type-system/iterable-type-shapes.js +229 -0
  892. package/dist/ir/type-system/iterable-type-shapes.js.map +1 -0
  893. package/dist/ir/type-system/type-alias-expansion.d.ts +4 -0
  894. package/dist/ir/type-system/type-alias-expansion.d.ts.map +1 -0
  895. package/dist/ir/type-system/type-alias-expansion.js +27 -0
  896. package/dist/ir/type-system/type-alias-expansion.js.map +1 -0
  897. package/dist/ir/type-system/type-system-call-resolution.d.ts +16 -68
  898. package/dist/ir/type-system/type-system-call-resolution.d.ts.map +1 -1
  899. package/dist/ir/type-system/type-system-call-resolution.js +17 -1407
  900. package/dist/ir/type-system/type-system-call-resolution.js.map +1 -1
  901. package/dist/ir/type-system/type-system-factory.d.ts +24 -0
  902. package/dist/ir/type-system/type-system-factory.d.ts.map +1 -0
  903. package/dist/ir/type-system/type-system-factory.js +145 -0
  904. package/dist/ir/type-system/type-system-factory.js.map +1 -0
  905. package/dist/ir/type-system/type-system-inference.d.ts +13 -92
  906. package/dist/ir/type-system/type-system-inference.d.ts.map +1 -1
  907. package/dist/ir/type-system/type-system-inference.js +18 -1315
  908. package/dist/ir/type-system/type-system-inference.js.map +1 -1
  909. package/dist/ir/type-system/type-system-relations.d.ts +1 -0
  910. package/dist/ir/type-system/type-system-relations.d.ts.map +1 -1
  911. package/dist/ir/type-system/type-system-relations.js +332 -19
  912. package/dist/ir/type-system/type-system-relations.js.map +1 -1
  913. package/dist/ir/type-system/type-system-state-call-types.d.ts +62 -0
  914. package/dist/ir/type-system/type-system-state-call-types.d.ts.map +1 -0
  915. package/dist/ir/type-system/type-system-state-call-types.js +2 -0
  916. package/dist/ir/type-system/type-system-state-call-types.js.map +1 -0
  917. package/dist/ir/type-system/type-system-state-handle-types.d.ts +134 -0
  918. package/dist/ir/type-system/type-system-state-handle-types.d.ts.map +1 -0
  919. package/dist/ir/type-system/type-system-state-handle-types.js +2 -0
  920. package/dist/ir/type-system/type-system-state-handle-types.js.map +1 -0
  921. package/dist/ir/type-system/type-system-state-helpers.d.ts +56 -0
  922. package/dist/ir/type-system/type-system-state-helpers.d.ts.map +1 -0
  923. package/dist/ir/type-system/type-system-state-helpers.js +291 -0
  924. package/dist/ir/type-system/type-system-state-helpers.js.map +1 -0
  925. package/dist/ir/type-system/type-system-state-model.d.ts +33 -0
  926. package/dist/ir/type-system/type-system-state-model.d.ts.map +1 -0
  927. package/dist/ir/type-system/type-system-state-model.js +3 -0
  928. package/dist/ir/type-system/type-system-state-model.js.map +1 -0
  929. package/dist/ir/type-system/type-system-state-registry-types.d.ts +11 -0
  930. package/dist/ir/type-system/type-system-state-registry-types.d.ts.map +1 -0
  931. package/dist/ir/type-system/type-system-state-registry-types.js +17 -0
  932. package/dist/ir/type-system/type-system-state-registry-types.js.map +1 -0
  933. package/dist/ir/type-system/type-system-state-types.d.ts +4 -0
  934. package/dist/ir/type-system/type-system-state-types.d.ts.map +1 -0
  935. package/dist/ir/type-system/type-system-state-types.js +4 -0
  936. package/dist/ir/type-system/type-system-state-types.js.map +1 -0
  937. package/dist/ir/type-system/type-system-state.d.ts +4 -454
  938. package/dist/ir/type-system/type-system-state.d.ts.map +1 -1
  939. package/dist/ir/type-system/type-system-state.js +4 -228
  940. package/dist/ir/type-system/type-system-state.js.map +1 -1
  941. package/dist/ir/type-system/type-system-types-api.d.ts +341 -0
  942. package/dist/ir/type-system/type-system-types-api.d.ts.map +1 -0
  943. package/dist/ir/type-system/type-system-types-api.js +11 -0
  944. package/dist/ir/type-system/type-system-types-api.js.map +1 -0
  945. package/dist/ir/type-system/type-system-utilities.d.ts +4 -48
  946. package/dist/ir/type-system/type-system-utilities.d.ts.map +1 -1
  947. package/dist/ir/type-system/type-system-utilities.js +4 -347
  948. package/dist/ir/type-system/type-system-utilities.js.map +1 -1
  949. package/dist/ir/type-system/type-system.d.ts +8 -313
  950. package/dist/ir/type-system/type-system.d.ts.map +1 -1
  951. package/dist/ir/type-system/type-system.js +7 -131
  952. package/dist/ir/type-system/type-system.js.map +1 -1
  953. package/dist/ir/type-system/types.d.ts +2 -0
  954. package/dist/ir/type-system/types.d.ts.map +1 -1
  955. package/dist/ir/type-system/types.js +5 -0
  956. package/dist/ir/type-system/types.js.map +1 -1
  957. package/dist/ir/type-system/utility-type-filter-helpers.d.ts +40 -0
  958. package/dist/ir/type-system/utility-type-filter-helpers.d.ts.map +1 -0
  959. package/dist/ir/type-system/utility-type-filter-helpers.js +142 -0
  960. package/dist/ir/type-system/utility-type-filter-helpers.js.map +1 -0
  961. package/dist/ir/type-system/utility-type-mapped-helpers.d.ts +34 -0
  962. package/dist/ir/type-system/utility-type-mapped-helpers.d.ts.map +1 -0
  963. package/dist/ir/type-system/utility-type-mapped-helpers.js +243 -0
  964. package/dist/ir/type-system/utility-type-mapped-helpers.js.map +1 -0
  965. package/dist/ir/types/expressions-core.d.ts +331 -0
  966. package/dist/ir/types/expressions-core.d.ts.map +1 -0
  967. package/dist/ir/types/expressions-core.js +5 -0
  968. package/dist/ir/types/expressions-core.js.map +1 -0
  969. package/dist/ir/types/expressions-extended.d.ts +232 -0
  970. package/dist/ir/types/expressions-extended.d.ts.map +1 -0
  971. package/dist/ir/types/expressions-extended.js +6 -0
  972. package/dist/ir/types/expressions-extended.js.map +1 -0
  973. package/dist/ir/types/expressions.d.ts +6 -480
  974. package/dist/ir/types/expressions.d.ts.map +1 -1
  975. package/dist/ir/types/expressions.js +5 -1
  976. package/dist/ir/types/expressions.js.map +1 -1
  977. package/dist/ir/types/helpers.d.ts +4 -0
  978. package/dist/ir/types/helpers.d.ts.map +1 -1
  979. package/dist/ir/types/index.d.ts +4 -2
  980. package/dist/ir/types/index.d.ts.map +1 -1
  981. package/dist/ir/types/index.js +2 -1
  982. package/dist/ir/types/index.js.map +1 -1
  983. package/dist/ir/types/ir-substitution-builders.d.ts +91 -0
  984. package/dist/ir/types/ir-substitution-builders.d.ts.map +1 -0
  985. package/dist/ir/types/ir-substitution-builders.js +340 -0
  986. package/dist/ir/types/ir-substitution-builders.js.map +1 -0
  987. package/dist/ir/types/ir-substitution-core.d.ts +55 -0
  988. package/dist/ir/types/ir-substitution-core.d.ts.map +1 -0
  989. package/dist/ir/types/ir-substitution-core.js +402 -0
  990. package/dist/ir/types/ir-substitution-core.js.map +1 -0
  991. package/dist/ir/types/ir-substitution.d.ts +13 -142
  992. package/dist/ir/types/ir-substitution.d.ts.map +1 -1
  993. package/dist/ir/types/ir-substitution.js +9 -565
  994. package/dist/ir/types/ir-substitution.js.map +1 -1
  995. package/dist/ir/types/ir-types.d.ts +80 -4
  996. package/dist/ir/types/ir-types.d.ts.map +1 -1
  997. package/dist/ir/types/overload-family.d.ts +36 -0
  998. package/dist/ir/types/overload-family.d.ts.map +1 -0
  999. package/dist/ir/types/overload-family.js +9 -0
  1000. package/dist/ir/types/overload-family.js.map +1 -0
  1001. package/dist/ir/types/statements.d.ts +8 -1
  1002. package/dist/ir/types/statements.d.ts.map +1 -1
  1003. package/dist/ir/types/type-ops.d.ts +41 -2
  1004. package/dist/ir/types/type-ops.d.ts.map +1 -1
  1005. package/dist/ir/types/type-ops.js +744 -45
  1006. package/dist/ir/types/type-ops.js.map +1 -1
  1007. package/dist/ir/types/type-ops.test.js +443 -1
  1008. package/dist/ir/types/type-ops.test.js.map +1 -1
  1009. package/dist/ir/types.d.ts +2 -2
  1010. package/dist/ir/types.d.ts.map +1 -1
  1011. package/dist/ir/types.js +1 -1
  1012. package/dist/ir/types.js.map +1 -1
  1013. package/dist/ir/validation/anon-type-declaration-synthesis.d.ts +11 -0
  1014. package/dist/ir/validation/anon-type-declaration-synthesis.d.ts.map +1 -0
  1015. package/dist/ir/validation/anon-type-declaration-synthesis.js +11 -0
  1016. package/dist/ir/validation/anon-type-declaration-synthesis.js.map +1 -0
  1017. package/dist/ir/validation/anon-type-ir-rewriting.d.ts +10 -0
  1018. package/dist/ir/validation/anon-type-ir-rewriting.d.ts.map +1 -0
  1019. package/dist/ir/validation/anon-type-ir-rewriting.js +3 -0
  1020. package/dist/ir/validation/anon-type-ir-rewriting.js.map +1 -0
  1021. package/dist/ir/validation/anon-type-lower-expressions.d.ts +10 -0
  1022. package/dist/ir/validation/anon-type-lower-expressions.d.ts.map +1 -0
  1023. package/dist/ir/validation/anon-type-lower-expressions.js +364 -0
  1024. package/dist/ir/validation/anon-type-lower-expressions.js.map +1 -0
  1025. package/dist/ir/validation/anon-type-lower-statements.d.ts +13 -0
  1026. package/dist/ir/validation/anon-type-lower-statements.d.ts.map +1 -0
  1027. package/dist/ir/validation/anon-type-lower-statements.js +270 -0
  1028. package/dist/ir/validation/anon-type-lower-statements.js.map +1 -0
  1029. package/dist/ir/validation/anon-type-lower-types.d.ts +60 -0
  1030. package/dist/ir/validation/anon-type-lower-types.d.ts.map +1 -0
  1031. package/dist/ir/validation/anon-type-lower-types.js +287 -0
  1032. package/dist/ir/validation/anon-type-lower-types.js.map +1 -0
  1033. package/dist/ir/validation/anon-type-naming.d.ts +20 -0
  1034. package/dist/ir/validation/anon-type-naming.d.ts.map +1 -0
  1035. package/dist/ir/validation/anon-type-naming.js +153 -0
  1036. package/dist/ir/validation/anon-type-naming.js.map +1 -0
  1037. package/dist/ir/validation/anon-type-shape-analysis.d.ts +13 -0
  1038. package/dist/ir/validation/anon-type-shape-analysis.d.ts.map +1 -0
  1039. package/dist/ir/validation/anon-type-shape-analysis.js +12 -0
  1040. package/dist/ir/validation/anon-type-shape-analysis.js.map +1 -0
  1041. package/dist/ir/validation/anon-type-shape-collectors.d.ts +39 -0
  1042. package/dist/ir/validation/anon-type-shape-collectors.d.ts.map +1 -0
  1043. package/dist/ir/validation/anon-type-shape-collectors.js +369 -0
  1044. package/dist/ir/validation/anon-type-shape-collectors.js.map +1 -0
  1045. package/dist/ir/validation/anon-type-shape-serialization.d.ts +38 -0
  1046. package/dist/ir/validation/anon-type-shape-serialization.d.ts.map +1 -0
  1047. package/dist/ir/validation/anon-type-shape-serialization.js +241 -0
  1048. package/dist/ir/validation/anon-type-shape-serialization.js.map +1 -0
  1049. package/dist/ir/validation/anon-type-template-inference.d.ts +12 -0
  1050. package/dist/ir/validation/anon-type-template-inference.d.ts.map +1 -0
  1051. package/dist/ir/validation/anon-type-template-inference.js +296 -0
  1052. package/dist/ir/validation/anon-type-template-inference.js.map +1 -0
  1053. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts +7 -1
  1054. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  1055. package/dist/ir/validation/anonymous-type-lowering-pass.js +315 -1166
  1056. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  1057. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/basic-lowering.test.d.ts +2 -0
  1058. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/basic-lowering.test.d.ts.map +1 -0
  1059. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/basic-lowering.test.js +332 -0
  1060. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/basic-lowering.test.js.map +1 -0
  1061. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/cross-module-reuse.test.d.ts +2 -0
  1062. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/cross-module-reuse.test.d.ts.map +1 -0
  1063. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/cross-module-reuse.test.js +255 -0
  1064. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/cross-module-reuse.test.js.map +1 -0
  1065. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/structural-references.test.d.ts +2 -0
  1066. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/structural-references.test.d.ts.map +1 -0
  1067. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/structural-references.test.js +715 -0
  1068. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/structural-references.test.js.map +1 -0
  1069. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/test-helpers.d.ts +4 -0
  1070. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/test-helpers.d.ts.map +1 -0
  1071. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/test-helpers.js +85 -0
  1072. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/test-helpers.js.map +1 -0
  1073. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts +3 -1
  1074. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts.map +1 -1
  1075. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js +3 -120
  1076. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js.map +1 -1
  1077. package/dist/ir/validation/arrow-return-expression-walk.d.ts +13 -0
  1078. package/dist/ir/validation/arrow-return-expression-walk.d.ts.map +1 -0
  1079. package/dist/ir/validation/arrow-return-expression-walk.js +224 -0
  1080. package/dist/ir/validation/arrow-return-expression-walk.js.map +1 -0
  1081. package/dist/ir/validation/arrow-return-finalization-pass.d.ts +3 -17
  1082. package/dist/ir/validation/arrow-return-finalization-pass.d.ts.map +1 -1
  1083. package/dist/ir/validation/arrow-return-finalization-pass.js +2 -418
  1084. package/dist/ir/validation/arrow-return-finalization-pass.js.map +1 -1
  1085. package/dist/ir/validation/arrow-return-statement-walk.d.ts +27 -0
  1086. package/dist/ir/validation/arrow-return-statement-walk.d.ts.map +1 -0
  1087. package/dist/ir/validation/arrow-return-statement-walk.js +206 -0
  1088. package/dist/ir/validation/arrow-return-statement-walk.js.map +1 -0
  1089. package/dist/ir/validation/attribute-collection/arg-extractor.d.ts +8 -2
  1090. package/dist/ir/validation/attribute-collection/arg-extractor.d.ts.map +1 -1
  1091. package/dist/ir/validation/attribute-collection/arg-extractor.js.map +1 -1
  1092. package/dist/ir/validation/attribute-collection/marker-chain-parser.d.ts +21 -0
  1093. package/dist/ir/validation/attribute-collection/marker-chain-parser.d.ts.map +1 -0
  1094. package/dist/ir/validation/attribute-collection/marker-chain-parser.js +261 -0
  1095. package/dist/ir/validation/attribute-collection/marker-chain-parser.js.map +1 -0
  1096. package/dist/ir/validation/attribute-collection/marker-collection.d.ts +28 -0
  1097. package/dist/ir/validation/attribute-collection/marker-collection.d.ts.map +1 -0
  1098. package/dist/ir/validation/attribute-collection/marker-collection.js +343 -0
  1099. package/dist/ir/validation/attribute-collection/marker-collection.js.map +1 -0
  1100. package/dist/ir/validation/attribute-collection/marker-detection.d.ts +25 -0
  1101. package/dist/ir/validation/attribute-collection/marker-detection.d.ts.map +1 -0
  1102. package/dist/ir/validation/attribute-collection/marker-detection.js +214 -0
  1103. package/dist/ir/validation/attribute-collection/marker-detection.js.map +1 -0
  1104. package/dist/ir/validation/attribute-collection/marker-parser.d.ts +7 -24
  1105. package/dist/ir/validation/attribute-collection/marker-parser.d.ts.map +1 -1
  1106. package/dist/ir/validation/attribute-collection/marker-parser.js +7 -400
  1107. package/dist/ir/validation/attribute-collection/marker-parser.js.map +1 -1
  1108. package/dist/ir/validation/attribute-collection/module-rebuild.d.ts +28 -0
  1109. package/dist/ir/validation/attribute-collection/module-rebuild.d.ts.map +1 -0
  1110. package/dist/ir/validation/attribute-collection/module-rebuild.js +176 -0
  1111. package/dist/ir/validation/attribute-collection/module-rebuild.js.map +1 -0
  1112. package/dist/ir/validation/attribute-collection/orchestrator.d.ts +3 -19
  1113. package/dist/ir/validation/attribute-collection/orchestrator.d.ts.map +1 -1
  1114. package/dist/ir/validation/attribute-collection/orchestrator.js +2 -323
  1115. package/dist/ir/validation/attribute-collection/orchestrator.js.map +1 -1
  1116. package/dist/ir/validation/attribute-collection-cases/ctor-add.test.d.ts +5 -0
  1117. package/dist/ir/validation/attribute-collection-cases/ctor-add.test.d.ts.map +1 -0
  1118. package/dist/ir/validation/attribute-collection-cases/ctor-add.test.js +62 -0
  1119. package/dist/ir/validation/attribute-collection-cases/ctor-add.test.js.map +1 -0
  1120. package/dist/ir/validation/attribute-collection-cases/error-cases.test.d.ts +5 -0
  1121. package/dist/ir/validation/attribute-collection-cases/error-cases.test.d.ts.map +1 -0
  1122. package/dist/ir/validation/attribute-collection-cases/error-cases.test.js +246 -0
  1123. package/dist/ir/validation/attribute-collection-cases/error-cases.test.js.map +1 -0
  1124. package/dist/ir/validation/attribute-collection-cases/function-and-misc.test.d.ts +6 -0
  1125. package/dist/ir/validation/attribute-collection-cases/function-and-misc.test.d.ts.map +1 -0
  1126. package/dist/ir/validation/attribute-collection-cases/function-and-misc.test.js +77 -0
  1127. package/dist/ir/validation/attribute-collection-cases/function-and-misc.test.js.map +1 -0
  1128. package/dist/ir/validation/attribute-collection-cases/helpers.d.ts +186 -0
  1129. package/dist/ir/validation/attribute-collection-cases/helpers.d.ts.map +1 -0
  1130. package/dist/ir/validation/attribute-collection-cases/helpers.js +239 -0
  1131. package/dist/ir/validation/attribute-collection-cases/helpers.js.map +1 -0
  1132. package/dist/ir/validation/attribute-collection-cases/method-selector.test.d.ts +5 -0
  1133. package/dist/ir/validation/attribute-collection-cases/method-selector.test.d.ts.map +1 -0
  1134. package/dist/ir/validation/attribute-collection-cases/method-selector.test.js +371 -0
  1135. package/dist/ir/validation/attribute-collection-cases/method-selector.test.js.map +1 -0
  1136. package/dist/ir/validation/attribute-collection-cases/prop-selector.test.d.ts +5 -0
  1137. package/dist/ir/validation/attribute-collection-cases/prop-selector.test.d.ts.map +1 -0
  1138. package/dist/ir/validation/attribute-collection-cases/prop-selector.test.js +209 -0
  1139. package/dist/ir/validation/attribute-collection-cases/prop-selector.test.js.map +1 -0
  1140. package/dist/ir/validation/attribute-collection-cases/type-add.test.d.ts +5 -0
  1141. package/dist/ir/validation/attribute-collection-cases/type-add.test.d.ts.map +1 -0
  1142. package/dist/ir/validation/attribute-collection-cases/type-add.test.js +330 -0
  1143. package/dist/ir/validation/attribute-collection-cases/type-add.test.js.map +1 -0
  1144. package/dist/ir/validation/attribute-collection-pass.d.ts +5 -4
  1145. package/dist/ir/validation/attribute-collection-pass.d.ts.map +1 -1
  1146. package/dist/ir/validation/attribute-collection-pass.js +5 -4
  1147. package/dist/ir/validation/attribute-collection-pass.js.map +1 -1
  1148. package/dist/ir/validation/attribute-collection-pass.test.d.ts +8 -1
  1149. package/dist/ir/validation/attribute-collection-pass.test.d.ts.map +1 -1
  1150. package/dist/ir/validation/attribute-collection-pass.test.js +8 -1331
  1151. package/dist/ir/validation/attribute-collection-pass.test.js.map +1 -1
  1152. package/dist/ir/validation/call-resolution-refresh-pass.d.ts +8 -0
  1153. package/dist/ir/validation/call-resolution-refresh-pass.d.ts.map +1 -0
  1154. package/dist/ir/validation/call-resolution-refresh-pass.js +616 -0
  1155. package/dist/ir/validation/call-resolution-refresh-pass.js.map +1 -0
  1156. package/dist/ir/validation/char-validation-expressions.d.ts +13 -0
  1157. package/dist/ir/validation/char-validation-expressions.d.ts.map +1 -0
  1158. package/dist/ir/validation/char-validation-expressions.js +362 -0
  1159. package/dist/ir/validation/char-validation-expressions.js.map +1 -0
  1160. package/dist/ir/validation/char-validation-pass.d.ts +7 -22
  1161. package/dist/ir/validation/char-validation-pass.d.ts.map +1 -1
  1162. package/dist/ir/validation/char-validation-pass.js +6 -504
  1163. package/dist/ir/validation/char-validation-pass.js.map +1 -1
  1164. package/dist/ir/validation/char-validation-types.d.ts +28 -0
  1165. package/dist/ir/validation/char-validation-types.d.ts.map +1 -0
  1166. package/dist/ir/validation/char-validation-types.js +144 -0
  1167. package/dist/ir/validation/char-validation-types.js.map +1 -0
  1168. package/dist/ir/validation/index.d.ts +3 -0
  1169. package/dist/ir/validation/index.d.ts.map +1 -1
  1170. package/dist/ir/validation/index.js +3 -0
  1171. package/dist/ir/validation/index.js.map +1 -1
  1172. package/dist/ir/validation/known-builtin-reference-types.d.ts +12 -0
  1173. package/dist/ir/validation/known-builtin-reference-types.d.ts.map +1 -0
  1174. package/dist/ir/validation/known-builtin-reference-types.js +29 -0
  1175. package/dist/ir/validation/known-builtin-reference-types.js.map +1 -0
  1176. package/dist/ir/validation/numeric-classification.d.ts +105 -0
  1177. package/dist/ir/validation/numeric-classification.d.ts.map +1 -0
  1178. package/dist/ir/validation/numeric-classification.js +368 -0
  1179. package/dist/ir/validation/numeric-classification.js.map +1 -0
  1180. package/dist/ir/validation/numeric-coercion-pass.d.ts +3 -50
  1181. package/dist/ir/validation/numeric-coercion-pass.d.ts.map +1 -1
  1182. package/dist/ir/validation/numeric-coercion-pass.js +3 -777
  1183. package/dist/ir/validation/numeric-coercion-pass.js.map +1 -1
  1184. package/dist/ir/validation/numeric-expression-validation.d.ts +26 -0
  1185. package/dist/ir/validation/numeric-expression-validation.d.ts.map +1 -0
  1186. package/dist/ir/validation/numeric-expression-validation.js +253 -0
  1187. package/dist/ir/validation/numeric-expression-validation.js.map +1 -0
  1188. package/dist/ir/validation/numeric-invariants-cases/array-index-proofs.test.d.ts +11 -0
  1189. package/dist/ir/validation/numeric-invariants-cases/array-index-proofs.test.d.ts.map +1 -0
  1190. package/dist/ir/validation/numeric-invariants-cases/array-index-proofs.test.js +185 -0
  1191. package/dist/ir/validation/numeric-invariants-cases/array-index-proofs.test.js.map +1 -0
  1192. package/dist/ir/validation/numeric-invariants-cases/arrow-function-proofs.test.d.ts +16 -0
  1193. package/dist/ir/validation/numeric-invariants-cases/arrow-function-proofs.test.d.ts.map +1 -0
  1194. package/dist/ir/validation/numeric-invariants-cases/arrow-function-proofs.test.js +364 -0
  1195. package/dist/ir/validation/numeric-invariants-cases/arrow-function-proofs.test.js.map +1 -0
  1196. package/dist/ir/validation/numeric-invariants-cases/binary-promotion.test.d.ts +9 -0
  1197. package/dist/ir/validation/numeric-invariants-cases/binary-promotion.test.d.ts.map +1 -0
  1198. package/dist/ir/validation/numeric-invariants-cases/binary-promotion.test.js +119 -0
  1199. package/dist/ir/validation/numeric-invariants-cases/binary-promotion.test.js.map +1 -0
  1200. package/dist/ir/validation/numeric-invariants-cases/helpers.d.ts +60 -0
  1201. package/dist/ir/validation/numeric-invariants-cases/helpers.d.ts.map +1 -0
  1202. package/dist/ir/validation/numeric-invariants-cases/helpers.js +163 -0
  1203. package/dist/ir/validation/numeric-invariants-cases/helpers.js.map +1 -0
  1204. package/dist/ir/validation/numeric-invariants-cases/literal-range-validation.test.d.ts +8 -0
  1205. package/dist/ir/validation/numeric-invariants-cases/literal-range-validation.test.d.ts.map +1 -0
  1206. package/dist/ir/validation/numeric-invariants-cases/literal-range-validation.test.js +110 -0
  1207. package/dist/ir/validation/numeric-invariants-cases/literal-range-validation.test.js.map +1 -0
  1208. package/dist/ir/validation/numeric-invariants-cases/narrowing-intent.test.d.ts +12 -0
  1209. package/dist/ir/validation/numeric-invariants-cases/narrowing-intent.test.d.ts.map +1 -0
  1210. package/dist/ir/validation/numeric-invariants-cases/narrowing-intent.test.js +188 -0
  1211. package/dist/ir/validation/numeric-invariants-cases/narrowing-intent.test.js.map +1 -0
  1212. package/dist/ir/validation/numeric-invariants.test.d.ts +5 -14
  1213. package/dist/ir/validation/numeric-invariants.test.d.ts.map +1 -1
  1214. package/dist/ir/validation/numeric-invariants.test.js +5 -932
  1215. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  1216. package/dist/ir/validation/numeric-proof-analysis.d.ts +9 -0
  1217. package/dist/ir/validation/numeric-proof-analysis.d.ts.map +1 -0
  1218. package/dist/ir/validation/numeric-proof-analysis.js +8 -0
  1219. package/dist/ir/validation/numeric-proof-analysis.js.map +1 -0
  1220. package/dist/ir/validation/numeric-proof-expression-walk.d.ts +18 -0
  1221. package/dist/ir/validation/numeric-proof-expression-walk.d.ts.map +1 -0
  1222. package/dist/ir/validation/numeric-proof-expression-walk.js +331 -0
  1223. package/dist/ir/validation/numeric-proof-expression-walk.js.map +1 -0
  1224. package/dist/ir/validation/numeric-proof-guard-facts.d.ts +29 -0
  1225. package/dist/ir/validation/numeric-proof-guard-facts.d.ts.map +1 -0
  1226. package/dist/ir/validation/numeric-proof-guard-facts.js +213 -0
  1227. package/dist/ir/validation/numeric-proof-guard-facts.js.map +1 -0
  1228. package/dist/ir/validation/numeric-proof-inference.d.ts +33 -0
  1229. package/dist/ir/validation/numeric-proof-inference.d.ts.map +1 -0
  1230. package/dist/ir/validation/numeric-proof-inference.js +222 -0
  1231. package/dist/ir/validation/numeric-proof-inference.js.map +1 -0
  1232. package/dist/ir/validation/numeric-proof-pass.d.ts +5 -25
  1233. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  1234. package/dist/ir/validation/numeric-proof-pass.js +5 -1164
  1235. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  1236. package/dist/ir/validation/numeric-proof-proving.d.ts +21 -0
  1237. package/dist/ir/validation/numeric-proof-proving.d.ts.map +1 -0
  1238. package/dist/ir/validation/numeric-proof-proving.js +261 -0
  1239. package/dist/ir/validation/numeric-proof-proving.js.map +1 -0
  1240. package/dist/ir/validation/numeric-proof-statement-walk.d.ts +37 -0
  1241. package/dist/ir/validation/numeric-proof-statement-walk.d.ts.map +1 -0
  1242. package/dist/ir/validation/numeric-proof-statement-walk.js +295 -0
  1243. package/dist/ir/validation/numeric-proof-statement-walk.js.map +1 -0
  1244. package/dist/ir/validation/numeric-proof-walk.d.ts +10 -0
  1245. package/dist/ir/validation/numeric-proof-walk.d.ts.map +1 -0
  1246. package/dist/ir/validation/numeric-proof-walk.js +9 -0
  1247. package/dist/ir/validation/numeric-proof-walk.js.map +1 -0
  1248. package/dist/ir/validation/numeric-statement-processing.d.ts +39 -0
  1249. package/dist/ir/validation/numeric-statement-processing.d.ts.map +1 -0
  1250. package/dist/ir/validation/numeric-statement-processing.js +229 -0
  1251. package/dist/ir/validation/numeric-statement-processing.js.map +1 -0
  1252. package/dist/ir/validation/numeric-validation.d.ts +13 -0
  1253. package/dist/ir/validation/numeric-validation.d.ts.map +1 -0
  1254. package/dist/ir/validation/numeric-validation.js +12 -0
  1255. package/dist/ir/validation/numeric-validation.js.map +1 -0
  1256. package/dist/ir/validation/overload-collection-cases/basic.test.d.ts +2 -0
  1257. package/dist/ir/validation/overload-collection-cases/basic.test.d.ts.map +1 -0
  1258. package/dist/ir/validation/overload-collection-cases/basic.test.js +103 -0
  1259. package/dist/ir/validation/overload-collection-cases/basic.test.js.map +1 -0
  1260. package/dist/ir/validation/overload-collection-cases/consistency.test.d.ts +2 -0
  1261. package/dist/ir/validation/overload-collection-cases/consistency.test.d.ts.map +1 -0
  1262. package/dist/ir/validation/overload-collection-cases/consistency.test.js +79 -0
  1263. package/dist/ir/validation/overload-collection-cases/consistency.test.js.map +1 -0
  1264. package/dist/ir/validation/overload-collection-cases/error-cases.test.d.ts +2 -0
  1265. package/dist/ir/validation/overload-collection-cases/error-cases.test.d.ts.map +1 -0
  1266. package/dist/ir/validation/overload-collection-cases/error-cases.test.js +24 -0
  1267. package/dist/ir/validation/overload-collection-cases/error-cases.test.js.map +1 -0
  1268. package/dist/ir/validation/overload-collection-cases/helpers.d.ts +107 -0
  1269. package/dist/ir/validation/overload-collection-cases/helpers.d.ts.map +1 -0
  1270. package/dist/ir/validation/overload-collection-cases/helpers.js +142 -0
  1271. package/dist/ir/validation/overload-collection-cases/helpers.js.map +1 -0
  1272. package/dist/ir/validation/overload-collection-pass.d.ts +16 -0
  1273. package/dist/ir/validation/overload-collection-pass.d.ts.map +1 -0
  1274. package/dist/ir/validation/overload-collection-pass.js +930 -0
  1275. package/dist/ir/validation/overload-collection-pass.js.map +1 -0
  1276. package/dist/ir/validation/overload-collection-pass.test.d.ts +4 -0
  1277. package/dist/ir/validation/overload-collection-pass.test.d.ts.map +1 -0
  1278. package/dist/ir/validation/overload-collection-pass.test.js +4 -0
  1279. package/dist/ir/validation/overload-collection-pass.test.js.map +1 -0
  1280. package/dist/ir/validation/overload-family-consistency-pass.d.ts +9 -0
  1281. package/dist/ir/validation/overload-family-consistency-pass.d.ts.map +1 -0
  1282. package/dist/ir/validation/overload-family-consistency-pass.js +161 -0
  1283. package/dist/ir/validation/overload-family-consistency-pass.js.map +1 -0
  1284. package/dist/ir/validation/rest-type-synthesis-helpers.d.ts +52 -0
  1285. package/dist/ir/validation/rest-type-synthesis-helpers.d.ts.map +1 -0
  1286. package/dist/ir/validation/rest-type-synthesis-helpers.js +250 -0
  1287. package/dist/ir/validation/rest-type-synthesis-helpers.js.map +1 -0
  1288. package/dist/ir/validation/rest-type-synthesis-pass.d.ts +6 -20
  1289. package/dist/ir/validation/rest-type-synthesis-pass.d.ts.map +1 -1
  1290. package/dist/ir/validation/rest-type-synthesis-pass.js +5 -461
  1291. package/dist/ir/validation/rest-type-synthesis-pass.js.map +1 -1
  1292. package/dist/ir/validation/rest-type-synthesis-processing.d.ts +14 -0
  1293. package/dist/ir/validation/rest-type-synthesis-processing.d.ts.map +1 -0
  1294. package/dist/ir/validation/rest-type-synthesis-processing.js +220 -0
  1295. package/dist/ir/validation/rest-type-synthesis-processing.js.map +1 -0
  1296. package/dist/ir/validation/soundness-gate-cases/any-type-and-primitives.test.d.ts +12 -0
  1297. package/dist/ir/validation/soundness-gate-cases/any-type-and-primitives.test.d.ts.map +1 -0
  1298. package/dist/ir/validation/soundness-gate-cases/any-type-and-primitives.test.js +99 -0
  1299. package/dist/ir/validation/soundness-gate-cases/any-type-and-primitives.test.js.map +1 -0
  1300. package/dist/ir/validation/soundness-gate-cases/computed-member-access.test.d.ts +10 -0
  1301. package/dist/ir/validation/soundness-gate-cases/computed-member-access.test.d.ts.map +1 -0
  1302. package/dist/ir/validation/soundness-gate-cases/computed-member-access.test.js +139 -0
  1303. package/dist/ir/validation/soundness-gate-cases/computed-member-access.test.js.map +1 -0
  1304. package/dist/ir/validation/soundness-gate-cases/inference-diagnostics.test.d.ts +10 -0
  1305. package/dist/ir/validation/soundness-gate-cases/inference-diagnostics.test.d.ts.map +1 -0
  1306. package/dist/ir/validation/soundness-gate-cases/inference-diagnostics.test.js +123 -0
  1307. package/dist/ir/validation/soundness-gate-cases/inference-diagnostics.test.js.map +1 -0
  1308. package/dist/ir/validation/soundness-gate-cases/reference-type-resolution.test.d.ts +15 -0
  1309. package/dist/ir/validation/soundness-gate-cases/reference-type-resolution.test.d.ts.map +1 -0
  1310. package/dist/ir/validation/soundness-gate-cases/reference-type-resolution.test.js +292 -0
  1311. package/dist/ir/validation/soundness-gate-cases/reference-type-resolution.test.js.map +1 -0
  1312. package/dist/ir/validation/soundness-gate-cases/test-helpers.d.ts +12 -0
  1313. package/dist/ir/validation/soundness-gate-cases/test-helpers.d.ts.map +1 -0
  1314. package/dist/ir/validation/soundness-gate-cases/test-helpers.js +36 -0
  1315. package/dist/ir/validation/soundness-gate-cases/test-helpers.js.map +1 -0
  1316. package/dist/ir/validation/soundness-gate-cases/type-params-and-intrinsics.test.d.ts +11 -0
  1317. package/dist/ir/validation/soundness-gate-cases/type-params-and-intrinsics.test.d.ts.map +1 -0
  1318. package/dist/ir/validation/soundness-gate-cases/type-params-and-intrinsics.test.js +249 -0
  1319. package/dist/ir/validation/soundness-gate-cases/type-params-and-intrinsics.test.js.map +1 -0
  1320. package/dist/ir/validation/soundness-gate-expression-validation.d.ts +3 -0
  1321. package/dist/ir/validation/soundness-gate-expression-validation.d.ts.map +1 -0
  1322. package/dist/ir/validation/soundness-gate-expression-validation.js +205 -0
  1323. package/dist/ir/validation/soundness-gate-expression-validation.js.map +1 -0
  1324. package/dist/ir/validation/soundness-gate-shared.d.ts +26 -0
  1325. package/dist/ir/validation/soundness-gate-shared.d.ts.map +1 -0
  1326. package/dist/ir/validation/soundness-gate-shared.js +46 -0
  1327. package/dist/ir/validation/soundness-gate-shared.js.map +1 -0
  1328. package/dist/ir/validation/soundness-gate-statement-validation.d.ts +5 -0
  1329. package/dist/ir/validation/soundness-gate-statement-validation.d.ts.map +1 -0
  1330. package/dist/ir/validation/soundness-gate-statement-validation.js +199 -0
  1331. package/dist/ir/validation/soundness-gate-statement-validation.js.map +1 -0
  1332. package/dist/ir/validation/soundness-gate-type-validation.d.ts +9 -0
  1333. package/dist/ir/validation/soundness-gate-type-validation.d.ts.map +1 -0
  1334. package/dist/ir/validation/soundness-gate-type-validation.js +149 -0
  1335. package/dist/ir/validation/soundness-gate-type-validation.js.map +1 -0
  1336. package/dist/ir/validation/soundness-gate.d.ts +2 -18
  1337. package/dist/ir/validation/soundness-gate.d.ts.map +1 -1
  1338. package/dist/ir/validation/soundness-gate.js +15 -608
  1339. package/dist/ir/validation/soundness-gate.js.map +1 -1
  1340. package/dist/ir/validation/soundness-gate.test.d.ts +5 -12
  1341. package/dist/ir/validation/soundness-gate.test.d.ts.map +1 -1
  1342. package/dist/ir/validation/soundness-gate.test.js +5 -696
  1343. package/dist/ir/validation/soundness-gate.test.js.map +1 -1
  1344. package/dist/ir/validation/virtual-marking-pass.d.ts +10 -2
  1345. package/dist/ir/validation/virtual-marking-pass.d.ts.map +1 -1
  1346. package/dist/ir/validation/virtual-marking-pass.js +347 -59
  1347. package/dist/ir/validation/virtual-marking-pass.js.map +1 -1
  1348. package/dist/ir/validation/virtual-marking-pass.test.d.ts +2 -0
  1349. package/dist/ir/validation/virtual-marking-pass.test.d.ts.map +1 -0
  1350. package/dist/ir/validation/virtual-marking-pass.test.js +314 -0
  1351. package/dist/ir/validation/virtual-marking-pass.test.js.map +1 -0
  1352. package/dist/ir/validation/yield-expression-lowering.d.ts +13 -0
  1353. package/dist/ir/validation/yield-expression-lowering.d.ts.map +1 -0
  1354. package/dist/ir/validation/yield-expression-lowering.js +13 -0
  1355. package/dist/ir/validation/yield-expression-lowering.js.map +1 -0
  1356. package/dist/ir/validation/yield-lowering-cases/assignment-yield.test.d.ts +14 -0
  1357. package/dist/ir/validation/yield-lowering-cases/assignment-yield.test.d.ts.map +1 -0
  1358. package/dist/ir/validation/yield-lowering-cases/assignment-yield.test.js +383 -0
  1359. package/dist/ir/validation/yield-lowering-cases/assignment-yield.test.js.map +1 -0
  1360. package/dist/ir/validation/yield-lowering-cases/basic-yield.test.d.ts +12 -0
  1361. package/dist/ir/validation/yield-lowering-cases/basic-yield.test.d.ts.map +1 -0
  1362. package/dist/ir/validation/yield-lowering-cases/basic-yield.test.js +120 -0
  1363. package/dist/ir/validation/yield-lowering-cases/basic-yield.test.js.map +1 -0
  1364. package/dist/ir/validation/yield-lowering-cases/control-flow.test.d.ts +13 -0
  1365. package/dist/ir/validation/yield-lowering-cases/control-flow.test.d.ts.map +1 -0
  1366. package/dist/ir/validation/yield-lowering-cases/control-flow.test.js +284 -0
  1367. package/dist/ir/validation/yield-lowering-cases/control-flow.test.js.map +1 -0
  1368. package/dist/ir/validation/yield-lowering-cases/destructuring-and-unsupported.test.d.ts +13 -0
  1369. package/dist/ir/validation/yield-lowering-cases/destructuring-and-unsupported.test.d.ts.map +1 -0
  1370. package/dist/ir/validation/yield-lowering-cases/destructuring-and-unsupported.test.js +334 -0
  1371. package/dist/ir/validation/yield-lowering-cases/destructuring-and-unsupported.test.js.map +1 -0
  1372. package/dist/ir/validation/yield-lowering-cases/for-loop-initializer.test.d.ts +16 -0
  1373. package/dist/ir/validation/yield-lowering-cases/for-loop-initializer.test.d.ts.map +1 -0
  1374. package/dist/ir/validation/yield-lowering-cases/for-loop-initializer.test.js +321 -0
  1375. package/dist/ir/validation/yield-lowering-cases/for-loop-initializer.test.js.map +1 -0
  1376. package/dist/ir/validation/yield-lowering-cases/helpers.d.ts +32 -0
  1377. package/dist/ir/validation/yield-lowering-cases/helpers.d.ts.map +1 -0
  1378. package/dist/ir/validation/yield-lowering-cases/helpers.js +76 -0
  1379. package/dist/ir/validation/yield-lowering-cases/helpers.js.map +1 -0
  1380. package/dist/ir/validation/yield-lowering-cases/nested-yield-in-statements.test.d.ts +13 -0
  1381. package/dist/ir/validation/yield-lowering-cases/nested-yield-in-statements.test.d.ts.map +1 -0
  1382. package/dist/ir/validation/yield-lowering-cases/nested-yield-in-statements.test.js +221 -0
  1383. package/dist/ir/validation/yield-lowering-cases/nested-yield-in-statements.test.js.map +1 -0
  1384. package/dist/ir/validation/yield-lowering-cases/non-generator-and-modules.test.d.ts +11 -0
  1385. package/dist/ir/validation/yield-lowering-cases/non-generator-and-modules.test.d.ts.map +1 -0
  1386. package/dist/ir/validation/yield-lowering-cases/non-generator-and-modules.test.js +136 -0
  1387. package/dist/ir/validation/yield-lowering-cases/non-generator-and-modules.test.js.map +1 -0
  1388. package/dist/ir/validation/yield-lowering-cases/pipeline-contract-and-return.test.d.ts +14 -0
  1389. package/dist/ir/validation/yield-lowering-cases/pipeline-contract-and-return.test.d.ts.map +1 -0
  1390. package/dist/ir/validation/yield-lowering-cases/pipeline-contract-and-return.test.js +219 -0
  1391. package/dist/ir/validation/yield-lowering-cases/pipeline-contract-and-return.test.js.map +1 -0
  1392. package/dist/ir/validation/yield-lowering-helpers.d.ts +63 -0
  1393. package/dist/ir/validation/yield-lowering-helpers.d.ts.map +1 -0
  1394. package/dist/ir/validation/yield-lowering-helpers.js +240 -0
  1395. package/dist/ir/validation/yield-lowering-helpers.js.map +1 -0
  1396. package/dist/ir/validation/yield-lowering-pass.d.ts +7 -1
  1397. package/dist/ir/validation/yield-lowering-pass.d.ts.map +1 -1
  1398. package/dist/ir/validation/yield-lowering-pass.js +8 -1418
  1399. package/dist/ir/validation/yield-lowering-pass.js.map +1 -1
  1400. package/dist/ir/validation/yield-lowering-pass.test.d.ts +8 -11
  1401. package/dist/ir/validation/yield-lowering-pass.test.d.ts.map +1 -1
  1402. package/dist/ir/validation/yield-lowering-pass.test.js +8 -1975
  1403. package/dist/ir/validation/yield-lowering-pass.test.js.map +1 -1
  1404. package/dist/ir/validation/yield-main-expression-lowering.d.ts +20 -0
  1405. package/dist/ir/validation/yield-main-expression-lowering.d.ts.map +1 -0
  1406. package/dist/ir/validation/yield-main-expression-lowering.js +381 -0
  1407. package/dist/ir/validation/yield-main-expression-lowering.js.map +1 -0
  1408. package/dist/ir/validation/yield-member-access-lowering.d.ts +21 -0
  1409. package/dist/ir/validation/yield-member-access-lowering.d.ts.map +1 -0
  1410. package/dist/ir/validation/yield-member-access-lowering.js +58 -0
  1411. package/dist/ir/validation/yield-member-access-lowering.js.map +1 -0
  1412. package/dist/ir/validation/yield-module-processing.d.ts +25 -0
  1413. package/dist/ir/validation/yield-module-processing.d.ts.map +1 -0
  1414. package/dist/ir/validation/yield-module-processing.js +180 -0
  1415. package/dist/ir/validation/yield-module-processing.js.map +1 -0
  1416. package/dist/ir/validation/yield-statement-loops.d.ts +51 -0
  1417. package/dist/ir/validation/yield-statement-loops.d.ts.map +1 -0
  1418. package/dist/ir/validation/yield-statement-loops.js +344 -0
  1419. package/dist/ir/validation/yield-statement-loops.js.map +1 -0
  1420. package/dist/ir/validation/yield-statement-lowering.d.ts +18 -0
  1421. package/dist/ir/validation/yield-statement-lowering.d.ts.map +1 -0
  1422. package/dist/ir/validation/yield-statement-lowering.js +48 -0
  1423. package/dist/ir/validation/yield-statement-lowering.js.map +1 -0
  1424. package/dist/ir/validation/yield-statement-simple.d.ts +33 -0
  1425. package/dist/ir/validation/yield-statement-simple.d.ts.map +1 -0
  1426. package/dist/ir/validation/yield-statement-simple.js +268 -0
  1427. package/dist/ir/validation/yield-statement-simple.js.map +1 -0
  1428. package/dist/program/binding-loader.d.ts.map +1 -1
  1429. package/dist/program/binding-loader.js +1099 -6
  1430. package/dist/program/binding-loader.js.map +1 -1
  1431. package/dist/program/binding-payload-invariants.test.d.ts +2 -0
  1432. package/dist/program/binding-payload-invariants.test.d.ts.map +1 -0
  1433. package/dist/program/binding-payload-invariants.test.js +55 -0
  1434. package/dist/program/binding-payload-invariants.test.js.map +1 -0
  1435. package/dist/program/binding-registry-loading.d.ts +51 -0
  1436. package/dist/program/binding-registry-loading.d.ts.map +1 -0
  1437. package/dist/program/binding-registry-loading.js +816 -0
  1438. package/dist/program/binding-registry-loading.js.map +1 -0
  1439. package/dist/program/binding-registry-resolution-extension.d.ts +26 -0
  1440. package/dist/program/binding-registry-resolution-extension.d.ts.map +1 -0
  1441. package/dist/program/binding-registry-resolution-extension.js +161 -0
  1442. package/dist/program/binding-registry-resolution-extension.js.map +1 -0
  1443. package/dist/program/binding-registry-resolution-member.d.ts +46 -0
  1444. package/dist/program/binding-registry-resolution-member.d.ts.map +1 -0
  1445. package/dist/program/binding-registry-resolution-member.js +252 -0
  1446. package/dist/program/binding-registry-resolution-member.js.map +1 -0
  1447. package/dist/program/binding-registry-resolution.d.ts +13 -0
  1448. package/dist/program/binding-registry-resolution.d.ts.map +1 -0
  1449. package/dist/program/binding-registry-resolution.js +12 -0
  1450. package/dist/program/binding-registry-resolution.js.map +1 -0
  1451. package/dist/program/binding-registry.d.ts +34 -22
  1452. package/dist/program/binding-registry.d.ts.map +1 -1
  1453. package/dist/program/binding-registry.js +111 -562
  1454. package/dist/program/binding-registry.js.map +1 -1
  1455. package/dist/program/binding-types.d.ts +34 -3
  1456. package/dist/program/binding-types.d.ts.map +1 -1
  1457. package/dist/program/binding-types.js +82 -6
  1458. package/dist/program/binding-types.js.map +1 -1
  1459. package/dist/program/bindings-cases/dotnet-payload-boundaries.test.d.ts +2 -0
  1460. package/dist/program/bindings-cases/dotnet-payload-boundaries.test.d.ts.map +1 -0
  1461. package/dist/program/bindings-cases/dotnet-payload-boundaries.test.js +115 -0
  1462. package/dist/program/bindings-cases/dotnet-payload-boundaries.test.js.map +1 -0
  1463. package/dist/program/bindings-cases/hierarchical-and-type-semantics.test.d.ts +6 -0
  1464. package/dist/program/bindings-cases/hierarchical-and-type-semantics.test.d.ts.map +1 -0
  1465. package/dist/program/bindings-cases/hierarchical-and-type-semantics.test.js +573 -0
  1466. package/dist/program/bindings-cases/hierarchical-and-type-semantics.test.js.map +1 -0
  1467. package/dist/program/bindings-cases/load-bindings.test.d.ts +7 -0
  1468. package/dist/program/bindings-cases/load-bindings.test.d.ts.map +1 -0
  1469. package/dist/program/bindings-cases/load-bindings.test.js +545 -0
  1470. package/dist/program/bindings-cases/load-bindings.test.js.map +1 -0
  1471. package/dist/program/bindings-cases/registry-basics.test.d.ts +6 -0
  1472. package/dist/program/bindings-cases/registry-basics.test.d.ts.map +1 -0
  1473. package/dist/program/bindings-cases/registry-basics.test.js +201 -0
  1474. package/dist/program/bindings-cases/registry-basics.test.js.map +1 -0
  1475. package/dist/program/bindings-cases/registry-member-resolution.test.d.ts +8 -0
  1476. package/dist/program/bindings-cases/registry-member-resolution.test.d.ts.map +1 -0
  1477. package/dist/program/bindings-cases/registry-member-resolution.test.js +301 -0
  1478. package/dist/program/bindings-cases/registry-member-resolution.test.js.map +1 -0
  1479. package/dist/program/bindings.d.ts +2 -1
  1480. package/dist/program/bindings.d.ts.map +1 -1
  1481. package/dist/program/bindings.js +1 -0
  1482. package/dist/program/bindings.js.map +1 -1
  1483. package/dist/program/bindings.test.d.ts +12 -2
  1484. package/dist/program/bindings.test.d.ts.map +1 -1
  1485. package/dist/program/bindings.test.js +12 -989
  1486. package/dist/program/bindings.test.js.map +1 -1
  1487. package/dist/program/core-declarations.d.ts +16 -0
  1488. package/dist/program/core-declarations.d.ts.map +1 -0
  1489. package/dist/program/core-declarations.js +126 -0
  1490. package/dist/program/core-declarations.js.map +1 -0
  1491. package/dist/program/creation-cases/authoritative-type-roots.test.d.ts +6 -0
  1492. package/dist/program/creation-cases/authoritative-type-roots.test.d.ts.map +1 -0
  1493. package/dist/program/creation-cases/authoritative-type-roots.test.js +136 -0
  1494. package/dist/program/creation-cases/authoritative-type-roots.test.js.map +1 -0
  1495. package/dist/program/creation-cases/compiler-options.test.d.ts +5 -0
  1496. package/dist/program/creation-cases/compiler-options.test.d.ts.map +1 -0
  1497. package/dist/program/creation-cases/compiler-options.test.js +77 -0
  1498. package/dist/program/creation-cases/compiler-options.test.js.map +1 -0
  1499. package/dist/program/creation-cases/core-type-checking.test.d.ts +6 -0
  1500. package/dist/program/creation-cases/core-type-checking.test.d.ts.map +1 -0
  1501. package/dist/program/creation-cases/core-type-checking.test.js +66 -0
  1502. package/dist/program/creation-cases/core-type-checking.test.js.map +1 -0
  1503. package/dist/program/creation-cases/js-surface-globals.test.d.ts +6 -0
  1504. package/dist/program/creation-cases/js-surface-globals.test.d.ts.map +1 -0
  1505. package/dist/program/creation-cases/js-surface-globals.test.js +236 -0
  1506. package/dist/program/creation-cases/js-surface-globals.test.js.map +1 -0
  1507. package/dist/program/creation-cases/module-bindings.test.d.ts +2 -0
  1508. package/dist/program/creation-cases/module-bindings.test.d.ts.map +1 -0
  1509. package/dist/program/creation-cases/module-bindings.test.js +253 -0
  1510. package/dist/program/creation-cases/module-bindings.test.js.map +1 -0
  1511. package/dist/program/creation-cases/package-resolution.test.d.ts +6 -0
  1512. package/dist/program/creation-cases/package-resolution.test.d.ts.map +1 -0
  1513. package/dist/program/creation-cases/package-resolution.test.js +116 -0
  1514. package/dist/program/creation-cases/package-resolution.test.js.map +1 -0
  1515. package/dist/program/creation-cases/surface-isolation.test.d.ts +6 -0
  1516. package/dist/program/creation-cases/surface-isolation.test.d.ts.map +1 -0
  1517. package/dist/program/creation-cases/surface-isolation.test.js +196 -0
  1518. package/dist/program/creation-cases/surface-isolation.test.js.map +1 -0
  1519. package/dist/program/creation-cases/test-package-helpers.d.ts +6 -0
  1520. package/dist/program/creation-cases/test-package-helpers.d.ts.map +1 -0
  1521. package/dist/program/creation-cases/test-package-helpers.js +26 -0
  1522. package/dist/program/creation-cases/test-package-helpers.js.map +1 -0
  1523. package/dist/program/creation.d.ts +3 -14
  1524. package/dist/program/creation.d.ts.map +1 -1
  1525. package/dist/program/creation.js +3 -780
  1526. package/dist/program/creation.js.map +1 -1
  1527. package/dist/program/creation.test.d.ts +10 -2
  1528. package/dist/program/creation.test.d.ts.map +1 -1
  1529. package/dist/program/creation.test.js +10 -932
  1530. package/dist/program/creation.test.js.map +1 -1
  1531. package/dist/program/declaration-module-aliases.d.ts +13 -0
  1532. package/dist/program/declaration-module-aliases.d.ts.map +1 -0
  1533. package/dist/program/declaration-module-aliases.js +144 -0
  1534. package/dist/program/declaration-module-aliases.js.map +1 -0
  1535. package/dist/program/dependency-graph.d.ts +3 -1
  1536. package/dist/program/dependency-graph.d.ts.map +1 -1
  1537. package/dist/program/dependency-graph.js +211 -23
  1538. package/dist/program/dependency-graph.js.map +1 -1
  1539. package/dist/program/dependency-graph.test.js +307 -85
  1540. package/dist/program/dependency-graph.test.js.map +1 -1
  1541. package/dist/program/diagnostics.d.ts +1 -1
  1542. package/dist/program/diagnostics.d.ts.map +1 -1
  1543. package/dist/program/diagnostics.js +2 -48
  1544. package/dist/program/diagnostics.js.map +1 -1
  1545. package/dist/program/diagnostics.test.js +9 -24
  1546. package/dist/program/diagnostics.test.js.map +1 -1
  1547. package/dist/program/dotnet-binding-payload.d.ts +12 -0
  1548. package/dist/program/dotnet-binding-payload.d.ts.map +1 -0
  1549. package/dist/program/dotnet-binding-payload.js +71 -0
  1550. package/dist/program/dotnet-binding-payload.js.map +1 -0
  1551. package/dist/program/fixture-fast-coverage.test.d.ts +2 -0
  1552. package/dist/program/fixture-fast-coverage.test.d.ts.map +1 -0
  1553. package/dist/program/fixture-fast-coverage.test.js +225 -0
  1554. package/dist/program/fixture-fast-coverage.test.js.map +1 -0
  1555. package/dist/program/index.d.ts +1 -1
  1556. package/dist/program/index.d.ts.map +1 -1
  1557. package/dist/program/index.js +1 -1
  1558. package/dist/program/index.js.map +1 -1
  1559. package/dist/program/json-deserialize-overload-resolution.test.d.ts +2 -0
  1560. package/dist/program/json-deserialize-overload-resolution.test.d.ts.map +1 -0
  1561. package/dist/program/json-deserialize-overload-resolution.test.js +57 -0
  1562. package/dist/program/json-deserialize-overload-resolution.test.js.map +1 -0
  1563. package/dist/program/metadata.d.ts.map +1 -1
  1564. package/dist/program/metadata.js +24 -8
  1565. package/dist/program/metadata.js.map +1 -1
  1566. package/dist/program/metadata.test.js +30 -82
  1567. package/dist/program/metadata.test.js.map +1 -1
  1568. package/dist/program/module-resolution.d.ts +29 -0
  1569. package/dist/program/module-resolution.d.ts.map +1 -0
  1570. package/dist/program/module-resolution.js +257 -0
  1571. package/dist/program/module-resolution.js.map +1 -0
  1572. package/dist/program/package-roots.d.ts +3 -1
  1573. package/dist/program/package-roots.d.ts.map +1 -1
  1574. package/dist/program/package-roots.js +159 -21
  1575. package/dist/program/package-roots.js.map +1 -1
  1576. package/dist/program/package-roots.test.js +81 -25
  1577. package/dist/program/package-roots.test.js.map +1 -1
  1578. package/dist/program/program-assembly.d.ts +12 -0
  1579. package/dist/program/program-assembly.d.ts.map +1 -0
  1580. package/dist/program/program-assembly.js +409 -0
  1581. package/dist/program/program-assembly.js.map +1 -0
  1582. package/dist/program/program-factory.d.ts +9 -0
  1583. package/dist/program/program-factory.d.ts.map +1 -0
  1584. package/dist/program/program-factory.js +9 -0
  1585. package/dist/program/program-factory.js.map +1 -0
  1586. package/dist/program/program-input-discovery.d.ts +19 -0
  1587. package/dist/program/program-input-discovery.d.ts.map +1 -0
  1588. package/dist/program/program-input-discovery.js +379 -0
  1589. package/dist/program/program-input-discovery.js.map +1 -0
  1590. package/dist/program/program-input-discovery.test.d.ts +2 -0
  1591. package/dist/program/program-input-discovery.test.d.ts.map +1 -0
  1592. package/dist/program/program-input-discovery.test.js +342 -0
  1593. package/dist/program/program-input-discovery.test.js.map +1 -0
  1594. package/dist/program/source-binding-imports.d.ts +7 -0
  1595. package/dist/program/source-binding-imports.d.ts.map +1 -0
  1596. package/dist/program/source-binding-imports.js +80 -0
  1597. package/dist/program/source-binding-imports.js.map +1 -0
  1598. package/dist/program/source-binding-imports.test.d.ts +2 -0
  1599. package/dist/program/source-binding-imports.test.d.ts.map +1 -0
  1600. package/dist/program/source-binding-imports.test.js +58 -0
  1601. package/dist/program/source-binding-imports.test.js.map +1 -0
  1602. package/dist/program/source-file-identity.d.ts +13 -0
  1603. package/dist/program/source-file-identity.d.ts.map +1 -0
  1604. package/dist/program/source-file-identity.js +127 -0
  1605. package/dist/program/source-file-identity.js.map +1 -0
  1606. package/dist/program/source-package-metadata.d.ts +14 -0
  1607. package/dist/program/source-package-metadata.d.ts.map +1 -0
  1608. package/dist/program/source-package-metadata.js +227 -0
  1609. package/dist/program/source-package-metadata.js.map +1 -0
  1610. package/dist/program/tsbindgen-instance-receiver-substitution.test.d.ts +2 -0
  1611. package/dist/program/tsbindgen-instance-receiver-substitution.test.d.ts.map +1 -0
  1612. package/dist/program/tsbindgen-instance-receiver-substitution.test.js +194 -0
  1613. package/dist/program/tsbindgen-instance-receiver-substitution.test.js.map +1 -0
  1614. package/dist/program/types.d.ts +3 -2
  1615. package/dist/program/types.d.ts.map +1 -1
  1616. package/dist/program/xunit-equal-overload-resolution.test.d.ts +2 -0
  1617. package/dist/program/xunit-equal-overload-resolution.test.d.ts.map +1 -0
  1618. package/dist/program/xunit-equal-overload-resolution.test.js +205 -0
  1619. package/dist/program/xunit-equal-overload-resolution.test.js.map +1 -0
  1620. package/dist/program.d.ts +1 -1
  1621. package/dist/program.d.ts.map +1 -1
  1622. package/dist/resolver/clr-bindings-package-resolution.d.ts +28 -0
  1623. package/dist/resolver/clr-bindings-package-resolution.d.ts.map +1 -0
  1624. package/dist/resolver/clr-bindings-package-resolution.js +120 -0
  1625. package/dist/resolver/clr-bindings-package-resolution.js.map +1 -0
  1626. package/dist/resolver/clr-bindings-resolve-logic.d.ts +40 -0
  1627. package/dist/resolver/clr-bindings-resolve-logic.d.ts.map +1 -0
  1628. package/dist/resolver/clr-bindings-resolve-logic.js +192 -0
  1629. package/dist/resolver/clr-bindings-resolve-logic.js.map +1 -0
  1630. package/dist/resolver/clr-bindings-resolver.d.ts +9 -69
  1631. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  1632. package/dist/resolver/clr-bindings-resolver.js +4 -436
  1633. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  1634. package/dist/resolver/dynamic-import.test.js +20 -11
  1635. package/dist/resolver/dynamic-import.test.js.map +1 -1
  1636. package/dist/resolver/import-resolution.d.ts +3 -0
  1637. package/dist/resolver/import-resolution.d.ts.map +1 -1
  1638. package/dist/resolver/import-resolution.js +120 -33
  1639. package/dist/resolver/import-resolution.js.map +1 -1
  1640. package/dist/resolver/source-package-resolution.d.ts +18 -0
  1641. package/dist/resolver/source-package-resolution.d.ts.map +1 -1
  1642. package/dist/resolver/source-package-resolution.js +141 -14
  1643. package/dist/resolver/source-package-resolution.js.map +1 -1
  1644. package/dist/resolver/source-package-resolution.test.js +27 -52
  1645. package/dist/resolver/source-package-resolution.test.js.map +1 -1
  1646. package/dist/resolver-cases/namespace-and-classname.test.d.ts +5 -0
  1647. package/dist/resolver-cases/namespace-and-classname.test.d.ts.map +1 -0
  1648. package/dist/resolver-cases/namespace-and-classname.test.js +32 -0
  1649. package/dist/resolver-cases/namespace-and-classname.test.js.map +1 -0
  1650. package/dist/resolver-cases/resolve-import.test.d.ts +5 -0
  1651. package/dist/resolver-cases/resolve-import.test.d.ts.map +1 -0
  1652. package/dist/resolver-cases/resolve-import.test.js +460 -0
  1653. package/dist/resolver-cases/resolve-import.test.js.map +1 -0
  1654. package/dist/resolver.test.d.ts +2 -4
  1655. package/dist/resolver.test.d.ts.map +1 -1
  1656. package/dist/resolver.test.js +2 -289
  1657. package/dist/resolver.test.js.map +1 -1
  1658. package/dist/surface/profiles.d.ts +1 -1
  1659. package/dist/surface/profiles.d.ts.map +1 -1
  1660. package/dist/surface/profiles.js +146 -53
  1661. package/dist/surface/profiles.js.map +1 -1
  1662. package/dist/surface/profiles.test.js +97 -108
  1663. package/dist/surface/profiles.test.js.map +1 -1
  1664. package/dist/testing/filesystem-fixtures.d.ts +7 -0
  1665. package/dist/testing/filesystem-fixtures.d.ts.map +1 -0
  1666. package/dist/testing/filesystem-fixtures.js +80 -0
  1667. package/dist/testing/filesystem-fixtures.js.map +1 -0
  1668. package/dist/types/diagnostic.d.ts +1 -1
  1669. package/dist/types/diagnostic.d.ts.map +1 -1
  1670. package/dist/types/diagnostic.js.map +1 -1
  1671. package/dist/validation/contextual-type-analysis.d.ts +12 -0
  1672. package/dist/validation/contextual-type-analysis.d.ts.map +1 -0
  1673. package/dist/validation/contextual-type-analysis.js +11 -0
  1674. package/dist/validation/contextual-type-analysis.js.map +1 -0
  1675. package/dist/validation/contextual-type-checks.d.ts +35 -0
  1676. package/dist/validation/contextual-type-checks.d.ts.map +1 -0
  1677. package/dist/validation/contextual-type-checks.js +214 -0
  1678. package/dist/validation/contextual-type-checks.js.map +1 -0
  1679. package/dist/validation/exports.d.ts.map +1 -1
  1680. package/dist/validation/exports.js +14 -15
  1681. package/dist/validation/exports.js.map +1 -1
  1682. package/dist/validation/features-cases/promise-chaining.test.d.ts +2 -0
  1683. package/dist/validation/features-cases/promise-chaining.test.d.ts.map +1 -0
  1684. package/dist/validation/features-cases/promise-chaining.test.js +113 -0
  1685. package/dist/validation/features-cases/promise-chaining.test.js.map +1 -0
  1686. package/dist/validation/features-cases/test-helpers.d.ts +11 -0
  1687. package/dist/validation/features-cases/test-helpers.d.ts.map +1 -0
  1688. package/dist/validation/features-cases/test-helpers.js +125 -0
  1689. package/dist/validation/features-cases/test-helpers.js.map +1 -0
  1690. package/dist/validation/features-cases/tsn2001-unsupported-syntax.test.d.ts +2 -0
  1691. package/dist/validation/features-cases/tsn2001-unsupported-syntax.test.d.ts.map +1 -0
  1692. package/dist/validation/features-cases/tsn2001-unsupported-syntax.test.js +158 -0
  1693. package/dist/validation/features-cases/tsn2001-unsupported-syntax.test.js.map +1 -0
  1694. package/dist/validation/features-cases/tsn5001-function-length.test.d.ts +2 -0
  1695. package/dist/validation/features-cases/tsn5001-function-length.test.d.ts.map +1 -0
  1696. package/dist/validation/features-cases/tsn5001-function-length.test.js +104 -0
  1697. package/dist/validation/features-cases/tsn5001-function-length.test.js.map +1 -0
  1698. package/dist/validation/features.d.ts.map +1 -1
  1699. package/dist/validation/features.js +223 -0
  1700. package/dist/validation/features.js.map +1 -1
  1701. package/dist/validation/features.test.d.ts +3 -1
  1702. package/dist/validation/features.test.d.ts.map +1 -1
  1703. package/dist/validation/features.test.js +3 -386
  1704. package/dist/validation/features.test.js.map +1 -1
  1705. package/dist/validation/imports.d.ts.map +1 -1
  1706. package/dist/validation/imports.js +37 -3
  1707. package/dist/validation/imports.js.map +1 -1
  1708. package/dist/validation/imports.test.js +45 -9
  1709. package/dist/validation/imports.test.js.map +1 -1
  1710. package/dist/validation/static-safety-arrow-rules.d.ts +11 -0
  1711. package/dist/validation/static-safety-arrow-rules.d.ts.map +1 -0
  1712. package/dist/validation/static-safety-arrow-rules.js +54 -0
  1713. package/dist/validation/static-safety-arrow-rules.js.map +1 -0
  1714. package/dist/validation/static-safety-dictionary-keys.d.ts +10 -0
  1715. package/dist/validation/static-safety-dictionary-keys.d.ts.map +1 -0
  1716. package/dist/validation/static-safety-dictionary-keys.js +32 -0
  1717. package/dist/validation/static-safety-dictionary-keys.js.map +1 -0
  1718. package/dist/validation/static-safety-rules.d.ts +27 -0
  1719. package/dist/validation/static-safety-rules.d.ts.map +1 -0
  1720. package/dist/validation/static-safety-rules.js +231 -0
  1721. package/dist/validation/static-safety-rules.js.map +1 -0
  1722. package/dist/validation/static-safety.d.ts +4 -7
  1723. package/dist/validation/static-safety.d.ts.map +1 -1
  1724. package/dist/validation/static-safety.js +3 -673
  1725. package/dist/validation/static-safety.js.map +1 -1
  1726. package/dist/validation/synthesis-eligibility.d.ts +31 -0
  1727. package/dist/validation/synthesis-eligibility.d.ts.map +1 -0
  1728. package/dist/validation/synthesis-eligibility.js +161 -0
  1729. package/dist/validation/synthesis-eligibility.js.map +1 -0
  1730. package/dist/validator-cases/any-and-object-literals.test.d.ts +10 -0
  1731. package/dist/validator-cases/any-and-object-literals.test.d.ts.map +1 -0
  1732. package/dist/validator-cases/any-and-object-literals.test.js +271 -0
  1733. package/dist/validator-cases/any-and-object-literals.test.js.map +1 -0
  1734. package/dist/validator-cases/generic-validation.test.d.ts +11 -0
  1735. package/dist/validator-cases/generic-validation.test.d.ts.map +1 -0
  1736. package/dist/validator-cases/generic-validation.test.js +282 -0
  1737. package/dist/validator-cases/generic-validation.test.js.map +1 -0
  1738. package/dist/validator-cases/helpers.d.ts +9 -0
  1739. package/dist/validator-cases/helpers.d.ts.map +1 -0
  1740. package/dist/validator-cases/helpers.js +46 -0
  1741. package/dist/validator-cases/helpers.js.map +1 -0
  1742. package/dist/validator-cases/parameters-and-dict-keys.test.d.ts +10 -0
  1743. package/dist/validator-cases/parameters-and-dict-keys.test.d.ts.map +1 -0
  1744. package/dist/validator-cases/parameters-and-dict-keys.test.js +280 -0
  1745. package/dist/validator-cases/parameters-and-dict-keys.test.js.map +1 -0
  1746. package/dist/validator-cases/utility-types.test.d.ts +12 -0
  1747. package/dist/validator-cases/utility-types.test.d.ts.map +1 -0
  1748. package/dist/validator-cases/utility-types.test.js +323 -0
  1749. package/dist/validator-cases/utility-types.test.js.map +1 -0
  1750. package/dist/validator-maximus-cases/array-and-literal-inference.test.d.ts +2 -0
  1751. package/dist/validator-maximus-cases/array-and-literal-inference.test.d.ts.map +1 -0
  1752. package/dist/validator-maximus-cases/array-and-literal-inference.test.js +221 -0
  1753. package/dist/validator-maximus-cases/array-and-literal-inference.test.js.map +1 -0
  1754. package/dist/validator-maximus-cases/deterministic-typing.test.d.ts +2 -0
  1755. package/dist/validator-maximus-cases/deterministic-typing.test.d.ts.map +1 -0
  1756. package/dist/validator-maximus-cases/deterministic-typing.test.js +432 -0
  1757. package/dist/validator-maximus-cases/deterministic-typing.test.js.map +1 -0
  1758. package/dist/validator-maximus-cases/dictionary-and-object-literal.test.d.ts +2 -0
  1759. package/dist/validator-maximus-cases/dictionary-and-object-literal.test.d.ts.map +1 -0
  1760. package/dist/validator-maximus-cases/dictionary-and-object-literal.test.js +273 -0
  1761. package/dist/validator-maximus-cases/dictionary-and-object-literal.test.js.map +1 -0
  1762. package/dist/validator-maximus-cases/feature-gating.test.d.ts +2 -0
  1763. package/dist/validator-maximus-cases/feature-gating.test.d.ts.map +1 -0
  1764. package/dist/validator-maximus-cases/feature-gating.test.js +181 -0
  1765. package/dist/validator-maximus-cases/feature-gating.test.js.map +1 -0
  1766. package/dist/validator-maximus-cases/generic-function-values.test.d.ts +2 -0
  1767. package/dist/validator-maximus-cases/generic-function-values.test.d.ts.map +1 -0
  1768. package/dist/validator-maximus-cases/generic-function-values.test.js +346 -0
  1769. package/dist/validator-maximus-cases/generic-function-values.test.js.map +1 -0
  1770. package/dist/validator-maximus-cases/helpers.d.ts +9 -0
  1771. package/dist/validator-maximus-cases/helpers.d.ts.map +1 -0
  1772. package/dist/validator-maximus-cases/helpers.js +113 -0
  1773. package/dist/validator-maximus-cases/helpers.js.map +1 -0
  1774. package/dist/validator-maximus-cases/type-syntax.test.d.ts +2 -0
  1775. package/dist/validator-maximus-cases/type-syntax.test.d.ts.map +1 -0
  1776. package/dist/validator-maximus-cases/type-syntax.test.js +157 -0
  1777. package/dist/validator-maximus-cases/type-syntax.test.js.map +1 -0
  1778. package/dist/validator.maximus.test.d.ts +6 -1
  1779. package/dist/validator.maximus.test.d.ts.map +1 -1
  1780. package/dist/validator.maximus.test.js +6 -1417
  1781. package/dist/validator.maximus.test.js.map +1 -1
  1782. package/dist/validator.test.d.ts +4 -10
  1783. package/dist/validator.test.d.ts.map +1 -1
  1784. package/dist/validator.test.js +4 -1086
  1785. package/dist/validator.test.js.map +1 -1
  1786. package/package.json +3 -3
@@ -1,1409 +1,19 @@
1
1
  /**
2
- * TypeSystem Call Resolution — Signature Extraction, Type ID Attachment, and Call Resolution
3
- *
4
- * Handles call resolution, signature extraction, type ID attachment, and structural member lookup.
5
- *
6
- * DAG position: depends on type-system-state and type-system-relations
7
- */
8
- import { substituteIrType as irSubstitute, } from "../types/ir-substitution.js";
9
- import { stableIrTypeKey, unwrapAsyncWrapperType } from "../types/type-ops.js";
10
- import { unknownType, voidType } from "./types.js";
11
- import { emitDiagnostic, resolveTypeIdByName, normalizeToNominal, isNullishPrimitive, addUndefinedToType, stripTsonicExtensionWrappers, poisonedCall, } from "./type-system-state.js";
12
- import { typesEqual } from "./type-system-relations.js";
13
- // ─────────────────────────────────────────────────────────────────────────
14
- // getRawSignature Extract raw signature from HandleRegistry
15
- // ─────────────────────────────────────────────────────────────────────────
16
- /**
17
- * Get or compute raw signature info from SignatureId.
18
- * Caches the result for subsequent calls.
19
- */
20
- export const getRawSignature = (state, sigId) => {
21
- const cached = state.signatureRawCache.get(sigId.id);
22
- if (cached)
23
- return cached;
24
- const sigInfo = state.handleRegistry.getSignature(sigId);
25
- if (!sigInfo)
26
- return undefined;
27
- // Convert parameter types from TypeNodes to IrTypes
28
- const parameterTypes = sigInfo.parameters.map((p) => {
29
- const baseType = p.typeNode
30
- ? convertTypeNode(state, p.typeNode)
31
- : undefined;
32
- if (!baseType)
33
- return undefined;
34
- // Optional/defaulted parameters must accept explicit `undefined` at call sites.
35
- return p.isOptional ? addUndefinedToType(baseType) : baseType;
36
- });
37
- // Convert a TypeScript `this:` parameter type (if present) to an IrType.
38
- const thisParameterType = (() => {
39
- const n = sigInfo.thisTypeNode;
40
- return n ? convertTypeNode(state, n) : undefined;
41
- })();
42
- // Extract parameter modes
43
- const parameterModes = sigInfo.parameters.map((p) => p.mode ?? "value");
44
- // Extract parameter names
45
- const parameterNames = sigInfo.parameters.map((p) => p.name);
46
- // Extract type parameters
47
- const typeParameters = (sigInfo.typeParameters ?? []).map((tp) => ({
48
- name: tp.name,
49
- constraint: tp.constraintNode
50
- ? convertTypeNode(state, tp.constraintNode)
51
- : undefined,
52
- defaultType: tp.defaultNode
53
- ? convertTypeNode(state, tp.defaultNode)
54
- : undefined,
55
- }));
56
- const isConstructor = sigInfo.declaringMemberName === "constructor";
57
- const hasDeclaredReturnType = sigInfo.returnTypeNode !== undefined || isConstructor;
58
- // Convert return type
59
- const returnType = (() => {
60
- if (sigInfo.returnTypeNode)
61
- return convertTypeNode(state, sigInfo.returnTypeNode);
62
- // Class constructor declarations do not have return type annotations in TS syntax.
63
- // Deterministically synthesize the constructed instance type using the declaring
64
- // identity captured in Binding and the (class) type parameters captured for the
65
- // constructor signature.
66
- if (isConstructor && sigInfo.declaringTypeTsName) {
67
- const typeArguments = typeParameters.map((tp) => ({
68
- kind: "typeParameterType",
69
- name: tp.name,
70
- }));
71
- return {
72
- kind: "referenceType",
73
- name: sigInfo.declaringTypeTsName,
74
- ...(typeArguments.length > 0 ? { typeArguments } : {}),
75
- };
76
- }
77
- return voidType;
78
- })();
79
- // Extract type predicate (already extracted in Binding at registration time)
80
- let typePredicate;
81
- if (sigInfo.typePredicate) {
82
- const pred = sigInfo.typePredicate;
83
- const targetType = convertTypeNode(state, pred.targetTypeNode);
84
- if (pred.kind === "param") {
85
- typePredicate = {
86
- kind: "param",
87
- parameterIndex: pred.parameterIndex,
88
- targetType,
89
- };
90
- }
91
- else {
92
- typePredicate = {
93
- kind: "this",
94
- targetType,
95
- };
96
- }
97
- }
98
- const rawSig = {
99
- parameterTypes,
100
- parameterFlags: sigInfo.parameters.map((parameter) => ({
101
- isRest: parameter.isRest,
102
- isOptional: parameter.isOptional,
103
- })),
104
- thisParameterType,
105
- returnType,
106
- hasDeclaredReturnType,
107
- parameterModes,
108
- typeParameters,
109
- parameterNames,
110
- typePredicate,
111
- declaringTypeTsName: sigInfo.declaringTypeTsName,
112
- declaringTypeParameterNames: sigInfo.declaringTypeParameterNames,
113
- declaringMemberName: sigInfo.declaringMemberName,
114
- };
115
- state.signatureRawCache.set(sigId.id, rawSig);
116
- return rawSig;
117
- };
118
- // ─────────────────────────────────────────────────────────────────────────
119
- // Type ID attachment — Attach canonical TypeIds to IR types
120
- // ─────────────────────────────────────────────────────────────────────────
121
- /**
122
- * Attach canonical TypeIds to IR types where possible.
123
- *
124
- * This keeps nominal identity stable throughout the pipeline and enables
125
- * emit-time resolution without relying on string name matching.
126
- */
127
- export const attachParameterTypeIds = (state, p) => ({
128
- ...p,
129
- type: p.type ? attachTypeIds(state, p.type) : undefined,
130
- });
131
- export const attachTypeParameterTypeIds = (state, tp) => ({
132
- ...tp,
133
- constraint: tp.constraint ? attachTypeIds(state, tp.constraint) : undefined,
134
- default: tp.default ? attachTypeIds(state, tp.default) : undefined,
135
- structuralMembers: tp.structuralMembers?.map((m) => attachInterfaceMemberTypeIds(state, m)),
136
- });
137
- export const attachInterfaceMemberTypeIds = (state, m) => {
138
- if (m.kind === "propertySignature") {
139
- return { ...m, type: attachTypeIds(state, m.type) };
140
- }
141
- return {
142
- ...m,
143
- typeParameters: m.typeParameters?.map((tp) => attachTypeParameterTypeIds(state, tp)),
144
- parameters: m.parameters.map((p) => attachParameterTypeIds(state, p)),
145
- returnType: m.returnType ? attachTypeIds(state, m.returnType) : undefined,
146
- };
147
- };
148
- export const attachTypeIds = (state, type) => {
149
- switch (type.kind) {
150
- case "referenceType": {
151
- const typeId = type.typeId ??
152
- resolveTypeIdByName(state, type.resolvedClrType ?? type.name, type.typeArguments?.length);
153
- return {
154
- ...type,
155
- ...(type.typeArguments
156
- ? {
157
- typeArguments: type.typeArguments.map((t) => attachTypeIds(state, t)),
158
- }
159
- : {}),
160
- ...(type.structuralMembers
161
- ? {
162
- structuralMembers: type.structuralMembers.map((m) => attachInterfaceMemberTypeIds(state, m)),
163
- }
164
- : {}),
165
- ...(typeId ? { typeId } : {}),
166
- };
167
- }
168
- case "arrayType":
169
- return { ...type, elementType: attachTypeIds(state, type.elementType) };
170
- case "tupleType":
171
- return {
172
- ...type,
173
- elementTypes: type.elementTypes.map((t) => attachTypeIds(state, t)),
174
- };
175
- case "functionType":
176
- return {
177
- ...type,
178
- parameters: type.parameters.map((p) => attachParameterTypeIds(state, p)),
179
- returnType: attachTypeIds(state, type.returnType),
180
- };
181
- case "objectType":
182
- return {
183
- ...type,
184
- members: type.members.map((m) => attachInterfaceMemberTypeIds(state, m)),
185
- };
186
- case "dictionaryType":
187
- return {
188
- ...type,
189
- keyType: attachTypeIds(state, type.keyType),
190
- valueType: attachTypeIds(state, type.valueType),
191
- };
192
- case "unionType":
193
- case "intersectionType":
194
- return { ...type, types: type.types.map((t) => attachTypeIds(state, t)) };
195
- default:
196
- return type;
197
- }
198
- };
199
- // ─────────────────────────────────────────────────────────────────────────
200
- // convertTypeNode — Deterministic type syntax conversion
201
- // ─────────────────────────────────────────────────────────────────────────
202
- /**
203
- * Deterministic type syntax conversion with canonical TypeId attachment.
204
- *
205
- * The underlying converter is syntax-only; this wrapper re-attaches the
206
- * nominal identity from the UnifiedUniverse so downstream passes (including
207
- * the emitter) can resolve CLR types without re-driving a parallel lookup.
208
- */
209
- export const convertTypeNode = (state, node) => {
210
- return attachTypeIds(state, state.convertTypeNodeRaw(node));
211
- };
212
- // ─────────────────────────────────────────────────────────────────────────
213
- // delegateToFunctionType — Delegate → IrFunctionType conversion
214
- // ─────────────────────────────────────────────────────────────────────────
215
- /**
216
- * Convert a nominal CLR delegate type to an IrFunctionType by reading its Invoke signature.
217
- *
218
- * This is used for deterministic lambda typing when the expected type is a delegate
219
- * (e.g., custom delegates from CLR metadata).
220
- */
221
- export const delegateToFunctionType = (state, type) => {
222
- // Expression<TDelegate> wrapper: treat as its underlying delegate type for
223
- // deterministic lambda contextual typing.
224
- //
225
- // This models C#'s implicit lambda conversion to Expression<Func<...>>:
226
- // the TypeScript surface uses Expression<TDelegate>, but lambdas should be
227
- // typed against the delegate shape.
228
- if (type.kind === "referenceType" &&
229
- type.name === "Expression_1" &&
230
- (type.typeArguments?.length ?? 0) === 1) {
231
- const inner = type.typeArguments?.[0];
232
- if (!inner)
233
- return undefined;
234
- if (inner.kind === "functionType")
235
- return inner;
236
- return delegateToFunctionType(state, inner);
237
- }
238
- const normalized = normalizeToNominal(state, type);
239
- if (!normalized)
240
- return undefined;
241
- const entry = state.unifiedCatalog.getByTypeId(normalized.typeId);
242
- if (!entry || entry.kind !== "delegate")
243
- return undefined;
244
- const invokeMember = state.unifiedCatalog.getMember(normalized.typeId, "Invoke") ??
245
- state.unifiedCatalog.getMember(normalized.typeId, "invoke");
246
- const invokeSig = invokeMember?.signatures?.[0];
247
- if (!invokeSig)
248
- return undefined;
249
- const typeParams = state.unifiedCatalog.getTypeParameters(normalized.typeId);
250
- const subst = new Map();
251
- for (let i = 0; i < Math.min(typeParams.length, normalized.typeArgs.length); i++) {
252
- const tp = typeParams[i];
253
- const arg = normalized.typeArgs[i];
254
- if (tp && arg)
255
- subst.set(tp.name, arg);
256
- }
257
- const substitute = (t) => subst.size > 0 ? irSubstitute(t, subst) : t;
258
- const parameters = invokeSig.parameters.map((p) => {
259
- const paramType = substitute(p.type);
260
- return {
261
- kind: "parameter",
262
- pattern: {
263
- kind: "identifierPattern",
264
- name: p.name,
265
- ...(paramType ? { type: paramType } : {}),
266
- },
267
- type: paramType,
268
- initializer: undefined,
269
- isOptional: p.isOptional,
270
- isRest: p.isRest,
271
- passing: p.mode,
272
- };
273
- });
274
- return {
275
- kind: "functionType",
276
- parameters,
277
- returnType: substitute(invokeSig.returnType),
278
- };
279
- };
280
- // ─────────────────────────────────────────────────────────────────────────
281
- // lookupStructuralMember — Structural (object) type member lookup
282
- // ─────────────────────────────────────────────────────────────────────────
283
- /**
284
- * Look up a member on a structural (object) type.
285
- */
286
- export const lookupStructuralMember = (state, type, memberName, site) => {
287
- const addUndefinedToTypeLocal = (t) => {
288
- const undefinedType = {
289
- kind: "primitiveType",
290
- name: "undefined",
291
- };
292
- if (t.kind === "unionType") {
293
- const hasUndefined = t.types.some((x) => x.kind === "primitiveType" && x.name === "undefined");
294
- return hasUndefined ? t : { ...t, types: [...t.types, undefinedType] };
295
- }
296
- return { kind: "unionType", types: [t, undefinedType] };
297
- };
298
- if (type.kind === "objectType") {
299
- const member = type.members.find((m) => m.name === memberName);
300
- if (member) {
301
- if (member.kind === "propertySignature") {
302
- return member.isOptional
303
- ? addUndefinedToTypeLocal(member.type)
304
- : member.type;
305
- }
306
- // Method signature - return function type using the same parameters
307
- if (member.kind === "methodSignature") {
308
- const funcType = {
309
- kind: "functionType",
310
- parameters: member.parameters,
311
- returnType: member.returnType ?? voidType,
312
- };
313
- return funcType;
314
- }
315
- }
316
- }
317
- if (type.kind === "referenceType" &&
318
- type.structuralMembers &&
319
- type.structuralMembers.length > 0) {
320
- const member = type.structuralMembers.find((m) => m.name === memberName);
321
- if (member) {
322
- if (member.kind === "propertySignature") {
323
- return member.isOptional
324
- ? addUndefinedToTypeLocal(member.type)
325
- : member.type;
326
- }
327
- if (member.kind === "methodSignature") {
328
- const funcType = {
329
- kind: "functionType",
330
- parameters: member.parameters,
331
- returnType: member.returnType ?? voidType,
332
- };
333
- return funcType;
334
- }
335
- }
336
- }
337
- if (site) {
338
- emitDiagnostic(state, "TSN5203", `Member '${memberName}' not found on structural type`, site);
339
- }
340
- return unknownType;
341
- };
342
- // ─────────────────────────────────────────────────────────────────────────
343
- // computeReceiverSubstitution — Receiver type → substitution map
344
- // ─────────────────────────────────────────────────────────────────────────
345
- /**
346
- * Compute receiver substitution for a method call.
347
- *
348
- * Given a receiver type (e.g., Array<string>) and a declaring type's TS name,
349
- * computes the substitution map for class type parameters.
350
- *
351
- * Phase 6: Uses TypeId-based NominalEnv.getInstantiation().
352
- */
353
- export const computeReceiverSubstitution = (state, receiverType, declaringTypeTsName, _declaringMemberName, declaringTypeParameterNames) => {
354
- const normalized = normalizeToNominal(state, receiverType);
355
- const trySyntacticReferenceFallback = () => {
356
- if (receiverType.kind !== "referenceType" ||
357
- !receiverType.typeArguments ||
358
- receiverType.typeArguments.length === 0 ||
359
- !declaringTypeParameterNames ||
360
- declaringTypeParameterNames.length !== receiverType.typeArguments.length) {
361
- return undefined;
362
- }
363
- const normalizeTypeName = (name) => name
364
- .replace(/\$instance$/, "")
365
- .replace(/^__(.+)\$views$/, "$1")
366
- .replace(/_\d+$/, "")
367
- .replace(/`\d+$/, "");
368
- if (normalizeTypeName(receiverType.name) !==
369
- normalizeTypeName(declaringTypeTsName)) {
370
- return undefined;
371
- }
372
- const receiverTypeArguments = receiverType.typeArguments;
373
- if (!receiverTypeArguments) {
374
- return undefined;
375
- }
376
- const entries = [];
377
- for (const [index, name] of declaringTypeParameterNames.entries()) {
378
- const arg = receiverTypeArguments[index];
379
- if (!arg) {
380
- return undefined;
381
- }
382
- entries.push([name, arg]);
383
- }
384
- return new Map(entries);
385
- };
386
- if (!normalized) {
387
- return trySyntacticReferenceFallback();
388
- }
389
- const arityHint = normalized.typeArgs.length > 0 ? normalized.typeArgs.length : undefined;
390
- const declaringTypeId = resolveTypeIdByName(state, declaringTypeTsName, arityHint) ??
391
- resolveTypeIdByName(state, declaringTypeTsName);
392
- if (!declaringTypeId) {
393
- return trySyntacticReferenceFallback();
394
- }
395
- const nominalInstantiation = state.nominalEnv.getInstantiation(normalized.typeId, normalized.typeArgs, declaringTypeId);
396
- if (nominalInstantiation)
397
- return nominalInstantiation;
398
- // Structural fallback for array-backed receiver surfaces:
399
- // If the call receiver is `T[]` and the declaring type is a 1-arity generic
400
- // wrapper (for example, JS runtime facade wrappers around CLR arrays), map the
401
- // declaring type parameter to the receiver element type by position.
402
- //
403
- // This is deterministic and only applies when nominal instantiation is absent.
404
- if (receiverType.kind === "arrayType") {
405
- const declaringTypeParams = state.unifiedCatalog.getTypeParameters(declaringTypeId);
406
- if (declaringTypeParams.length === 1) {
407
- const only = declaringTypeParams[0];
408
- if (!only)
409
- return undefined;
410
- const fallback = new Map();
411
- fallback.set(only.name, receiverType.elementType);
412
- return fallback;
413
- }
414
- }
415
- const referenceFallback = trySyntacticReferenceFallback();
416
- if (referenceFallback)
417
- return referenceFallback;
418
- return undefined;
419
- };
420
- // ─────────────────────────────────────────────────────────────────────────
421
- // inferMethodTypeArgsFromArguments — Generic method type argument inference
422
- // ─────────────────────────────────────────────────────────────────────────
423
- /**
424
- * Deterministic type argument inference from call-site arguments.
425
- *
426
- * Walks parameter and argument shapes without ambiguity.
427
- */
428
- export const inferMethodTypeArgsFromArguments = (state, methodTypeParams, parameterTypes, argTypes) => {
429
- if (methodTypeParams.length === 0)
430
- return new Map();
431
- const methodTypeParamNames = new Set(methodTypeParams.map((p) => p.name));
432
- const substitution = new Map();
433
- const tryUnify = (parameterType, argumentType, currentSubstitution) => {
434
- // Method type parameter position: infer directly
435
- if (parameterType.kind === "typeParameterType") {
436
- if (!methodTypeParamNames.has(parameterType.name)) {
437
- // Not a method type parameter (could be outer generic) — ignore
438
- return true;
439
- }
440
- const existing = currentSubstitution.get(parameterType.name);
441
- if (existing) {
442
- // A self-mapping like `B -> B` can be produced when a lambda argument was typed
443
- // contextually from the unresolved expected signature. This provides no real
444
- // inference signal and must not block later concrete inference.
445
- if (existing.kind === "typeParameterType" &&
446
- existing.name === parameterType.name) {
447
- currentSubstitution.set(parameterType.name, argumentType);
448
- return true;
449
- }
450
- return typesEqual(existing, argumentType);
451
- }
452
- currentSubstitution.set(parameterType.name, argumentType);
453
- return true;
454
- }
455
- // Poison/any provides no deterministic information
456
- if (argumentType.kind === "unknownType" ||
457
- argumentType.kind === "anyType") {
458
- return true;
459
- }
460
- // Intersection argument types: unify through each constituent.
461
- //
462
- // This is required for airplane-grade extension method typing where the receiver
463
- // often has the form `TShape & <extension markers> & <method table>`.
464
- // Generic inference must still be able to infer through the real CLR shape in the intersection.
465
- if (argumentType.kind === "intersectionType") {
466
- for (const part of argumentType.types) {
467
- if (!part)
468
- continue;
469
- if (!tryUnify(parameterType, part, currentSubstitution))
470
- return false;
471
- }
472
- return true;
473
- }
474
- // Expression<TDelegate> wrapper: infer through the underlying delegate shape.
475
- // This is required for Queryable APIs that use Expression<Func<...>>.
476
- if (parameterType.kind === "referenceType" &&
477
- parameterType.name === "Expression_1" &&
478
- (parameterType.typeArguments?.length ?? 0) === 1) {
479
- const inner = parameterType.typeArguments?.[0];
480
- return inner ? tryUnify(inner, argumentType, currentSubstitution) : true;
481
- }
482
- // PromiseLike<T> / Promise<T> parameter positions should infer through the
483
- // awaited inner result when the argument is an async wrapper.
484
- //
485
- // This is required for JS-surface APIs like:
486
- // Promise.all<T>(values: readonly (T | PromiseLike<T>)[]): Promise<T[]>
487
- // where an argument element of type Promise<number> must infer T = number,
488
- // not T = Promise<number>.
489
- if (parameterType.kind === "referenceType") {
490
- const simpleName = parameterType.name.split(".").pop() ?? parameterType.name;
491
- if ((simpleName === "PromiseLike" || simpleName === "Promise") &&
492
- (parameterType.typeArguments?.length ?? 0) === 1) {
493
- const awaitedArgument = unwrapAsyncWrapperType(argumentType);
494
- const awaitedParameter = parameterType.typeArguments?.[0];
495
- if (awaitedArgument && awaitedParameter) {
496
- return tryUnify(awaitedParameter, awaitedArgument, currentSubstitution);
497
- }
498
- }
499
- }
500
- // Delegate unification: allow deterministic inference through the delegate's
501
- // Invoke signature when a lambda (functionType) is passed to a CLR delegate
502
- // parameter (Func/Action/custom delegates).
503
- //
504
- // Without this, generic methods like:
505
- // Select<TResult>(selector: Func<TSource, TResult>)
506
- // cannot infer TResult from a lambda argument, causing TSN5201/TSN5202.
507
- if (parameterType.kind === "referenceType" &&
508
- argumentType.kind === "functionType") {
509
- const delegateFn = delegateToFunctionType(state, parameterType);
510
- if (delegateFn)
511
- return tryUnify(delegateFn, argumentType, currentSubstitution);
512
- }
513
- if (parameterType.kind === "functionType" &&
514
- argumentType.kind === "referenceType") {
515
- const delegateFn = delegateToFunctionType(state, argumentType);
516
- if (delegateFn)
517
- return tryUnify(parameterType, delegateFn, currentSubstitution);
518
- }
519
- // Array<T> ↔ T[] unification
520
- if (parameterType.kind === "referenceType" &&
521
- parameterType.name === "Array" &&
522
- (parameterType.typeArguments?.length ?? 0) === 1 &&
523
- argumentType.kind === "arrayType") {
524
- const elementParam = parameterType.typeArguments?.[0];
525
- return elementParam
526
- ? tryUnify(elementParam, argumentType.elementType, currentSubstitution)
527
- : true;
528
- }
529
- // Union parameter type: allow deterministic inference through common nullish unions.
530
- // Example: constructor(value: T | null) with argument of type T.
531
- if (parameterType.kind === "unionType") {
532
- const nonNullish = parameterType.types.filter((t) => t && !isNullishPrimitive(t));
533
- const nullish = parameterType.types.filter((t) => t && isNullishPrimitive(t));
534
- const candidates = isNullishPrimitive(argumentType)
535
- ? nullish
536
- : nonNullish;
537
- const awaitedArgument = unwrapAsyncWrapperType(argumentType);
538
- if (awaitedArgument) {
539
- const snapshot = new Map(currentSubstitution);
540
- const awaitedMatches = [];
541
- for (const candidate of candidates) {
542
- if (!candidate || candidate.kind !== "referenceType")
543
- continue;
544
- const simpleName = candidate.name.split(".").pop() ?? candidate.name;
545
- if (simpleName !== "PromiseLike" && simpleName !== "Promise") {
546
- continue;
547
- }
548
- const awaitedParameter = candidate.typeArguments?.[0];
549
- if (!awaitedParameter)
550
- continue;
551
- const trial = new Map(snapshot);
552
- if (!tryUnify(awaitedParameter, awaitedArgument, trial))
553
- continue;
554
- if (mapEntriesEqual(snapshot, trial))
555
- continue;
556
- awaitedMatches.push(trial);
557
- }
558
- const firstAwaitedMatch = awaitedMatches[0];
559
- if (awaitedMatches.length === 1 && firstAwaitedMatch) {
560
- currentSubstitution.clear();
561
- for (const [key, value] of firstAwaitedMatch) {
562
- currentSubstitution.set(key, value);
563
- }
564
- return true;
565
- }
566
- if (firstAwaitedMatch &&
567
- awaitedMatches.length > 1 &&
568
- awaitedMatches.every((m) => mapEntriesEqual(firstAwaitedMatch, m))) {
569
- currentSubstitution.clear();
570
- for (const [key, value] of firstAwaitedMatch) {
571
- currentSubstitution.set(key, value);
572
- }
573
- return true;
574
- }
575
- }
576
- if (candidates.length === 1) {
577
- const only = candidates[0];
578
- return only ? tryUnify(only, argumentType, currentSubstitution) : true;
579
- }
580
- const snapshot = new Map(currentSubstitution);
581
- const informativeMatches = [];
582
- for (const candidate of candidates) {
583
- if (!candidate)
584
- continue;
585
- const trial = new Map(snapshot);
586
- if (!tryUnify(candidate, argumentType, trial))
587
- continue;
588
- if (mapEntriesEqual(snapshot, trial))
589
- continue;
590
- informativeMatches.push(trial);
591
- }
592
- const firstInformativeMatch = informativeMatches[0];
593
- if (informativeMatches.length === 1 && firstInformativeMatch) {
594
- const only = firstInformativeMatch;
595
- currentSubstitution.clear();
596
- for (const [key, value] of only) {
597
- currentSubstitution.set(key, value);
598
- }
599
- return true;
600
- }
601
- if (firstInformativeMatch &&
602
- informativeMatches.length > 1 &&
603
- informativeMatches.every((m) => mapEntriesEqual(firstInformativeMatch, m))) {
604
- currentSubstitution.clear();
605
- for (const [key, value] of firstInformativeMatch) {
606
- currentSubstitution.set(key, value);
607
- }
608
- return true;
609
- }
610
- // Conservative: ambiguous unions provide no deterministic signal.
611
- return true;
612
- }
613
- if (parameterType.kind === "arrayType" &&
614
- argumentType.kind === "referenceType" &&
615
- argumentType.name === "Array" &&
616
- (argumentType.typeArguments?.length ?? 0) === 1) {
617
- const elementArg = argumentType.typeArguments?.[0];
618
- return elementArg
619
- ? tryUnify(parameterType.elementType, elementArg, currentSubstitution)
620
- : true;
621
- }
622
- // Same-kind structural unification
623
- if (parameterType.kind !== argumentType.kind) {
624
- // Type mismatch provides no deterministic inference signal.
625
- return true;
626
- }
627
- switch (parameterType.kind) {
628
- case "primitiveType":
629
- return true;
630
- case "literalType":
631
- return true;
632
- case "referenceType": {
633
- const argRef = argumentType;
634
- const sameNominal = (() => {
635
- if (parameterType.typeId && argRef.typeId) {
636
- return parameterType.typeId.stableId === argRef.typeId.stableId;
637
- }
638
- return parameterType.name === argRef.name;
639
- })();
640
- // Direct generic unification when the nominals match
641
- if (sameNominal) {
642
- const paramArgs = parameterType.typeArguments ?? [];
643
- const argArgs = argRef.typeArguments ?? [];
644
- if (paramArgs.length !== argArgs.length)
645
- return true;
646
- for (let i = 0; i < paramArgs.length; i++) {
647
- const pa = paramArgs[i];
648
- const aa = argArgs[i];
649
- if (!pa || !aa)
650
- continue;
651
- if (!tryUnify(pa, aa, currentSubstitution))
652
- return false;
653
- }
654
- return true;
655
- }
656
- // Inheritance/interface unification: allow argumentType to flow through
657
- // its inheritance chain to the parameter type (e.g., List<T> → IEnumerable<T>).
658
- const paramNominal = normalizeToNominal(state, parameterType);
659
- const argNominal = normalizeToNominal(state, argRef);
660
- if (paramNominal && argNominal) {
661
- const inst = state.nominalEnv.getInstantiation(argNominal.typeId, argNominal.typeArgs, paramNominal.typeId);
662
- if (inst) {
663
- const targetTypeParams = state.unifiedCatalog.getTypeParameters(paramNominal.typeId);
664
- const instantiatedArgs = targetTypeParams.map((tp) => inst.get(tp.name));
665
- const paramArgs = parameterType.typeArguments ?? [];
666
- if (instantiatedArgs.every((t) => t !== undefined) &&
667
- paramArgs.length === instantiatedArgs.length) {
668
- for (let i = 0; i < paramArgs.length; i++) {
669
- const pa = paramArgs[i];
670
- const aa = instantiatedArgs[i];
671
- if (!pa || !aa)
672
- continue;
673
- if (!tryUnify(pa, aa, currentSubstitution))
674
- return false;
675
- }
676
- }
677
- }
678
- }
679
- return true;
680
- }
681
- case "arrayType":
682
- return tryUnify(parameterType.elementType, argumentType.elementType, currentSubstitution);
683
- case "tupleType": {
684
- const argTuple = argumentType;
685
- if (parameterType.elementTypes.length !== argTuple.elementTypes.length) {
686
- return true;
687
- }
688
- for (let i = 0; i < parameterType.elementTypes.length; i++) {
689
- const pe = parameterType.elementTypes[i];
690
- const ae = argTuple.elementTypes[i];
691
- if (!pe || !ae)
692
- continue;
693
- if (!tryUnify(pe, ae, currentSubstitution))
694
- return false;
695
- }
696
- return true;
697
- }
698
- case "functionType": {
699
- const argFn = argumentType;
700
- if (parameterType.parameters.length !== argFn.parameters.length) {
701
- return true;
702
- }
703
- for (let i = 0; i < parameterType.parameters.length; i++) {
704
- const pp = parameterType.parameters[i];
705
- const ap = argFn.parameters[i];
706
- const pt = pp?.type;
707
- const at = ap?.type;
708
- if (pt && at) {
709
- if (!tryUnify(pt, at, currentSubstitution))
710
- return false;
711
- }
712
- }
713
- return tryUnify(parameterType.returnType, argFn.returnType, currentSubstitution);
714
- }
715
- case "objectType":
716
- case "dictionaryType":
717
- // Conservative: only infer through these when shapes already match exactly.
718
- return true;
719
- case "voidType":
720
- case "neverType":
721
- return true;
722
- default:
723
- return true;
724
- }
725
- };
726
- const pairs = Math.min(parameterTypes.length, argTypes.length);
727
- for (let i = 0; i < pairs; i++) {
728
- const paramType = parameterTypes[i];
729
- const argType = argTypes[i];
730
- if (!paramType || !argType)
731
- continue;
732
- if (!tryUnify(paramType, argType, substitution))
733
- return undefined;
734
- }
735
- return substitution;
736
- };
737
- const expandParameterTypesForInference = (parameters, parameterTypes, argumentCount) => {
738
- const restIndex = parameters.findIndex((parameter) => parameter.isRest);
739
- if (restIndex < 0) {
740
- return parameterTypes;
741
- }
742
- const restParam = parameters[restIndex];
743
- const restType = parameterTypes[restIndex];
744
- if (!restParam || !restType) {
745
- return parameterTypes;
746
- }
747
- const expanded = parameterTypes.slice(0, restIndex);
748
- const restElementType = restType.kind === "arrayType" ? restType.elementType : restType;
749
- while (expanded.length < argumentCount) {
750
- expanded.push(restElementType);
751
- }
752
- return expanded;
753
- };
754
- // ─────────────────────────────────────────────────────────────────────────
755
- // mapEntriesEqual — Pure helper for map comparison
756
- // ─────────────────────────────────────────────────────────────────────────
757
- export const mapEntriesEqual = (left, right) => {
758
- if (left.size !== right.size)
759
- return false;
760
- for (const [key, leftValue] of left) {
761
- const rightValue = right.get(key);
762
- if (!rightValue || !typesEqual(leftValue, rightValue))
763
- return false;
764
- }
765
- return true;
766
- };
767
- // ─────────────────────────────────────────────────────────────────────────
768
- // collectExpectedReturnCandidates — Return type candidate expansion
769
- // ─────────────────────────────────────────────────────────────────────────
770
- export const collectExpectedReturnCandidates = (state, type) => {
771
- return collectExpandedTypeCandidates(state, type, {
772
- includeOriginal: true,
773
- unwrapAsyncWrappers: true,
774
- flattenToLeaves: false,
775
- });
776
- };
777
- export const collectNarrowingCandidates = (state, type) => {
778
- return collectExpandedTypeCandidates(state, type, {
779
- includeOriginal: false,
780
- unwrapAsyncWrappers: false,
781
- flattenToLeaves: true,
782
- });
783
- };
784
- const collectExpandedTypeCandidates = (state, type, options) => {
785
- const queue = [type];
786
- const out = [];
787
- const seen = new Set();
788
- const enqueue = (candidate) => {
789
- if (!candidate)
790
- return;
791
- const key = stableIrTypeKey(candidate);
792
- if (seen.has(key))
793
- return;
794
- seen.add(key);
795
- queue.push(candidate);
796
- };
797
- while (queue.length > 0) {
798
- const current = queue.shift();
799
- if (!current)
800
- continue;
801
- if (current.kind === "unionType") {
802
- for (const member of current.types)
803
- enqueue(member);
804
- if (!options.flattenToLeaves) {
805
- out.push(current);
806
- }
807
- continue;
808
- }
809
- let expandedAlias;
810
- if (current.kind === "referenceType") {
811
- expandedAlias = expandReferenceAlias(state, current);
812
- if (expandedAlias) {
813
- enqueue(expandedAlias);
814
- }
815
- if (options.unwrapAsyncWrappers) {
816
- enqueue(unwrapAsyncWrapperType(current));
817
- }
818
- }
819
- if (options.includeOriginal || !expandedAlias) {
820
- out.push(current);
821
- }
822
- }
823
- return out;
824
- };
825
- const expandReferenceAlias = (state, type) => {
826
- const typeId = type.typeId ??
827
- resolveTypeIdByName(state, type.resolvedClrType ?? type.name, type.typeArguments?.length ?? 0);
828
- if (!typeId)
829
- return undefined;
830
- const entry = state.unifiedCatalog.getByTypeId(typeId);
831
- if (!entry?.aliasedType)
832
- return undefined;
833
- const aliasSubst = new Map();
834
- const aliasTypeParams = entry.typeParameters;
835
- const aliasTypeArgs = type.typeArguments ?? [];
836
- for (let i = 0; i < Math.min(aliasTypeParams.length, aliasTypeArgs.length); i++) {
837
- const tp = aliasTypeParams[i];
838
- const ta = aliasTypeArgs[i];
839
- if (tp && ta)
840
- aliasSubst.set(tp.name, ta);
841
- }
842
- return aliasSubst.size > 0
843
- ? irSubstitute(entry.aliasedType, aliasSubst)
844
- : entry.aliasedType;
845
- };
846
- // ─────────────────────────────────────────────────────────────────────────
847
- // containsMethodTypeParameter — Pure recursive type parameter check
848
- // ─────────────────────────────────────────────────────────────────────────
849
- export const containsMethodTypeParameter = (type, unresolved) => {
850
- if (type.kind === "typeParameterType")
851
- return unresolved.has(type.name);
852
- if (type.kind === "referenceType") {
853
- return (type.typeArguments ?? []).some((t) => t ? containsMethodTypeParameter(t, unresolved) : false);
854
- }
855
- if (type.kind === "arrayType") {
856
- return containsMethodTypeParameter(type.elementType, unresolved);
857
- }
858
- if (type.kind === "tupleType") {
859
- return type.elementTypes.some((t) => t ? containsMethodTypeParameter(t, unresolved) : false);
860
- }
861
- if (type.kind === "functionType") {
862
- const paramsContain = type.parameters.some((p) => p.type ? containsMethodTypeParameter(p.type, unresolved) : false);
863
- return (paramsContain || containsMethodTypeParameter(type.returnType, unresolved));
864
- }
865
- if (type.kind === "unionType" || type.kind === "intersectionType") {
866
- return type.types.some((t) => t ? containsMethodTypeParameter(t, unresolved) : false);
867
- }
868
- if (type.kind === "objectType") {
869
- return type.members.some((m) => {
870
- if (m.kind === "propertySignature") {
871
- return containsMethodTypeParameter(m.type, unresolved);
872
- }
873
- if (m.kind === "methodSignature") {
874
- const paramsContain = m.parameters.some((p) => p.type ? containsMethodTypeParameter(p.type, unresolved) : false);
875
- return (paramsContain ||
876
- (m.returnType
877
- ? containsMethodTypeParameter(m.returnType, unresolved)
878
- : false));
879
- }
880
- return false;
881
- });
882
- }
883
- return false;
884
- };
885
- // ─────────────────────────────────────────────────────────────────────────
886
- // normalizeCatalogTsName — Pure catalog name normalization
887
- // ─────────────────────────────────────────────────────────────────────────
888
- export const normalizeCatalogTsName = (name) => {
889
- if (name.endsWith("$instance"))
890
- return name.slice(0, -"$instance".length);
891
- if (name.startsWith("__") && name.endsWith("$views")) {
892
- return name.slice("__".length, -"$views".length);
893
- }
894
- return name;
895
- };
896
- // ─────────────────────────────────────────────────────────────────────────
897
- // isArityCompatible — Pure arity check for overload resolution
898
- // ─────────────────────────────────────────────────────────────────────────
899
- export const isArityCompatible = (signature, argumentCount) => {
900
- const params = signature.parameters;
901
- if (params.length === 0)
902
- return argumentCount === 0;
903
- // Rest parameter can absorb any extra args.
904
- const restIndex = params.findIndex((p) => p.isRest);
905
- if (restIndex >= 0) {
906
- // Only support `...rest` in the last position.
907
- if (restIndex !== params.length - 1)
908
- return false;
909
- // Must supply all non-rest parameters.
910
- if (argumentCount < restIndex)
911
- return false;
912
- return true;
913
- }
914
- // Too many args for non-rest signature.
915
- if (argumentCount > params.length)
916
- return false;
917
- // Missing args must correspond to optional parameters.
918
- for (let i = argumentCount; i < params.length; i++) {
919
- const p = params[i];
920
- if (!p || !p.isOptional)
921
- return false;
922
- }
923
- return true;
924
- };
925
- // ─────────────────────────────────────────────────────────────────────────
926
- // scoreSignatureMatch — Overload scoring
927
- // ─────────────────────────────────────────────────────────────────────────
928
- export const scoreSignatureMatch = (state, parameterTypes, argTypes, argumentCount) => {
929
- let score = 0;
930
- const pairs = Math.min(argumentCount, parameterTypes.length, argTypes.length);
931
- for (let i = 0; i < pairs; i++) {
932
- const pt = parameterTypes[i];
933
- const at = argTypes[i];
934
- if (!pt || !at)
935
- continue;
936
- if (typesEqual(pt, at)) {
937
- score += 3;
938
- continue;
939
- }
940
- const pNom = normalizeToNominal(state, pt);
941
- const aNom = normalizeToNominal(state, at);
942
- if (!pNom || !aNom)
943
- continue;
944
- if (pNom.typeId.stableId === aNom.typeId.stableId) {
945
- score += 2;
946
- continue;
947
- }
948
- const inst = state.nominalEnv.getInstantiation(aNom.typeId, aNom.typeArgs, pNom.typeId);
949
- if (inst)
950
- score += 1;
951
- }
952
- return score;
953
- };
954
- // ─────────────────────────────────────────────────────────────────────────
955
- // tryResolveCallFromUnifiedCatalog — Assembly-origin overload resolution
956
- // ─────────────────────────────────────────────────────────────────────────
957
- export const tryResolveCallFromUnifiedCatalog = (state, declaringTypeTsName, declaringMemberName, query) => {
958
- const { argumentCount, receiverType, explicitTypeArgs, argTypes } = query;
959
- if (!argTypes)
960
- return undefined;
961
- if (argTypes.length < argumentCount)
962
- return undefined;
963
- for (let i = 0; i < argumentCount; i++) {
964
- if (!argTypes[i])
965
- return undefined;
966
- }
967
- const catalogTypeName = normalizeCatalogTsName(declaringTypeTsName);
968
- const declaringTypeId = resolveTypeIdByName(state, catalogTypeName);
969
- if (!declaringTypeId)
970
- return undefined;
971
- const entry = state.unifiedCatalog.getByTypeId(declaringTypeId);
972
- if (!entry || entry.origin !== "assembly")
973
- return undefined;
974
- const member = state.unifiedCatalog.getMember(declaringTypeId, declaringMemberName);
975
- const candidates = member?.signatures;
976
- if (!candidates || candidates.length === 0)
977
- return undefined;
978
- const resolveCandidate = (signature) => {
979
- if (!isArityCompatible(signature, argumentCount))
980
- return undefined;
981
- let workingParams = signature.parameters.map((p) => p.type);
982
- let workingReturn = signature.returnType;
983
- // Receiver substitution (class type params) for instance calls.
984
- if (receiverType) {
985
- const receiverSubst = computeReceiverSubstitution(state, receiverType, catalogTypeName, declaringMemberName, state.unifiedCatalog
986
- .getTypeParameters(declaringTypeId)
987
- .map((param) => param.name));
988
- if (receiverSubst && receiverSubst.size > 0) {
989
- workingParams = workingParams.map((p) => irSubstitute(p, receiverSubst));
990
- workingReturn = irSubstitute(workingReturn, receiverSubst);
991
- }
992
- }
993
- // Method type parameter substitution.
994
- const methodTypeParams = signature.typeParameters.map((tp) => ({
995
- name: tp.name,
996
- constraint: tp.constraint,
997
- defaultType: tp.defaultType,
998
- }));
999
- if (methodTypeParams.length > 0) {
1000
- const callSubst = new Map();
1001
- if (explicitTypeArgs) {
1002
- for (let i = 0; i < Math.min(explicitTypeArgs.length, methodTypeParams.length); i++) {
1003
- const param = methodTypeParams[i];
1004
- const arg = explicitTypeArgs[i];
1005
- if (param && arg) {
1006
- callSubst.set(param.name, arg);
1007
- }
1008
- }
1009
- }
1010
- const paramsForInferenceBase = callSubst.size > 0
1011
- ? workingParams.map((p) => irSubstitute(p, callSubst))
1012
- : workingParams;
1013
- const paramsForInference = expandParameterTypesForInference(signature.parameters, paramsForInferenceBase, argTypes.length);
1014
- const inferred = inferMethodTypeArgsFromArguments(state, methodTypeParams, paramsForInference, argTypes);
1015
- if (!inferred)
1016
- return undefined;
1017
- for (const [name, inferredType] of inferred) {
1018
- const existing = callSubst.get(name);
1019
- if (existing) {
1020
- if (!typesEqual(existing, inferredType))
1021
- return undefined;
1022
- continue;
1023
- }
1024
- callSubst.set(name, inferredType);
1025
- }
1026
- for (const tp of methodTypeParams) {
1027
- if (!callSubst.has(tp.name) && tp.defaultType) {
1028
- callSubst.set(tp.name, tp.defaultType);
1029
- }
1030
- }
1031
- if (callSubst.size > 0) {
1032
- workingParams = workingParams.map((p) => irSubstitute(p, callSubst));
1033
- workingReturn = irSubstitute(workingReturn, callSubst);
1034
- }
1035
- const unresolved = new Set(methodTypeParams
1036
- .map((tp) => tp.name)
1037
- .filter((name) => !callSubst.has(name)));
1038
- if (unresolved.size > 0 &&
1039
- containsMethodTypeParameter(workingReturn, unresolved)) {
1040
- return undefined;
1041
- }
1042
- }
1043
- return {
1044
- parameterTypes: workingParams,
1045
- parameterModes: signature.parameters.map((p) => p.mode),
1046
- returnType: workingReturn,
1047
- hasDeclaredReturnType: true,
1048
- typePredicate: undefined,
1049
- diagnostics: [],
1050
- };
1051
- };
1052
- let best;
1053
- for (const sig of candidates) {
1054
- const resolved = resolveCandidate(sig);
1055
- if (!resolved)
1056
- continue;
1057
- if (resolved.returnType.kind === "unknownType")
1058
- continue;
1059
- const candidate = {
1060
- resolved,
1061
- score: scoreSignatureMatch(state, resolved.parameterTypes, argTypes, argumentCount),
1062
- typeParamCount: sig.typeParameters.length,
1063
- parameterCount: sig.parameters.length,
1064
- stableId: sig.stableId,
1065
- };
1066
- if (!best) {
1067
- best = candidate;
1068
- continue;
1069
- }
1070
- const better = candidate.score > best.score ||
1071
- (candidate.score === best.score &&
1072
- candidate.typeParamCount < best.typeParamCount) ||
1073
- (candidate.score === best.score &&
1074
- candidate.typeParamCount === best.typeParamCount &&
1075
- candidate.parameterCount < best.parameterCount) ||
1076
- (candidate.score === best.score &&
1077
- candidate.typeParamCount === best.typeParamCount &&
1078
- candidate.parameterCount === best.parameterCount &&
1079
- candidate.stableId < best.stableId);
1080
- if (better)
1081
- best = candidate;
1082
- }
1083
- return best?.resolved;
1084
- };
1085
- // ─────────────────────────────────────────────────────────────────────────
1086
- // resolveCall — Main entry point for call resolution
1087
- // ─────────────────────────────────────────────────────────────────────────
1088
- export const resolveCall = (state, query) => {
1089
- const { sigId, argumentCount, receiverType, explicitTypeArgs, argTypes, expectedReturnType, site, } = query;
1090
- // Extension method scopes are modeled as TS-only wrapper types (e.g. __TsonicExt_Ef<T>).
1091
- // They must erase to their underlying CLR shapes for deterministic call inference.
1092
- const effectiveReceiverType = receiverType
1093
- ? stripTsonicExtensionWrappers(receiverType)
1094
- : undefined;
1095
- // 1. Load raw signature (cached)
1096
- const rawSig = getRawSignature(state, sigId);
1097
- if (!rawSig) {
1098
- // BINDING CONTRACT VIOLATION (Alice's spec): If Binding returned a
1099
- // SignatureId, HandleRegistry.getSignature(sigId) MUST succeed.
1100
- // This indicates a bug in Binding, not a normal runtime condition.
1101
- //
1102
- // However, we cannot throw during normal compilation as it would
1103
- // crash the compiler. Instead, emit diagnostic and return poisoned
1104
- // result with correct arity.
1105
- emitDiagnostic(state, "TSN5203", `Cannot resolve signature (Binding contract violation: ID ${sigId.id} not in HandleRegistry)`, site);
1106
- return poisonedCall(argumentCount, state.diagnostics.slice());
1107
- }
1108
- // 2. Start with raw types
1109
- let workingParams = [...rawSig.parameterTypes];
1110
- let workingThisParam = rawSig.thisParameterType;
1111
- let workingReturn = rawSig.returnType;
1112
- let workingPredicate = rawSig.typePredicate;
1113
- const collectTypeParameterNames = (type, acc) => {
1114
- if (!type)
1115
- return;
1116
- switch (type.kind) {
1117
- case "typeParameterType":
1118
- acc.add(type.name);
1119
- return;
1120
- case "arrayType":
1121
- collectTypeParameterNames(type.elementType, acc);
1122
- return;
1123
- case "tupleType":
1124
- for (const e of type.elementTypes) {
1125
- collectTypeParameterNames(e, acc);
1126
- }
1127
- return;
1128
- case "dictionaryType":
1129
- collectTypeParameterNames(type.keyType, acc);
1130
- collectTypeParameterNames(type.valueType, acc);
1131
- return;
1132
- case "referenceType":
1133
- for (const t of type.typeArguments ?? []) {
1134
- collectTypeParameterNames(t, acc);
1135
- }
1136
- for (const m of type.structuralMembers ?? []) {
1137
- if (m.kind === "propertySignature") {
1138
- collectTypeParameterNames(m.type, acc);
1139
- }
1140
- else {
1141
- for (const p of m.parameters) {
1142
- collectTypeParameterNames(p.type, acc);
1143
- }
1144
- collectTypeParameterNames(m.returnType, acc);
1145
- }
1146
- }
1147
- return;
1148
- case "unionType":
1149
- case "intersectionType":
1150
- for (const t of type.types) {
1151
- collectTypeParameterNames(t, acc);
1152
- }
1153
- return;
1154
- case "functionType":
1155
- for (const p of type.parameters) {
1156
- collectTypeParameterNames(p.type, acc);
1157
- }
1158
- collectTypeParameterNames(type.returnType, acc);
1159
- return;
1160
- default:
1161
- return;
1162
- }
1163
- };
1164
- const collectReceiverGenericNames = () => {
1165
- const names = new Set();
1166
- for (const p of workingParams) {
1167
- collectTypeParameterNames(p, names);
1168
- }
1169
- collectTypeParameterNames(workingThisParam, names);
1170
- collectTypeParameterNames(workingReturn, names);
1171
- if (workingPredicate) {
1172
- collectTypeParameterNames(workingPredicate.targetType, names);
1173
- }
1174
- for (const methodTp of rawSig.typeParameters) {
1175
- names.delete(methodTp.name);
1176
- }
1177
- return names;
1178
- };
1179
- // 3. Compute receiver substitution (class type params)
1180
- if (effectiveReceiverType &&
1181
- rawSig.declaringTypeTsName &&
1182
- rawSig.declaringMemberName) {
1183
- let receiverSubst = computeReceiverSubstitution(state, effectiveReceiverType, rawSig.declaringTypeTsName, rawSig.declaringMemberName, rawSig.declaringTypeParameterNames);
1184
- // Array receiver fallback:
1185
- // Some surfaces model JS-style array methods on generic wrapper declarations
1186
- // where nominal inheritance metadata may not connect `T[]` to the wrapper's
1187
- // type parameter. If nominal substitution is unavailable, and exactly one
1188
- // non-method type parameter remains in the signature, bind it to the array
1189
- // element type deterministically.
1190
- if ((!receiverSubst || receiverSubst.size === 0) &&
1191
- effectiveReceiverType.kind === "arrayType") {
1192
- const receiverGenericNames = collectReceiverGenericNames();
1193
- if (receiverGenericNames.size === 1) {
1194
- const [only] = receiverGenericNames;
1195
- if (only) {
1196
- receiverSubst = new Map([
1197
- [only, effectiveReceiverType.elementType],
1198
- ]);
1199
- }
1200
- }
1201
- }
1202
- if (receiverSubst && receiverSubst.size > 0) {
1203
- workingParams = workingParams.map((p) => p ? irSubstitute(p, receiverSubst) : undefined);
1204
- if (workingThisParam) {
1205
- workingThisParam = irSubstitute(workingThisParam, receiverSubst);
1206
- }
1207
- workingReturn = irSubstitute(workingReturn, receiverSubst);
1208
- if (workingPredicate) {
1209
- workingPredicate =
1210
- workingPredicate.kind === "param"
1211
- ? {
1212
- ...workingPredicate,
1213
- targetType: irSubstitute(workingPredicate.targetType, receiverSubst),
1214
- }
1215
- : {
1216
- ...workingPredicate,
1217
- targetType: irSubstitute(workingPredicate.targetType, receiverSubst),
1218
- };
1219
- }
1220
- }
1221
- }
1222
- // 4. Compute call substitution (method type params)
1223
- const methodTypeParams = rawSig.typeParameters;
1224
- if (methodTypeParams.length > 0) {
1225
- const callSubst = new Map();
1226
- // Source 1: Explicit type args from call syntax
1227
- if (explicitTypeArgs) {
1228
- for (let i = 0; i < Math.min(explicitTypeArgs.length, methodTypeParams.length); i++) {
1229
- const param = methodTypeParams[i];
1230
- const arg = explicitTypeArgs[i];
1231
- if (param && arg) {
1232
- callSubst.set(param.name, arg);
1233
- }
1234
- }
1235
- }
1236
- // Source 2: Deterministic argument-driven unification
1237
- // 2a) Receiver-driven unification via TS `this:` parameter
1238
- //
1239
- // Method-table extension typing represents the receiver as an explicit `this:` parameter
1240
- // in the `.d.ts` signature. Generic methods like:
1241
- // ToArrayAsync<T>(this: IQueryable<T>, ...): Task<T[]>
1242
- // must infer T from the receiver even when there are ZERO call arguments.
1243
- //
1244
- // This is airplane-grade determinism: we anchor inference to the selected TS signature's
1245
- // `this:` type and the IR receiver type (not TS structural tricks).
1246
- if (effectiveReceiverType && workingThisParam) {
1247
- const receiverParamForInference = callSubst.size > 0
1248
- ? irSubstitute(workingThisParam, callSubst)
1249
- : workingThisParam;
1250
- const inferredFromReceiver = inferMethodTypeArgsFromArguments(state, methodTypeParams, [receiverParamForInference], [effectiveReceiverType]);
1251
- if (inferredFromReceiver) {
1252
- for (const [name, inferredType] of inferredFromReceiver) {
1253
- const existing = callSubst.get(name);
1254
- if (existing) {
1255
- if (!typesEqual(existing, inferredType)) {
1256
- emitDiagnostic(state, "TSN5202", `Conflicting type argument inference for '${name}' (receiver)`, site);
1257
- return poisonedCall(argumentCount, state.diagnostics.slice());
1258
- }
1259
- continue;
1260
- }
1261
- callSubst.set(name, inferredType);
1262
- }
1263
- }
1264
- }
1265
- // 2b) Argument-driven unification (run even when argTypes is empty).
1266
- if (argTypes) {
1267
- const paramsForInferenceBase = callSubst.size > 0
1268
- ? workingParams.map((p) => p ? irSubstitute(p, callSubst) : undefined)
1269
- : workingParams;
1270
- const paramsForInference = expandParameterTypesForInference(rawSig.parameterFlags, paramsForInferenceBase, argTypes.length);
1271
- const inferred = inferMethodTypeArgsFromArguments(state, methodTypeParams, paramsForInference, argTypes);
1272
- if (!inferred) {
1273
- emitDiagnostic(state, "TSN5202", "Type arguments cannot be inferred deterministically from arguments", site);
1274
- return poisonedCall(argumentCount, state.diagnostics.slice());
1275
- }
1276
- for (const [name, inferredType] of inferred) {
1277
- const existing = callSubst.get(name);
1278
- if (existing) {
1279
- if (!typesEqual(existing, inferredType)) {
1280
- emitDiagnostic(state, "TSN5202", `Conflicting type argument inference for '${name}'`, site);
1281
- return poisonedCall(argumentCount, state.diagnostics.slice());
1282
- }
1283
- continue;
1284
- }
1285
- callSubst.set(name, inferredType);
1286
- }
1287
- }
1288
- // Source 3: Contextual expected return type from the call site.
1289
- // This handles generic APIs where method type parameters appear only in
1290
- // the return position (or where argument inference is intentionally weak).
1291
- if (expectedReturnType) {
1292
- const returnForInference = callSubst.size > 0
1293
- ? irSubstitute(workingReturn, callSubst)
1294
- : workingReturn;
1295
- const expectedCandidates = collectExpectedReturnCandidates(state, expectedReturnType);
1296
- let matched;
1297
- for (const candidate of expectedCandidates) {
1298
- const inferred = inferMethodTypeArgsFromArguments(state, methodTypeParams, [returnForInference], [candidate]);
1299
- if (!inferred || inferred.size === 0)
1300
- continue;
1301
- let conflictsWithExisting = false;
1302
- for (const [name, inferredType] of inferred) {
1303
- const existing = callSubst.get(name);
1304
- if (existing && !typesEqual(existing, inferredType)) {
1305
- conflictsWithExisting = true;
1306
- break;
1307
- }
1308
- }
1309
- if (conflictsWithExisting)
1310
- continue;
1311
- if (matched && !mapEntriesEqual(matched, inferred)) {
1312
- // Ambiguous contextual-return inference: ignore this source and
1313
- // rely on explicit/argument/default inference only.
1314
- matched = undefined;
1315
- break;
1316
- }
1317
- matched = inferred;
1318
- }
1319
- if (matched) {
1320
- for (const [name, inferredType] of matched) {
1321
- const existing = callSubst.get(name);
1322
- if (existing) {
1323
- if (!typesEqual(existing, inferredType)) {
1324
- emitDiagnostic(state, "TSN5202", `Conflicting type argument inference for '${name}' (expected return context)`, site);
1325
- return poisonedCall(argumentCount, state.diagnostics.slice());
1326
- }
1327
- continue;
1328
- }
1329
- callSubst.set(name, inferredType);
1330
- }
1331
- }
1332
- }
1333
- // Source 4: Default type parameters
1334
- for (const tp of methodTypeParams) {
1335
- if (!callSubst.has(tp.name) && tp.defaultType) {
1336
- callSubst.set(tp.name, tp.defaultType);
1337
- }
1338
- }
1339
- // Apply call substitution
1340
- if (callSubst.size > 0) {
1341
- workingParams = workingParams.map((p) => p ? irSubstitute(p, callSubst) : undefined);
1342
- workingReturn = irSubstitute(workingReturn, callSubst);
1343
- if (workingPredicate) {
1344
- workingPredicate =
1345
- workingPredicate.kind === "param"
1346
- ? {
1347
- ...workingPredicate,
1348
- targetType: irSubstitute(workingPredicate.targetType, callSubst),
1349
- }
1350
- : {
1351
- ...workingPredicate,
1352
- targetType: irSubstitute(workingPredicate.targetType, callSubst),
1353
- };
1354
- }
1355
- }
1356
- // Check for unresolved method type parameters (after explicit/arg/default inference)
1357
- const unresolved = new Set(methodTypeParams
1358
- .map((tp) => tp.name)
1359
- .filter((name) => !callSubst.has(name)));
1360
- if (unresolved.size > 0 &&
1361
- containsMethodTypeParameter(workingReturn, unresolved)) {
1362
- const fallback = argTypes && rawSig.declaringTypeTsName && rawSig.declaringMemberName
1363
- ? tryResolveCallFromUnifiedCatalog(state, rawSig.declaringTypeTsName, rawSig.declaringMemberName, query)
1364
- : undefined;
1365
- if (fallback) {
1366
- return fallback;
1367
- }
1368
- emitDiagnostic(state, "TSN5202", "Return type contains unresolved type parameters - explicit type arguments required", site);
1369
- workingReturn = unknownType;
1370
- }
1371
- }
1372
- const resolved = {
1373
- parameterTypes: workingParams,
1374
- parameterModes: rawSig.parameterModes,
1375
- returnType: workingReturn,
1376
- hasDeclaredReturnType: rawSig.hasDeclaredReturnType,
1377
- typePredicate: workingPredicate,
1378
- diagnostics: [],
1379
- };
1380
- // CLR overload correction (airplane-grade determinism):
1381
- //
1382
- // TypeScript cannot always select the correct overload for CLR APIs because some
1383
- // Tsonic surface types intentionally erase to TS primitives (e.g., `char` is `string`
1384
- // in @tsonic/core for TSC compatibility). This can cause TS to resolve calls like
1385
- // Console.writeLine("Hello") to a `char` overload, which is semantically invalid.
1386
- //
1387
- // When we have full argument types, and the call targets an assembly-origin type,
1388
- // prefer the best matching overload from the UnifiedTypeCatalog if it scores higher
1389
- // than the TS-selected signature.
1390
- if (!resolved.typePredicate &&
1391
- argTypes &&
1392
- rawSig.declaringTypeTsName &&
1393
- rawSig.declaringMemberName) {
1394
- const hasAllArgTypes = argTypes.length >= argumentCount &&
1395
- Array.from({ length: argumentCount }, (_, i) => argTypes[i]).every((t) => t !== undefined);
1396
- if (hasAllArgTypes) {
1397
- const catalogResolved = tryResolveCallFromUnifiedCatalog(state, rawSig.declaringTypeTsName, rawSig.declaringMemberName, query);
1398
- if (catalogResolved) {
1399
- const currentScore = scoreSignatureMatch(state, resolved.parameterTypes, argTypes, argumentCount);
1400
- const catalogScore = scoreSignatureMatch(state, catalogResolved.parameterTypes, argTypes, argumentCount);
1401
- if (catalogScore > currentScore) {
1402
- return catalogResolved;
1403
- }
1404
- }
1405
- }
1406
- }
1407
- return resolved;
1408
- };
2
+ * TypeSystem Call Resolution — Facade
3
+ *
4
+ * Re-exports all call resolution sub-modules and the main `resolveCall` entry point.
5
+ *
6
+ * Sub-modules:
7
+ * - call-resolution-utilities: Pure type helpers, type ID attachment, parameter expansion
8
+ * - call-resolution-signatures: Signature extraction, structural lookup, delegate conversion,
9
+ * receiver substitution
10
+ * - call-resolution-inference: Generic type argument inference, overload scoring, parameter refinement
11
+ * - call-resolution-resolve: Main resolveCall entry point
12
+ */
13
+ // ─── Re-exports from sub-modules ─────────────────────────────────────────
14
+ export { substitutePolymorphicThis, attachParameterTypeIds, attachTypeParameterTypeIds, attachInterfaceMemberTypeIds, attachTypeIds, convertTypeNode, delegateToFunctionType, mapEntriesEqual, containsMethodTypeParameter, normalizeCatalogTsName, expandParameterTypesForInference, expandParameterTypesForArguments, buildResolvedRestParameter, collectExpectedReturnCandidates, collectNarrowingCandidates, POLYMORPHIC_THIS_MARKER, } from "./call-resolution-utilities.js";
15
+ export { getRawSignature, lookupStructuralMember, computeReceiverSubstitution, } from "./call-resolution-signatures.js";
16
+ export { inferMethodTypeArgsFromArguments, isArityCompatible, scoreSignatureMatch, refineParameterTypeForConcreteArgument, refineResolvedParameterTypesForArguments, } from "./call-resolution-inference.js";
17
+ export { resolveCall } from "./call-resolution-resolve.js";
18
+ export { resolveCallableType } from "./call-resolution-callable-types.js";
1409
19
  //# sourceMappingURL=type-system-call-resolution.js.map