diff options
Diffstat (limited to 'clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h')
-rw-r--r-- | clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h b/clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h index 33139d72c29..560b0ff893c 100644 --- a/clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h +++ b/clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h @@ -14,6 +14,8 @@ #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendActions.h" +#include "clang/Tooling/Core/Diagnostic.h" +#include "clang/Tooling/Core/Replacement.h" #include "clang/Tooling/Refactoring.h" #include "clang/Tooling/Tooling.h" #include "llvm/ADT/Optional.h" @@ -130,16 +132,17 @@ runCheckOnCode(StringRef Code, std::vector<ClangTidyError> *Errors = nullptr, tooling::Replacements Fixes; std::vector<ClangTidyError> Diags = DiagConsumer.take(); for (const ClangTidyError &Error : Diags) { - for (const auto &FileAndFixes : Error.Fix) { - for (const auto &Fix : FileAndFixes.second) { - auto Err = Fixes.add(Fix); - // FIXME: better error handling. Keep the behavior for now. - if (Err) { - llvm::errs() << llvm::toString(std::move(Err)) << "\n"; - return ""; + if (const auto *ChosenFix = tooling::selectFirstFix(Error)) + for (const auto &FileAndFixes : *ChosenFix) { + for (const auto &Fix : FileAndFixes.second) { + auto Err = Fixes.add(Fix); + // FIXME: better error handling. Keep the behavior for now. + if (Err) { + llvm::errs() << llvm::toString(std::move(Err)) << "\n"; + return ""; + } } } - } } if (Errors) *Errors = std::move(Diags); |