From ae90ad2065786be5168919740100258cf0fe43f9 Mon Sep 17 00:00:00 2001 From: Justin Lebar Date: Fri, 21 Oct 2016 20:13:39 +0000 Subject: [clang-tidy] Don't use a SmallSetVector of an enum. Summary: This doesn't work after converting SmallSetVector to use DenseSet. Instead we can just use a SmallVector. Reviewers: timshen Subscribers: nemanjai, cfe-commits Differential Revision: https://reviews.llvm.org/D25647 llvm-svn: 284873 --- .../cppcoreguidelines/SpecialMemberFunctionsCheck.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp') diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp index 5a487d54e81..62f791e6576 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp @@ -97,8 +97,13 @@ void SpecialMemberFunctionsCheck::check( {"move-assign", SpecialMemberFunctionKind::MoveAssignment}}; for (const auto &KV : Matchers) - if (Result.Nodes.getNodeAs(KV.first)) - ClassWithSpecialMembers[ID].insert(KV.second); + if (Result.Nodes.getNodeAs(KV.first)) { + SpecialMemberFunctionKind Kind = KV.second; + llvm::SmallVectorImpl &Members = + ClassWithSpecialMembers[ID]; + if (find(Members, Kind) == Members.end()) + Members.push_back(Kind); + } } void SpecialMemberFunctionsCheck::onEndOfTranslationUnit() { @@ -125,7 +130,7 @@ void SpecialMemberFunctionsCheck::onEndOfTranslationUnit() { std::back_inserter(UndefinedSpecialMembers)); diag(C.first.first, "class '%0' defines %1 but does not define %2") - << C.first.second << join(DefinedSpecialMembers.getArrayRef(), " and ") + << C.first.second << join(DefinedSpecialMembers, " and ") << join(UndefinedSpecialMembers, " or "); } } -- cgit v1.2.3