Commit 5469e3e3c1
Changed files (2)
src
test
stage1
behavior
src/ir.cpp
@@ -18466,7 +18466,7 @@ static Error ir_make_type_info_value(IrAnalyze *ira, IrInstruction *source_instr
size_t byte_offset = LLVMOffsetOfElement(ira->codegen->target_data_ref, type_entry->type_ref, struct_field->gen_index);
inner_fields[1].data.x_optional = create_const_vals(1);
inner_fields[1].data.x_optional->special = ConstValSpecialStatic;
- inner_fields[1].data.x_optional->type = ira->codegen->builtin_types.entry_usize;
+ inner_fields[1].data.x_optional->type = ira->codegen->builtin_types.entry_num_lit_int;
bigint_init_unsigned(&inner_fields[1].data.x_optional->data.x_bigint, byte_offset);
}
test/stage1/behavior/type_info.zig
@@ -289,3 +289,13 @@ fn testVector() void {
expect(vec_info.Vector.len == 4);
expect(vec_info.Vector.child == i32);
}
+
+test "type info: optional field unwrapping" {
+ const Struct = struct {
+ cdOffset: u32,
+ };
+
+ const field = @typeInfo(Struct).Struct.fields[0];
+
+ _ = field.offset orelse 0;
+}