From 797f4db227dcdbe48ffb309763a48fbe6eaf5935 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 11 Mar 2022 09:36:57 -0800 Subject: [PATCH] stage2: Array len field should be a usize not comptime_int --- src/Sema.zig | 6 +++--- test/behavior/array.zig | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Sema.zig b/src/Sema.zig index ac43ef76b3..00553710df 100644 --- a/src/Sema.zig +++ b/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 { diff --git a/test/behavior/array.zig b/test/behavior/array.zig index efd6624445..eb8ae8972d 100644 --- a/test/behavior/array.zig +++ b/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" {