aboutsummaryrefslogtreecommitdiff
path: root/test/stage1/behavior
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-04-24 22:31:53 -0400
committerAndrew Kelley <andrew@ziglang.org>2019-04-24 22:31:53 -0400
commitfb2acaff067dd6b385de7f2bd2726bdfebbf841f (patch)
tree1dce5178adc5066eba68510d36baed06575aad0a /test/stage1/behavior
parent733c547a65b005338c89e3b6a6cb6e817bee632b (diff)
downloadzig-fb2acaff067dd6b385de7f2bd2726bdfebbf841f.tar.gz
zig-fb2acaff067dd6b385de7f2bd2726bdfebbf841f.zip
`@sizeOf` returns 0 for comptime types
This defines `@sizeOf` to be the runtime size of a type, which means that it is zero for types such as comptime_int, type, and (enum literal). See #2209
Diffstat (limited to 'test/stage1/behavior')
-rw-r--r--test/stage1/behavior/sizeof_and_typeof.zig7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/stage1/behavior/sizeof_and_typeof.zig b/test/stage1/behavior/sizeof_and_typeof.zig
index 58a6c81759..cfad311e06 100644
--- a/test/stage1/behavior/sizeof_and_typeof.zig
+++ b/test/stage1/behavior/sizeof_and_typeof.zig
@@ -67,3 +67,10 @@ test "@bitOffsetOf" {
expect(@byteOffsetOf(A, "f") * 8 == @bitOffsetOf(A, "f"));
expect(@byteOffsetOf(A, "g") * 8 == @bitOffsetOf(A, "g"));
}
+
+test "@sizeOf on compile-time types" {
+ expect(@sizeOf(comptime_int) == 0);
+ expect(@sizeOf(comptime_float) == 0);
+ expect(@sizeOf(@typeOf(.hi)) == 0);
+ expect(@sizeOf(@typeOf(type)) == 0);
+}