/// namespace a { namespace b { class X; } }
/// \endcode
inline internal::Matcher<NamedDecl> hasName(const std::string &Name) {
- return internal::Matcher<NamedDecl>(new internal::HasNameMatcher({Name}));
+ std::vector<std::string> Names;
+ Names.push_back(Name);
+ return internal::Matcher<NamedDecl>(new internal::HasNameMatcher(Names));
}
/// \brief Matches NamedDecl nodes that have any of the specified names.
/// Return true if there are still any patterns left.
bool consumeNameSuffix(StringRef NodeName, bool CanSkip) {
for (size_t I = 0; I < Patterns.size();) {
- if (internal::consumeNameSuffix(Patterns[I].Pattern, NodeName) ||
+ if (internal::consumeNameSuffix(Patterns[I].P, NodeName) ||
CanSkip) {
++I;
} else {
/// 'fully qualified' requirement.
bool foundMatch(bool AllowFullyQualified) const {
for (auto& P: Patterns)
- if (P.Pattern.empty() && (AllowFullyQualified || !P.IsFullyQualified))
+ if (P.P.empty() && (AllowFullyQualified || !P.IsFullyQualified))
return true;
return false;
}
private:
struct Pattern {
- StringRef Pattern;
+ StringRef P;
bool IsFullyQualified;
};
llvm::SmallVector<Pattern, 8> Patterns;