stage2: Array len field should be a usize not comptime_int

This commit is contained in:
Mitchell Hashimoto 2022-03-11 09:36:57 -08:00 committed by Andrew Kelley
parent 79b169c5a5
commit 797f4db227
2 changed files with 4 additions and 3 deletions

View File

@ -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 {

View File

@ -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" {