Rest = parent_path(Rest, sys::path::Style::posix);
auto NextHash = hash_value(Rest);
auto &Down = DownEdges[NextHash];
- if (std::find(Down.begin(), Down.end(), Hash) == Down.end())
- DownEdges[NextHash].push_back(Hash);
+ if (!llvm::is_contained(Down, Hash))
+ Down.push_back(Hash);
// We can't just break after MaxUpTraversals, must still set DownEdges.
if (I > S.getValue().MaxUpTraversals) {
if (Cache.find(Hash) != Cache.end())
}
std::vector<Reference> take() && {
- std::sort(References.begin(), References.end(),
- [](const Reference &L, const Reference &R) {
- return std::tie(L.Loc, L.CanonicalTarget, L.Role) <
- std::tie(R.Loc, R.CanonicalTarget, R.Role);
- });
+ llvm::sort(References, [](const Reference &L, const Reference &R) {
+ return std::tie(L.Loc, L.CanonicalTarget, L.Role) <
+ std::tie(R.Loc, R.CanonicalTarget, R.Role);
+ });
// We sometimes see duplicates when parts of the AST get traversed twice.
References.erase(
std::unique(References.begin(), References.end(),