Commit 5469e3e3c1

Sahnvour <sahnvour@pm.me>
2019-03-05 22:12:53
missed change when switching TypeInfo to use comptime_int
fixes #2030
1 parent e2f4df6
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;
+}