From 954f133557002fba273148c8949af034be023dea Mon Sep 17 00:00:00 2001 From: Rerumu Date: Sun, 12 Jun 2022 02:47:27 -0400 Subject: [PATCH] Move around `start_else` --- wasm-ast/src/builder.rs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/wasm-ast/src/builder.rs b/wasm-ast/src/builder.rs index b8671ef..8262b2e 100644 --- a/wasm-ast/src/builder.rs +++ b/wasm-ast/src/builder.rs @@ -407,22 +407,21 @@ impl<'a> Builder<'a> { } fn start_else(&mut self) { - let num_result = self.target.num_result; - let num_param = self.target.num_param; - let num_previous = self.target.num_previous; + let mut temp = StatList { + num_result: self.target.num_result, + num_param: self.target.num_param, + num_previous: self.target.num_previous, + is_else: true, + ..Default::default() + }; + + temp.push_temporary(self.target.num_result); self.end_block(); - let old = std::mem::take(&mut self.target); + let old = std::mem::replace(&mut self.target, temp); self.pending.push(old); - - self.target.num_result = num_result; - self.target.num_param = num_param; - self.target.num_previous = num_previous; - self.target.is_else = true; - - self.target.push_temporary(num_result); } fn end_block(&mut self) {