diff options
Diffstat (limited to 'llvm/unittests/ADT')
| -rw-r--r-- | llvm/unittests/ADT/ilistTest.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/ilistTest.cpp b/llvm/unittests/ADT/ilistTest.cpp index b63cfd6310c..c2ad3d0dce3 100644 --- a/llvm/unittests/ADT/ilistTest.cpp +++ b/llvm/unittests/ADT/ilistTest.cpp @@ -128,4 +128,25 @@ TEST(ilistTest, UnsafeClear) { EXPECT_EQ(6, List.back().Value); } +struct Empty {}; +TEST(ilistTest, HasObsoleteCustomizationTrait) { + // Negative test for HasObsoleteCustomization. + static_assert(!ilist_detail::HasObsoleteCustomization<Empty, Node>::value, + "Empty has no customizations"); } + +struct GetNext { + Node *getNext(Node *); +}; +TEST(ilistTest, HasGetNextTrait) { + static_assert(ilist_detail::HasGetNext<GetNext, Node>::value, + "GetNext has a getNext(Node*)"); + static_assert(ilist_detail::HasObsoleteCustomization<GetNext, Node>::value, + "Empty should be obsolete because of getNext()"); + + // Negative test for HasGetNext. + static_assert(!ilist_detail::HasGetNext<Empty, Node>::value, + "Empty does not have a getNext(Node*)"); +} + +} // end namespace |

