From 2a8d4c5bf575bc11ef9c1cbc8f10992e2e0bd0c0 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sat, 9 Oct 2021 19:11:10 +0100 Subject: [PATCH] Disallow `or_return` within `defer` --- src/check_expr.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/check_expr.cpp b/src/check_expr.cpp index fb7a98388..2c44890c2 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -6890,6 +6890,10 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type if (c->curr_proc_sig == nullptr) { error(node, "'%.*s' can only be used within a procedure", LIT(name)); } + + if (c->in_defer) { + error(rs->token, "'or_return' cannot be used within a defer statement"); + } return Expr_Expr; case_end;