diff --git a/src/language/node_processor/ArraySubscriptProcessor.hpp b/src/language/node_processor/ArraySubscriptProcessor.hpp
index c0426e2f030f45956524578e6a48fff29ac23b23..7bd2f6099366cbb255c95aff97e675428f1942d5 100644
--- a/src/language/node_processor/ArraySubscriptProcessor.hpp
+++ b/src/language/node_processor/ArraySubscriptProcessor.hpp
@@ -32,7 +32,8 @@ class ArraySubscriptProcessor : public INodeProcessor
 
     auto& array_expression = *m_array_subscript_expression.children[0];
 
-    const ArrayTypeT& array = std::get<ArrayTypeT>(array_expression.execute(exec_policy));
+    auto&& array_value = array_expression.execute(exec_policy);
+    ArrayTypeT& array  = std::get<ArrayTypeT>(array_value);
 
     return array[index_value];
   }