diff --git a/compiler/ccgstmts.nim b/compiler/ccgstmts.nim index 34fb06af8f..7473e45a69 100644 --- a/compiler/ccgstmts.nim +++ b/compiler/ccgstmts.nim @@ -492,6 +492,10 @@ iterator fieldValuePairs(n: PNode): tuple[memberSym, valueSym: PNode] = proc genComputedGoto(p: BProc; n: PNode) = # first pass: Generate array of computed labels: + + # flatten the loop body because otherwise let and var sections + # wrapped inside stmt lists by inject destructors won't be recognised + let n = n.flattenStmts() var casePos = -1 var arraySize: int for i in 0..