-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behavior
Milestone
Description
const std = @import("std");
var defer1: bool = false;
var defer2: bool = false;
test "aoeu" {
_ = async<std.debug.global_allocator> asyncTest() catch unreachable;
std.debug.assert(defer1);
std.debug.assert(defer2);
}
async fn asyncTest() void {
defer {
defer1 = true;
}
await (async baz() catch unreachable);
}
var bar_handle: promise = undefined;
async fn baz() void {
const foo_handle = async foo() catch unreachable;
resume bar_handle;
cancel bar_handle;
defer {
defer2 = true;
}
const value = await foo_handle;
@panic("unreachable");
}
async fn foo() i32 {
await (async bar() catch unreachable);
return 1234;
}
async fn bar() void {
suspend |p| {
bar_handle = p;
}
suspend;
}
Metadata
Metadata
Assignees
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behavior