aboutsummaryrefslogtreecommitdiff
path: root/test/behavior
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-12-01 11:49:06 +0200
committerVeikka Tuominen <git@vexu.eu>2022-12-01 11:49:06 +0200
commitd0edaabf9d5fd4a8a8e43aef38d8970781dd1c86 (patch)
treedfae257fa21ba3489fb623b15ad425f2b5a3a427 /test/behavior
parent98037a02384cdd9fa9c71210fb35d24b82e61f36 (diff)
downloadzig-d0edaabf9d5fd4a8a8e43aef38d8970781dd1c86.tar.gz
zig-d0edaabf9d5fd4a8a8e43aef38d8970781dd1c86.zip
Value: fix elemValueAdvanced for optional payloads
Closes #13707
Diffstat (limited to 'test/behavior')
-rw-r--r--test/behavior/type.zig22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/behavior/type.zig b/test/behavior/type.zig
index 81aeda6171..556a8c990d 100644
--- a/test/behavior/type.zig
+++ b/test/behavior/type.zig
@@ -535,3 +535,25 @@ test "Type.Fn" {
try std.testing.expectEqual(T, fn_type);
}
}
+
+test "reified struct field name from optional payload" {
+ comptime {
+ const m_name: ?[1]u8 = "a".*;
+ if (m_name) |*name| {
+ const T = @Type(.{ .Struct = .{
+ .layout = .Auto,
+ .fields = &.{.{
+ .name = name,
+ .field_type = u8,
+ .default_value = null,
+ .is_comptime = false,
+ .alignment = 1,
+ }},
+ .decls = &.{},
+ .is_tuple = false,
+ } });
+ var t: T = .{ .a = 123 };
+ try std.testing.expect(t.a == 123);
+ }
+ }
+}