From 64ddfd03f9783a92a292e1645eb04cce8fceeb17 Mon Sep 17 00:00:00 2001 From: Rerumu Date: Sun, 26 Jun 2022 04:18:15 -0400 Subject: [PATCH] Remove empty array declarations --- codegen/luajit/src/translator.rs | 8 +++++--- codegen/luau/src/translator.rs | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/codegen/luajit/src/translator.rs b/codegen/luajit/src/translator.rs index 6657a6c..b71062a 100644 --- a/codegen/luajit/src/translator.rs +++ b/codegen/luajit/src/translator.rs @@ -41,10 +41,12 @@ fn reader_to_code(reader: OperatorsReader) -> Vec { } fn write_named_array(name: &str, len: usize, w: &mut dyn Write) -> Result<()> { - let hash = len.min(1); - let len = len.saturating_sub(1); + let len = match len.checked_sub(1) { + Some(len) => len, + None => return Ok(()), + }; - write!(w, "local {name} = table_new({len}, {hash})") + write!(w, "local {name} = table_new({len}, 1)") } fn write_constant(init: &InitExpr, type_info: &TypeInfo, w: &mut dyn Write) -> Result<()> { diff --git a/codegen/luau/src/translator.rs b/codegen/luau/src/translator.rs index bd811be..f3d143f 100644 --- a/codegen/luau/src/translator.rs +++ b/codegen/luau/src/translator.rs @@ -41,7 +41,10 @@ fn reader_to_code(reader: OperatorsReader) -> Vec { } fn write_named_array(name: &str, len: usize, w: &mut dyn Write) -> Result<()> { - let len = len.saturating_sub(1); + let len = match len.checked_sub(1) { + Some(len) => len, + None => return Ok(()), + }; write!(w, "local {name} = table.create({len})") }