From 267731394162da4bf5a913132d8fd3eb0ee5af30 Mon Sep 17 00:00:00 2001 From: Rerumu Date: Sat, 25 Jun 2022 05:23:29 -0400 Subject: [PATCH] Fix #15 --- codegen/luau/src/backend/statement.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/codegen/luau/src/backend/statement.rs b/codegen/luau/src/backend/statement.rs index c765b3b..42912c4 100644 --- a/codegen/luau/src/backend/statement.rs +++ b/codegen/luau/src/backend/statement.rs @@ -141,6 +141,10 @@ fn br_target(level: usize, in_loop: bool, w: &mut dyn Write) -> Result<()> { } fn write_br_gadget(label_list: &[Label], rem: usize, w: &mut dyn Write) -> Result<()> { + if label_list.len() == 1 { + return Ok(()); + } + match label_list.last() { Some(Label::Forward) => br_target(rem, false, w), Some(Label::Backward) => br_target(rem, true, w), @@ -164,8 +168,10 @@ impl Driver for Forward { write!(w, "end ")?; + write_br_gadget(mng.label_list(), rem, w)?; mng.pop_label(); - write_br_gadget(mng.label_list(), rem, w) + + Ok(()) } } @@ -185,8 +191,10 @@ impl Driver for Backward { write!(w, "end ")?; + write_br_gadget(mng.label_list(), rem, w)?; mng.pop_label(); - write_br_gadget(mng.label_list(), rem, w) + + Ok(()) } }