diff --git a/src/language/ASTNodeDataTypeBuilder.cpp b/src/language/ASTNodeDataTypeBuilder.cpp
index 99b7077bb00ae62354eac30d312679b4fd4c9f50..a38b71913aafe7619ceb6b5d5060bf1658f526f0 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 5d557d21a65990562a140ee5998151ea88d71cb3..0b3c290ffac9d9f6a8e08c0afc28d98357e24b13 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);
+    }
   }
 }