Index: lib/ASTMatchers/ASTMatchersInternal.cpp =================================================================== --- lib/ASTMatchers/ASTMatchersInternal.cpp +++ lib/ASTMatchers/ASTMatchersInternal.cpp @@ -232,15 +232,15 @@ if (Node.getIdentifier()) { // Simple name. return Name == Node.getName(); - } else if (Node.getDeclName()) { + } + if (Node.getDeclName()) { // Name needs to be constructed. llvm::SmallString<128> NodeName; llvm::raw_svector_ostream OS(NodeName); Node.printName(OS); return Name == OS.str(); - } else { - return false; } + return false; } bool HasNameMatcher::matchesNodeFull(const NamedDecl &Node) const { @@ -251,9 +251,9 @@ const StringRef Pattern = Name; if (Pattern.startswith("::")) { return FullName == Pattern; - } else { - return FullName.endswith(("::" + Pattern).str()); } + return FullName.endswith(Pattern) && + FullName.drop_back(Pattern.size()).endswith("::"); } bool HasNameMatcher::matchesNode(const NamedDecl &Node) const {