15 #ifndef LLVM_CLANG_TOOLING_DIAGNOSTICSYAML_H 16 #define LLVM_CLANG_TOOLING_DIAGNOSTICSYAML_H 20 #include "llvm/Support/YAMLTraits.h" 29 template <>
struct MappingTraits<
clang::tooling::DiagnosticMessage> {
31 Io.mapRequired(
"Message", M.
Message);
32 Io.mapOptional(
"FilePath", M.
FilePath);
34 std::vector<clang::tooling::Replacement> Fixes;
35 for (
auto &Replacements : M.
Fix) {
36 for (
auto &Replacement : Replacements.second)
37 Fixes.push_back(Replacement);
39 Io.mapRequired(
"Replacements", Fixes);
40 for (
auto &Fix : Fixes) {
41 llvm::Error Err = M.
Fix[Fix.getFilePath()].add(Fix);
44 llvm::errs() <<
"Fix conflicts with existing fix: " 51 template <>
struct MappingTraits<
clang::tooling::Diagnostic> {
54 class NormalizedDiagnostic {
57 : DiagLevel(
clang::tooling::Diagnostic::
Level::Warning) {}
60 : DiagnosticName(D.DiagnosticName), Message(D.Message), Notes(D.Notes),
61 DiagLevel(D.DiagLevel), BuildDirectory(D.BuildDirectory) {}
65 DiagLevel, BuildDirectory);
70 llvm::StringMap<clang::tooling::Replacements>
Fix;
77 MappingNormalization<NormalizedDiagnostic, clang::tooling::Diagnostic> Keys(
79 Io.mapRequired(
"DiagnosticName", Keys->DiagnosticName);
80 Io.mapRequired(
"DiagnosticMessage", Keys->Message);
81 Io.mapOptional(
"Notes", Keys->Notes);
89 template <>
struct MappingTraits<
clang::tooling::TranslationUnitDiagnostics> {
98 #endif // LLVM_CLANG_TOOLING_DIAGNOSTICSYAML_H
Specialize PointerLikeTypeTraits to allow LazyGenerationalUpdatePtr to be placed into a PointerUnion...
static std::string toString(const clang::SanitizerSet &Sanitizers)
Produce a string containing comma-separated names of sanitizers in Sanitizers set.
Dataflow Directional Tag Classes.
This file defines the structure of a YAML document for serializing replacements.