authorgravatar for mitchell.hashimoto@gmail.comMitchell Hashimoto <mitchell.hashimoto@gmail.com> 2022-03-11 09:36:57-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-11 17:15:36-05:00
log797f4db227dcdbe48ffb309763a48fbe6eaf5935
tree7acc78e9d245c095497c341e1cd54e1a44d608fd
parent79b169c5a564978dbbbb6253f847c2d9b1734e22

stage2: Array len field should be a usize not comptime_int


2 files changed, 4 insertions(+), 3 deletions(-)

src/Sema.zig+3-3
...@@ -14948,7 +14948,7 @@ fn fieldVal(...@@ -14948,7 +14948,7 @@ fn fieldVal(
14948 .Array => {14948 .Array => {
14949 if (mem.eql(u8, field_name, "len")) {14949 if (mem.eql(u8, field_name, "len")) {
14950 return sema.addConstant(14950 return sema.addConstant(
14951 Type.comptime_int,14951 Type.usize,
14952 try Value.Tag.int_u64.create(arena, inner_ty.arrayLen()),14952 try Value.Tag.int_u64.create(arena, inner_ty.arrayLen()),
14953 );14953 );
14954 } else {14954 } else {
...@@ -14986,7 +14986,7 @@ fn fieldVal(...@@ -14986,7 +14986,7 @@ fn fieldVal(
14986 } else if (ptr_info.pointee_type.zigTypeTag() == .Array) {14986 } else if (ptr_info.pointee_type.zigTypeTag() == .Array) {
14987 if (mem.eql(u8, field_name, "len")) {14987 if (mem.eql(u8, field_name, "len")) {
14988 return sema.addConstant(14988 return sema.addConstant(
14989 Type.comptime_int,14989 Type.usize,
14990 try Value.Tag.int_u64.create(arena, ptr_info.pointee_type.arrayLen()),14990 try Value.Tag.int_u64.create(arena, ptr_info.pointee_type.arrayLen()),
14991 );14991 );
14992 } else {14992 } else {
...@@ -15131,7 +15131,7 @@ fn fieldPtr(...@@ -15131,7 +15131,7 @@ fn fieldPtr(
15131 var anon_decl = try block.startAnonDecl(src);15131 var anon_decl = try block.startAnonDecl(src);
15132 defer anon_decl.deinit();15132 defer anon_decl.deinit();
15133 return sema.analyzeDeclRef(try anon_decl.finish(15133 return sema.analyzeDeclRef(try anon_decl.finish(
15134 Type.initTag(.comptime_int),15134 Type.usize,
15135 try Value.Tag.int_u64.create(anon_decl.arena(), inner_ty.arrayLen()),15135 try Value.Tag.int_u64.create(anon_decl.arena(), inner_ty.arrayLen()),
15136 ));15136 ));
15137 } else {15137 } else {
test/behavior/array.zig+1
...@@ -104,6 +104,7 @@ test "array len field" {...@@ -104,6 +104,7 @@ test "array len field" {
104 comptime try expect(arr.len == 4);104 comptime try expect(arr.len == 4);
105 try expect(ptr.len == 4);105 try expect(ptr.len == 4);
106 comptime try expect(ptr.len == 4);106 comptime try expect(ptr.len == 4);
107 try expect(@TypeOf(arr.len) == usize);
107}108}
108109
109test "array with sentinels" {110test "array with sentinels" {