Corrected default value field initialization in std.zeroInit

This commit is contained in:
Alexandros Naskos 2020-07-01 00:33:35 +03:00 committed by Andrew Kelley
parent b8d5b3e611
commit 30ae7f7573

View File

@ -720,8 +720,8 @@ pub fn zeroInit(comptime T: type, init: var) T {
@field(value, field.name) = @field(init, field.name);
},
}
} else if (field.default_value != null) {
@field(value, field.name) = field.default_value;
} else if (field.default_value) |default_value| {
@field(value, field.name) = default_value;
}
}
@ -748,7 +748,7 @@ test "zeroInit" {
b: ?bool,
c: I,
e: [3]u8,
f: i64,
f: i64 = -1,
};
const s = zeroInit(S, .{
@ -762,7 +762,7 @@ test "zeroInit" {
.d = 0,
},
.e = [3]u8{ 0, 0, 0 },
.f = 0,
.f = -1,
});
}