From 2a7c8c5b1076667f5b50748c8153fe64ec5b9f13 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Fri, 1 Jun 2018 00:18:10 -0400 Subject: [PATCH] add test case for pointer to type and slice of type closes #588 --- test/cases/eval.zig | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/cases/eval.zig b/test/cases/eval.zig index 6c8bcfdba..b6d6a4f37 100644 --- a/test/cases/eval.zig +++ b/test/cases/eval.zig @@ -576,3 +576,37 @@ test "comptime modification of const struct field" { assert(res.version == 1); } } + +test "pointer to type" { + comptime { + var T: type = i32; + assert(T == i32); + var ptr = &T; + assert(@typeOf(ptr) == *type); + ptr.* = f32; + assert(T == f32); + assert(*T == *f32); + } +} + +test "slice of type" { + comptime { + var types_array = []type{ i32, f64, type }; + for (types_array) |T, i| { + switch (i) { + 0 => assert(T == i32), + 1 => assert(T == f64), + 2 => assert(T == type), + else => unreachable, + } + } + for (types_array[0..]) |T, i| { + switch (i) { + 0 => assert(T == i32), + 1 => assert(T == f64), + 2 => assert(T == type), + else => unreachable, + } + } + } +}