Commit 30ae7f7573

Alexandros Naskos <alex_naskos@hotmail.com>
2020-06-30 23:33:35
Corrected default value field initialization in std.zeroInit
1 parent b8d5b3e
Changed files (1)
lib
lib/std/mem.zig
@@ -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,
     });
 }