diff options
author | Nathan James <n.james93@hotmail.co.uk> | 2022-11-08 14:15:04 +0000 |
---|---|---|
committer | Nathan James <n.james93@hotmail.co.uk> | 2022-11-08 14:15:15 +0000 |
commit | 6aa050a69041e610587c51032fa477dd3d6da787 (patch) | |
tree | f057eff2f7484ae183f975b2fb70e2580e546f4d /llvm/unittests/ADT/ArrayRefTest.cpp | |
parent | 281f2134a730f147428d75c09a28f0c5e1be95d9 (diff) | |
download | llvm-6aa050a69041e610587c51032fa477dd3d6da787.zip llvm-6aa050a69041e610587c51032fa477dd3d6da787.tar.gz llvm-6aa050a69041e610587c51032fa477dd3d6da787.tar.bz2 |
Reland "[llvm][NFC] Use c++17 style variable type traits"
This reverts commit 632a389f96355cbe7ed8fa7b8d2ed6267c92457c.
This relands commit
1834a310d060d55748ca38d4ae0482864c2047d8.
Differential Revision: https://reviews.llvm.org/D137493
Diffstat (limited to 'llvm/unittests/ADT/ArrayRefTest.cpp')
-rw-r--r-- | llvm/unittests/ADT/ArrayRefTest.cpp | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/llvm/unittests/ADT/ArrayRefTest.cpp b/llvm/unittests/ADT/ArrayRefTest.cpp index eded12d..9fcddc8 100644 --- a/llvm/unittests/ADT/ArrayRefTest.cpp +++ b/llvm/unittests/ADT/ArrayRefTest.cpp @@ -16,34 +16,27 @@ using namespace llvm; // Check that the ArrayRef-of-pointer converting constructor only allows adding // cv qualifiers (not removing them, or otherwise changing the type) -static_assert( - std::is_convertible<ArrayRef<int *>, ArrayRef<const int *>>::value, - "Adding const"); -static_assert( - std::is_convertible<ArrayRef<int *>, ArrayRef<volatile int *>>::value, - "Adding volatile"); -static_assert(!std::is_convertible<ArrayRef<int *>, ArrayRef<float *>>::value, +static_assert(std::is_convertible_v<ArrayRef<int *>, ArrayRef<const int *>>, + "Adding const"); +static_assert(std::is_convertible_v<ArrayRef<int *>, ArrayRef<volatile int *>>, + "Adding volatile"); +static_assert(!std::is_convertible_v<ArrayRef<int *>, ArrayRef<float *>>, "Changing pointer of one type to a pointer of another"); -static_assert( - !std::is_convertible<ArrayRef<const int *>, ArrayRef<int *>>::value, - "Removing const"); -static_assert( - !std::is_convertible<ArrayRef<volatile int *>, ArrayRef<int *>>::value, - "Removing volatile"); +static_assert(!std::is_convertible_v<ArrayRef<const int *>, ArrayRef<int *>>, + "Removing const"); +static_assert(!std::is_convertible_v<ArrayRef<volatile int *>, ArrayRef<int *>>, + "Removing volatile"); // Check that we can't accidentally assign a temporary location to an ArrayRef. // (Unfortunately we can't make use of the same thing with constructors.) +static_assert(!std::is_assignable_v<ArrayRef<int *> &, int *>, + "Assigning from single prvalue element"); +static_assert(!std::is_assignable_v<ArrayRef<int *> &, int *&&>, + "Assigning from single xvalue element"); +static_assert(std::is_assignable_v<ArrayRef<int *> &, int *&>, + "Assigning from single lvalue element"); static_assert( - !std::is_assignable<ArrayRef<int *>&, int *>::value, - "Assigning from single prvalue element"); -static_assert( - !std::is_assignable<ArrayRef<int *>&, int * &&>::value, - "Assigning from single xvalue element"); -static_assert( - std::is_assignable<ArrayRef<int *>&, int * &>::value, - "Assigning from single lvalue element"); -static_assert( - !std::is_assignable<ArrayRef<int *>&, std::initializer_list<int *>>::value, + !std::is_assignable_v<ArrayRef<int *> &, std::initializer_list<int *>>, "Assigning from an initializer list"); namespace { @@ -261,7 +254,7 @@ TEST(ArrayRefTest, makeArrayRefFromStdArray) { } } -static_assert(std::is_trivially_copyable<ArrayRef<int>>::value, +static_assert(std::is_trivially_copyable_v<ArrayRef<int>>, "trivially copyable"); TEST(ArrayRefTest, makeMutableArrayRef) { |