diff --git a/compiler/erg_parser/parse.rs b/compiler/erg_parser/parse.rs index 395c1811..2e57decc 100644 --- a/compiler/erg_parser/parse.rs +++ b/compiler/erg_parser/parse.rs @@ -926,7 +926,8 @@ impl Parser { self.counter.inc(); let block = self.try_reduce_block().map_err(|_| self.stack_dec())?; let body = DefBody::new(op, block, self.counter); - stack.push(ExprOrOp::Expr(Expr::Def(Def::new(sig, body)))); + self.level -= 1; + return Ok(Expr::Def(Def::new(sig, body))); } Some(op) if op.category_is(TC::LambdaOp) => { let op = self.lpop();