@tsonic/emitter 0.0.76 → 0.0.78

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 (709) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/array.test.js +8 -4
  3. package/dist/array.test.js.map +1 -1
  4. package/dist/core/format/backend-ast/invariants.test.js +5 -0
  5. package/dist/core/format/backend-ast/invariants.test.js.map +1 -1
  6. package/dist/core/format/backend-ast/printer-colon-detection.d.ts.map +1 -1
  7. package/dist/core/format/backend-ast/printer-colon-detection.js +2 -0
  8. package/dist/core/format/backend-ast/printer-colon-detection.js.map +1 -1
  9. package/dist/core/format/backend-ast/printer-expressions.d.ts.map +1 -1
  10. package/dist/core/format/backend-ast/printer-expressions.js +4 -0
  11. package/dist/core/format/backend-ast/printer-expressions.js.map +1 -1
  12. package/dist/core/format/backend-ast/printer-precedence.d.ts.map +1 -1
  13. package/dist/core/format/backend-ast/printer-precedence.js +1 -0
  14. package/dist/core/format/backend-ast/printer-precedence.js.map +1 -1
  15. package/dist/core/format/backend-ast/types/expression-ast.d.ts +5 -1
  16. package/dist/core/format/backend-ast/types/expression-ast.d.ts.map +1 -1
  17. package/dist/core/format/backend-ast/utils.d.ts +3 -0
  18. package/dist/core/format/backend-ast/utils.d.ts.map +1 -1
  19. package/dist/core/format/backend-ast/utils.js +39 -0
  20. package/dist/core/format/backend-ast/utils.js.map +1 -1
  21. package/dist/core/format/backend-ast/utils.test.js +13 -1
  22. package/dist/core/format/backend-ast/utils.test.js.map +1 -1
  23. package/dist/core/format/local-names.d.ts.map +1 -1
  24. package/dist/core/format/local-names.js +3 -2
  25. package/dist/core/format/local-names.js.map +1 -1
  26. package/dist/core/format/local-names.test.js +7 -6
  27. package/dist/core/format/local-names.test.js.map +1 -1
  28. package/dist/core/format/module-emitter/orchestrator.d.ts.map +1 -1
  29. package/dist/core/format/module-emitter/orchestrator.js +3 -1
  30. package/dist/core/format/module-emitter/orchestrator.js.map +1 -1
  31. package/dist/core/format/module-emitter/static-container.d.ts.map +1 -1
  32. package/dist/core/format/module-emitter/static-container.js +2 -4
  33. package/dist/core/format/module-emitter/static-container.js.map +1 -1
  34. package/dist/core/module-emitter-cases/class-and-recursion.test.js +4 -1
  35. package/dist/core/module-emitter-cases/class-and-recursion.test.js.map +1 -1
  36. package/dist/core/module-emitter-cases/static-containers.test.js +113 -2
  37. package/dist/core/module-emitter-cases/static-containers.test.js.map +1 -1
  38. package/dist/core/semantic/adapt-result.d.ts +20 -0
  39. package/dist/core/semantic/adapt-result.d.ts.map +1 -0
  40. package/dist/core/semantic/adapt-result.js +30 -0
  41. package/dist/core/semantic/adapt-result.js.map +1 -0
  42. package/dist/core/semantic/array-expected-types.d.ts.map +1 -1
  43. package/dist/core/semantic/array-expected-types.js +1 -1
  44. package/dist/core/semantic/array-expected-types.js.map +1 -1
  45. package/dist/core/semantic/assignment-flow.d.ts.map +1 -1
  46. package/dist/core/semantic/assignment-flow.js +28 -4
  47. package/dist/core/semantic/assignment-flow.js.map +1 -1
  48. package/dist/core/semantic/async-wrapper-types.d.ts +1 -0
  49. package/dist/core/semantic/async-wrapper-types.d.ts.map +1 -1
  50. package/dist/core/semantic/async-wrapper-types.js +19 -1
  51. package/dist/core/semantic/async-wrapper-types.js.map +1 -1
  52. package/dist/core/semantic/boolean-condition-main.d.ts.map +1 -1
  53. package/dist/core/semantic/boolean-condition-main.js +6 -2
  54. package/dist/core/semantic/boolean-condition-main.js.map +1 -1
  55. package/dist/core/semantic/boolean-context.test.js +2 -1
  56. package/dist/core/semantic/boolean-context.test.js.map +1 -1
  57. package/dist/core/semantic/broad-array-storage.d.ts.map +1 -1
  58. package/dist/core/semantic/broad-array-storage.js +2 -5
  59. package/dist/core/semantic/broad-array-storage.js.map +1 -1
  60. package/dist/core/semantic/broad-object-types.d.ts +1 -0
  61. package/dist/core/semantic/broad-object-types.d.ts.map +1 -1
  62. package/dist/core/semantic/broad-object-types.js +39 -0
  63. package/dist/core/semantic/broad-object-types.js.map +1 -1
  64. package/dist/core/semantic/clr-type-identity.d.ts +1 -2
  65. package/dist/core/semantic/clr-type-identity.d.ts.map +1 -1
  66. package/dist/core/semantic/clr-type-identity.js +3 -65
  67. package/dist/core/semantic/clr-type-identity.js.map +1 -1
  68. package/dist/core/semantic/comparable-types.d.ts.map +1 -1
  69. package/dist/core/semantic/comparable-types.js +61 -27
  70. package/dist/core/semantic/comparable-types.js.map +1 -1
  71. package/dist/core/semantic/comparable-types.test.js.map +1 -1
  72. package/dist/core/semantic/deterministic-type-keys.d.ts.map +1 -1
  73. package/dist/core/semantic/deterministic-type-keys.js +90 -37
  74. package/dist/core/semantic/deterministic-type-keys.js.map +1 -1
  75. package/dist/core/semantic/deterministic-type-keys.test.d.ts +2 -0
  76. package/dist/core/semantic/deterministic-type-keys.test.d.ts.map +1 -0
  77. package/dist/core/semantic/deterministic-type-keys.test.js +38 -0
  78. package/dist/core/semantic/deterministic-type-keys.test.js.map +1 -0
  79. package/dist/core/semantic/direct-storage-ir-types.d.ts +1 -1
  80. package/dist/core/semantic/direct-storage-ir-types.d.ts.map +1 -1
  81. package/dist/core/semantic/direct-storage-ir-types.js +12 -3
  82. package/dist/core/semantic/direct-storage-ir-types.js.map +1 -1
  83. package/dist/core/semantic/direct-value-surfaces.d.ts.map +1 -1
  84. package/dist/core/semantic/direct-value-surfaces.js +166 -6
  85. package/dist/core/semantic/direct-value-surfaces.js.map +1 -1
  86. package/dist/core/semantic/direct-value-surfaces.test.js +69 -6
  87. package/dist/core/semantic/direct-value-surfaces.test.js.map +1 -1
  88. package/dist/core/semantic/expected-type-matching.d.ts.map +1 -1
  89. package/dist/core/semantic/expected-type-matching.js +4 -5
  90. package/dist/core/semantic/expected-type-matching.js.map +1 -1
  91. package/dist/core/semantic/implicit-interfaces.d.ts.map +1 -1
  92. package/dist/core/semantic/implicit-interfaces.js.map +1 -1
  93. package/dist/core/semantic/imports-cases/basic-and-local.test.js +8 -8
  94. package/dist/core/semantic/imports-cases/basic-and-local.test.js.map +1 -1
  95. package/dist/core/semantic/imports.js +3 -2
  96. package/dist/core/semantic/imports.js.map +1 -1
  97. package/dist/core/semantic/index.d.ts +1 -1
  98. package/dist/core/semantic/index.d.ts.map +1 -1
  99. package/dist/core/semantic/index.js +1 -1
  100. package/dist/core/semantic/index.js.map +1 -1
  101. package/dist/core/semantic/instanceof-predicate-refinements.d.ts.map +1 -1
  102. package/dist/core/semantic/instanceof-predicate-refinements.js +2 -10
  103. package/dist/core/semantic/instanceof-predicate-refinements.js.map +1 -1
  104. package/dist/core/semantic/materialized-narrowing.d.ts +1 -0
  105. package/dist/core/semantic/materialized-narrowing.d.ts.map +1 -1
  106. package/dist/core/semantic/materialized-narrowing.js +170 -34
  107. package/dist/core/semantic/materialized-narrowing.js.map +1 -1
  108. package/dist/core/semantic/materialized-narrowing.test.js +24 -6
  109. package/dist/core/semantic/materialized-narrowing.test.js.map +1 -1
  110. package/dist/core/semantic/module-map.d.ts.map +1 -1
  111. package/dist/core/semantic/module-map.js +4 -6
  112. package/dist/core/semantic/module-map.js.map +1 -1
  113. package/dist/core/semantic/module-type-collisions.d.ts +7 -0
  114. package/dist/core/semantic/module-type-collisions.d.ts.map +1 -0
  115. package/dist/core/semantic/module-type-collisions.js +24 -0
  116. package/dist/core/semantic/module-type-collisions.js.map +1 -0
  117. package/dist/core/semantic/mutable-storage-helpers.d.ts +1 -1
  118. package/dist/core/semantic/mutable-storage-helpers.d.ts.map +1 -1
  119. package/dist/core/semantic/mutable-storage-helpers.js +5 -12
  120. package/dist/core/semantic/mutable-storage-helpers.js.map +1 -1
  121. package/dist/core/semantic/naming-collisions.d.ts.map +1 -1
  122. package/dist/core/semantic/naming-collisions.js +13 -3
  123. package/dist/core/semantic/naming-collisions.js.map +1 -1
  124. package/dist/core/semantic/narrowed-expression-types.d.ts +3 -1
  125. package/dist/core/semantic/narrowed-expression-types.d.ts.map +1 -1
  126. package/dist/core/semantic/narrowed-expression-types.js +139 -17
  127. package/dist/core/semantic/narrowed-expression-types.js.map +1 -1
  128. package/dist/core/semantic/narrowed-union-resolution.d.ts.map +1 -1
  129. package/dist/core/semantic/narrowed-union-resolution.js +14 -3
  130. package/dist/core/semantic/narrowed-union-resolution.js.map +1 -1
  131. package/dist/core/semantic/narrowing-builder-core.d.ts +3 -2
  132. package/dist/core/semantic/narrowing-builder-core.d.ts.map +1 -1
  133. package/dist/core/semantic/narrowing-builder-core.js +85 -126
  134. package/dist/core/semantic/narrowing-builder-core.js.map +1 -1
  135. package/dist/core/semantic/narrowing-builder-core.test.js +3 -2
  136. package/dist/core/semantic/narrowing-builder-core.test.js.map +1 -1
  137. package/dist/core/semantic/narrowing-builder-unions.d.ts.map +1 -1
  138. package/dist/core/semantic/narrowing-builder-unions.js +43 -7
  139. package/dist/core/semantic/narrowing-builder-unions.js.map +1 -1
  140. package/dist/core/semantic/narrowing-builders.d.ts +1 -1
  141. package/dist/core/semantic/narrowing-builders.d.ts.map +1 -1
  142. package/dist/core/semantic/narrowing-builders.js +1 -1
  143. package/dist/core/semantic/narrowing-builders.js.map +1 -1
  144. package/dist/core/semantic/narrowing-refinements.d.ts +1 -1
  145. package/dist/core/semantic/narrowing-refinements.d.ts.map +1 -1
  146. package/dist/core/semantic/narrowing-refinements.js +1 -1
  147. package/dist/core/semantic/narrowing-refinements.js.map +1 -1
  148. package/dist/core/semantic/nullable-typeof-refinements.d.ts +1 -5
  149. package/dist/core/semantic/nullable-typeof-refinements.d.ts.map +1 -1
  150. package/dist/core/semantic/nullable-typeof-refinements.js +136 -88
  151. package/dist/core/semantic/nullable-typeof-refinements.js.map +1 -1
  152. package/dist/core/semantic/nullish-value-helpers.d.ts +1 -1
  153. package/dist/core/semantic/nullish-value-helpers.d.ts.map +1 -1
  154. package/dist/core/semantic/nullish-value-helpers.js +18 -9
  155. package/dist/core/semantic/nullish-value-helpers.js.map +1 -1
  156. package/dist/core/semantic/runtime-materialization-targets.js +1 -1
  157. package/dist/core/semantic/runtime-materialization-targets.js.map +1 -1
  158. package/dist/core/semantic/runtime-reification.d.ts +1 -0
  159. package/dist/core/semantic/runtime-reification.d.ts.map +1 -1
  160. package/dist/core/semantic/runtime-reification.js +141 -35
  161. package/dist/core/semantic/runtime-reification.js.map +1 -1
  162. package/dist/core/semantic/runtime-union-family-preservation.js +1 -1
  163. package/dist/core/semantic/runtime-union-family-preservation.js.map +1 -1
  164. package/dist/core/semantic/runtime-union-frame.d.ts +6 -0
  165. package/dist/core/semantic/runtime-union-frame.d.ts.map +1 -0
  166. package/dist/core/semantic/runtime-union-frame.js +130 -0
  167. package/dist/core/semantic/runtime-union-frame.js.map +1 -0
  168. package/dist/core/semantic/runtime-union-matching.d.ts.map +1 -1
  169. package/dist/core/semantic/runtime-union-matching.js +13 -0
  170. package/dist/core/semantic/runtime-union-matching.js.map +1 -1
  171. package/dist/core/semantic/runtime-union-member-mapping.test.js +1 -1
  172. package/dist/core/semantic/runtime-union-member-mapping.test.js.map +1 -1
  173. package/dist/core/semantic/runtime-union-ordering.d.ts.map +1 -1
  174. package/dist/core/semantic/runtime-union-ordering.js +10 -22
  175. package/dist/core/semantic/runtime-union-ordering.js.map +1 -1
  176. package/dist/core/semantic/runtime-union-projection.d.ts.map +1 -1
  177. package/dist/core/semantic/runtime-union-projection.js +23 -7
  178. package/dist/core/semantic/runtime-union-projection.js.map +1 -1
  179. package/dist/core/semantic/runtime-union-projection.test.js +19 -1
  180. package/dist/core/semantic/runtime-union-projection.test.js.map +1 -1
  181. package/dist/core/semantic/runtime-union-registry.js +13 -13
  182. package/dist/core/semantic/runtime-union-registry.js.map +1 -1
  183. package/dist/core/semantic/runtime-unions.d.ts +3 -4
  184. package/dist/core/semantic/runtime-unions.d.ts.map +1 -1
  185. package/dist/core/semantic/runtime-unions.js +46 -145
  186. package/dist/core/semantic/runtime-unions.js.map +1 -1
  187. package/dist/core/semantic/runtime-unions.test.js +12 -7
  188. package/dist/core/semantic/runtime-unions.test.js.map +1 -1
  189. package/dist/core/semantic/semantic-union-members.d.ts.map +1 -1
  190. package/dist/core/semantic/semantic-union-members.js +1 -1
  191. package/dist/core/semantic/semantic-union-members.js.map +1 -1
  192. package/dist/core/semantic/storage-erased-adaptation.d.ts.map +1 -1
  193. package/dist/core/semantic/storage-erased-adaptation.js +8 -11
  194. package/dist/core/semantic/storage-erased-adaptation.js.map +1 -1
  195. package/dist/core/semantic/storage-erased-adaptation.test.js +4 -1
  196. package/dist/core/semantic/storage-erased-adaptation.test.js.map +1 -1
  197. package/dist/core/semantic/storage-types.d.ts +3 -0
  198. package/dist/core/semantic/storage-types.d.ts.map +1 -1
  199. package/dist/core/semantic/storage-types.js +17 -4
  200. package/dist/core/semantic/storage-types.js.map +1 -1
  201. package/dist/core/semantic/structural-shape-matching.d.ts +5 -1
  202. package/dist/core/semantic/structural-shape-matching.d.ts.map +1 -1
  203. package/dist/core/semantic/structural-shape-matching.js +29 -4
  204. package/dist/core/semantic/structural-shape-matching.js.map +1 -1
  205. package/dist/core/semantic/surface-member-semantics.d.ts +14 -0
  206. package/dist/core/semantic/surface-member-semantics.d.ts.map +1 -0
  207. package/dist/core/semantic/surface-member-semantics.js +41 -0
  208. package/dist/core/semantic/surface-member-semantics.js.map +1 -0
  209. package/dist/core/semantic/symbol-types.d.ts +2 -9
  210. package/dist/core/semantic/symbol-types.d.ts.map +1 -1
  211. package/dist/core/semantic/symbol-types.js +7 -11
  212. package/dist/core/semantic/symbol-types.js.map +1 -1
  213. package/dist/core/semantic/ternary-guards.d.ts +1 -1
  214. package/dist/core/semantic/ternary-guards.d.ts.map +1 -1
  215. package/dist/core/semantic/ternary-guards.js +2 -1
  216. package/dist/core/semantic/ternary-guards.js.map +1 -1
  217. package/dist/core/semantic/truthiness-evaluation.d.ts.map +1 -1
  218. package/dist/core/semantic/truthiness-evaluation.js +3 -3
  219. package/dist/core/semantic/truthiness-evaluation.js.map +1 -1
  220. package/dist/core/semantic/type-compatibility.d.ts +4 -2
  221. package/dist/core/semantic/type-compatibility.d.ts.map +1 -1
  222. package/dist/core/semantic/type-compatibility.js +62 -2
  223. package/dist/core/semantic/type-compatibility.js.map +1 -1
  224. package/dist/core/semantic/type-domains.d.ts +17 -0
  225. package/dist/core/semantic/type-domains.d.ts.map +1 -0
  226. package/dist/core/semantic/type-domains.js +7 -0
  227. package/dist/core/semantic/type-domains.js.map +1 -0
  228. package/dist/core/semantic/type-equivalence.d.ts.map +1 -1
  229. package/dist/core/semantic/type-equivalence.js +12 -7
  230. package/dist/core/semantic/type-equivalence.js.map +1 -1
  231. package/dist/core/semantic/type-equivalence.test.js +34 -0
  232. package/dist/core/semantic/type-equivalence.test.js.map +1 -1
  233. package/dist/core/semantic/type-resolution-cases/array-like-element.test.js +13 -4
  234. package/dist/core/semantic/type-resolution-cases/array-like-element.test.js.map +1 -1
  235. package/dist/core/semantic/type-resolution-cases/helpers.d.ts +2 -2
  236. package/dist/core/semantic/type-resolution-cases/helpers.d.ts.map +1 -1
  237. package/dist/core/semantic/type-resolution-cases/helpers.js +2 -2
  238. package/dist/core/semantic/type-resolution-cases/helpers.js.map +1 -1
  239. package/dist/core/semantic/type-resolution-cases/typeof-narrowing.test.d.ts +2 -0
  240. package/dist/core/semantic/type-resolution-cases/typeof-narrowing.test.d.ts.map +1 -0
  241. package/dist/core/semantic/type-resolution-cases/typeof-narrowing.test.js +36 -0
  242. package/dist/core/semantic/type-resolution-cases/typeof-narrowing.test.js.map +1 -0
  243. package/dist/core/semantic/type-resolution.test.d.ts +1 -1
  244. package/dist/core/semantic/type-resolution.test.d.ts.map +1 -1
  245. package/dist/core/semantic/type-resolution.test.js +1 -1
  246. package/dist/core/semantic/type-resolution.test.js.map +1 -1
  247. package/dist/core/semantic/type-substitution.d.ts.map +1 -1
  248. package/dist/core/semantic/type-substitution.js +2 -1
  249. package/dist/core/semantic/type-substitution.js.map +1 -1
  250. package/dist/core/semantic/typeof-comparison.d.ts +14 -0
  251. package/dist/core/semantic/typeof-comparison.d.ts.map +1 -0
  252. package/dist/core/semantic/typeof-comparison.js +47 -0
  253. package/dist/core/semantic/typeof-comparison.js.map +1 -0
  254. package/dist/core/semantic/union-predicate-matching.d.ts.map +1 -1
  255. package/dist/core/semantic/union-predicate-matching.js +1 -1
  256. package/dist/core/semantic/union-predicate-matching.js.map +1 -1
  257. package/dist/core/semantic/union-semantics.js +1 -1
  258. package/dist/core/semantic/union-semantics.js.map +1 -1
  259. package/dist/core/semantic/union-typeof-matching.d.ts.map +1 -1
  260. package/dist/core/semantic/union-typeof-matching.js +72 -22
  261. package/dist/core/semantic/union-typeof-matching.js.map +1 -1
  262. package/dist/core/semantic/variable-type-resolution.d.ts +1 -0
  263. package/dist/core/semantic/variable-type-resolution.d.ts.map +1 -1
  264. package/dist/core/semantic/variable-type-resolution.js +62 -6
  265. package/dist/core/semantic/variable-type-resolution.js.map +1 -1
  266. package/dist/duplicate-type-suppression.d.ts.map +1 -1
  267. package/dist/duplicate-type-suppression.js.map +1 -1
  268. package/dist/emitter-types/context.d.ts +1 -0
  269. package/dist/emitter-types/context.d.ts.map +1 -1
  270. package/dist/emitter-types/context.js +13 -1
  271. package/dist/emitter-types/context.js.map +1 -1
  272. package/dist/emitter-types/core.d.ts +10 -9
  273. package/dist/emitter-types/core.d.ts.map +1 -1
  274. package/dist/emitter-types/fqn.d.ts +0 -1
  275. package/dist/emitter-types/fqn.d.ts.map +1 -1
  276. package/dist/emitter-types/fqn.js +0 -1
  277. package/dist/emitter-types/fqn.js.map +1 -1
  278. package/dist/emitter-types/index.d.ts +1 -1
  279. package/dist/emitter-types/index.d.ts.map +1 -1
  280. package/dist/emitter-types/index.js +1 -1
  281. package/dist/emitter-types/index.js.map +1 -1
  282. package/dist/emitter.d.ts +3 -3
  283. package/dist/emitter.d.ts.map +1 -1
  284. package/dist/emitter.js +1 -7
  285. package/dist/emitter.js.map +1 -1
  286. package/dist/expression-emitter.d.ts.map +1 -1
  287. package/dist/expression-emitter.js +7 -2
  288. package/dist/expression-emitter.js.map +1 -1
  289. package/dist/expressions/access-binding.d.ts.map +1 -1
  290. package/dist/expressions/access-binding.js +38 -66
  291. package/dist/expressions/access-binding.js.map +1 -1
  292. package/dist/expressions/access-computed.d.ts.map +1 -1
  293. package/dist/expressions/access-computed.js +10 -15
  294. package/dist/expressions/access-computed.js.map +1 -1
  295. package/dist/expressions/access-function-length.d.ts +13 -0
  296. package/dist/expressions/access-function-length.d.ts.map +1 -0
  297. package/dist/expressions/access-function-length.js +115 -0
  298. package/dist/expressions/access-function-length.js.map +1 -0
  299. package/dist/expressions/access-length.d.ts +5 -11
  300. package/dist/expressions/access-length.d.ts.map +1 -1
  301. package/dist/expressions/access-length.js +18 -242
  302. package/dist/expressions/access-length.js.map +1 -1
  303. package/dist/expressions/access-length.test.js +17 -0
  304. package/dist/expressions/access-length.test.js.map +1 -1
  305. package/dist/expressions/access-property.d.ts +1 -2
  306. package/dist/expressions/access-property.d.ts.map +1 -1
  307. package/dist/expressions/access-property.js +20 -94
  308. package/dist/expressions/access-property.js.map +1 -1
  309. package/dist/expressions/access-resolution-receivers.d.ts.map +1 -1
  310. package/dist/expressions/access-resolution-receivers.js +24 -17
  311. package/dist/expressions/access-resolution-receivers.js.map +1 -1
  312. package/dist/expressions/access-resolution-types.d.ts.map +1 -1
  313. package/dist/expressions/access-resolution-types.js +7 -0
  314. package/dist/expressions/access-resolution-types.js.map +1 -1
  315. package/dist/expressions/access.d.ts +2 -2
  316. package/dist/expressions/access.d.ts.map +1 -1
  317. package/dist/expressions/access.js +11 -22
  318. package/dist/expressions/access.js.map +1 -1
  319. package/dist/expressions/architecture-invariants.test.js +112 -0
  320. package/dist/expressions/architecture-invariants.test.js.map +1 -1
  321. package/dist/expressions/await-normalization.d.ts.map +1 -1
  322. package/dist/expressions/await-normalization.js +53 -13
  323. package/dist/expressions/await-normalization.js.map +1 -1
  324. package/dist/expressions/awaitable-adaptation.d.ts +15 -0
  325. package/dist/expressions/awaitable-adaptation.d.ts.map +1 -0
  326. package/dist/expressions/awaitable-adaptation.js +174 -0
  327. package/dist/expressions/awaitable-adaptation.js.map +1 -0
  328. package/dist/expressions/calls/call-analysis.d.ts +0 -1
  329. package/dist/expressions/calls/call-analysis.d.ts.map +1 -1
  330. package/dist/expressions/calls/call-analysis.js +0 -7
  331. package/dist/expressions/calls/call-analysis.js.map +1 -1
  332. package/dist/expressions/calls/call-arguments-emit.d.ts.map +1 -1
  333. package/dist/expressions/calls/call-arguments-emit.js +236 -35
  334. package/dist/expressions/calls/call-arguments-emit.js.map +1 -1
  335. package/dist/expressions/calls/call-arguments-helpers.d.ts.map +1 -1
  336. package/dist/expressions/calls/call-arguments-helpers.js +2 -2
  337. package/dist/expressions/calls/call-arguments-helpers.js.map +1 -1
  338. package/dist/expressions/calls/call-array-interop.d.ts +1 -1
  339. package/dist/expressions/calls/call-array-interop.d.ts.map +1 -1
  340. package/dist/expressions/calls/call-array-interop.js +1 -1
  341. package/dist/expressions/calls/call-array-interop.js.map +1 -1
  342. package/dist/expressions/calls/call-array-mutation.d.ts +0 -1
  343. package/dist/expressions/calls/call-array-mutation.d.ts.map +1 -1
  344. package/dist/expressions/calls/call-array-mutation.js +9 -36
  345. package/dist/expressions/calls/call-array-mutation.js.map +1 -1
  346. package/dist/expressions/calls/call-array-wrapper.d.ts.map +1 -1
  347. package/dist/expressions/calls/call-array-wrapper.js +9 -12
  348. package/dist/expressions/calls/call-array-wrapper.js.map +1 -1
  349. package/dist/expressions/calls/call-emitter.d.ts +1 -1
  350. package/dist/expressions/calls/call-emitter.d.ts.map +1 -1
  351. package/dist/expressions/calls/call-emitter.js +85 -7
  352. package/dist/expressions/calls/call-emitter.js.map +1 -1
  353. package/dist/expressions/calls/call-json.d.ts +1 -1
  354. package/dist/expressions/calls/call-json.d.ts.map +1 -1
  355. package/dist/expressions/calls/call-json.js +50 -84
  356. package/dist/expressions/calls/call-json.js.map +1 -1
  357. package/dist/expressions/calls/call-promise-ir-types.d.ts.map +1 -1
  358. package/dist/expressions/calls/call-promise-ir-types.js.map +1 -1
  359. package/dist/expressions/calls/call-runtime-union-guards.d.ts.map +1 -1
  360. package/dist/expressions/calls/call-runtime-union-guards.js +10 -1
  361. package/dist/expressions/calls/call-runtime-union-guards.js.map +1 -1
  362. package/dist/expressions/calls/new-emitter-collections.d.ts +7 -4
  363. package/dist/expressions/calls/new-emitter-collections.d.ts.map +1 -1
  364. package/dist/expressions/calls/new-emitter-collections.js +64 -25
  365. package/dist/expressions/calls/new-emitter-collections.js.map +1 -1
  366. package/dist/expressions/calls/new-emitter.d.ts.map +1 -1
  367. package/dist/expressions/calls/new-emitter.js +4 -5
  368. package/dist/expressions/calls/new-emitter.js.map +1 -1
  369. package/dist/expressions/direct-storage-types.d.ts.map +1 -1
  370. package/dist/expressions/direct-storage-types.js +76 -15
  371. package/dist/expressions/direct-storage-types.js.map +1 -1
  372. package/dist/expressions/exact-comparison.d.ts.map +1 -1
  373. package/dist/expressions/exact-comparison.js +3 -1
  374. package/dist/expressions/exact-comparison.js.map +1 -1
  375. package/dist/expressions/expected-type-adaptation.d.ts +1 -1
  376. package/dist/expressions/expected-type-adaptation.d.ts.map +1 -1
  377. package/dist/expressions/expected-type-adaptation.js +164 -30
  378. package/dist/expressions/expected-type-adaptation.js.map +1 -1
  379. package/dist/expressions/expected-type-adaptation.test.js +81 -26
  380. package/dist/expressions/expected-type-adaptation.test.js.map +1 -1
  381. package/dist/expressions/identifier-storage/broad-storage-target.d.ts +4 -0
  382. package/dist/expressions/identifier-storage/broad-storage-target.d.ts.map +1 -0
  383. package/dist/expressions/identifier-storage/broad-storage-target.js +26 -0
  384. package/dist/expressions/identifier-storage/broad-storage-target.js.map +1 -0
  385. package/dist/expressions/identifier-storage/implicit-storage.d.ts +14 -0
  386. package/dist/expressions/identifier-storage/implicit-storage.d.ts.map +1 -0
  387. package/dist/expressions/identifier-storage/implicit-storage.js +44 -0
  388. package/dist/expressions/identifier-storage/implicit-storage.js.map +1 -0
  389. package/dist/expressions/identifier-storage/materialized-narrowed.d.ts +7 -0
  390. package/dist/expressions/identifier-storage/materialized-narrowed.d.ts.map +1 -0
  391. package/dist/expressions/identifier-storage/materialized-narrowed.js +92 -0
  392. package/dist/expressions/identifier-storage/materialized-narrowed.js.map +1 -0
  393. package/dist/expressions/identifier-storage/narrowed-storage-compatible.d.ts +14 -0
  394. package/dist/expressions/identifier-storage/narrowed-storage-compatible.d.ts.map +1 -0
  395. package/dist/expressions/identifier-storage/narrowed-storage-compatible.js +168 -0
  396. package/dist/expressions/identifier-storage/narrowed-storage-compatible.js.map +1 -0
  397. package/dist/expressions/identifier-storage/reified-storage.d.ts +7 -0
  398. package/dist/expressions/identifier-storage/reified-storage.d.ts.map +1 -0
  399. package/dist/expressions/identifier-storage/reified-storage.js +25 -0
  400. package/dist/expressions/identifier-storage/reified-storage.js.map +1 -0
  401. package/dist/expressions/identifier-storage/runtime-subset.d.ts +14 -0
  402. package/dist/expressions/identifier-storage/runtime-subset.d.ts.map +1 -0
  403. package/dist/expressions/identifier-storage/runtime-subset.js +100 -0
  404. package/dist/expressions/identifier-storage/runtime-subset.js.map +1 -0
  405. package/dist/expressions/identifier-storage/storage-compatible.d.ts +10 -0
  406. package/dist/expressions/identifier-storage/storage-compatible.d.ts.map +1 -0
  407. package/dist/expressions/identifier-storage/storage-compatible.js +76 -0
  408. package/dist/expressions/identifier-storage/storage-compatible.js.map +1 -0
  409. package/dist/expressions/identifier-storage/storage-surface-match.d.ts +4 -0
  410. package/dist/expressions/identifier-storage/storage-surface-match.d.ts.map +1 -0
  411. package/dist/expressions/identifier-storage/storage-surface-match.js +95 -0
  412. package/dist/expressions/identifier-storage/storage-surface-match.js.map +1 -0
  413. package/dist/expressions/identifier-storage/storage-surface-shared.d.ts +12 -0
  414. package/dist/expressions/identifier-storage/storage-surface-shared.d.ts.map +1 -0
  415. package/dist/expressions/identifier-storage/storage-surface-shared.js +77 -0
  416. package/dist/expressions/identifier-storage/storage-surface-shared.js.map +1 -0
  417. package/dist/expressions/identifier-storage/storage-surface.d.ts +9 -0
  418. package/dist/expressions/identifier-storage/storage-surface.d.ts.map +1 -0
  419. package/dist/expressions/identifier-storage/storage-surface.js +9 -0
  420. package/dist/expressions/identifier-storage/storage-surface.js.map +1 -0
  421. package/dist/expressions/identifier-storage.d.ts +1 -42
  422. package/dist/expressions/identifier-storage.d.ts.map +1 -1
  423. package/dist/expressions/identifier-storage.js +1 -477
  424. package/dist/expressions/identifier-storage.js.map +1 -1
  425. package/dist/expressions/identifiers.d.ts.map +1 -1
  426. package/dist/expressions/identifiers.js +7 -16
  427. package/dist/expressions/identifiers.js.map +1 -1
  428. package/dist/expressions/index-cases/array-wrapper-recursion-b.test.js +9 -3
  429. package/dist/expressions/index-cases/array-wrapper-recursion-b.test.js.map +1 -1
  430. package/dist/expressions/index-cases/array-wrapper-recursion-c.test.js +4 -1
  431. package/dist/expressions/index-cases/array-wrapper-recursion-c.test.js.map +1 -1
  432. package/dist/expressions/index-cases/basic-literals-and-calls.test.js +3 -3
  433. package/dist/expressions/index-cases/basic-literals-and-calls.test.js.map +1 -1
  434. package/dist/expressions/index-cases/defaults-and-char-context.test.js +8 -2
  435. package/dist/expressions/index-cases/defaults-and-char-context.test.js.map +1 -1
  436. package/dist/expressions/index-cases/dictionary-and-object-initializers-a.test.js +17 -20
  437. package/dist/expressions/index-cases/dictionary-and-object-initializers-a.test.js.map +1 -1
  438. package/dist/expressions/index-cases/dictionary-and-object-initializers-b.test.js +7 -8
  439. package/dist/expressions/index-cases/dictionary-and-object-initializers-b.test.js.map +1 -1
  440. package/dist/expressions/index-cases/helpers.d.ts +6 -4
  441. package/dist/expressions/index-cases/helpers.d.ts.map +1 -1
  442. package/dist/expressions/index-cases/helpers.js +31 -2
  443. package/dist/expressions/index-cases/helpers.js.map +1 -1
  444. package/dist/expressions/index-cases/nullable-and-comparisons.test.js +9 -9
  445. package/dist/expressions/index-cases/nullable-and-comparisons.test.js.map +1 -1
  446. package/dist/expressions/index-cases/runtime-subset-and-assertions.test.js +3 -3
  447. package/dist/expressions/index-cases/runtime-subset-and-assertions.test.js.map +1 -1
  448. package/dist/expressions/index-cases/runtime-union-reification-b.test.js +19 -13
  449. package/dist/expressions/index-cases/runtime-union-reification-b.test.js.map +1 -1
  450. package/dist/expressions/index-cases/string-and-array-fallbacks-a.test.js +22 -13
  451. package/dist/expressions/index-cases/string-and-array-fallbacks-a.test.js.map +1 -1
  452. package/dist/expressions/index-cases/string-and-array-fallbacks-b.test.js +5 -5
  453. package/dist/expressions/index-cases/string-and-array-fallbacks-b.test.js.map +1 -1
  454. package/dist/expressions/lambda-body.js +3 -3
  455. package/dist/expressions/lambda-body.js.map +1 -1
  456. package/dist/expressions/lambda-parameters.d.ts.map +1 -1
  457. package/dist/expressions/lambda-parameters.js +97 -12
  458. package/dist/expressions/lambda-parameters.js.map +1 -1
  459. package/dist/expressions/object-literal.d.ts.map +1 -1
  460. package/dist/expressions/object-literal.js +48 -18
  461. package/dist/expressions/object-literal.js.map +1 -1
  462. package/dist/expressions/operators/binary-dispatch.d.ts +1 -1
  463. package/dist/expressions/operators/binary-dispatch.d.ts.map +1 -1
  464. package/dist/expressions/operators/binary-dispatch.js +52 -12
  465. package/dist/expressions/operators/binary-dispatch.js.map +1 -1
  466. package/dist/expressions/operators/binary-helpers.d.ts.map +1 -1
  467. package/dist/expressions/operators/binary-helpers.js +11 -1
  468. package/dist/expressions/operators/binary-helpers.js.map +1 -1
  469. package/dist/expressions/operators/binary-special-ops.d.ts +1 -11
  470. package/dist/expressions/operators/binary-special-ops.d.ts.map +1 -1
  471. package/dist/expressions/operators/binary-special-ops.js +214 -218
  472. package/dist/expressions/operators/binary-special-ops.js.map +1 -1
  473. package/dist/expressions/operators/conditional-emitter.d.ts.map +1 -1
  474. package/dist/expressions/operators/conditional-emitter.js +89 -19
  475. package/dist/expressions/operators/conditional-emitter.js.map +1 -1
  476. package/dist/expressions/operators/logical-emitter.js +1 -1
  477. package/dist/expressions/operators/logical-emitter.js.map +1 -1
  478. package/dist/expressions/operators/unary-emitter.d.ts.map +1 -1
  479. package/dist/expressions/operators/unary-emitter.js +7 -50
  480. package/dist/expressions/operators/unary-emitter.js.map +1 -1
  481. package/dist/expressions/other.d.ts +2 -6
  482. package/dist/expressions/other.d.ts.map +1 -1
  483. package/dist/expressions/other.js +6 -13
  484. package/dist/expressions/other.js.map +1 -1
  485. package/dist/expressions/post-emission-adaptation.d.ts +1 -1
  486. package/dist/expressions/post-emission-adaptation.d.ts.map +1 -1
  487. package/dist/expressions/post-emission-adaptation.js +55 -150
  488. package/dist/expressions/post-emission-adaptation.js.map +1 -1
  489. package/dist/expressions/precedence.test.js +5 -46
  490. package/dist/expressions/precedence.test.js.map +1 -1
  491. package/dist/expressions/runtime-union-adaptation-projection.d.ts.map +1 -1
  492. package/dist/expressions/runtime-union-adaptation-projection.js +25 -4
  493. package/dist/expressions/runtime-union-adaptation-projection.js.map +1 -1
  494. package/dist/expressions/runtime-union-adaptation-upcast.d.ts +1 -1
  495. package/dist/expressions/runtime-union-adaptation-upcast.d.ts.map +1 -1
  496. package/dist/expressions/runtime-union-adaptation-upcast.js +281 -31
  497. package/dist/expressions/runtime-union-adaptation-upcast.js.map +1 -1
  498. package/dist/expressions/structural-anonymous-targets.d.ts.map +1 -1
  499. package/dist/expressions/structural-anonymous-targets.js +5 -0
  500. package/dist/expressions/structural-anonymous-targets.js.map +1 -1
  501. package/dist/expressions/structural-collection-adaptation.d.ts.map +1 -1
  502. package/dist/expressions/structural-collection-adaptation.js +4 -2
  503. package/dist/expressions/structural-collection-adaptation.js.map +1 -1
  504. package/dist/expressions/structural-object-adaptation.d.ts.map +1 -1
  505. package/dist/expressions/structural-object-adaptation.js +58 -3
  506. package/dist/expressions/structural-object-adaptation.js.map +1 -1
  507. package/dist/expressions/structural-property-model.d.ts.map +1 -1
  508. package/dist/expressions/structural-property-model.js +7 -3
  509. package/dist/expressions/structural-property-model.js.map +1 -1
  510. package/dist/expressions/structural-type-shapes.d.ts.map +1 -1
  511. package/dist/expressions/structural-type-shapes.js +1 -1
  512. package/dist/expressions/structural-type-shapes.js.map +1 -1
  513. package/dist/expressions/structural-type-shapes.test.js +2 -1
  514. package/dist/expressions/structural-type-shapes.test.js.map +1 -1
  515. package/dist/expressions/type-assertion-emitters.d.ts.map +1 -1
  516. package/dist/expressions/type-assertion-emitters.js +231 -15
  517. package/dist/expressions/type-assertion-emitters.js.map +1 -1
  518. package/dist/fixture-regression-mirrors.test.js +43 -112
  519. package/dist/fixture-regression-mirrors.test.js.map +1 -1
  520. package/dist/generated-files.d.ts +0 -1
  521. package/dist/generated-files.d.ts.map +1 -1
  522. package/dist/generated-files.js +0 -229
  523. package/dist/generated-files.js.map +1 -1
  524. package/dist/generated-files.test.js +53 -1
  525. package/dist/generated-files.test.js.map +1 -1
  526. package/dist/golden-tests/runner.d.ts.map +1 -1
  527. package/dist/golden-tests/runner.js +1 -0
  528. package/dist/golden-tests/runner.js.map +1 -1
  529. package/dist/integration-cases/arrow-and-generics-a.test.js +52 -32
  530. package/dist/integration-cases/arrow-and-generics-a.test.js.map +1 -1
  531. package/dist/integration-cases/arrow-and-generics-b.test.js +17 -23
  532. package/dist/integration-cases/arrow-and-generics-b.test.js.map +1 -1
  533. package/dist/integration-cases/await-and-intrinsics.test.js +12 -10
  534. package/dist/integration-cases/await-and-intrinsics.test.js.map +1 -1
  535. package/dist/integration-cases/clr-iterable-overloads.test.js +58 -27
  536. package/dist/integration-cases/clr-iterable-overloads.test.js.map +1 -1
  537. package/dist/integration-cases/full-module-and-promises.test.js +21 -19
  538. package/dist/integration-cases/full-module-and-promises.test.js.map +1 -1
  539. package/dist/integration-cases/helpers.d.ts.map +1 -1
  540. package/dist/integration-cases/helpers.js +12 -33
  541. package/dist/integration-cases/helpers.js.map +1 -1
  542. package/dist/integration-cases/may14-downstream-contracts.test.d.ts +2 -0
  543. package/dist/integration-cases/may14-downstream-contracts.test.d.ts.map +1 -0
  544. package/dist/integration-cases/may14-downstream-contracts.test.js +894 -0
  545. package/dist/integration-cases/may14-downstream-contracts.test.js.map +1 -0
  546. package/dist/integration-cases/object-literals-and-channels.test.js +10 -4
  547. package/dist/integration-cases/object-literals-and-channels.test.js.map +1 -1
  548. package/dist/integration-cases/regression-coverage-a.test.js +36 -30
  549. package/dist/integration-cases/regression-coverage-a.test.js.map +1 -1
  550. package/dist/integration-cases/regression-coverage-b.test.js +95 -111
  551. package/dist/integration-cases/regression-coverage-b.test.js.map +1 -1
  552. package/dist/integration-cases/regression-coverage-c.test.js +499 -197
  553. package/dist/integration-cases/regression-coverage-c.test.js.map +1 -1
  554. package/dist/integration.test.d.ts +1 -0
  555. package/dist/integration.test.d.ts.map +1 -1
  556. package/dist/integration.test.js +1 -0
  557. package/dist/integration.test.js.map +1 -1
  558. package/dist/json-aot-generic.test.js +48 -200
  559. package/dist/json-aot-generic.test.js.map +1 -1
  560. package/dist/statements/block-emitters/block-and-return.d.ts +1 -1
  561. package/dist/statements/block-emitters/block-and-return.d.ts.map +1 -1
  562. package/dist/statements/block-emitters/block-and-return.js +9 -3
  563. package/dist/statements/block-emitters/block-and-return.js.map +1 -1
  564. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  565. package/dist/statements/classes/members/properties.js +2 -3
  566. package/dist/statements/classes/members/properties.js.map +1 -1
  567. package/dist/statements/classes/properties.d.ts.map +1 -1
  568. package/dist/statements/classes/properties.js.map +1 -1
  569. package/dist/statements/control/conditionals/architecture-invariants.test.d.ts +2 -0
  570. package/dist/statements/control/conditionals/architecture-invariants.test.d.ts.map +1 -0
  571. package/dist/statements/control/conditionals/architecture-invariants.test.js +19 -0
  572. package/dist/statements/control/conditionals/architecture-invariants.test.js.map +1 -0
  573. package/dist/statements/control/conditionals/branch-context.d.ts +4 -6
  574. package/dist/statements/control/conditionals/branch-context.d.ts.map +1 -1
  575. package/dist/statements/control/conditionals/branch-context.js +105 -32
  576. package/dist/statements/control/conditionals/branch-context.js.map +1 -1
  577. package/dist/statements/control/conditionals/guard-analysis.d.ts +2 -2
  578. package/dist/statements/control/conditionals/guard-analysis.d.ts.map +1 -1
  579. package/dist/statements/control/conditionals/guard-analysis.js +1 -1
  580. package/dist/statements/control/conditionals/guard-analysis.js.map +1 -1
  581. package/dist/statements/control/conditionals/guard-detectors-discriminant.d.ts +2 -1
  582. package/dist/statements/control/conditionals/guard-detectors-discriminant.d.ts.map +1 -1
  583. package/dist/statements/control/conditionals/guard-detectors-discriminant.js +83 -1
  584. package/dist/statements/control/conditionals/guard-detectors-discriminant.js.map +1 -1
  585. package/dist/statements/control/conditionals/guard-detectors-structural.d.ts +2 -7
  586. package/dist/statements/control/conditionals/guard-detectors-structural.d.ts.map +1 -1
  587. package/dist/statements/control/conditionals/guard-detectors-structural.js +47 -82
  588. package/dist/statements/control/conditionals/guard-detectors-structural.js.map +1 -1
  589. package/dist/statements/control/conditionals/guard-detectors.d.ts +2 -2
  590. package/dist/statements/control/conditionals/guard-detectors.d.ts.map +1 -1
  591. package/dist/statements/control/conditionals/guard-detectors.js +2 -2
  592. package/dist/statements/control/conditionals/guard-detectors.js.map +1 -1
  593. package/dist/statements/control/conditionals/guard-extraction.d.ts +5 -7
  594. package/dist/statements/control/conditionals/guard-extraction.d.ts.map +1 -1
  595. package/dist/statements/control/conditionals/guard-extraction.js +10 -190
  596. package/dist/statements/control/conditionals/guard-extraction.js.map +1 -1
  597. package/dist/statements/control/conditionals/guard-types.d.ts +16 -26
  598. package/dist/statements/control/conditionals/guard-types.d.ts.map +1 -1
  599. package/dist/statements/control/conditionals/guard-types.js +23 -1
  600. package/dist/statements/control/conditionals/guard-types.js.map +1 -1
  601. package/dist/statements/control/conditionals/if-emit-instanceof-guards.d.ts.map +1 -1
  602. package/dist/statements/control/conditionals/if-emit-instanceof-guards.js +5 -8
  603. package/dist/statements/control/conditionals/if-emit-instanceof-guards.js.map +1 -1
  604. package/dist/statements/control/conditionals/if-emit-predicate-guards.d.ts +2 -8
  605. package/dist/statements/control/conditionals/if-emit-predicate-guards.d.ts.map +1 -1
  606. package/dist/statements/control/conditionals/if-emit-predicate-guards.js +4 -84
  607. package/dist/statements/control/conditionals/if-emit-predicate-guards.js.map +1 -1
  608. package/dist/statements/control/conditionals/if-emit-property-discriminant-guards.d.ts +2 -0
  609. package/dist/statements/control/conditionals/if-emit-property-discriminant-guards.d.ts.map +1 -1
  610. package/dist/statements/control/conditionals/if-emit-property-discriminant-guards.js +87 -3
  611. package/dist/statements/control/conditionals/if-emit-property-discriminant-guards.js.map +1 -1
  612. package/dist/statements/control/conditionals/if-emit-typeof-array-guards.d.ts.map +1 -1
  613. package/dist/statements/control/conditionals/if-emit-typeof-array-guards.js +254 -20
  614. package/dist/statements/control/conditionals/if-emit-typeof-array-guards.js.map +1 -1
  615. package/dist/statements/control/conditionals/if-emit-union-guards.d.ts +2 -2
  616. package/dist/statements/control/conditionals/if-emit-union-guards.d.ts.map +1 -1
  617. package/dist/statements/control/conditionals/if-emit-union-guards.js +2 -2
  618. package/dist/statements/control/conditionals/if-emit-union-guards.js.map +1 -1
  619. package/dist/statements/control/conditionals/if-emitter.d.ts.map +1 -1
  620. package/dist/statements/control/conditionals/if-emitter.js +36 -43
  621. package/dist/statements/control/conditionals/if-emitter.js.map +1 -1
  622. package/dist/statements/control/conditionals/ir-branch-narrowings.d.ts +5 -0
  623. package/dist/statements/control/conditionals/ir-branch-narrowings.d.ts.map +1 -0
  624. package/dist/statements/control/conditionals/ir-branch-narrowings.js +16 -0
  625. package/dist/statements/control/conditionals/ir-branch-narrowings.js.map +1 -0
  626. package/dist/statements/control/loops.d.ts +2 -9
  627. package/dist/statements/control/loops.d.ts.map +1 -1
  628. package/dist/statements/control/loops.js +56 -48
  629. package/dist/statements/control/loops.js.map +1 -1
  630. package/dist/statements/declarations/classes.d.ts.map +1 -1
  631. package/dist/statements/declarations/classes.js.map +1 -1
  632. package/dist/statements/declarations/interfaces.d.ts.map +1 -1
  633. package/dist/statements/declarations/interfaces.js.map +1 -1
  634. package/dist/statements/declarations/structs.test.js +5 -4
  635. package/dist/statements/declarations/structs.test.js.map +1 -1
  636. package/dist/statements/declarations/type-aliases.js.map +1 -1
  637. package/dist/statements/declarations/variables.d.ts.map +1 -1
  638. package/dist/statements/declarations/variables.js +7 -4
  639. package/dist/statements/declarations/variables.js.map +1 -1
  640. package/dist/statements/statement-cases/flow-and-void.test.js +3 -3
  641. package/dist/statements/statement-cases/flow-and-void.test.js.map +1 -1
  642. package/dist/statements/statement-cases/helpers.d.ts +3 -2
  643. package/dist/statements/statement-cases/helpers.d.ts.map +1 -1
  644. package/dist/statements/statement-cases/helpers.js +1 -1
  645. package/dist/statements/statement-cases/helpers.js.map +1 -1
  646. package/dist/statements/statement-cases/if-and-instanceof-guards.test.js +21 -21
  647. package/dist/statements/statement-cases/if-and-instanceof-guards.test.js.map +1 -1
  648. package/dist/statements/statement-cases/union-guards-basic.test.js +3 -80
  649. package/dist/statements/statement-cases/union-guards-basic.test.js.map +1 -1
  650. package/dist/statements/statement-cases/union-guards-nullish-and-object.test.js +0 -196
  651. package/dist/statements/statement-cases/union-guards-nullish-and-object.test.js.map +1 -1
  652. package/dist/statements/statement-cases/union-guards-predicate-and-truthy.test.js +15 -15
  653. package/dist/statements/statement-cases/union-guards-predicate-and-truthy.test.js.map +1 -1
  654. package/dist/statements/statement-cases/union-guards-remapped-a.test.js +7 -189
  655. package/dist/statements/statement-cases/union-guards-remapped-a.test.js.map +1 -1
  656. package/dist/statements/statement-cases/union-guards-remapped-b.test.js +7 -193
  657. package/dist/statements/statement-cases/union-guards-remapped-b.test.js.map +1 -1
  658. package/dist/test-ir-strict.d.ts +7 -0
  659. package/dist/test-ir-strict.d.ts.map +1 -0
  660. package/dist/test-ir-strict.js +9 -0
  661. package/dist/test-ir-strict.js.map +1 -0
  662. package/dist/type-assertion.test.js +5 -4
  663. package/dist/type-assertion.test.js.map +1 -1
  664. package/dist/types/emitter.d.ts.map +1 -1
  665. package/dist/types/emitter.js +7 -1
  666. package/dist/types/emitter.js.map +1 -1
  667. package/dist/types/intersections.d.ts +2 -2
  668. package/dist/types/intersections.d.ts.map +1 -1
  669. package/dist/types/intersections.js +26 -6
  670. package/dist/types/intersections.js.map +1 -1
  671. package/dist/types/parameters.d.ts.map +1 -1
  672. package/dist/types/parameters.js +30 -5
  673. package/dist/types/parameters.js.map +1 -1
  674. package/dist/types/reference-structural-signatures.d.ts.map +1 -1
  675. package/dist/types/reference-structural-signatures.js +3 -6
  676. package/dist/types/reference-structural-signatures.js.map +1 -1
  677. package/dist/types/references-cases/array-and-cross-module.test.js +2 -4
  678. package/dist/types/references-cases/array-and-cross-module.test.js.map +1 -1
  679. package/dist/types/references-cases/bindings-and-local.test.js +2 -4
  680. package/dist/types/references-cases/bindings-and-local.test.js.map +1 -1
  681. package/dist/types/references-cases/helpers.d.ts +3 -2
  682. package/dist/types/references-cases/helpers.d.ts.map +1 -1
  683. package/dist/types/references-cases/helpers.js +2 -1
  684. package/dist/types/references-cases/helpers.js.map +1 -1
  685. package/dist/types/references.d.ts.map +1 -1
  686. package/dist/types/references.js +21 -2
  687. package/dist/types/references.js.map +1 -1
  688. package/dist/types/unions-cases/basic-and-ordering.test.js +51 -0
  689. package/dist/types/unions-cases/basic-and-ordering.test.js.map +1 -1
  690. package/dist/types/unions.d.ts.map +1 -1
  691. package/dist/types/unions.js +17 -0
  692. package/dist/types/unions.js.map +1 -1
  693. package/dist/types.d.ts +3 -1
  694. package/dist/types.d.ts.map +1 -1
  695. package/dist/types.js +2 -1
  696. package/dist/types.js.map +1 -1
  697. package/package.json +2 -2
  698. package/dist/core/semantic/js-value-types.d.ts +0 -5
  699. package/dist/core/semantic/js-value-types.d.ts.map +0 -1
  700. package/dist/core/semantic/js-value-types.js +0 -42
  701. package/dist/core/semantic/js-value-types.js.map +0 -1
  702. package/dist/core/semantic/type-resolution-cases/narrow-typeof.test.d.ts +0 -2
  703. package/dist/core/semantic/type-resolution-cases/narrow-typeof.test.d.ts.map +0 -1
  704. package/dist/core/semantic/type-resolution-cases/narrow-typeof.test.js +0 -98
  705. package/dist/core/semantic/type-resolution-cases/narrow-typeof.test.js.map +0 -1
  706. package/dist/expressions/calls/call-dynamic-import.d.ts +0 -11
  707. package/dist/expressions/calls/call-dynamic-import.d.ts.map +0 -1
  708. package/dist/expressions/calls/call-dynamic-import.js +0 -148
  709. package/dist/expressions/calls/call-dynamic-import.js.map +0 -1
