From 37cfe13de465e0bed0ba49a8218366646e50466d Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Thu, 25 Jul 2019 13:00:38 +0200
Subject: [PATCH] Fix post ++ and post -- operators and add node type tests

---
 src/language/ASTNodeDataTypeBuilder.cpp |  3 ++-
 tests/test_ASTNodeDataTypeBuilder.cpp   | 30 +++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/src/language/ASTNodeDataTypeBuilder.cpp b/src/language/ASTNodeDataTypeBuilder.cpp
index 99b7077bb..a38b71913 100644
--- a/src/language/ASTNodeDataTypeBuilder.cpp
+++ b/src/language/ASTNodeDataTypeBuilder.cpp
@@ -102,7 +102,8 @@ ASTNodeDataTypeBuilder::_buildNodeDataTypes(ASTNode& n)
                n.is<language::xor_op>()) {
       n.m_data_type = ASTNodeDataType::bool_t;
     } else if (n.is<language::unary_minus>() or n.is<language::unary_plusplus>() or
-               n.is<language::unary_minusminus>()) {
+               n.is<language::unary_minusminus>() or n.is<language::post_plusplus>() or
+               n.is<language::post_minusminus>()) {
       n.m_data_type = n.children[0]->m_data_type;
     } else if (n.is<language::plus_op>() or n.is<language::minus_op>() or n.is<language::multiply_op>() or
                n.is<language::divide_op>()) {
diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp
index 5d557d21a..0b3c290ff 100644
--- a/tests/test_ASTNodeDataTypeBuilder.cpp
+++ b/tests/test_ASTNodeDataTypeBuilder.cpp
@@ -909,5 +909,35 @@ not 1;
 
       CHECK_AST(data, result);
     }
+
+    SECTION("post plusplus")
+    {
+      std::string_view data = R"(
+1++;
+)";
+
+      std::string_view result = R"(
+(root:void)
+ `-(language::post_plusplus:Z)
+     `-(language::integer:1:Z)
+)";
+
+      CHECK_AST(data, result);
+    }
+
+    SECTION("post minusminus")
+    {
+      std::string_view data = R"(
+1--;
+)";
+
+      std::string_view result = R"(
+(root:void)
+ `-(language::post_minusminus:Z)
+     `-(language::integer:1:Z)
+)";
+
+      CHECK_AST(data, result);
+    }
   }
 }
-- 
GitLab