From 9a4f0dc5d867285a69e9f61e3d381577e0e736fe Mon Sep 17 00:00:00 2001 From: sofia Date: Thu, 17 Jul 2025 00:05:37 +0300 Subject: [PATCH] Allow for cloning inner values --- reid/src/codegen.rs | 2 +- reid_src/array_structs.reid | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/reid/src/codegen.rs b/reid/src/codegen.rs index be75935..33af878 100644 --- a/reid/src/codegen.rs +++ b/reid/src/codegen.rs @@ -265,7 +265,7 @@ impl mir::Statement { ) -> Option { match &self.0 { mir::StmtKind::Let(NamedVariableRef(ty, name, _), mutable, expression) => { - let value = expression.codegen(scope, state).unwrap(); + let value = expression.codegen(scope, &state.load(true)).unwrap(); scope.stack_values.insert( name.clone(), StackValue( diff --git a/reid_src/array_structs.reid b/reid_src/array_structs.reid index 89c001b..17b6861 100644 --- a/reid_src/array_structs.reid +++ b/reid_src/array_structs.reid @@ -14,7 +14,10 @@ fn main() -> u32 { let val1 = 0; let val2 = 1; - value[val1].second[val2 + 1] = 99; + // value[val1].second[val2 + 1] = 99; + + let mut b = value[val1]; + b.second[2] = 99; return value[0].second[2]; }