diff options
author | Nathan James <n.james93@hotmail.co.uk> | 2022-11-08 12:22:50 +0000 |
---|---|---|
committer | Nathan James <n.james93@hotmail.co.uk> | 2022-11-08 12:22:52 +0000 |
commit | 1834a310d060d55748ca38d4ae0482864c2047d8 (patch) | |
tree | 79ab63f0548b07d61a75dd909731ca7a6ecc17b1 /llvm/unittests/ADT/ArrayRefTest.cpp | |
parent | 94738a5ac34283bb034b022602b9f9e93d67081f (diff) | |
download | llvm-1834a310d060d55748ca38d4ae0482864c2047d8.zip llvm-1834a310d060d55748ca38d4ae0482864c2047d8.tar.gz llvm-1834a310d060d55748ca38d4ae0482864c2047d8.tar.bz2 |
[llvm][NFC] Use c++17 style variable type traits
This was done as a test for D137302 and it makes sense to push these changes
Reviewed By: dblaikie
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) { |