From d2ecb6de089874b05dcce6033c38ff558127a561 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Wed, 4 Sep 2019 19:14:47 +0200
Subject: [PATCH] Fix data type promotions to mimic C++

Actually in C++ `unsigned int + int` gives an `unsigned int` which is not very
intuitive
---
 src/language/ASTNodeDataType.hpp | 4 ++--
 tests/test_ASTNodeDataType.cpp   | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/language/ASTNodeDataType.hpp b/src/language/ASTNodeDataType.hpp
index 4b0303e5f..d6153c101 100644
--- a/src/language/ASTNodeDataType.hpp
+++ b/src/language/ASTNodeDataType.hpp
@@ -8,8 +8,8 @@ enum class ASTNodeDataType : int32_t
 {
   undefined_t    = -1,
   bool_t         = 0,
-  unsigned_int_t = 1,
-  int_t          = 2,
+  int_t          = 1,
+  unsigned_int_t = 2,
   double_t       = 3,
   string_t       = 5,
   typename_t     = 10,
diff --git a/tests/test_ASTNodeDataType.cpp b/tests/test_ASTNodeDataType.cpp
index 25a6c420a..b8c5ad8a4 100644
--- a/tests/test_ASTNodeDataType.cpp
+++ b/tests/test_ASTNodeDataType.cpp
@@ -25,7 +25,8 @@ TEST_CASE("ASTNodeDataType", "[language]")
     REQUIRE(dataTypePromotion(ASTNodeDataType::double_t, ASTNodeDataType::bool_t) == ASTNodeDataType::double_t);
     REQUIRE(dataTypePromotion(ASTNodeDataType::double_t, ASTNodeDataType::unsigned_int_t) == ASTNodeDataType::double_t);
     REQUIRE(dataTypePromotion(ASTNodeDataType::double_t, ASTNodeDataType::int_t) == ASTNodeDataType::double_t);
-    REQUIRE(dataTypePromotion(ASTNodeDataType::int_t, ASTNodeDataType::unsigned_int_t) == ASTNodeDataType::int_t);
+    REQUIRE(dataTypePromotion(ASTNodeDataType::int_t, ASTNodeDataType::unsigned_int_t) ==
+            ASTNodeDataType::unsigned_int_t);
     REQUIRE(dataTypePromotion(ASTNodeDataType::int_t, ASTNodeDataType::bool_t) == ASTNodeDataType::int_t);
     REQUIRE(dataTypePromotion(ASTNodeDataType::unsigned_int_t, ASTNodeDataType::bool_t) ==
             ASTNodeDataType::unsigned_int_t);
-- 
GitLab