aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-01-23 23:30:20 -0500
committerAndrew Kelley <superjoe30@gmail.com>2017-01-23 23:30:20 -0500
commit32d8686da80d282e8cd6d84a0e5c331d269a1f69 (patch)
tree889c1f634f4ff2e7b9d8cb078f11dbb41c4a1b2a /test
parent17cb85dfb837949cd3a559fe8e99dee1f72463a4 (diff)
downloadzig-32d8686da80d282e8cd6d84a0e5c331d269a1f69.tar.gz
zig-32d8686da80d282e8cd6d84a0e5c331d269a1f69.zip
various fixes
* comptime expression is a block expression as it should be * fix var args when number of args passed is 0 * implement const value equality for structs * fix indent when rendering container decl AST * IR: prevent duplicate generation of code when it is partially compile-time evaluated * implement compile time struct field pointer evaluation * fix compile time evaluation of slicing
Diffstat (limited to 'test')
-rw-r--r--test/cases/eval.zig14
-rw-r--r--test/cases/generics.zig2
-rw-r--r--test/cases/var_args.zig1
3 files changed, 16 insertions, 1 deletions
diff --git a/test/cases/eval.zig b/test/cases/eval.zig
index 4b6a095726..2d6c6a8b94 100644
--- a/test/cases/eval.zig
+++ b/test/cases/eval.zig
@@ -1,4 +1,5 @@
const assert = @import("std").debug.assert;
+const str = @import("std").str;
fn compileTimeRecursion() {
@setFnTest(this);
@@ -161,3 +162,16 @@ fn staticallyInitializedArrayLiteral() {
assert(y[3] == 4);
}
const st_init_arr_lit_x = []u8{1,2,3,4};
+
+
+fn constSlice() {
+ @setFnTest(this);
+
+ comptime {
+ const a = "1234567890";
+ assert(a.len == 10);
+ const b = a[1...2];
+ assert(b.len == 1);
+ assert(b[0] == '2');
+ }
+}
diff --git a/test/cases/generics.zig b/test/cases/generics.zig
index 069b468966..822c7e0833 100644
--- a/test/cases/generics.zig
+++ b/test/cases/generics.zig
@@ -13,7 +13,7 @@ fn max(comptime T: type, a: T, b: T) -> T {
}
fn add(comptime a: i32, b: i32) -> i32 {
- return comptime {a} + b;
+ return (comptime {a}) + b;
}
const the_max = max(u32, 1234, 5678);
diff --git a/test/cases/var_args.zig b/test/cases/var_args.zig
index 6b30edd258..680380d7d2 100644
--- a/test/cases/var_args.zig
+++ b/test/cases/var_args.zig
@@ -13,4 +13,5 @@ fn testAddArbitraryArgs() {
assert(add(i32(1), i32(2), i32(3), i32(4)) == 10);
assert(add(i32(1234)) == 1234);
+ assert(add() == 0);
}