From 497d48a8dea09c10e5e10dc9de9b329ba7d7e6ef Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 10 Feb 2021 22:23:24 +0100 Subject: [PATCH] AK: Make IsUnsigned behave as you would expect --- AK/StdLibExtras.h | 3 ++- AK/Tests/TestTypeTraits.cpp | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/AK/StdLibExtras.h b/AK/StdLibExtras.h index 1c38bfcbf9..20c9b664da 100644 --- a/AK/StdLibExtras.h +++ b/AK/StdLibExtras.h @@ -533,7 +533,7 @@ template constexpr auto DependentFalse = false; template -using IsUnsigned = IsSame>; +using IsUnsigned = IsSame::Type>; template using IsArithmetic = IntegralConstant::value || IsFloatingPoint::value>; @@ -620,6 +620,7 @@ using AK::IsFundamental; using AK::IsNullPointer; using AK::IsSame; using AK::IsUnion; +using AK::IsUnsigned; using AK::IsVoid; using AK::MakeIndexSequence; using AK::MakeIntegerSequence; diff --git a/AK/Tests/TestTypeTraits.cpp b/AK/Tests/TestTypeTraits.cpp index 768e4c6b51..184dabcdc1 100644 --- a/AK/Tests/TestTypeTraits.cpp +++ b/AK/Tests/TestTypeTraits.cpp @@ -80,6 +80,15 @@ TEST_CASE(FundamentalTypeClassification) EXPECT_TRAIT_TRUE(IsFundamental, unsigned short, unsigned int, unsigned long, unsigned long long); EXPECT_TRAIT_FALSE(IsFundamental, Empty, int*, int&); + + EXPECT_TRAIT_TRUE(IsUnsigned, unsigned); + EXPECT_TRAIT_TRUE(IsUnsigned, unsigned short); + EXPECT_TRAIT_TRUE(IsUnsigned, unsigned char); + EXPECT_TRAIT_TRUE(IsUnsigned, unsigned long); + EXPECT_TRAIT_FALSE(IsUnsigned, int); + EXPECT_TRAIT_FALSE(IsUnsigned, short); + EXPECT_TRAIT_FALSE(IsUnsigned, char); + EXPECT_TRAIT_FALSE(IsUnsigned, long); } TEST_CASE(AddConst)