From 34ae1c011773f83ed01ac435146f21dc36f89166 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Mon, 24 Jun 2019 15:48:39 +0200
Subject: [PATCH] Use same strategy for affectations than for binary operators

---
 src/language/ASTNodeAffectationExpressionBuilder.cpp | 3 +--
 src/language/ASTNodeAffectationExpressionBuilder.hpp | 5 ++++-
 src/language/ASTNodeExpressionBuilder.cpp            | 2 +-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/language/ASTNodeAffectationExpressionBuilder.cpp b/src/language/ASTNodeAffectationExpressionBuilder.cpp
index afc79af35..da39901cb 100644
--- a/src/language/ASTNodeAffectationExpressionBuilder.cpp
+++ b/src/language/ASTNodeAffectationExpressionBuilder.cpp
@@ -147,8 +147,7 @@ class AffectationProcessor final : public INodeProcessor
   }
 };
 
-void
-set_affectation_processor(Node& n)
+ASTNodeAffectationExpressionBuilder::ASTNodeAffectationExpressionBuilder(Node& n)
 {
   auto set_affectation_processor = [](Node& n, const auto& operator_v) {
     auto set_affectation_processor_for_data = [&](const auto& value, const DataType& data_type) {
diff --git a/src/language/ASTNodeAffectationExpressionBuilder.hpp b/src/language/ASTNodeAffectationExpressionBuilder.hpp
index eb80e6c8a..2495702ed 100644
--- a/src/language/ASTNodeAffectationExpressionBuilder.hpp
+++ b/src/language/ASTNodeAffectationExpressionBuilder.hpp
@@ -5,7 +5,10 @@
 
 namespace language
 {
-void set_affectation_processor(Node& node);
+struct ASTNodeAffectationExpressionBuilder
+{
+  ASTNodeAffectationExpressionBuilder(Node& node);
+};
 }   // namespace language
 
 #endif   // AST_NODE_AFFECTATION_EXPRESSION_BUILDER_HPP
diff --git a/src/language/ASTNodeExpressionBuilder.cpp b/src/language/ASTNodeExpressionBuilder.cpp
index 1d9dbdf27..1be256c49 100644
--- a/src/language/ASTNodeExpressionBuilder.cpp
+++ b/src/language/ASTNodeExpressionBuilder.cpp
@@ -520,7 +520,7 @@ build_node_type(Node& n)
   } else if ((n.is<language::eq_op>() or n.is<language::multiplyeq_op>() or n.is<language::divideeq_op>() or
               n.is<language::pluseq_op>() or n.is<language::minuseq_op>() or n.is<language::bit_andeq_op>() or
               n.is<language::bit_xoreq_op>() or n.is<language::bit_oreq_op>())) {
-    set_affectation_processor(n);
+    ASTNodeAffectationExpressionBuilder{n};
 
   } else if (n.is<language::real>()) {
     n.m_node_processor = std::make_unique<NoProcess>();
-- 
GitLab