16 #ifndef LLVM_CLANG_TOOLING_DIAGNOSTICSYAML_H 17 #define LLVM_CLANG_TOOLING_DIAGNOSTICSYAML_H 21 #include "llvm/Support/YAMLTraits.h" 29 template <>
struct MappingTraits<
clang::tooling::Diagnostic> {
32 class NormalizedDiagnostic {
35 : DiagLevel(
clang::tooling::Diagnostic::
Level::Warning) {}
38 : DiagnosticName(D.DiagnosticName), Message(D.Message), Fix(D.Fix),
39 Notes(D.Notes), DiagLevel(D.DiagLevel),
40 BuildDirectory(D.BuildDirectory) {}
44 DiagLevel, BuildDirectory);
49 llvm::StringMap<clang::tooling::Replacements>
Fix;
56 MappingNormalization<NormalizedDiagnostic, clang::tooling::Diagnostic> Keys(
58 Io.mapRequired(
"DiagnosticName", Keys->DiagnosticName);
59 Io.mapRequired(
"Message", Keys->Message.Message);
60 Io.mapRequired(
"FileOffset", Keys->Message.FileOffset);
61 Io.mapRequired(
"FilePath", Keys->Message.FilePath);
65 std::vector<clang::tooling::Replacement> Fixes;
66 for (
auto &Replacements : Keys->Fix) {
71 Io.mapRequired(
"Replacements", Fixes);
72 for (
auto &Fix : Fixes) {
73 llvm::Error Err = Keys->Fix[Fix.getFilePath()].add(Fix);
76 llvm::errs() <<
"Fix conflicts with existing fix: " 85 template <>
struct MappingTraits<
clang::tooling::TranslationUnitDiagnostics> {
94 #endif // LLVM_CLANG_TOOLING_DIAGNOSTICSYAML_H
DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterat...
Dataflow Directional Tag Classes.
std::string toString(const til::SExpr *E)
This file defines the structure of a YAML document for serializing replacements.