zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit c0cfbe98f3069d1aabb29fb0e795c6582e88b75e (tree)
parent 9270aae071a4ee840193afe1162b24945cbd6d9e
Author: Mathieu Guay-Paquet <mathieu.guaypaquet@gmail.com>
Date:   Tue, 16 Feb 2021 21:51:19 -0500

Allow resume in nosuspend scope

Resuming a suspended async function call is actually a synchronous
operation.

This commit removes the compiler code which generates the error and
updates the relevant test case.

Diffstat:
Msrc/stage1/ir.cpp | 4----
Mtest/compile_errors.zig | 1-
2 files changed, 0 insertions(+), 5 deletions(-)

diff --git a/src/stage1/ir.cpp b/src/stage1/ir.cpp @@ -10095,10 +10095,6 @@ static IrInstSrc *ir_gen_fn_proto(IrBuilderSrc *irb, Scope *parent_scope, AstNod static IrInstSrc *ir_gen_resume(IrBuilderSrc *irb, Scope *scope, AstNode *node) { assert(node->type == NodeTypeResume); - if (get_scope_nosuspend(scope) != nullptr) { - add_node_error(irb->codegen, node, buf_sprintf("resume in nosuspend scope")); - return irb->codegen->invalid_inst_src; - } IrInstSrc *target_inst = ir_gen_node_extra(irb, node->data.resume_expr.expr, scope, LValPtr, nullptr); if (target_inst == irb->codegen->invalid_inst_src) diff --git a/test/compile_errors.zig b/test/compile_errors.zig @@ -1029,7 +1029,6 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { , &[_][]const u8{ "tmp.zig:3:21: error: async call in nosuspend scope", "tmp.zig:4:9: error: suspend in nosuspend scope", - "tmp.zig:5:9: error: resume in nosuspend scope", }); cases.add("atomicrmw with bool op not .Xchg",