28#include "llvm/ADT/StringRef.h"
29#include "llvm/Support/Casting.h"
48 std::pair<clang::FileID, unsigned> FileIdAndOffset =
49 FullLoc.getSpellingLoc().getDecomposedLoc();
50 return SM.getFileEntryForID(FileIdAndOffset.first) !=
nullptr;
55class USRLocFindingASTVisitor
56 :
public RecursiveSymbolVisitor<USRLocFindingASTVisitor> {
58 explicit USRLocFindingASTVisitor(
const std::vector<std::string> &USRs,
60 const ASTContext &Context)
61 : RecursiveSymbolVisitor(Context.getSourceManager(),
62 Context.getLangOpts()),
63 USRSet(USRs.begin(), USRs.end()), PrevName(PrevName), Context(Context) {
66 bool visitSymbolOccurrence(
const NamedDecl *ND,
69 assert(NameRanges.size() == 1 &&
70 "Multiple name pieces are not supported yet!");