| author | |
| committer | |
| log | 510b891d271bc69c64e4be8b3e008c8a51a235e7 |
| tree | b26b14482f56bdb663f1dae2b31b70e18bc69b74 |
| parent | 0616d2966a623a005891a2037b49cc2b8ad5b9c4 |
2 files changed, 11 insertions(+), 0 deletions(-)
src/Sema.zig+4| ... | ... | @@ -26555,6 +26555,10 @@ fn beginComptimePtrLoad( |
| 26555 | 26555 | .null_value => { |
| 26556 | 26556 | return sema.fail(block, src, "attempt to use null value", .{}); |
| 26557 | 26557 | }, |
| 26558 | .opt_payload => blk: { | |
| 26559 | const opt_payload = ptr_val.castTag(.opt_payload).?.data; | |
| 26560 | break :blk try sema.beginComptimePtrLoad(block, src, opt_payload, null); | |
| 26561 | }, | |
| 26558 | 26562 | |
| 26559 | 26563 | .zero, |
| 26560 | 26564 | .one, |
test/behavior/type_info.zig+7| ... | ... | @@ -565,3 +565,10 @@ test "typeInfo resolves usingnamespace declarations" { |
| 565 | 565 | try expect(@typeInfo(B).Struct.decls.len == 2); |
| 566 | 566 | //a |
| 567 | 567 | } |
| 568 | ||
| 569 | test "value from struct @typeInfo default_value can be loaded at comptime" { | |
| 570 | comptime { | |
| 571 | const a = @typeInfo(@TypeOf(.{ .foo = @as(u8, 1) })).Struct.fields[0].default_value; | |
| 572 | try expect(@ptrCast(*const u8, a).* == 1); | |
| 573 | } | |
| 574 | } |