diff --git a/packages/compiler/src/backend/llvm/region-groups.ts b/packages/compiler/src/backend/llvm/region-groups.ts index 70e4168ed..ce8354c92 100644 --- a/packages/compiler/src/backend/llvm/region-groups.ts +++ b/packages/compiler/src/backend/llvm/region-groups.ts @@ -438,7 +438,11 @@ export function analyzeRegionGroups(mod: IrModule): RegionGroups { const info: UseInfo = {}; const use = useOf(parents[index]!, parents.slice(0, index), false, info); if (use !== "internal") { - Object.assign(out, info); + // Field by field: an Object.assign onto a record makes the + // self-hosted compiler read class and record properties dynamically. + if (info.bound !== undefined) out.bound = info.bound; + if (info.at !== undefined) out.at = info.at; + if (info.target !== undefined) out.target = info.target; return use; } index = info.at!;