implement storing vector elements via runtime index

This commit is contained in:
Andrew Kelley
2019-11-01 23:16:49 -04:00
parent 70be308c43
commit cbaa10fc3b
6 changed files with 114 additions and 0 deletions

View File

@@ -26,6 +26,23 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
cases.add(
"dereference vector pointer with unknown runtime index",
"store vector pointer with unknown runtime index",
\\export fn entry() void {
\\ var v: @Vector(4, i32) = [_]i32{ 1, 5, 3, undefined };
\\
\\ var i: u32 = 0;
\\ storev(&v[i], 42);
\\}
\\
\\fn storev(ptr: var, val: i32) void {
\\ ptr.* = val;
\\}
,
"tmp.zig:9:8: error: unable to determine vector element index of type '*align(16:0:4:?) i32",
);
cases.add(
"load vector pointer with unknown runtime index",
\\export fn entry() void {
\\ var v: @Vector(4, i32) = [_]i32{ 1, 5, 3, undefined };
\\