From 14a1b59dc8d2bc677bf2e01bc2878197de06f1a8 Mon Sep 17 00:00:00 2001 From: kbkpbot Date: Wed, 20 Aug 2025 22:22:02 +0800 Subject: [PATCH] fix for defer detect --- vlib/v/checker/return.v | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vlib/v/checker/return.v b/vlib/v/checker/return.v index caa5a80cdd..966fddb47a 100644 --- a/vlib/v/checker/return.v +++ b/vlib/v/checker/return.v @@ -35,9 +35,12 @@ fn (mut c Checker) return_stmt(mut node ast.Return) { } // check `defer_stmts` in return, to ensure the same behavior with `cgen` + old_inside_defer := c.inside_defer + c.inside_defer = true for i := c.table.cur_fn.defer_stmts.len - 1; i >= 0; i-- { c.stmts(mut c.table.cur_fn.defer_stmts[i].stmts) } + c.inside_defer = old_inside_defer c.expected_type = c.table.cur_fn.return_type mut expected_type := c.unwrap_generic(c.expected_type)