aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/vector.zig
diff options
context:
space:
mode:
authorXavier Bouchoux <xavierb@gmail.com>2022-06-10 22:26:19 +0000
committerVeikka Tuominen <git@vexu.eu>2022-06-17 19:06:17 +0300
commitb66247c97af3deaa190d1ca8297166f932b022ff (patch)
tree570e39943cd8043e23f26114474c856e86e98aef /test/behavior/vector.zig
parent69e2cac0d349cc32d4ead73541e18d1f72aac729 (diff)
downloadzig-b66247c97af3deaa190d1ca8297166f932b022ff.tar.gz
zig-b66247c97af3deaa190d1ca8297166f932b022ff.zip
stage2: coerce tuple to vector
Diffstat (limited to 'test/behavior/vector.zig')
-rw-r--r--test/behavior/vector.zig25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig
index cbd8787701..fc49bce6e2 100644
--- a/test/behavior/vector.zig
+++ b/test/behavior/vector.zig
@@ -167,6 +167,31 @@ test "array to vector" {
comptime try S.doTheTest();
}
+test "tuple to vector" {
+ if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
+
+ const S = struct {
+ fn doTheTest() !void {
+ const Vec3 = @Vector(3, i32);
+ var v: Vec3 = .{ 1, 0, 0 };
+ for ([_]Vec3{ .{ 0, 1, 0 }, .{ 0, 0, 1 } }) |it| {
+ v += it;
+ }
+
+ try std.testing.expectEqual(v, Vec3{ 1, 1, 1 });
+ if (builtin.zig_backend != .stage1) {
+ try std.testing.expectEqual(v, .{ 1, 1, 1 });
+ }
+ }
+ };
+ try S.doTheTest();
+ comptime try S.doTheTest();
+}
+
test "vector casts of sizes not divisible by 8" {
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO