diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2025-10-05 16:24:59 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2025-10-05 16:24:59 -0400 |
| commit | 9738b3454639ddf3ae46186a5c6ba671fe9a6861 (patch) | |
| tree | 3b9d300b4d2cae1479c013bdb154b1eb7e16780f /src/types.c | |
| parent | 76d3008d98cf9cd6ed60a9aa66a87f854965f0ab (diff) | |
Add serialization and deserialization by coercion to/from [Byte]
Diffstat (limited to 'src/types.c')
| -rw-r--r-- | src/types.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/types.c b/src/types.c index ff86ab8f..900588f5 100644 --- a/src/types.c +++ b/src/types.c @@ -274,6 +274,9 @@ PUREFUNC bool can_promote(type_t *actual, type_t *needed) { // No promotion necessary: if (type_eq(actual, needed)) return true; + // Serialization/deserialization + if (type_eq(actual, Type(ListType, Type(ByteType))) || type_eq(needed, Type(ListType, Type(ByteType)))) return true; + if (actual->tag == NumType && needed->tag == IntType) return false; if (actual->tag == IntType && (needed->tag == NumType || needed->tag == BigIntType)) return true; |
