Commit 797f4db227

Mitchell Hashimoto <mitchell.hashimoto@gmail.com>
2022-03-11 18:36:57
stage2: Array len field should be a usize not comptime_int
1 parent 79b169c
Changed files (2)
src
test
behavior
src/Sema.zig
@@ -14948,7 +14948,7 @@ fn fieldVal(
         .Array => {
             if (mem.eql(u8, field_name, "len")) {
                 return sema.addConstant(
-                    Type.comptime_int,
+                    Type.usize,
                     try Value.Tag.int_u64.create(arena, inner_ty.arrayLen()),
                 );
             } else {
@@ -14986,7 +14986,7 @@ fn fieldVal(
             } else if (ptr_info.pointee_type.zigTypeTag() == .Array) {
                 if (mem.eql(u8, field_name, "len")) {
                     return sema.addConstant(
-                        Type.comptime_int,
+                        Type.usize,
                         try Value.Tag.int_u64.create(arena, ptr_info.pointee_type.arrayLen()),
                     );
                 } else {
@@ -15131,7 +15131,7 @@ fn fieldPtr(
                 var anon_decl = try block.startAnonDecl(src);
                 defer anon_decl.deinit();
                 return sema.analyzeDeclRef(try anon_decl.finish(
-                    Type.initTag(.comptime_int),
+                    Type.usize,
                     try Value.Tag.int_u64.create(anon_decl.arena(), inner_ty.arrayLen()),
                 ));
             } else {
test/behavior/array.zig
@@ -104,6 +104,7 @@ test "array len field" {
     comptime try expect(arr.len == 4);
     try expect(ptr.len == 4);
     comptime try expect(ptr.len == 4);
+    try expect(@TypeOf(arr.len) == usize);
 }
 
 test "array with sentinels" {