fix: canonicalize nested composition references

This commit is contained in:
2026-10-24 03:51:50 +02:00
parent cbbf5e7d6c
commit 3a90a90428
2 changed files with 17 additions and 15 deletions
+4 -3
View File
@@ -453,7 +453,8 @@ sum_syntax :: proc(store: ^Store, left, right: Type) -> Type {
}
append_sum_variants :: proc(store: ^Store, value: Type, out: ^[dynamic]Sum_Variant) -> bool {
item, ok := node(store, value)
resolved := resolve_alias(value, store)
item, ok := node(store, resolved)
if !ok {
return false
}
@@ -461,7 +462,7 @@ append_sum_variants :: proc(store: ^Store, value: Type, out: ^[dynamic]Sum_Varia
if item.explicit_backing {
return false
}
for member in enum_members_for(store, value) {
for member in enum_members_for(store, resolved) {
if member.value <= 0 || member.value > 0xffff {
return false
}
@@ -473,7 +474,7 @@ append_sum_variants :: proc(store: ^Store, value: Type, out: ^[dynamic]Sum_Varia
return false
}
tag_members := enum_members_for(store, item.child)
for field in fields_for(store, value) {
for field in fields_for(store, resolved) {
found := false
for member in tag_members {
if member.name == field.name {