@tsonic/emitter 0.0.77 → 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 (186) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/array.test.js +5 -1
  3. package/dist/array.test.js.map +1 -1
  4. package/dist/core/module-emitter-cases/static-containers.test.js +2 -1
  5. package/dist/core/module-emitter-cases/static-containers.test.js.map +1 -1
  6. package/dist/core/semantic/array-expected-types.js +1 -1
  7. package/dist/core/semantic/array-expected-types.js.map +1 -1
  8. package/dist/core/semantic/assignment-flow.d.ts.map +1 -1
  9. package/dist/core/semantic/assignment-flow.js +2 -1
  10. package/dist/core/semantic/assignment-flow.js.map +1 -1
  11. package/dist/core/semantic/direct-value-surfaces.js +2 -1
  12. package/dist/core/semantic/direct-value-surfaces.js.map +1 -1
  13. package/dist/core/semantic/instanceof-predicate-refinements.js +1 -1
  14. package/dist/core/semantic/instanceof-predicate-refinements.js.map +1 -1
  15. package/dist/core/semantic/mutable-storage-helpers.d.ts.map +1 -1
  16. package/dist/core/semantic/mutable-storage-helpers.js +3 -2
  17. package/dist/core/semantic/mutable-storage-helpers.js.map +1 -1
  18. package/dist/core/semantic/narrowed-expression-types.js +1 -1
  19. package/dist/core/semantic/narrowed-expression-types.js.map +1 -1
  20. package/dist/core/semantic/narrowed-union-resolution.js +1 -1
  21. package/dist/core/semantic/narrowed-union-resolution.js.map +1 -1
  22. package/dist/core/semantic/nullable-typeof-refinements.d.ts.map +1 -1
  23. package/dist/core/semantic/nullable-typeof-refinements.js +8 -31
  24. package/dist/core/semantic/nullable-typeof-refinements.js.map +1 -1
  25. package/dist/core/semantic/runtime-union-frame.d.ts +6 -0
  26. package/dist/core/semantic/runtime-union-frame.d.ts.map +1 -0
  27. package/dist/core/semantic/runtime-union-frame.js +130 -0
  28. package/dist/core/semantic/runtime-union-frame.js.map +1 -0
  29. package/dist/core/semantic/runtime-unions.d.ts +3 -4
  30. package/dist/core/semantic/runtime-unions.d.ts.map +1 -1
  31. package/dist/core/semantic/runtime-unions.js +4 -129
  32. package/dist/core/semantic/runtime-unions.js.map +1 -1
  33. package/dist/core/semantic/semantic-union-members.js +1 -1
  34. package/dist/core/semantic/semantic-union-members.js.map +1 -1
  35. package/dist/core/semantic/storage-types.d.ts +3 -0
  36. package/dist/core/semantic/storage-types.d.ts.map +1 -1
  37. package/dist/core/semantic/storage-types.js +13 -2
  38. package/dist/core/semantic/storage-types.js.map +1 -1
  39. package/dist/core/semantic/surface-member-semantics.d.ts +14 -0
  40. package/dist/core/semantic/surface-member-semantics.d.ts.map +1 -0
  41. package/dist/core/semantic/surface-member-semantics.js +41 -0
  42. package/dist/core/semantic/surface-member-semantics.js.map +1 -0
  43. package/dist/core/semantic/ternary-guards.d.ts +1 -1
  44. package/dist/core/semantic/ternary-guards.d.ts.map +1 -1
  45. package/dist/core/semantic/ternary-guards.js +2 -1
  46. package/dist/core/semantic/ternary-guards.js.map +1 -1
  47. package/dist/core/semantic/typeof-comparison.d.ts +14 -0
  48. package/dist/core/semantic/typeof-comparison.d.ts.map +1 -0
  49. package/dist/core/semantic/typeof-comparison.js +47 -0
  50. package/dist/core/semantic/typeof-comparison.js.map +1 -0
  51. package/dist/core/semantic/union-semantics.js +1 -1
  52. package/dist/core/semantic/union-semantics.js.map +1 -1
  53. package/dist/emitter-types/context.d.ts.map +1 -1
  54. package/dist/emitter-types/context.js +1 -0
  55. package/dist/emitter-types/context.js.map +1 -1
  56. package/dist/expressions/access-binding.d.ts.map +1 -1
  57. package/dist/expressions/access-binding.js +18 -32
  58. package/dist/expressions/access-binding.js.map +1 -1
  59. package/dist/expressions/access-computed.d.ts.map +1 -1
  60. package/dist/expressions/access-computed.js +3 -7
  61. package/dist/expressions/access-computed.js.map +1 -1
  62. package/dist/expressions/access-function-length.d.ts +13 -0
  63. package/dist/expressions/access-function-length.d.ts.map +1 -0
  64. package/dist/expressions/access-function-length.js +115 -0
  65. package/dist/expressions/access-function-length.js.map +1 -0
  66. package/dist/expressions/access-length.d.ts +2 -4
  67. package/dist/expressions/access-length.d.ts.map +1 -1
  68. package/dist/expressions/access-length.js +7 -23
  69. package/dist/expressions/access-length.js.map +1 -1
  70. package/dist/expressions/access-length.test.js +17 -0
  71. package/dist/expressions/access-length.test.js.map +1 -1
  72. package/dist/expressions/access-resolution-receivers.d.ts.map +1 -1
  73. package/dist/expressions/access-resolution-receivers.js +10 -12
  74. package/dist/expressions/access-resolution-receivers.js.map +1 -1
  75. package/dist/expressions/access.d.ts.map +1 -1
  76. package/dist/expressions/access.js +7 -19
  77. package/dist/expressions/access.js.map +1 -1
  78. package/dist/expressions/architecture-invariants.test.js +94 -0
  79. package/dist/expressions/architecture-invariants.test.js.map +1 -1
  80. package/dist/expressions/awaitable-adaptation.d.ts +15 -0
  81. package/dist/expressions/awaitable-adaptation.d.ts.map +1 -0
  82. package/dist/expressions/awaitable-adaptation.js +174 -0
  83. package/dist/expressions/awaitable-adaptation.js.map +1 -0
  84. package/dist/expressions/calls/call-arguments-emit.d.ts.map +1 -1
  85. package/dist/expressions/calls/call-arguments-emit.js +20 -2
  86. package/dist/expressions/calls/call-arguments-emit.js.map +1 -1
  87. package/dist/expressions/calls/call-arguments-helpers.js +2 -2
  88. package/dist/expressions/calls/call-arguments-helpers.js.map +1 -1
  89. package/dist/expressions/calls/call-array-interop.d.ts +1 -1
  90. package/dist/expressions/calls/call-array-interop.d.ts.map +1 -1
  91. package/dist/expressions/calls/call-array-interop.js +1 -1
  92. package/dist/expressions/calls/call-array-interop.js.map +1 -1
  93. package/dist/expressions/calls/call-array-mutation.d.ts +0 -1
  94. package/dist/expressions/calls/call-array-mutation.d.ts.map +1 -1
  95. package/dist/expressions/calls/call-array-mutation.js +5 -7
  96. package/dist/expressions/calls/call-array-mutation.js.map +1 -1
  97. package/dist/expressions/calls/call-array-wrapper.d.ts.map +1 -1
  98. package/dist/expressions/calls/call-array-wrapper.js +3 -8
  99. package/dist/expressions/calls/call-array-wrapper.js.map +1 -1
  100. package/dist/expressions/expected-type-adaptation.d.ts.map +1 -1
  101. package/dist/expressions/expected-type-adaptation.js +15 -1
  102. package/dist/expressions/expected-type-adaptation.js.map +1 -1
  103. package/dist/expressions/identifier-storage/broad-storage-target.d.ts +4 -0
  104. package/dist/expressions/identifier-storage/broad-storage-target.d.ts.map +1 -0
  105. package/dist/expressions/identifier-storage/broad-storage-target.js +26 -0
  106. package/dist/expressions/identifier-storage/broad-storage-target.js.map +1 -0
  107. package/dist/expressions/identifier-storage/implicit-storage.d.ts +14 -0
  108. package/dist/expressions/identifier-storage/implicit-storage.d.ts.map +1 -0
  109. package/dist/expressions/identifier-storage/implicit-storage.js +44 -0
  110. package/dist/expressions/identifier-storage/implicit-storage.js.map +1 -0
  111. package/dist/expressions/identifier-storage/materialized-narrowed.d.ts +7 -0
  112. package/dist/expressions/identifier-storage/materialized-narrowed.d.ts.map +1 -0
  113. package/dist/expressions/identifier-storage/materialized-narrowed.js +92 -0
  114. package/dist/expressions/identifier-storage/materialized-narrowed.js.map +1 -0
  115. package/dist/expressions/identifier-storage/narrowed-storage-compatible.d.ts +14 -0
  116. package/dist/expressions/identifier-storage/narrowed-storage-compatible.d.ts.map +1 -0
  117. package/dist/expressions/identifier-storage/narrowed-storage-compatible.js +168 -0
  118. package/dist/expressions/identifier-storage/narrowed-storage-compatible.js.map +1 -0
  119. package/dist/expressions/identifier-storage/reified-storage.d.ts +7 -0
  120. package/dist/expressions/identifier-storage/reified-storage.d.ts.map +1 -0
  121. package/dist/expressions/identifier-storage/reified-storage.js +25 -0
  122. package/dist/expressions/identifier-storage/reified-storage.js.map +1 -0
  123. package/dist/expressions/identifier-storage/runtime-subset.d.ts +14 -0
  124. package/dist/expressions/identifier-storage/runtime-subset.d.ts.map +1 -0
  125. package/dist/expressions/identifier-storage/runtime-subset.js +100 -0
  126. package/dist/expressions/identifier-storage/runtime-subset.js.map +1 -0
  127. package/dist/expressions/identifier-storage/storage-compatible.d.ts +10 -0
  128. package/dist/expressions/identifier-storage/storage-compatible.d.ts.map +1 -0
  129. package/dist/expressions/identifier-storage/storage-compatible.js +76 -0
  130. package/dist/expressions/identifier-storage/storage-compatible.js.map +1 -0
  131. package/dist/expressions/identifier-storage/storage-surface-match.d.ts +4 -0
  132. package/dist/expressions/identifier-storage/storage-surface-match.d.ts.map +1 -0
  133. package/dist/expressions/identifier-storage/storage-surface-match.js +95 -0
  134. package/dist/expressions/identifier-storage/storage-surface-match.js.map +1 -0
  135. package/dist/expressions/identifier-storage/storage-surface-shared.d.ts +12 -0
  136. package/dist/expressions/identifier-storage/storage-surface-shared.d.ts.map +1 -0
  137. package/dist/expressions/identifier-storage/storage-surface-shared.js +77 -0
  138. package/dist/expressions/identifier-storage/storage-surface-shared.js.map +1 -0
  139. package/dist/expressions/identifier-storage/storage-surface.d.ts +9 -0
  140. package/dist/expressions/identifier-storage/storage-surface.d.ts.map +1 -0
  141. package/dist/expressions/identifier-storage/storage-surface.js +9 -0
  142. package/dist/expressions/identifier-storage/storage-surface.js.map +1 -0
  143. package/dist/expressions/identifier-storage.d.ts +1 -47
  144. package/dist/expressions/identifier-storage.d.ts.map +1 -1
  145. package/dist/expressions/identifier-storage.js +1 -652
  146. package/dist/expressions/identifier-storage.js.map +1 -1
  147. package/dist/expressions/index-cases/array-wrapper-recursion-b.test.js +7 -1
  148. package/dist/expressions/index-cases/array-wrapper-recursion-b.test.js.map +1 -1
  149. package/dist/expressions/index-cases/array-wrapper-recursion-c.test.js +4 -1
  150. package/dist/expressions/index-cases/array-wrapper-recursion-c.test.js.map +1 -1
  151. package/dist/expressions/index-cases/helpers.d.ts +1 -0
  152. package/dist/expressions/index-cases/helpers.d.ts.map +1 -1
  153. package/dist/expressions/index-cases/helpers.js +28 -0
  154. package/dist/expressions/index-cases/helpers.js.map +1 -1
  155. package/dist/expressions/index-cases/string-and-array-fallbacks-a.test.js +18 -9
  156. package/dist/expressions/index-cases/string-and-array-fallbacks-a.test.js.map +1 -1
  157. package/dist/expressions/index-cases/string-and-array-fallbacks-b.test.js +5 -5
  158. package/dist/expressions/index-cases/string-and-array-fallbacks-b.test.js.map +1 -1
  159. package/dist/expressions/lambda-body.js +3 -3
  160. package/dist/expressions/lambda-body.js.map +1 -1
  161. package/dist/expressions/operators/binary-special-ops.d.ts.map +1 -1
  162. package/dist/expressions/operators/binary-special-ops.js +4 -30
  163. package/dist/expressions/operators/binary-special-ops.js.map +1 -1
  164. package/dist/expressions/runtime-union-adaptation-upcast.d.ts +1 -1
  165. package/dist/expressions/runtime-union-adaptation-upcast.d.ts.map +1 -1
  166. package/dist/expressions/runtime-union-adaptation-upcast.js +13 -0
  167. package/dist/expressions/runtime-union-adaptation-upcast.js.map +1 -1
  168. package/dist/integration-cases/may14-downstream-contracts.test.js +372 -0
  169. package/dist/integration-cases/may14-downstream-contracts.test.js.map +1 -1
  170. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  171. package/dist/statements/classes/members/properties.js +2 -3
  172. package/dist/statements/classes/members/properties.js.map +1 -1
  173. package/dist/statements/control/conditionals/branch-context.js +3 -3
  174. package/dist/statements/control/conditionals/branch-context.js.map +1 -1
  175. package/dist/statements/control/conditionals/guard-extraction.d.ts.map +1 -1
  176. package/dist/statements/control/conditionals/guard-extraction.js +7 -32
  177. package/dist/statements/control/conditionals/guard-extraction.js.map +1 -1
  178. package/dist/statements/control/loops.js +2 -2
  179. package/dist/statements/control/loops.js.map +1 -1
  180. package/dist/types/unions.js +2 -1
  181. package/dist/types/unions.js.map +1 -1
  182. package/package.json +2 -2
  183. package/dist/core/semantic/js-array-surface-members.d.ts +0 -4
  184. package/dist/core/semantic/js-array-surface-members.d.ts.map +0 -1
  185. package/dist/core/semantic/js-array-surface-members.js +0 -32
  186. package/dist/core/semantic/js-array-surface-members.js.map +0 -1
