aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitchell Hashimoto <mitchell.hashimoto@gmail.com>2022-03-11 09:36:57 -0800
committerAndrew Kelley <andrew@ziglang.org>2022-03-11 17:15:36 -0500
commit797f4db227dcdbe48ffb309763a48fbe6eaf5935 (patch)
tree7acc78e9d245c095497c341e1cd54e1a44d608fd
parent79b169c5a564978dbbbb6253f847c2d9b1734e22 (diff)
downloadzig-797f4db227dcdbe48ffb309763a48fbe6eaf5935.tar.gz
zig-797f4db227dcdbe48ffb309763a48fbe6eaf5935.zip
stage2: Array len field should be a usize not comptime_int
-rw-r--r--src/Sema.zig6
-rw-r--r--test/behavior/array.zig1
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" {