@@ -1,32 +1,48 @@
1
- import { isAwaitableIrType } from "@tsonic/frontend";
2
1
  import { stableTypeKeyFromAst } from "../format/backend-ast/utils.js";
3
2
  import { identifierType } from "../format/backend-ast/builders.js";
4
- import { collectRuntimeUnionRawMembers, expandRuntimeUnionMembers, } from "./runtime-union-expansion.js";
5
- import { areIrTypesEquivalent } from "./type-equivalence.js";
6
- import { getRuntimeUnionMemberSortKey } from "./runtime-union-ordering.js";
7
3
  import { resolveStructuralReferenceType } from "./structural-shape-matching.js";
8
- import { resolveLocalTypeInfo, resolveTypeAlias, splitRuntimeNullishUnionMembers, } from "./type-resolution.js";
9
- import { matchesSemanticExpectedType } from "./expected-type-matching.js";
10
- import { isBroadObjectSlotType } from "./broad-object-types.js";
4
+ import { resolveLocalTypeInfo, resolveTypeAlias } from "./type-resolution.js";
11
5
  import { findExactRuntimeUnionMemberIndices, findRuntimeUnionAssignableMemberIndices, findRuntimeUnionInstanceofMemberIndices, findRuntimeUnionMemberIndex, findRuntimeUnionMemberIndices, } from "./runtime-union-matching.js";
