diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/AstGen.zig | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig index e2cdffc014..f62a8f18ab 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -4604,7 +4604,7 @@ fn tryExpr( const astgen = parent_gz.astgen; const fn_block = astgen.fn_block orelse { - return astgen.failNode(node, "invalid 'try' outside function scope", .{}); + return astgen.failNode(node, "'try' outside function scope", .{}); }; if (parent_gz.in_defer) return astgen.failNode(node, "'try' not allowed inside defer expression", .{}); @@ -6167,6 +6167,10 @@ fn ret(gz: *GenZir, scope: *Scope, node: ast.Node.Index) InnerError!Zir.Inst.Ref const node_datas = tree.nodes.items(.data); const node_tags = tree.nodes.items(.tag); + if (astgen.fn_block == null) { + return astgen.failNode(node, "'return' outside function scope", .{}); + } + if (gz.in_defer) return astgen.failNode(node, "cannot return from defer expression", .{}); const defer_outer = &astgen.fn_block.?.base; |
