aboutsummaryrefslogtreecommitdiff
path: root/test/cases/eval.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-12-26 03:44:59 -0500
committerAndrew Kelley <superjoe30@gmail.com>2016-12-26 03:44:59 -0500
commitaee7ad3de2e3c334ec5aac2d355e4eed086f1cdf (patch)
tree8577f02b3514539a2accc91e3ebbcb144d0f1208 /test/cases/eval.zig
parent73a751911e2c2be646287eb8c8d579dded25afe3 (diff)
downloadzig-aee7ad3de2e3c334ec5aac2d355e4eed086f1cdf.tar.gz
zig-aee7ad3de2e3c334ec5aac2d355e4eed086f1cdf.zip
IR: port all passing tests over
Diffstat (limited to 'test/cases/eval.zig')
-rw-r--r--test/cases/eval.zig51
1 files changed, 51 insertions, 0 deletions
diff --git a/test/cases/eval.zig b/test/cases/eval.zig
index 8f5b18f529..01add0dab5 100644
--- a/test/cases/eval.zig
+++ b/test/cases/eval.zig
@@ -110,6 +110,57 @@ pub fn vec3(x: f32, y: f32, z: f32) -> Vec3 {
}
}
+
+fn constantExpressions() {
+ @setFnTest(this);
+
+ var array : [array_size]u8 = undefined;
+ assert(@sizeOf(@typeOf(array)) == 20);
+}
+const array_size : u8 = 20;
+
+
+fn constantStructWithNegation() {
+ @setFnTest(this);
+
+ assert(vertices[0].x == -0.6);
+}
+const Vertex = struct {
+ x: f32,
+ y: f32,
+ r: f32,
+ g: f32,
+ b: f32,
+};
+const vertices = []Vertex {
+ Vertex { .x = -0.6, .y = -0.4, .r = 1.0, .g = 0.0, .b = 0.0 },
+ Vertex { .x = 0.6, .y = -0.4, .r = 0.0, .g = 1.0, .b = 0.0 },
+ Vertex { .x = 0.0, .y = 0.6, .r = 0.0, .g = 0.0, .b = 1.0 },
+};
+
+
+fn staticallyInitalizedStruct() {
+ @setFnTest(this);
+
+ st_init_str_foo.x += 1;
+ assert(st_init_str_foo.x == 14);
+}
+const StInitStrFoo = struct {
+ x: i32,
+ y: bool,
+};
+var st_init_str_foo = StInitStrFoo { .x = 13, .y = true, };
+
+
+fn staticallyInitializedArrayLiteral() {
+ @setFnTest(this);
+
+ const y : [4]u8 = st_init_arr_lit_x;
+ assert(y[3] == 4);
+}
+const st_init_arr_lit_x = []u8{1,2,3,4};
+
+
// TODO const assert = @import("std").debug.assert;
fn assert(ok: bool) {
if (!ok)