[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
This commit is contained in:
Justin Lebar
2016-10-21 20:13:39 +00:00
parent c9d66eb05b
commit ae90ad2065
2 changed files with 10 additions and 5 deletions

View File

@@ -97,8 +97,13 @@ void SpecialMemberFunctionsCheck::check(
{"move-assign", SpecialMemberFunctionKind::MoveAssignment}};
for (const auto &KV : Matchers)
if (Result.Nodes.getNodeAs<CXXMethodDecl>(KV.first))
ClassWithSpecialMembers[ID].insert(KV.second);
if (Result.Nodes.getNodeAs<CXXMethodDecl>(KV.first)) {
SpecialMemberFunctionKind Kind = KV.second;
llvm::SmallVectorImpl<SpecialMemberFunctionKind> &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 ");
}
}