Commit 458c4b6fc6
Changed files (2)
src/AstGen.zig
@@ -1294,8 +1294,13 @@ fn continueExpr(parent_gz: *GenZir, parent_scope: *Scope, node: ast.Node.Index)
},
.local_val => scope = scope.cast(Scope.LocalVal).?.parent,
.local_ptr => scope = scope.cast(Scope.LocalPtr).?.parent,
- .defer_normal => @panic("TODO continue/defer"),
- .defer_error => @panic("TODO continue/defer"),
+ .defer_normal => {
+ const defer_scope = scope.cast(Scope.Defer).?;
+ scope = defer_scope.parent;
+ const expr_node = node_datas[defer_scope.defer_node].rhs;
+ try unusedResultExpr(parent_gz, defer_scope.parent, expr_node);
+ },
+ .defer_error => scope = scope.cast(Scope.LocalPtr).?.parent,
else => if (break_label != 0) {
const label_name = try astgen.identifierTokenString(break_label);
return astgen.failTok(break_label, "label not found: '{s}'", .{label_name});
BRANCH_TODO
@@ -1,6 +1,5 @@
* defer
- `break`
- - `continue`
* nested function decl: how to refer to params?
* look for cached zir code
* save zir code to cache