@@ -10,6 +10,7 @@ import { resolveIdentifierRuntimeCarrierType } from "./direct-storage-ir-types.j
10
10
  import { resolveRuntimeArrayMemberStorageType, SYSTEM_ARRAY_STORAGE_TYPE, } from "./broad-array-storage.js";
11
11
  import { areIrTypesEquivalent } from "./type-equivalence.js";
12
12
  import { willCarryAsRuntimeUnion } from "./union-semantics.js";
13
+ import { tryExtractTypeofComparison } from "./typeof-comparison.js";
13
14
  const stripNullishForRefinement = (type, context) => {
14
15
  const stripped = stripNullish(type);
15
16
  if (willCarryAsRuntimeUnion(stripped, context)) {
@@ -313,39 +314,15 @@ export const applySimpleNullableRefinement = (condition, branch, context, emitEx
313
314
  return applyBinding(nullableGuard.key, buildExprBinding(materializedExprAst, strippedType, bindingSourceType, storageCompatibleExprAst, storageCompatibleType, carrierExprAst, bindingCarrierType), materializedContext);
314
315
  };
315
316
  export const applyDirectTypeofRefinement = (condition, branch, context, emitExprAst) => {
316
- if (condition.kind !== "binary")
317
+ const comparison = tryExtractTypeofComparison(condition);
318
+ if (!comparison?.narrowable)
317
319
  return undefined;
318
- if (condition.operator !== "===" &&
319
- condition.operator !== "==" &&
320
- condition.operator !== "!==" &&
321
- condition.operator !== "!=") {
322
- return undefined;
323
- }
324
- const extract = (left, right) => {
325
- if (left.kind !== "unary" || left.operator !== "typeof")
326
- return undefined;
327
- const target = unwrapTransparentNarrowingTarget(left.expression);
328
- if (!target)
329
- return undefined;
330
- if (right.kind !== "literal" || typeof right.value !== "string") {
331
- return undefined;
332
- }
333
- const bindingKey = target.kind === "identifier"
334
- ? target.name
335
- : getMemberAccessNarrowKey(target);
336
- if (!bindingKey)
337
- return undefined;
338
- return {
339
- bindingKey,
340
- targetExpr: target,
341
- tag: right.value,
342
- };
320
+ const directGuard = {
321
+ bindingKey: comparison.narrowable.bindingKey,
322
+ targetExpr: comparison.narrowable.targetExpr,
323
+ tag: comparison.tag,
343
324
  };
344
- const directGuard = extract(condition.left, condition.right) ??
345
- extract(condition.right, condition.left);
346
- if (!directGuard)
347
- return undefined;
348
- const matchesInTruthyBranch = condition.operator === "===" || condition.operator === "==";
325
+ const matchesInTruthyBranch = !comparison.negate;
349
326
  const matchTag = branch === "truthy" ? matchesInTruthyBranch : !matchesInTruthyBranch;
350
327
  const currentType = resolveRefinementCurrentType(directGuard.bindingKey, directGuard.targetExpr, context);
351
328
  const narrowedType = matchTag
@@ -1 +1 @@
1
- {"version":3,"file":"nullable-typeof-refinements.js","sourceRoot":"","sources":["../../../src/core/semantic/nullable-typeof-refinements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nullable-typeof-refinements.js","sourceRoot":"","sources":["../../../src/core/semantic/nullable-typeof-refinements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type IrType } from "@tsonic/frontend";
2
+ import type { EmitterContext } from "../../types.js";
3
+ import type { RuntimeUnionFrame } from "./runtime-union-shared.js";
4
+ export declare const buildRuntimeUnionFrame: (type: IrType, context: EmitterContext) => RuntimeUnionFrame | undefined;
5
+ export declare const getCanonicalRuntimeUnionMembers: (type: IrType, context: EmitterContext) => readonly IrType[] | undefined;
6
+ //# sourceMappingURL=runtime-union-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-union-frame.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/runtime-union-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAcrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EACZ,SAAS,cAAc,KACtB,iBAAiB,GAAG,SAsBtB,CAAC;AAuBF,eAAO,MAAM,+BAA+B,GAC1C,MAAM,MAAM,EACZ,SAAS,cAAc,KACtB,SAAS,MAAM,EAAE,GAAG,SA2ItB,CAAC"}
@@ -0,0 +1,130 @@
1
+ import { isAwaitableIrType } from "@tsonic/frontend";
2
+ import { collectRuntimeUnionRawMembers, expandRuntimeUnionMembers, } from "./runtime-union-expansion.js";
3
+ import { areIrTypesEquivalent } from "./type-equivalence.js";
4
+ import { getRuntimeUnionMemberSortKey } from "./runtime-union-ordering.js";
5
+ import { resolveTypeAlias, splitRuntimeNullishUnionMembers, } from "./type-resolution.js";
6
+ import { matchesSemanticExpectedType } from "./expected-type-matching.js";
7
+ import { isBroadObjectSlotType } from "./broad-object-types.js";
8
+ import { tryContextualTypeIdentityKey } from "./deterministic-type-keys.js";
9
+ export const buildRuntimeUnionFrame = (type, context) => {
10
+ const frameSourceType = type.kind === "referenceType" ? resolveTypeAlias(type, context) : type;
11
+ const members = getCanonicalRuntimeUnionMembers(frameSourceType, context);
12
+ if (!members) {
13
+ return undefined;
14
+ }
15
+ if (frameSourceType.kind === "unionType" &&
16
+ shouldEraseRuntimeUnionToBroadObjectStorage(frameSourceType, members, context)) {
17
+ return undefined;
18
+ }
19
+ return {
20
+ members,
21
+ runtimeUnionArity: members.length,
22
+ };
23
+ };
24
+ const shouldEraseRuntimeUnionToBroadObjectStorage = (sourceType, runtimeMembers, context) => {
25
+ const split = splitRuntimeNullishUnionMembers(sourceType);
26
+ const nonNullishMembers = split?.nonNullishMembers ?? sourceType.types;
27
+ if (nonNullishMembers.length === 1) {
28
+ return isBroadObjectSlotType(nonNullishMembers[0], context);
29
+ }
30
+ if (runtimeMembers.some((member) => isAwaitableIrType(member))) {
31
+ return false;
32
+ }
33
+ return (runtimeMembers.length > 1 &&
34
+ runtimeMembers.some((member) => isBroadObjectSlotType(member, context)));
35
+ };
36
+ export const getCanonicalRuntimeUnionMembers = (type, context) => {
37
+ const canonicalSourceType = type.kind === "referenceType" ? resolveTypeAlias(type, context) : type;
38
+ const hasCarrierSlotLayout = canonicalSourceType.kind === "unionType" &&
39
+ canonicalSourceType.runtimeUnionLayout === "carrierSlotOrder";
40
+ const activeAliases = canonicalSourceType.kind === "unionType" &&
41
+ canonicalSourceType.runtimeCarrierFamilyKey
42
+ ? new Set([canonicalSourceType.runtimeCarrierFamilyKey])
43
+ : new Set();
44
+ const semanticMembers = hasCarrierSlotLayout
45
+ ? collectRuntimeUnionRawMembers(canonicalSourceType, context, activeAliases)
46
+ : expandRuntimeUnionMembers(canonicalSourceType, context, activeAliases);
47
+ if (semanticMembers.length < 2) {
48
+ return undefined;
49
+ }
50
+ if (hasCarrierSlotLayout) {
51
+ return semanticMembers;
52
+ }
53
+ const mergeEquivalentRuntimeUnionMembers = (existing, candidate) => {
54
+ if (existing.kind !== "arrayType" || candidate.kind !== "arrayType") {
55
+ return candidate;
56
+ }
57
+ const existingSemanticElementType = existing.storageErasedElementType ?? existing.elementType;
58
+ const candidateSemanticElementType = candidate.storageErasedElementType ?? candidate.elementType;
59
+ const getSemanticArrayOwnerBreadth = (elementType) => {
60
+ const resolved = resolveTypeAlias(elementType, context);
61
+ return resolved.kind === "unionType" ? resolved.types.length : 1;
62
+ };
63
+ const candidateAcceptsExisting = matchesSemanticExpectedType(existingSemanticElementType, candidateSemanticElementType, context);
64
+ const existingAcceptsCandidate = matchesSemanticExpectedType(candidateSemanticElementType, existingSemanticElementType, context);
65
+ const candidateBreadth = getSemanticArrayOwnerBreadth(candidateSemanticElementType);
66
+ const existingBreadth = getSemanticArrayOwnerBreadth(existingSemanticElementType);
67
+ const preferredBase = candidateAcceptsExisting && !existingAcceptsCandidate
68
+ ? candidate
69
+ : existingAcceptsCandidate && !candidateAcceptsExisting
70
+ ? existing
71
+ : candidateBreadth !== existingBreadth
72
+ ? candidateBreadth > existingBreadth
73
+ ? candidate
74
+ : existing
75
+ : candidate.storageErasedElementType &&
76
+ !existing.storageErasedElementType
77
+ ? candidate
78
+ : existing.storageErasedElementType &&
79
+ !candidate.storageErasedElementType
80
+ ? existing
81
+ : (() => {
82
+ const candidateKey = tryContextualTypeIdentityKey(candidateSemanticElementType, context);
83
+ const existingKey = tryContextualTypeIdentityKey(existingSemanticElementType, context);
84
+ return candidateKey &&
85
+ existingKey &&
86
+ candidateKey.localeCompare(existingKey) < 0
87
+ ? existing
88
+ : candidate;
89
+ })();
90
+ const preferredSemanticElementType = preferredBase === candidate
91
+ ? candidateSemanticElementType
92
+ : existingSemanticElementType;
93
+ return preferredBase.storageErasedElementType ===
94
+ preferredSemanticElementType
95
+ ? preferredBase
96
+ : {
97
+ ...preferredBase,
98
+ storageErasedElementType: preferredSemanticElementType,
99
+ };
100
+ };
101
+ const deduped = [];
102
+ for (const member of semanticMembers) {
103
+ const existingIndex = deduped.findIndex((existing) => areIrTypesEquivalent(existing, member, context));
104
+ if (existingIndex < 0) {
105
+ deduped.push(member);
106
+ continue;
107
+ }
108
+ const existing = deduped[existingIndex];
109
+ if (existing) {
110
+ deduped[existingIndex] = mergeEquivalentRuntimeUnionMembers(existing, member);
111
+ }
112
+ }
113
+ return deduped
114
+ .map((member, index) => ({ member, index }))
115
+ .sort((left, right) => {
116
+ const leftKey = getRuntimeUnionMemberSortKey(left.member, context);
117
+ const rightKey = getRuntimeUnionMemberSortKey(right.member, context);
118
+ if (leftKey !== rightKey) {
119
+ return leftKey.localeCompare(rightKey);
120
+ }
121
+ const leftStableKey = tryContextualTypeIdentityKey(left.member, context);
122
+ const rightStableKey = tryContextualTypeIdentityKey(right.member, context);
123
+ if (leftStableKey && rightStableKey && leftStableKey !== rightStableKey) {
124
+ return leftStableKey.localeCompare(rightStableKey);
125
+ }
126
+ return left.index - right.index;
127
+ })
128
+ .map(({ member }) => member);
129
+ };
130
+ //# sourceMappingURL=runtime-union-frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-union-frame.js","sourceRoot":"","sources":["../../../src/core/semantic/runtime-union-frame.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
- import { type IrType } from "@tsonic/frontend";
1
+ import type { IrType } from "@tsonic/frontend";
2
2
  import type { EmitterContext } from "../../types.js";
3
3
  import type { CSharpTypeAst } from "../format/backend-ast/types.js";
4
- import type { EmitTypeAstLike, RuntimeUnionFrame, RuntimeUnionLayout } from "./runtime-union-shared.js";
4
+ import type { EmitTypeAstLike, RuntimeUnionLayout } from "./runtime-union-shared.js";
5
5
  import { findExactRuntimeUnionMemberIndices, findRuntimeUnionAssignableMemberIndices, findRuntimeUnionInstanceofMemberIndices, findRuntimeUnionMemberIndex, findRuntimeUnionMemberIndices } from "./runtime-union-matching.js";
6
6
  export { findExactRuntimeUnionMemberIndices, findRuntimeUnionAssignableMemberIndices, findRuntimeUnionInstanceofMemberIndices, findRuntimeUnionMemberIndex, findRuntimeUnionMemberIndices, };
7
7
  export type { EmitTypeAstLike, RuntimeUnionFrame, RuntimeUnionLayout, } from "./runtime-union-shared.js";
8
+ export { buildRuntimeUnionFrame, getCanonicalRuntimeUnionMembers, } from "./runtime-union-frame.js";
8
9
  export { getRuntimeUnionReferenceMembers, isRuntimeUnionTypeName, } from "./runtime-union-shared.js";
9
10
  export declare const buildRuntimeUnionLayout: (type: IrType, context: EmitterContext, emitTypeAst: EmitTypeAstLike) => [RuntimeUnionLayout | undefined, EmitterContext];
10
11
  export declare const buildRuntimeUnionTypeAst: (layout: RuntimeUnionLayout) => CSharpTypeAst;
11
12
  export declare const emitRuntimeCarrierTypeAst: (type: IrType, context: EmitterContext, emitTypeAst: EmitTypeAstLike) => [CSharpTypeAst, RuntimeUnionLayout | undefined, EmitterContext];
12
- export declare const buildRuntimeUnionFrame: (type: IrType, context: EmitterContext) => RuntimeUnionFrame | undefined;
13
- export declare const getCanonicalRuntimeUnionMembers: (type: IrType, context: EmitterContext) => readonly IrType[] | undefined;
14
13
  //# sourceMappingURL=runtime-unions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-unions.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/runtime-unions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAenC,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EACvC,uCAAuC,EACvC,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EACvC,uCAAuC,EACvC,2BAA2B,EAC3B,6BAA6B,GAC9B,CAAC;AACF,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,uBAAuB,GAClC,MAAM,MAAM,EACZ,SAAS,cAAc,EACvB,aAAa,eAAe,KAC3B,CAAC,kBAAkB,GAAG,SAAS,EAAE,cAAc,CAsIjD,CAAC;AAsJF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,kBAAkB,KACzB,aAOF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,EACZ,SAAS,cAAc,EACvB,aAAa,eAAe,KAC3B,CAAC,aAAa,EAAE,kBAAkB,GAAG,SAAS,EAAE,cAAc,CAYhE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EACZ,SAAS,cAAc,KACtB,iBAAiB,GAAG,SAsBtB,CAAC;AAuBF,eAAO,MAAM,+BAA+B,GAC1C,MAAM,MAAM,EACZ,SAAS,cAAc,KACtB,SAAS,MAAM,EAAE,GAAG,SA2ItB,CAAC"}
1
+ {"version":3,"file":"runtime-unions.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/runtime-unions.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,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EACvC,uCAAuC,EACvC,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EACvC,uCAAuC,EACvC,2BAA2B,EAC3B,6BAA6B,GAC9B,CAAC;AACF,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,uBAAuB,GAClC,MAAM,MAAM,EACZ,SAAS,cAAc,EACvB,aAAa,eAAe,KAC3B,CAAC,kBAAkB,GAAG,SAAS,EAAE,cAAc,CAsIjD,CAAC;AAsJF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,kBAAkB,KACzB,aAOF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,EACZ,SAAS,cAAc,EACvB,aAAa,eAAe,KAC3B,CAAC,aAAa,EAAE,kBAAkB,GAAG,SAAS,EAAE,cAAc,CAYhE,CAAC"}
@@ -1,17 +1,13 @@
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 { getContextualTypeVisitKey, 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;
@@ -232,125 +228,4 @@ export const emitRuntimeCarrierTypeAst = (type, context, emitTypeAst) => {
232
228
  const [typeAst, typeContext] = emitTypeAst(type, context);
233
229
  return [typeAst, undefined, typeContext];
234
230
  };
235
- export const buildRuntimeUnionFrame = (type, context) => {
236
- const frameSourceType = type.kind === "referenceType" ? resolveTypeAlias(type, context) : type;
237
- const members = getCanonicalRuntimeUnionMembers(frameSourceType, context);
238
- if (!members) {
239
- return undefined;
240
- }
241
- if (frameSourceType.kind === "unionType" &&
242
- shouldEraseRuntimeUnionToBroadObjectStorage(frameSourceType, members, context)) {
243
- return undefined;
244
- }
245
- return {
246
- members,
247
- runtimeUnionArity: members.length,
248
- };
249
- };
250
- const shouldEraseRuntimeUnionToBroadObjectStorage = (sourceType, runtimeMembers, context) => {
251
- const split = splitRuntimeNullishUnionMembers(sourceType);
252
- const nonNullishMembers = split?.nonNullishMembers ?? sourceType.types;
253
- if (nonNullishMembers.length === 1) {
254
- return isBroadObjectSlotType(nonNullishMembers[0], context);
255
- }
256
- if (runtimeMembers.some((member) => isAwaitableIrType(member))) {
257
- return false;
258
- }
259
- return (runtimeMembers.length > 1 &&
260
- runtimeMembers.some((member) => isBroadObjectSlotType(member, context)));
261
- };
262
- export const getCanonicalRuntimeUnionMembers = (type, context) => {
263
- const canonicalSourceType = type.kind === "referenceType" ? resolveTypeAlias(type, context) : type;
264
- const hasCarrierSlotLayout = canonicalSourceType.kind === "unionType" &&
265
- canonicalSourceType.runtimeUnionLayout === "carrierSlotOrder";
266
- const activeAliases = canonicalSourceType.kind === "unionType" &&
267
- canonicalSourceType.runtimeCarrierFamilyKey
268
- ? new Set([canonicalSourceType.runtimeCarrierFamilyKey])
269
- : new Set();
270
- const semanticMembers = hasCarrierSlotLayout
271
- ? collectRuntimeUnionRawMembers(canonicalSourceType, context, activeAliases)
272
- : expandRuntimeUnionMembers(canonicalSourceType, context, activeAliases);
273
- if (semanticMembers.length < 2) {
274
- return undefined;
275
- }
276
- if (hasCarrierSlotLayout) {
277
- return semanticMembers;
278
- }
279
- const mergeEquivalentRuntimeUnionMembers = (existing, candidate) => {
280
- if (existing.kind !== "arrayType" || candidate.kind !== "arrayType") {
281
- return candidate;
282
- }
283
- const existingSemanticElementType = existing.storageErasedElementType ?? existing.elementType;
284
- const candidateSemanticElementType = candidate.storageErasedElementType ?? candidate.elementType;
285
- const getSemanticArrayOwnerBreadth = (elementType) => {
286
- const resolved = resolveTypeAlias(elementType, context);
287
- return resolved.kind === "unionType" ? resolved.types.length : 1;
288
- };
289
- const candidateAcceptsExisting = matchesSemanticExpectedType(existingSemanticElementType, candidateSemanticElementType, context);
290
- const existingAcceptsCandidate = matchesSemanticExpectedType(candidateSemanticElementType, existingSemanticElementType, context);
291
- const candidateBreadth = getSemanticArrayOwnerBreadth(candidateSemanticElementType);
292
- const existingBreadth = getSemanticArrayOwnerBreadth(existingSemanticElementType);
293
- const preferredBase = candidateAcceptsExisting && !existingAcceptsCandidate
294
- ? candidate
295
- : existingAcceptsCandidate && !candidateAcceptsExisting
296
- ? existing
297
- : candidateBreadth !== existingBreadth
298
- ? candidateBreadth > existingBreadth
299
- ? candidate
300
- : existing
301
- : candidate.storageErasedElementType &&
302
- !existing.storageErasedElementType
303
- ? candidate
304
- : existing.storageErasedElementType &&
305
- !candidate.storageErasedElementType
306
- ? existing
307
- : (() => {
308
- const candidateKey = tryContextualTypeIdentityKey(candidateSemanticElementType, context);
309
- const existingKey = tryContextualTypeIdentityKey(existingSemanticElementType, context);
310
- return candidateKey &&
311
- existingKey &&
312
- candidateKey.localeCompare(existingKey) < 0
313
- ? existing
314
- : candidate;
315
- })();
316
- const preferredSemanticElementType = preferredBase === candidate
317
- ? candidateSemanticElementType
318
- : existingSemanticElementType;
319
- return preferredBase.storageErasedElementType ===
320
- preferredSemanticElementType
321
- ? preferredBase
322
- : {
323
- ...preferredBase,
324
- storageErasedElementType: preferredSemanticElementType,
325
- };
326
- };
327
- const deduped = [];
328
- for (const member of semanticMembers) {
329
- const existingIndex = deduped.findIndex((existing) => areIrTypesEquivalent(existing, member, context));
330
- if (existingIndex < 0) {
331
- deduped.push(member);
332
- continue;
333
- }
334
- const existing = deduped[existingIndex];
335
- if (existing) {
336
- deduped[existingIndex] = mergeEquivalentRuntimeUnionMembers(existing, member);
337
- }
338
- }
339
- return deduped
340
- .map((member, index) => ({ member, index }))
341
- .sort((left, right) => {
342
- const leftKey = getRuntimeUnionMemberSortKey(left.member, context);
343
- const rightKey = getRuntimeUnionMemberSortKey(right.member, context);
344
- if (leftKey !== rightKey) {
345
- return leftKey.localeCompare(rightKey);
346
- }
347
- const leftStableKey = tryContextualTypeIdentityKey(left.member, context);
348
- const rightStableKey = tryContextualTypeIdentityKey(right.member, context);
349
- if (leftStableKey && rightStableKey && leftStableKey !== rightStableKey) {
350
- return leftStableKey.localeCompare(rightStableKey);
351
- }
352
- return left.index - right.index;
353
- })
354
- .map(({ member }) => member);
355
- };
356
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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"}
@@ -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":"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"}
1
+ {"version":3,"file":"semantic-union-members.js","sourceRoot":"","sources":["../../../src/core/semantic/semantic-union-members.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import { IrType } from "@tsonic/frontend";
2
2
  import type { EmitterContext } from "../../types.js";
3
+ export declare const resolveRuntimeStorageArrayLikeElementType: (type: IrType | undefined, context: EmitterContext) => IrType | undefined;
4
+ export declare const resolveRuntimeStorageType: (type: IrType | undefined, context: EmitterContext) => IrType | undefined;
5
+ export declare const resolveRuntimeStoragePropertyType: (receiverType: IrType | undefined, propertyName: string, fallbackType: IrType | undefined, context: EmitterContext) => IrType | undefined;
3
6
  export declare const isObjectStorageType: (type: IrType | undefined, context: EmitterContext) => boolean;
4
7
  export declare function shouldUseBroadObjectForUnionStorage(type: Extract<IrType, {
5
8
  kind: "unionType";
@@ -1 +1 @@
1
- {"version":3,"file":"storage-types.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/storage-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAoCrD,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,GAAG,SAAS,EACxB,SAAS,cAAc,KACtB,OAWF,CAAC;AAEF,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,EAC5C,OAAO,EAAE,cAAc,EACvB,eAAe,GAAE,WAAW,CAAC,MAAM,CAAqB,GACvD,OAAO,CAwCT;AA4OD,eAAO,MAAM,2BAA2B,GACtC,MAAM,MAAM,GAAG,SAAS,EACxB,SAAS,cAAc,EACvB,kBAAiB,WAAW,CAAC,MAAM,CAAqB,KACvD,MAAM,GAAG,SAgPX,CAAC"}
1
+ {"version":3,"file":"storage-types.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/storage-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAyBrD,eAAO,MAAM,yCAAyC,GACpD,MAAM,MAAM,GAAG,SAAS,EACxB,SAAS,cAAc,KACtB,MAAM,GAAG,SAIX,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,GAAG,SAAS,EACxB,SAAS,cAAc,KACtB,MAAM,GAAG,SAAuD,CAAC;AAEpE,eAAO,MAAM,iCAAiC,GAC5C,cAAc,MAAM,GAAG,SAAS,EAChC,cAAc,MAAM,EACpB,cAAc,MAAM,GAAG,SAAS,EAChC,SAAS,cAAc,KACtB,MAAM,GAAG,SAIX,CAAC;AAeF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,GAAG,SAAS,EACxB,SAAS,cAAc,KACtB,OAWF,CAAC;AAEF,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,EAC5C,OAAO,EAAE,cAAc,EACvB,eAAe,GAAE,WAAW,CAAC,MAAM,CAAqB,GACvD,OAAO,CAwCT;AA4OD,eAAO,MAAM,2BAA2B,GACtC,MAAM,MAAM,GAAG,SAAS,EACxB,SAAS,cAAc,EACvB,kBAAiB,WAAW,CAAC,MAAM,CAAqB,KACvD,MAAM,GAAG,SAgPX,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { isAwaitableIrType } from "@tsonic/frontend";
2
- import { getCanonicalRuntimeUnionMembers } from "./runtime-unions.js";
3
- import { resolveTypeAlias, splitRuntimeNullishUnionMembers, } from "./type-resolution.js";
2
+ import { getCanonicalRuntimeUnionMembers } from "./runtime-union-frame.js";
3
+ import { getPropertyType, resolveArrayLikeReceiverType, resolveTypeAlias, splitRuntimeNullishUnionMembers, } from "./type-resolution.js";
4
4
  import { rebuildUnionTypePreservingCarrierFamily } from "./runtime-union-family-preservation.js";
5
5
  import { isBroadObjectSlotType } from "./broad-object-types.js";
6
6
  import { referenceTypeHasClrIdentity } from "./clr-type-identity.js";
@@ -15,6 +15,17 @@ const OBJECT_STORAGE_TYPE = {
15
15
  name: "object",
16
16
  resolvedClrType: "System.Object",
17
17
  };
18
+ export const resolveRuntimeStorageArrayLikeElementType = (type, context) => {
19
+ if (!type)
20
+ return undefined;
21
+ const storageType = resolveRuntimeStorageType(type, context) ?? type;
22
+ return resolveArrayLikeReceiverType(storageType, context)?.elementType;
23
+ };
24
+ export const resolveRuntimeStorageType = (type, context) => normalizeRuntimeStorageType(type, context);
25
+ export const resolveRuntimeStoragePropertyType = (receiverType, propertyName, fallbackType, context) => {
26
+ const propertyType = getPropertyType(receiverType, propertyName, context) ?? fallbackType;
27
+ return resolveRuntimeStorageType(propertyType, context) ?? propertyType;
28
+ };
18
29
  const typesEquivalent = (left, right, context) => areIrTypesEquivalent(left, right, context);
19
30
  const containsEquivalentType = (types, type, context) => types.some((candidate) => typesEquivalent(candidate, type, context));
20
31
  export const isObjectStorageType = (type, context) => {