Standard,
/// A verbatim header spelling, a string quoted with <> or "" that can be
/// #included directly.
- VerbatimSpelling,
+ Verbatim,
};
Header(const FileEntry *FE) : Storage(FE) {}
tooling::stdlib::Header standard() const {
return std::get<Standard>(Storage);
}
- StringRef verbatimSpelling() const {
- return std::get<VerbatimSpelling>(Storage);
+ StringRef verbatim() const {
+ return std::get<Verbatim>(Storage);
}
private:
#include "clang/Basic/SourceManager.h"
#include "clang/Tooling/Inclusions/StandardLibrary.h"
#include "llvm/ADT/ArrayRef.h"
-#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
namespace clang::include_cleaner {
if (auto SS = Recognizer(&ND)) {
// FIXME: Also report forward decls from main-file, so that the caller
// can decide to insert/ignore a header.
- return CB({Loc, Symbol(*SS), RT}, findIncludeHeaders({*SS}, SM, PI));
+ return CB({Loc, Symbol(*SS), RT}, findIncludeHeaders(*SS, SM, PI));
}
// FIXME: Extract locations from redecls.
return CB({Loc, Symbol(ND), RT},
- findIncludeHeaders({ND.getLocation()}, SM, PI));
+ findIncludeHeaders(ND.getLocation(), SM, PI));
});
}
for (const SymbolReference &MacroRef : MacroRefs) {
// header.
llvm::StringRef VerbatimSpelling = PI.getPublic(FE);
if (!VerbatimSpelling.empty())
- return {{VerbatimSpelling}};
+ return {Header(VerbatimSpelling)};
- Results = {{FE}};
+ Results = {Header(FE)};
// FIXME: compute transitive exporter headers.
for (const auto *Export : PI.getExporters(FE, SM.getFileManager()))
Results.push_back(Export);
for (unsigned I : BySpelling.lookup(H.standard().name().trim("<>")))
Result.push_back(&All[I]);
break;
- case Header::VerbatimSpelling:
- for (unsigned I : BySpelling.lookup(H.verbatimSpelling().trim("\"<>")))
+ case Header::Verbatim:
+ for (unsigned I : BySpelling.lookup(H.verbatim().trim("\"<>")))
Result.push_back(&All[I]);
break;
}