@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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/array.test.js +5 -1
- package/dist/array.test.js.map +1 -1
- package/dist/core/module-emitter-cases/static-containers.test.js +2 -1
- package/dist/core/module-emitter-cases/static-containers.test.js.map +1 -1
- package/dist/core/semantic/array-expected-types.js +1 -1
- package/dist/core/semantic/array-expected-types.js.map +1 -1
- package/dist/core/semantic/assignment-flow.d.ts.map +1 -1
- package/dist/core/semantic/assignment-flow.js +2 -1
- package/dist/core/semantic/assignment-flow.js.map +1 -1
- package/dist/core/semantic/direct-value-surfaces.js +2 -1
- package/dist/core/semantic/direct-value-surfaces.js.map +1 -1
- package/dist/core/semantic/instanceof-predicate-refinements.js +1 -1
- package/dist/core/semantic/instanceof-predicate-refinements.js.map +1 -1
- package/dist/core/semantic/mutable-storage-helpers.d.ts.map +1 -1
- package/dist/core/semantic/mutable-storage-helpers.js +3 -2
- package/dist/core/semantic/mutable-storage-helpers.js.map +1 -1
- package/dist/core/semantic/narrowed-expression-types.js +1 -1
- package/dist/core/semantic/narrowed-expression-types.js.map +1 -1
- package/dist/core/semantic/narrowed-union-resolution.js +1 -1
- package/dist/core/semantic/narrowed-union-resolution.js.map +1 -1
- package/dist/core/semantic/nullable-typeof-refinements.d.ts.map +1 -1
- package/dist/core/semantic/nullable-typeof-refinements.js +8 -31
- package/dist/core/semantic/nullable-typeof-refinements.js.map +1 -1
- package/dist/core/semantic/runtime-union-frame.d.ts +6 -0
- package/dist/core/semantic/runtime-union-frame.d.ts.map +1 -0
- package/dist/core/semantic/runtime-union-frame.js +130 -0
- package/dist/core/semantic/runtime-union-frame.js.map +1 -0
- package/dist/core/semantic/runtime-unions.d.ts +3 -4
- package/dist/core/semantic/runtime-unions.d.ts.map +1 -1
- package/dist/core/semantic/runtime-unions.js +4 -129
- package/dist/core/semantic/runtime-unions.js.map +1 -1
- package/dist/core/semantic/semantic-union-members.js +1 -1
- package/dist/core/semantic/semantic-union-members.js.map +1 -1
- package/dist/core/semantic/storage-types.d.ts +3 -0
- package/dist/core/semantic/storage-types.d.ts.map +1 -1
- package/dist/core/semantic/storage-types.js +13 -2
- package/dist/core/semantic/storage-types.js.map +1 -1
- package/dist/core/semantic/surface-member-semantics.d.ts +14 -0
- package/dist/core/semantic/surface-member-semantics.d.ts.map +1 -0
- package/dist/core/semantic/surface-member-semantics.js +41 -0
- package/dist/core/semantic/surface-member-semantics.js.map +1 -0
- package/dist/core/semantic/ternary-guards.d.ts +1 -1
- package/dist/core/semantic/ternary-guards.d.ts.map +1 -1
- package/dist/core/semantic/ternary-guards.js +2 -1
- package/dist/core/semantic/ternary-guards.js.map +1 -1
- package/dist/core/semantic/typeof-comparison.d.ts +14 -0
- package/dist/core/semantic/typeof-comparison.d.ts.map +1 -0
- package/dist/core/semantic/typeof-comparison.js +47 -0
- package/dist/core/semantic/typeof-comparison.js.map +1 -0
- package/dist/core/semantic/union-semantics.js +1 -1
- package/dist/core/semantic/union-semantics.js.map +1 -1
- package/dist/emitter-types/context.d.ts.map +1 -1
- package/dist/emitter-types/context.js +1 -0
- package/dist/emitter-types/context.js.map +1 -1
- package/dist/expressions/access-binding.d.ts.map +1 -1
- package/dist/expressions/access-binding.js +18 -32
- package/dist/expressions/access-binding.js.map +1 -1
- package/dist/expressions/access-computed.d.ts.map +1 -1
- package/dist/expressions/access-computed.js +3 -7
- package/dist/expressions/access-computed.js.map +1 -1
- package/dist/expressions/access-function-length.d.ts +13 -0
- package/dist/expressions/access-function-length.d.ts.map +1 -0
- package/dist/expressions/access-function-length.js +115 -0
- package/dist/expressions/access-function-length.js.map +1 -0
- package/dist/expressions/access-length.d.ts +2 -4
- package/dist/expressions/access-length.d.ts.map +1 -1
- package/dist/expressions/access-length.js +7 -23
- package/dist/expressions/access-length.js.map +1 -1
- package/dist/expressions/access-length.test.js +17 -0
- package/dist/expressions/access-length.test.js.map +1 -1
- package/dist/expressions/access-resolution-receivers.d.ts.map +1 -1
- package/dist/expressions/access-resolution-receivers.js +10 -12
- package/dist/expressions/access-resolution-receivers.js.map +1 -1
- package/dist/expressions/access.d.ts.map +1 -1
- package/dist/expressions/access.js +7 -19
- package/dist/expressions/access.js.map +1 -1
- package/dist/expressions/architecture-invariants.test.js +94 -0
- package/dist/expressions/architecture-invariants.test.js.map +1 -1
- package/dist/expressions/awaitable-adaptation.d.ts +15 -0
- package/dist/expressions/awaitable-adaptation.d.ts.map +1 -0
- package/dist/expressions/awaitable-adaptation.js +174 -0
- package/dist/expressions/awaitable-adaptation.js.map +1 -0
- package/dist/expressions/calls/call-arguments-emit.d.ts.map +1 -1
- package/dist/expressions/calls/call-arguments-emit.js +20 -2
- package/dist/expressions/calls/call-arguments-emit.js.map +1 -1
- package/dist/expressions/calls/call-arguments-helpers.js +2 -2
- package/dist/expressions/calls/call-arguments-helpers.js.map +1 -1
- package/dist/expressions/calls/call-array-interop.d.ts +1 -1
- package/dist/expressions/calls/call-array-interop.d.ts.map +1 -1
- package/dist/expressions/calls/call-array-interop.js +1 -1
- package/dist/expressions/calls/call-array-interop.js.map +1 -1
- package/dist/expressions/calls/call-array-mutation.d.ts +0 -1
- package/dist/expressions/calls/call-array-mutation.d.ts.map +1 -1
- package/dist/expressions/calls/call-array-mutation.js +5 -7
- package/dist/expressions/calls/call-array-mutation.js.map +1 -1
- package/dist/expressions/calls/call-array-wrapper.d.ts.map +1 -1
- package/dist/expressions/calls/call-array-wrapper.js +3 -8
- package/dist/expressions/calls/call-array-wrapper.js.map +1 -1
- package/dist/expressions/expected-type-adaptation.d.ts.map +1 -1
- package/dist/expressions/expected-type-adaptation.js +15 -1
- package/dist/expressions/expected-type-adaptation.js.map +1 -1
- package/dist/expressions/identifier-storage/broad-storage-target.d.ts +4 -0
- package/dist/expressions/identifier-storage/broad-storage-target.d.ts.map +1 -0
- package/dist/expressions/identifier-storage/broad-storage-target.js +26 -0
- package/dist/expressions/identifier-storage/broad-storage-target.js.map +1 -0
- package/dist/expressions/identifier-storage/implicit-storage.d.ts +14 -0
- package/dist/expressions/identifier-storage/implicit-storage.d.ts.map +1 -0
- package/dist/expressions/identifier-storage/implicit-storage.js +44 -0
- package/dist/expressions/identifier-storage/implicit-storage.js.map +1 -0
- package/dist/expressions/identifier-storage/materialized-narrowed.d.ts +7 -0
- package/dist/expressions/identifier-storage/materialized-narrowed.d.ts.map +1 -0
- package/dist/expressions/identifier-storage/materialized-narrowed.js +92 -0
- package/dist/expressions/identifier-storage/materialized-narrowed.js.map +1 -0
- package/dist/expressions/identifier-storage/narrowed-storage-compatible.d.ts +14 -0
- package/dist/expressions/identifier-storage/narrowed-storage-compatible.d.ts.map +1 -0
- package/dist/expressions/identifier-storage/narrowed-storage-compatible.js +168 -0
- package/dist/expressions/identifier-storage/narrowed-storage-compatible.js.map +1 -0
- package/dist/expressions/identifier-storage/reified-storage.d.ts +7 -0
- package/dist/expressions/identifier-storage/reified-storage.d.ts.map +1 -0
- package/dist/expressions/identifier-storage/reified-storage.js +25 -0
- package/dist/expressions/identifier-storage/reified-storage.js.map +1 -0
- package/dist/expressions/identifier-storage/runtime-subset.d.ts +14 -0
- package/dist/expressions/identifier-storage/runtime-subset.d.ts.map +1 -0
- package/dist/expressions/identifier-storage/runtime-subset.js +100 -0
- package/dist/expressions/identifier-storage/runtime-subset.js.map +1 -0
- package/dist/expressions/identifier-storage/storage-compatible.d.ts +10 -0
- package/dist/expressions/identifier-storage/storage-compatible.d.ts.map +1 -0
- package/dist/expressions/identifier-storage/storage-compatible.js +76 -0
- package/dist/expressions/identifier-storage/storage-compatible.js.map +1 -0
- package/dist/expressions/identifier-storage/storage-surface-match.d.ts +4 -0
- package/dist/expressions/identifier-storage/storage-surface-match.d.ts.map +1 -0
- package/dist/expressions/identifier-storage/storage-surface-match.js +95 -0
- package/dist/expressions/identifier-storage/storage-surface-match.js.map +1 -0
- package/dist/expressions/identifier-storage/storage-surface-shared.d.ts +12 -0
- package/dist/expressions/identifier-storage/storage-surface-shared.d.ts.map +1 -0
- package/dist/expressions/identifier-storage/storage-surface-shared.js +77 -0
- package/dist/expressions/identifier-storage/storage-surface-shared.js.map +1 -0
- package/dist/expressions/identifier-storage/storage-surface.d.ts +9 -0
- package/dist/expressions/identifier-storage/storage-surface.d.ts.map +1 -0
- package/dist/expressions/identifier-storage/storage-surface.js +9 -0
- package/dist/expressions/identifier-storage/storage-surface.js.map +1 -0
- package/dist/expressions/identifier-storage.d.ts +1 -47
- package/dist/expressions/identifier-storage.d.ts.map +1 -1
- package/dist/expressions/identifier-storage.js +1 -652
- package/dist/expressions/identifier-storage.js.map +1 -1
- package/dist/expressions/index-cases/array-wrapper-recursion-b.test.js +7 -1
- package/dist/expressions/index-cases/array-wrapper-recursion-b.test.js.map +1 -1
- package/dist/expressions/index-cases/array-wrapper-recursion-c.test.js +4 -1
- package/dist/expressions/index-cases/array-wrapper-recursion-c.test.js.map +1 -1
- package/dist/expressions/index-cases/helpers.d.ts +1 -0
- package/dist/expressions/index-cases/helpers.d.ts.map +1 -1
- package/dist/expressions/index-cases/helpers.js +28 -0
- package/dist/expressions/index-cases/helpers.js.map +1 -1
- package/dist/expressions/index-cases/string-and-array-fallbacks-a.test.js +18 -9
- package/dist/expressions/index-cases/string-and-array-fallbacks-a.test.js.map +1 -1
- package/dist/expressions/index-cases/string-and-array-fallbacks-b.test.js +5 -5
- package/dist/expressions/index-cases/string-and-array-fallbacks-b.test.js.map +1 -1
- package/dist/expressions/lambda-body.js +3 -3
- package/dist/expressions/lambda-body.js.map +1 -1
- package/dist/expressions/operators/binary-special-ops.d.ts.map +1 -1
- package/dist/expressions/operators/binary-special-ops.js +4 -30
- package/dist/expressions/operators/binary-special-ops.js.map +1 -1
- package/dist/expressions/runtime-union-adaptation-upcast.d.ts +1 -1
- package/dist/expressions/runtime-union-adaptation-upcast.d.ts.map +1 -1
- package/dist/expressions/runtime-union-adaptation-upcast.js +13 -0
- package/dist/expressions/runtime-union-adaptation-upcast.js.map +1 -1
- package/dist/integration-cases/may14-downstream-contracts.test.js +372 -0
- package/dist/integration-cases/may14-downstream-contracts.test.js.map +1 -1
- package/dist/statements/classes/members/properties.d.ts.map +1 -1
- package/dist/statements/classes/members/properties.js +2 -3
- package/dist/statements/classes/members/properties.js.map +1 -1
- package/dist/statements/control/conditionals/branch-context.js +3 -3
- package/dist/statements/control/conditionals/branch-context.js.map +1 -1
- package/dist/statements/control/conditionals/guard-extraction.d.ts.map +1 -1
- package/dist/statements/control/conditionals/guard-extraction.js +7 -32
- package/dist/statements/control/conditionals/guard-extraction.js.map +1 -1
- package/dist/statements/control/loops.js +2 -2
- package/dist/statements/control/loops.js.map +1 -1
- package/dist/types/unions.js +2 -1
- package/dist/types/unions.js.map +1 -1
- package/package.json +2 -2
- package/dist/core/semantic/js-array-surface-members.d.ts +0 -4
- package/dist/core/semantic/js-array-surface-members.d.ts.map +0 -1
- package/dist/core/semantic/js-array-surface-members.js +0 -32
- 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
|
-
|
|
317
|
+
const comparison = tryExtractTypeofComparison(condition);
|
|
318
|
+
if (!comparison?.narrowable)
|
|
317
319
|
return undefined;
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
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
|
|
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 {
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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-
|
|
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,
|
|
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;
|
|
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-
|
|
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) => {
|