diff --git a/src/language/node_processor/AffectationProcessor.hpp b/src/language/node_processor/AffectationProcessor.hpp
index f408b632facf9de0c1374ab3b2667d4d0cd8a8a4..3f463ba70fc4023c1b153009b129d195a0b36d29 100644
--- a/src/language/node_processor/AffectationProcessor.hpp
+++ b/src/language/node_processor/AffectationProcessor.hpp
@@ -614,12 +614,19 @@ class AffectationToTupleProcessor final : public INodeProcessor
             os << v;
             *m_lhs = std::vector<std::string>{os.str()};
           }
-        } else if constexpr ((std::is_same_v<ValueT, TinyVector<1>> or
-                              std::is_same_v<ValueT, TinyMatrix<1>>)and std::is_arithmetic_v<T>) {
-          *m_lhs = std::vector<ValueT>{ValueT{static_cast<double>(v)}};
-        } else if constexpr ((is_tiny_vector_v<ValueT> or is_tiny_matrix_v<ValueT>)and std::is_same_v<T, int64_t>) {
-          Assert(v == 0);
-          *m_lhs = std::vector<ValueT>{ValueT{zero}};
+        } else if constexpr (is_tiny_vector_v<ValueT> or is_tiny_matrix_v<ValueT>) {
+          if constexpr (std::is_same_v<ValueT, TinyVector<1>> and std::is_arithmetic_v<T>) {
+            *m_lhs = std::vector<TinyVector<1>>{TinyVector<1>{static_cast<double>(v)}};
+          } else if constexpr (std::is_same_v<ValueT, TinyMatrix<1>> and std::is_arithmetic_v<T>) {
+            *m_lhs = std::vector<TinyMatrix<1>>{TinyMatrix<1>{static_cast<double>(v)}};
+          } else if constexpr (std::is_same_v<T, int64_t>) {
+            Assert(v == 0);
+            *m_lhs = std::vector<ValueT>{ValueT{zero}};
+          } else {
+            // LCOV_EXCL_START
+            throw ParseError("unexpected error: unexpected right hand side type in affectation", m_node.begin());
+            // LCOV_EXCL_STOP
+          }
         } else {
           // LCOV_EXCL_START
           throw ParseError("unexpected error: unexpected right hand side type in affectation", m_node.begin());