Commit 9a52abf3b4
Changed files (3)
src
test
behavior
bugs
src/Sema.zig
@@ -28775,6 +28775,7 @@ fn semaBackingIntType(mod: *Module, struct_obj: *Module.Struct) CompileError!voi
try sema.checkBackingIntType(&block, backing_int_src, backing_int_ty, fields_bit_sum);
struct_obj.backing_int_ty = try backing_int_ty.copy(decl_arena_allocator);
+ try wip_captures.finalize();
} else {
var buf: Type.Payload.Bits = .{
.base = .{ .tag = .int_unsigned },
@@ -29386,6 +29387,7 @@ fn semaStructFields(mod: *Module, struct_obj: *Module.Struct) CompileError!void
}
}
}
+ try wip_captures.finalize();
struct_obj.have_field_inits = true;
}
test/behavior/bugs/13171.zig
@@ -0,0 +1,16 @@
+const std = @import("std");
+const expect = std.testing.expect;
+
+fn BuildType(comptime T: type) type {
+ return struct {
+ val: union {
+ b: T,
+ },
+ };
+}
+
+test {
+ const TestStruct = BuildType(u32);
+ const c = TestStruct{ .val = .{ .b = 10 } };
+ try expect(c.val.b == 10);
+}
test/behavior.zig
@@ -108,6 +108,7 @@ test {
_ = @import("behavior/bugs/13112.zig");
_ = @import("behavior/bugs/13128.zig");
_ = @import("behavior/bugs/13164.zig");
+ _ = @import("behavior/bugs/13171.zig");
_ = @import("behavior/byteswap.zig");
_ = @import("behavior/byval_arg_var.zig");
_ = @import("behavior/call.zig");