12
6
  import { getOrRegisterRuntimeUnionCarrier } from "./runtime-union-registry.js";
13
- import { tryContextualTypeIdentityKey } from "./deterministic-type-keys.js";
7
+ import { getContextualTypeVisitKey } from "./deterministic-type-keys.js";
8
+ import { buildRuntimeUnionFrame } from "./runtime-union-frame.js";
14
9
  export { findExactRuntimeUnionMemberIndices, findRuntimeUnionAssignableMemberIndices, findRuntimeUnionInstanceofMemberIndices, findRuntimeUnionMemberIndex, findRuntimeUnionMemberIndices, };
10
+ export { buildRuntimeUnionFrame, getCanonicalRuntimeUnionMembers, } from "./runtime-union-frame.js";
15
11
  export { getRuntimeUnionReferenceMembers, isRuntimeUnionTypeName, } from "./runtime-union-shared.js";
16
12
  export const buildRuntimeUnionLayout = (type, context, emitTypeAst) => {
17
13
  const layoutSourceType = type.kind === "referenceType" ? resolveTypeAlias(type, context) : type;
18
- const frame = buildRuntimeUnionFrame(layoutSourceType, context);
14
+ const layoutKey = layoutSourceType.kind === "unionType" &&
15
+ layoutSourceType.runtimeCarrierFamilyKey
16
+ ? `carrier:${layoutSourceType.runtimeCarrierFamilyKey}`
17
+ : `type:${getContextualTypeVisitKey(layoutSourceType, context)}`;
18
+ if (context.activeRuntimeUnionLayoutKeys?.has(layoutKey)) {
19
+ return [undefined, context];
20
+ }
21
+ const activeRuntimeUnionLayoutKeys = new Set(context.activeRuntimeUnionLayoutKeys ?? []);
22
+ activeRuntimeUnionLayoutKeys.add(layoutKey);
23
+ const guardedContext = {
24
+ ...context,
25
+ activeRuntimeUnionLayoutKeys,
26
+ };
27
+ const restoreLayoutContext = (nextContext) => nextContext.activeRuntimeUnionLayoutKeys ===
28
+ context.activeRuntimeUnionLayoutKeys
29
+ ? nextContext
30
+ : {
31
+ ...nextContext,
32
+ activeRuntimeUnionLayoutKeys: context.activeRuntimeUnionLayoutKeys,
33
+ };
34
+ const frame = buildRuntimeUnionFrame(layoutSourceType, guardedContext);
19
35
  if (!frame) {
20
36
  return [undefined, context];
21
37
  }
22
38
  const semanticMembers = frame.members;
23
- const preserveRuntimeLayout = layoutSourceType.kind === "unionType" &&
24
- layoutSourceType.preserveRuntimeLayout === true;
39
+ const hasCarrierSlotLayout = layoutSourceType.kind === "unionType" &&
40
+ layoutSourceType.runtimeUnionLayout === "carrierSlotOrder";
25
41
  const orderedMembers = [];
26
- const byAstKey = preserveRuntimeLayout
42
+ const byAstKey = hasCarrierSlotLayout
27
43
  ? undefined
28
44
  : new Map();
29
- let currentContext = context;
45
+ let currentContext = guardedContext;
30
46
  for (const member of semanticMembers) {
31
47
  const carrierMember = resolveStructuralReferenceType(member, currentContext) ?? member;
32
48
  const emissionContext = currentContext.preferResolvedLocalClrIdentity
@@ -40,7 +56,7 @@ export const buildRuntimeUnionLayout = (type, context, emitTypeAst) => {
40
56
  ...nextContext,
41
57
  preferResolvedLocalClrIdentity: currentContext.preferResolvedLocalClrIdentity,
42
58
  };
43
- if (preserveRuntimeLayout) {
59
+ if (hasCarrierSlotLayout) {
44
60
  orderedMembers.push({ member, typeAst });
45
61
  continue;
46
62
  }
@@ -49,11 +65,11 @@ export const buildRuntimeUnionLayout = (type, context, emitTypeAst) => {
49
65
  byAstKey.set(key, { member, typeAst });
50
66
  }
51
67
  }
52
- const ordered = preserveRuntimeLayout
68
+ const ordered = hasCarrierSlotLayout
53
69
  ? orderedMembers
54
70
  : Array.from(byAstKey?.values() ?? []);
55
71
  if (ordered.length < 2) {
56
- return [undefined, currentContext];
72
+ return [undefined, restoreLayoutContext(currentContext)];
57
73
  }
58
74
  const carrierMetadata = layoutSourceType.kind === "unionType" &&
59
75
  layoutSourceType.runtimeCarrierFamilyKey
@@ -67,7 +83,8 @@ export const buildRuntimeUnionLayout = (type, context, emitTypeAst) => {
67
83
  const [sourceAliasMetadata, sourceAliasContext] = carrierMetadata
68
84
  ? buildSourceAliasCarrierMetadata(type, layoutSourceType, currentContext, emitTypeAst)
69
85
  : [undefined, currentContext];
70
- const carrier = getOrRegisterRuntimeUnionCarrier(ordered.map((entry) => entry.typeAst), sourceAliasContext.options.runtimeUnionRegistry, carrierMetadata
86
+ const layoutEntries = ordered;
87
+ const carrier = getOrRegisterRuntimeUnionCarrier(layoutEntries.map((entry) => entry.typeAst), sourceAliasContext.options.runtimeUnionRegistry, carrierMetadata
71
88
  ? {
72
89
  ...carrierMetadata,
73
90
  ...(sourceAliasMetadata?.typeParameters !== undefined
@@ -85,15 +102,17 @@ export const buildRuntimeUnionLayout = (type, context, emitTypeAst) => {
85
102
  : undefined);
86
103
  return [
87
104
  {
88
- members: ordered.map((entry) => entry.member),
89
- memberTypeAsts: ordered.map((entry) => entry.typeAst),
90
- carrierTypeArgumentAsts: sourceAliasMetadata?.typeArgumentAsts ??
91
- ordered.map((entry) => entry.typeAst),
92
- runtimeUnionArity: ordered.length,
105
+ members: layoutEntries.map((entry) => entry.member),
106
+ memberTypeAsts: layoutEntries.map((entry) => entry.typeAst),
107
+ carrierTypeArgumentAsts: carrier.typeParameters.length === 0
108
+ ? []
109
+ : (sourceAliasMetadata?.typeArgumentAsts ??
110
+ layoutEntries.map((entry) => entry.typeAst)),
111
+ runtimeUnionArity: layoutEntries.length,
93
112
  carrierName: carrier.name,
94
113
  carrierFullName: carrier.fullName,
95
114
  },
96
- sourceAliasContext,
115
+ restoreLayoutContext(sourceAliasContext),
97
116
  ];
98
117
  };
99
118
  const buildSourceAliasCarrierMetadata = (requestedType, layoutSourceType, context, emitTypeAst) => {
@@ -129,7 +148,9 @@ const buildSourceAliasCarrierMetadata = (requestedType, layoutSourceType, contex
129
148
  targetModulePublicLocalTypes?.has(aliasInfo.name)
130
149
  ? "public"
131
150
  : "internal";
132
- const aliasOwnerModule = [...(context.options.moduleMap?.values() ?? [])].find((moduleInfo) => moduleInfo.namespace === aliasInfo.namespace &&
151
+ const aliasOwnerModule = [
152
+ ...(context.options.moduleMap?.values() ?? []),
153
+ ].find((moduleInfo) => moduleInfo.namespace === aliasInfo.namespace &&
133
154
  moduleInfo.localTypes?.has(aliasInfo.name));
134
155
  const typeParameters = layoutSourceType.runtimeCarrierTypeParameters ??
135
156
  aliasInfo.info.typeParameters;
@@ -177,6 +198,7 @@ const buildSourceAliasCarrierMetadata = (requestedType, layoutSourceType, contex
177
198
  {
178
199
  typeParameters,
179
200
  typeArgumentAsts,
201
+ definitionMembers: definitionFrame.members,
180
202
  definitionMemberTypeAsts,
181
203
  accessModifier,
182
204
  },
@@ -206,125 +228,4 @@ export const emitRuntimeCarrierTypeAst = (type, context, emitTypeAst) => {
206
228
  const [typeAst, typeContext] = emitTypeAst(type, context);
207
229
  return [typeAst, undefined, typeContext];
208
230
  };
209
- export const buildRuntimeUnionFrame = (type, context) => {
210
- const frameSourceType = type.kind === "referenceType" ? resolveTypeAlias(type, context) : type;
211
- const members = getCanonicalRuntimeUnionMembers(frameSourceType, context);
212
- if (!members) {
213
- return undefined;
214
- }
215
- if (frameSourceType.kind === "unionType" &&
216
- shouldEraseRuntimeUnionToBroadObjectStorage(frameSourceType, members, context)) {
217
- return undefined;
218
- }
219
- return {
220
- members,
221
- runtimeUnionArity: members.length,
222
- };
223
- };
224
- const shouldEraseRuntimeUnionToBroadObjectStorage = (sourceType, runtimeMembers, context) => {
225
- const split = splitRuntimeNullishUnionMembers(sourceType);
226
- const nonNullishMembers = split?.nonNullishMembers ?? sourceType.types;
227
- if (nonNullishMembers.length === 1) {
228
- return isBroadObjectSlotType(nonNullishMembers[0], context);
229
- }
230
- if (runtimeMembers.some((member) => isAwaitableIrType(member))) {
231
- return false;
232
- }
233
- return (runtimeMembers.length > 1 &&
234
- runtimeMembers.some((member) => isBroadObjectSlotType(member, context)));
235
- };
236
- export const getCanonicalRuntimeUnionMembers = (type, context) => {
237
- const canonicalSourceType = type.kind === "referenceType" ? resolveTypeAlias(type, context) : type;
238
- const preserveRuntimeLayout = canonicalSourceType.kind === "unionType" &&
239
- canonicalSourceType.preserveRuntimeLayout === true;
240
- const activeAliases = canonicalSourceType.kind === "unionType" &&
241
- canonicalSourceType.runtimeCarrierFamilyKey
242
- ? new Set([canonicalSourceType.runtimeCarrierFamilyKey])
243
- : new Set();
244
- const semanticMembers = preserveRuntimeLayout
245
- ? collectRuntimeUnionRawMembers(canonicalSourceType, context, activeAliases)
246
- : expandRuntimeUnionMembers(canonicalSourceType, context, activeAliases);
247
- if (semanticMembers.length < 2) {
248
- return undefined;
249
- }
250
- if (preserveRuntimeLayout) {
251
- return semanticMembers;
252
- }
253
- const mergeEquivalentRuntimeUnionMembers = (existing, candidate) => {
254
- if (existing.kind !== "arrayType" || candidate.kind !== "arrayType") {
255
- return candidate;
256
- }
257
- const existingSemanticElementType = existing.storageErasedElementType ?? existing.elementType;
258
- const candidateSemanticElementType = candidate.storageErasedElementType ?? candidate.elementType;
259
- const getSemanticArrayOwnerBreadth = (elementType) => {
260
- const resolved = resolveTypeAlias(elementType, context);
261
- return resolved.kind === "unionType" ? resolved.types.length : 1;
262
- };
263
- const candidateAcceptsExisting = matchesSemanticExpectedType(existingSemanticElementType, candidateSemanticElementType, context);
264
- const existingAcceptsCandidate = matchesSemanticExpectedType(candidateSemanticElementType, existingSemanticElementType, context);
265
- const candidateBreadth = getSemanticArrayOwnerBreadth(candidateSemanticElementType);
266
- const existingBreadth = getSemanticArrayOwnerBreadth(existingSemanticElementType);
267
- const preferredBase = candidateAcceptsExisting && !existingAcceptsCandidate
268
- ? candidate
269
- : existingAcceptsCandidate && !candidateAcceptsExisting
270
- ? existing
271
- : candidateBreadth !== existingBreadth
272
- ? candidateBreadth > existingBreadth
273
- ? candidate
274
- : existing
275
- : candidate.storageErasedElementType &&
276
- !existing.storageErasedElementType
277
- ? candidate
278
- : existing.storageErasedElementType &&
279
- !candidate.storageErasedElementType
280
- ? existing
281
- : (() => {
282
- const candidateKey = tryContextualTypeIdentityKey(candidateSemanticElementType, context);
283
- const existingKey = tryContextualTypeIdentityKey(existingSemanticElementType, context);
284
- return candidateKey &&
285
- existingKey &&
286
- candidateKey.localeCompare(existingKey) < 0
287
- ? existing
288
- : candidate;
289
- })();
290
- const preferredSemanticElementType = preferredBase === candidate
291
- ? candidateSemanticElementType
292
- : existingSemanticElementType;
293
- return preferredBase.storageErasedElementType ===
294
- preferredSemanticElementType
295
- ? preferredBase
296
- : {
297
- ...preferredBase,
298
- storageErasedElementType: preferredSemanticElementType,
299
- };
300
- };
301
- const deduped = [];
302
- for (const member of semanticMembers) {
303
- const existingIndex = deduped.findIndex((existing) => areIrTypesEquivalent(existing, member, context));
304
- if (existingIndex < 0) {
305
- deduped.push(member);
306
- continue;
307
- }
308
- const existing = deduped[existingIndex];
309
- if (existing) {
310
- deduped[existingIndex] = mergeEquivalentRuntimeUnionMembers(existing, member);
311
- }
312
- }
313
- return deduped
314
- .map((member, index) => ({ member, index }))
315
- .sort((left, right) => {
316
- const leftKey = getRuntimeUnionMemberSortKey(left.member, context);
317
- const rightKey = getRuntimeUnionMemberSortKey(right.member, context);
318
- if (leftKey !== rightKey) {
319
- return leftKey.localeCompare(rightKey);
320
- }
321
- const leftStableKey = tryContextualTypeIdentityKey(left.member, context);
322
- const rightStableKey = tryContextualTypeIdentityKey(right.member, context);
323
- if (leftStableKey && rightStableKey && leftStableKey !== rightStableKey) {
324
- return leftStableKey.localeCompare(rightStableKey);
325
- }
326
- return left.index - right.index;
327
- })
328
- .map(({ member }) => member);
329
- };
330
231
  //# sourceMappingURL=runtime-unions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-unions.js","sourceRoot":"","sources":["../../../src/core/semantic/runtime-unions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-unions.js","sourceRoot":"","sources":["../../../src/core/semantic/runtime-unions.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { emitTypeAst } from "../../types/emitter.js";
7
7
  import { createContext } from "../../emitter-types/context.js";
8
8
  import { identifierExpression } from "../format/backend-ast/builders.js";
9
9
  import { printType } from "../format/backend-ast/printer-precedence.js";
10
+ import { semanticTypeMap, storageCarrierMap, } from "../../types.js";
10
11
  import { substituteTypeArgs } from "./type-resolution.js";
11
12
  import { createRuntimeUnionRegistry } from "./runtime-union-registry.js";
12
13
  const property = (name, type) => ({
@@ -59,7 +60,9 @@ describe("runtime-unions", () => {
59
60
  clrName: "Fixture.Channels.repo.Item",
60
61
  assemblyName: "@fixture/channels",
61
62
  },
62
- structuralMembers: [property("id", { kind: "primitiveType", name: "int" })],
63
+ structuralMembers: [
64
+ property("id", { kind: "primitiveType", name: "int" }),
65
+ ],
63
66
  };
64
67
  const domainItem = {
65
68
  kind: "referenceType",
@@ -71,7 +74,9 @@ describe("runtime-unions", () => {
71
74
  clrName: "Fixture.Channels.domain.Item",
72
75
  assemblyName: "@fixture/channels",
73
76
  },
74
- structuralMembers: [property("id", { kind: "primitiveType", name: "int" })],
77
+ structuralMembers: [
78
+ property("id", { kind: "primitiveType", name: "int" }),
79
+ ],
75
80
  };
76
81
  const indices = findExactRuntimeUnionMemberIndices([repoItem], domainItem, createContext({ rootNamespace: "Fixture" }));
77
82
  expect(indices).to.deep.equal([]);
@@ -305,7 +310,7 @@ describe("runtime-unions", () => {
305
310
  it("preserves explicit duplicate runtime carrier slots when requested", () => {
306
311
  const duplicatedCarrier = {
307
312
  kind: "unionType",
308
- preserveRuntimeLayout: true,
313
+ runtimeUnionLayout: "carrierSlotOrder",
309
314
  types: [
310
315
  {
311
316
  kind: "arrayType",
@@ -438,8 +443,8 @@ describe("runtime-unions", () => {
438
443
  };
439
444
  const context = {
440
445
  ...createContext({ rootNamespace: "Test" }),
441
- localSemanticTypes: new Map([["value", effectiveType]]),
442
- localValueTypes: new Map([["value", sourceCarrier]]),
446
+ localSemanticTypes: semanticTypeMap([["value", effectiveType]]),
447
+ localValueTypes: storageCarrierMap([["value", sourceCarrier]]),
443
448
  };
444
449
  const narrowedMembers = resolveNarrowedUnionMembers("value", effectiveType, context);
445
450
  expect(narrowedMembers?.members.map((member) => {
@@ -510,8 +515,8 @@ describe("runtime-unions", () => {
510
515
  },
511
516
  ],
512
517
  ]),
513
- localSemanticTypes: new Map([["value", effectiveType]]),
514
- localValueTypes: new Map([["value", carrierReference]]),
518
+ localSemanticTypes: semanticTypeMap([["value", effectiveType]]),
519
+ localValueTypes: storageCarrierMap([["value", carrierReference]]),
515
520
  };
516
521
  const narrowedMembers = resolveNarrowedUnionMembers("value", effectiveType, context);
517
522
  expect(narrowedMembers?.members.map((member) => {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-unions.test.js","sourceRoot":"","sources":["../../../src/core/semantic/runtime-unions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-unions.test.js","sourceRoot":"","sources":["../../../src/core/semantic/runtime-unions.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-union-members.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/semantic-union-members.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,MAAM,EACZ,SAAS,cAAc,KACtB,SAAS,MAAM,EAAE,GAAG,SAkBtB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,SAAS,MAAM,EAAE,EAC1B,QAAQ,MAAM,EACd,SAAS,cAAc,KACtB,MAAM,GAAG,SAyCX,CAAC"}
1
+ {"version":3,"file":"semantic-union-members.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/semantic-union-members.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,MAAM,EACZ,SAAS,cAAc,KACtB,SAAS,MAAM,EAAE,GAAG,SAkBtB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,SAAS,MAAM,EAAE,EAC1B,QAAQ,MAAM,EACd,SAAS,cAAc,KACtB,MAAM,GAAG,SAuCX,CAAC"}
@@ -18,7 +18,7 @@
18
18
  * stable regardless of whether moduleMap / typeAliasIndex are populated.
19
19
  */
20
20
  import { stripNullish } from "./type-resolution.js";
21
- import { getRuntimeUnionReferenceMembers } from "./runtime-unions.js";
21
+ import { getRuntimeUnionReferenceMembers } from "./runtime-union-shared.js";
22
22
  import { areIrTypesEquivalent } from "./type-equivalence.js";
23
23
  /**
24
24
  * Discover the semantic union members of a type.
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-union-members.js","sourceRoot":"","sources":["../../../src/core/semantic/semantic-union-members.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,IAAY,EACZ,OAAuB,EACQ,EAAE;IACjC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IACE,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACzB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CACjD,EACD,CAAC;YACD,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,OAA0B,EAC1B,MAAc,EACd,OAAuB,EACH,EAAE;IACtB,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,IAAI,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QAED,oEAAoE;QACpE,oEAAoE;QACpE,mCAAmC;QACnC,IAAI,cAAc,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;YAClE,IACE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EACnE,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,SAAS;YACX,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,aAAa,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAC1D,IACE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,oBAAoB,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,CACjD,EACD,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,2BAA2B,GAAG,CAAC,IAAY,EAAqB,EAAE;IACtE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACnC,IAAI,aAAa,CAAC,MAAM,CAAC;gBAAE,OAAO,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChC,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IACjE,+DAA+D;IAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAClC,CAAC,CAAC,EAAmD,EAAE,CACrD,CAAC,CAAC,IAAI,KAAK,eAAe;YAC1B,+BAA+B,CAAC,CAAC,CAAC,KAAK,SAAS,CACnD,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,+BAA+B,CAAC,YAAY,CAAC,CAAC;YAC9D,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAW,EAAE;IAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;IAC3D,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
1
+ {"version":3,"file":"semantic-union-members.js","sourceRoot":"","sources":["../../../src/core/semantic/semantic-union-members.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-erased-adaptation.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/storage-erased-adaptation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAM1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAwO9D,eAAO,MAAM,0BAA0B,GAAI,MAAM;IAC/C,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC,KAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,GAAG,SA0G3C,CAAC"}
1
+ {"version":3,"file":"storage-erased-adaptation.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/storage-erased-adaptation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAM1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA2N9D,eAAO,MAAM,0BAA0B,GAAI,MAAM;IAC/C,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC,KAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,GAAG,SAmH3C,CAAC"}
@@ -1,6 +1,7 @@
1
- import { getIdentifierTypeName, sameTypeAstSurface, stripNullableTypeAst, } from "../format/backend-ast/utils.js";
1
+ import { astTypeMatchesClrIdentity, sameTypeAstSurface, stripNullableTypeAst, } from "../format/backend-ast/utils.js";
2
2
  import { buildRuntimeUnionLayout } from "./runtime-unions.js";
3
3
  import { matchesExpectedEmissionType, matchesSemanticExpectedType, requiresValueTypeMaterialization, } from "./expected-type-matching.js";
4
+ import { willCarryAsRuntimeUnion } from "./union-semantics.js";
4
5
  import { tryBuildRuntimeReificationPlan } from "./runtime-reification.js";
5
6
  import { getArrayLikeElementType, isDefinitelyValueType, resolveTypeAlias, splitRuntimeNullishUnionMembers, stripNullish, } from "./type-resolution.js";
6
7
  import { materializeDirectNarrowingAst } from "./materialized-narrowing.js";
@@ -22,15 +23,7 @@ const requiresRuntimeUnionArrayElementMaterialization = (storageType, expectedTy
22
23
  targetTypeContext,
23
24
  ];
24
25
  };
25
- const isObjectTypeAst = (typeAst) => {
26
- const concreteTypeAst = stripNullableTypeAst(typeAst);
27
- if (concreteTypeAst.kind === "predefinedType") {
28
- return concreteTypeAst.keyword === "object";
29
- }
30
- const identifierName = getIdentifierTypeName(concreteTypeAst);
31
- return (identifierName === "System.Object" ||
32
- identifierName === "global::System.Object");
33
- };
26
+ const isObjectTypeAst = (typeAst) => astTypeMatchesClrIdentity(typeAst, ["System.Object"]);
34
27
  const isBroadStorageType = (type, context) => {
35
28
  const resolved = resolveTypeAlias(stripNullish(type), context, {
36
29
  preserveObjectTypeAliases: true,
@@ -153,7 +146,11 @@ export const adaptStorageErasedValueAst = (opts) => {
153
146
  !needsArrayElementMaterialization) {
154
147
  return undefined;
155
148
  }
156
- if (matchesExpectedEmissionType(storageType, expectedType, needsPlanContext) &&
149
+ const storageMatchesExpectedEmission = matchesExpectedEmissionType(storageType, expectedType, needsPlanContext);
150
+ const expectedRequiresRuntimeUnionMaterialization = willCarryAsRuntimeUnion(expectedType, needsPlanContext) &&
151
+ !willCarryAsRuntimeUnion(storageType, needsPlanContext);
152
+ if (storageMatchesExpectedEmission &&
153
+ !expectedRequiresRuntimeUnionMaterialization &&
157
154
  !needsArrayElementMaterialization) {
158
155
  return [valueAst, needsPlanContext];
159
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage-erased-adaptation.js","sourceRoot":"","sources":["../../../src/core/semantic/storage-erased-adaptation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-erased-adaptation.js","sourceRoot":"","sources":["../../../src/core/semantic/storage-erased-adaptation.ts"],"names":[],"mappings":"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"}