authorgravatar for johnnymarler@gmail.comJonathan Marler <johnnymarler@gmail.com> 2019-09-04 11:08:49-06:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-09-05 13:08:45-04:00
log9a358d2d33b0ecdec38ba3698acf8b239c43b667
tree8174259bea6cfe1b82ada4e8808f23403f73a073
parent847a262efdf5f3a359b00f13c101236dc0747f1b

Add Array support to @Type


2 files changed, 13 insertions(+), 1 deletions(-)

src/ir.cpp+7-1
......@@ -20942,6 +20942,13 @@ static ZigType *type_info_to_type(IrAnalyze *ira, IrInstruction *instruction, Zi
2094220942 return ptr_type;
2094320943 return get_slice_type(ira->codegen, ptr_type);
2094420944 }
20945 case ZigTypeIdArray:
20946 assert(payload->special == ConstValSpecialStatic);
20947 assert(payload->type == ir_type_info_get_type(ira, "Array", nullptr));
20948 return get_array_type(ira->codegen,
20949 get_const_field_meta_type(ira, payload, "child", 1),
20950 bigint_as_u64(get_const_field_lit_int(ira, payload, "len", 0))
20951 );
2094520952 case ZigTypeIdComptimeFloat:
2094620953 return ira->codegen->builtin_types.entry_num_lit_float;
2094720954 case ZigTypeIdComptimeInt:
......@@ -20950,7 +20957,6 @@ static ZigType *type_info_to_type(IrAnalyze *ira, IrInstruction *instruction, Zi
2095020957 return ira->codegen->builtin_types.entry_undef;
2095120958 case ZigTypeIdNull:
2095220959 return ira->codegen->builtin_types.entry_null;
20953 case ZigTypeIdArray:
2095420960 case ZigTypeIdOptional:
2095520961 case ZigTypeIdErrorUnion:
2095620962 case ZigTypeIdErrorSet:
test/stage1/behavior/type.zig+6
......@@ -93,6 +93,12 @@ test "Type.Pointer" {
9393 });
9494}
9595
96test "Type.Array" {
97 testing.expect([123]u8 == @Type(TypeInfo { .Array = TypeInfo.Array { .len = 123, .child = u8 } }));
98 testing.expect([2]u32 == @Type(TypeInfo { .Array = TypeInfo.Array { .len = 2, .child = u32 } }));
99 testTypes([_]type {[1]u8, [30]usize, [7]bool});
100}
101
96102test "Type.ComptimeFloat" {
97103 testTypes([_]type {comptime_float});
98104}