diff --git a/src/scripting/backend/codegen.cpp b/src/scripting/backend/codegen.cpp index c49902fc0..786d6164c 100644 --- a/src/scripting/backend/codegen.cpp +++ b/src/scripting/backend/codegen.cpp @@ -11292,14 +11292,6 @@ FxExpression *FxLocalVariableDeclaration::Resolve(FCompileContext &ctx) { CHECKRESOLVED(); - if (IsDynamicArray()) - { - auto stackVar = new FxStackVariable(ValueType, StackOffset, ScriptPosition); - FArgumentList argsList; - clearExpr = new FxMemberFunctionCall(stackVar, "Clear", argsList, ScriptPosition); - SAFE_RESOLVE(clearExpr, ctx); - } - if (ctx.Block == nullptr) { ScriptPosition.Message(MSG_ERROR, "Variable declaration outside compound statement"); @@ -11356,6 +11348,15 @@ FxExpression *FxLocalVariableDeclaration::Resolve(FCompileContext &ctx) } } } + + if (IsDynamicArray()) + { + auto stackVar = new FxStackVariable(ValueType, StackOffset, ScriptPosition); + FArgumentList argsList; + clearExpr = new FxMemberFunctionCall(stackVar, "Clear", argsList, ScriptPosition); + SAFE_RESOLVE(clearExpr, ctx); + } + ctx.Block->LocalVars.Push(this); return this; }