diff --git a/src/eval.pr b/src/eval.pr index d84a3e7f..eb7254e7 100644 --- a/src/eval.pr +++ b/src/eval.pr @@ -148,12 +148,12 @@ def get(mem: *, tpe: *typechecking::Type) -> compiler::Value { return { kind = compiler::ValueKind::BOOL, tpe = tpe, i = (@(mem !*bool)) !int64 } !compiler::Value case typechecking::TypeKind::POINTER: return { kind = compiler::ValueKind::POINTER, tpe = tpe, i = @(mem !*int64) } !compiler::Value - case typechecking::TypeKind::STRUCT: + case typechecking::TypeKind::UNION: let field = tpe.biggest_field let values = allocate(compiler::Value, 1) values[0] = get(mem, field.tpe) return { kind = compiler::ValueKind::STRUCT, tpe = tpe, values = values } !compiler::Value - case typechecking::TypeKind::UNION: + case typechecking::TypeKind::STRUCT: let values = allocate(compiler::Value, tpe.fields.size) for var i in 0..tpe.fields.size { let field = tpe.fields[i]