Commit 67e6df4313
Changed files (11)
test
behavior
cases
compile_errors
async
test/behavior/type_info.zig
@@ -539,20 +539,6 @@ fn add(a: i32, b: i32) i32 {
return a + b;
}
-test "type info for async frames" {
- if (true) {
- // https://github.com/ziglang/zig/issues/6025
- return error.SkipZigTest;
- }
-
- switch (@typeInfo(@Frame(add))) {
- .frame => |frame| {
- try expect(@as(@TypeOf(add), @ptrCast(frame.function)) == add);
- },
- else => unreachable,
- }
-}
-
test "Declarations are returned in declaration order" {
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;
test/cases/compile_errors/async/bad_alignment_in_asynccall.zig
@@ -1,13 +0,0 @@
-export fn entry() void {
- var ptr: fn () callconv(.@"async") void = func;
- var bytes: [64]u8 = undefined;
- _ = @asyncCall(&bytes, {}, ptr, .{});
- _ = &ptr;
-}
-fn func() callconv(.@"async") void {}
-
-// error
-// backend=stage1
-// target=aarch64-linux-none
-//
-// tmp.zig:4:21: error: expected type '[]align(8) u8', found '*[64]u8'
test/cases/compile_errors/async/exported_async_function.zig
@@ -1,7 +0,0 @@
-export fn foo() callconv(.@"async") void {}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:1:1: error: exported function cannot be async
test/cases/compile_errors/async/frame_called_outside_of_function_definition.zig
@@ -1,11 +0,0 @@
-var handle_undef: anyframe = undefined;
-var handle_dummy: anyframe = @frame();
-export fn entry() bool {
- return handle_undef == handle_dummy;
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:2:30: error: @frame() called outside of function definition
test/cases/compile_errors/async/frame_causes_function_to_be_async.zig
@@ -1,13 +0,0 @@
-export fn entry() void {
- func();
-}
-fn func() void {
- _ = @frame();
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:1:1: error: function with calling convention 'C' cannot be async
-// tmp.zig:5:9: note: @frame() causes function to be async
test/cases/compile_errors/async/Frame_of_generic_function.zig
@@ -1,14 +0,0 @@
-export fn entry() void {
- var frame: @Frame(func) = undefined;
- _ = &frame;
-}
-fn func(comptime T: type) void {
- var x: T = undefined;
- _ = &x;
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:2:16: error: @Frame() of generic function
test/cases/compile_errors/async/non-async_function_pointer_eventually_is_inferred_to_become_async.zig
@@ -1,15 +0,0 @@
-export fn a() void {
- var non_async_fn: fn () void = undefined;
- non_async_fn = func;
-}
-fn func() void {
- suspend {}
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:5:1: error: 'func' cannot be async
-// tmp.zig:3:20: note: required to be non-async here
-// tmp.zig:6:5: note: suspends here
test/cases/compile_errors/async/non_async_function_pointer_passed_to_asyncCall.zig
@@ -1,13 +0,0 @@
-export fn entry() void {
- var ptr = afunc;
- var bytes: [100]u8 align(16) = undefined;
- _ = @asyncCall(&bytes, {}, ptr, .{});
- _ = &ptr;
-}
-fn afunc() void {}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:4:32: error: expected async function, found 'fn () void'
test/cases/compile_errors/async/prevent_bad_implicit_casting_of_anyframe_types.zig
@@ -1,24 +0,0 @@
-export fn a() void {
- var x: anyframe = undefined;
- var y: anyframe->i32 = x;
- _ = .{ &x, &y };
-}
-export fn b() void {
- var x: i32 = undefined;
- var y: anyframe->i32 = x;
- _ = .{ &x, &y };
-}
-export fn c() void {
- var x: @Frame(func) = undefined;
- var y: anyframe->i32 = &x;
- _ = .{ &x, &y };
-}
-fn func() void {}
-
-// error
-// backend=stage1
-// target=native
-//
-// :3:28: error: expected type 'anyframe->i32', found 'anyframe'
-// :8:28: error: expected type 'anyframe->i32', found 'i32'
-// tmp.zig:13:29: error: expected type 'anyframe->i32', found '*@Frame(func)'
test/cases/compile_errors/async/wrong_type_for_argument_tuple_to_asyncCall.zig
@@ -1,14 +0,0 @@
-export fn entry1() void {
- var frame: @Frame(foo) = undefined;
- @asyncCall(&frame, {}, foo, {});
-}
-
-fn foo() i32 {
- return 0;
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:3:33: error: expected tuple or struct, found 'void'
test/cases/safety/nosuspend function call, callee suspends.zig
@@ -1,20 +0,0 @@
-const std = @import("std");
-
-pub fn panic(message: []const u8, stack_trace: ?*std.builtin.StackTrace, _: ?usize) noreturn {
- _ = message;
- _ = stack_trace;
- std.process.exit(0);
-}
-pub fn main() !void {
- _ = nosuspend add(101, 100);
- return error.TestFailed;
-}
-fn add(a: i32, b: i32) i32 {
- if (a > 100) {
- suspend {}
- }
- return a + b;
-}
-// run
-// backend=stage1
-// target=native