From bd49fd55a469d5d88818d43e0fdfca18dd4842a1 Mon Sep 17 00:00:00 2001 From: Rerumu Date: Thu, 19 May 2022 05:25:47 -0400 Subject: [PATCH] Fix unsigned literal emit --- codegen-luau/src/backend/expression.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/codegen-luau/src/backend/expression.rs b/codegen-luau/src/backend/expression.rs index 219ce39..14aee64 100644 --- a/codegen-luau/src/backend/expression.rs +++ b/codegen-luau/src/backend/expression.rs @@ -66,6 +66,12 @@ impl Driver for MemoryGrow { } } +pub fn write_i32(number: i32, w: &mut dyn Write) -> Result<()> { + let list = number.to_ne_bytes(); + + write!(w, "{} ", u32::from_ne_bytes(list)) +} + fn write_i64(number: i64, w: &mut dyn Write) -> Result<()> { match number { 0 => write!(w, "num_K_ZERO "), @@ -107,7 +113,7 @@ fn write_f64(number: f64, w: &mut dyn Write) -> Result<()> { impl Driver for Value { fn write(&self, _: &mut Manager, w: &mut dyn Write) -> Result<()> { match self { - Self::I32(i) => write!(w, "{i} "), + Self::I32(i) => write_i32(*i, w), Self::I64(i) => write_i64(*i, w), Self::F32(f) => write_f32(*f, w), Self::F64(f) => write_f64(*f, w),