authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-08-16 11:00:21-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-08-16 11:00:21-04:00
log7798054b5880860fba410b2cd12626455ef4394b
treea7f4fef0acdac6963a1d609616f715bae38377ab
parent4ea2331e3d900079a502432dbefb06528b62afab
signaturelock-open Commit is signed but in an unrecognized format.

add tests for bad implicit casting of anyframe types

See #3063

1 files changed, 21 insertions(+), 0 deletions(-)

test/compile_errors.zig+21
...@@ -2,6 +2,27 @@ const tests = @import("tests.zig");...@@ -2,6 +2,27 @@ const tests = @import("tests.zig");
2const builtin = @import("builtin");2const builtin = @import("builtin");
33
4pub fn addCases(cases: *tests.CompileErrorContext) void {4pub fn addCases(cases: *tests.CompileErrorContext) void {
5 cases.add(
6 "prevent bad implicit casting of anyframe types",
7 \\export fn a() void {
8 \\ var x: anyframe = undefined;
9 \\ var y: anyframe->i32 = x;
10 \\}
11 \\export fn b() void {
12 \\ var x: i32 = undefined;
13 \\ var y: anyframe->i32 = x;
14 \\}
15 \\export fn c() void {
16 \\ var x: @Frame(func) = undefined;
17 \\ var y: anyframe->i32 = &x;
18 \\}
19 \\fn func() void {}
20 ,
21 "tmp.zig:3:28: error: expected type 'anyframe->i32', found 'anyframe'",
22 "tmp.zig:7:28: error: expected type 'anyframe->i32', found 'i32'",
23 "tmp.zig:11:29: error: expected type 'anyframe->i32', found '*@Frame(func)'",
24 );
25
5 cases.add(26 cases.add(
6 "wrong frame type used for async call",27 "wrong frame type used for async call",
7 \\export fn entry() void {28 \\export fn entry() void {