diff --git a/clang/unittests/Format/CMakeLists.txt b/clang/unittests/Format/CMakeLists.txt --- a/clang/unittests/Format/CMakeLists.txt +++ b/clang/unittests/Format/CMakeLists.txt @@ -28,7 +28,6 @@ PRIVATE clangBasic clangFormat - clangFrontend clangRewrite clangToolingCore ) diff --git a/clang/unittests/Format/CleanupTest.cpp b/clang/unittests/Format/CleanupTest.cpp --- a/clang/unittests/Format/CleanupTest.cpp +++ b/clang/unittests/Format/CleanupTest.cpp @@ -9,7 +9,6 @@ #include "clang/Format/Format.h" #include "../Tooling/ReplacementTest.h" -#include "../Tooling/RewriterTestContext.h" #include "clang/Tooling/Core/Replacement.h" #include "gtest/gtest.h" diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -12,7 +12,6 @@ #include "FormatTestUtils.h" #include "TestLexer.h" -#include "clang/Frontend/TextDiagnosticPrinter.h" #include "llvm/Support/Debug.h" #include "llvm/Support/MemoryBuffer.h" #include "gtest/gtest.h" diff --git a/clang/unittests/Format/FormatTestComments.cpp b/clang/unittests/Format/FormatTestComments.cpp --- a/clang/unittests/Format/FormatTestComments.cpp +++ b/clang/unittests/Format/FormatTestComments.cpp @@ -11,7 +11,6 @@ #include "../Tooling/ReplacementTest.h" #include "FormatTestUtils.h" -#include "clang/Frontend/TextDiagnosticPrinter.h" #include "llvm/Support/Debug.h" #include "llvm/Support/MemoryBuffer.h" #include "gtest/gtest.h" diff --git a/clang/unittests/Format/FormatTestObjC.cpp b/clang/unittests/Format/FormatTestObjC.cpp --- a/clang/unittests/Format/FormatTestObjC.cpp +++ b/clang/unittests/Format/FormatTestObjC.cpp @@ -11,7 +11,6 @@ #include "../Tooling/ReplacementTest.h" #include "FormatTestUtils.h" -#include "clang/Frontend/TextDiagnosticPrinter.h" #include "llvm/Support/Debug.h" #include "llvm/Support/MemoryBuffer.h" #include "gtest/gtest.h" diff --git a/clang/unittests/Format/FormatTestRawStrings.cpp b/clang/unittests/Format/FormatTestRawStrings.cpp --- a/clang/unittests/Format/FormatTestRawStrings.cpp +++ b/clang/unittests/Format/FormatTestRawStrings.cpp @@ -11,7 +11,6 @@ #include "../Tooling/ReplacementTest.h" #include "FormatTestUtils.h" -#include "clang/Frontend/TextDiagnosticPrinter.h" #include "llvm/Support/Debug.h" #include "llvm/Support/MemoryBuffer.h" #include "gtest/gtest.h" diff --git a/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp b/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp --- a/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp +++ b/clang/unittests/Format/NamespaceEndCommentsFixerTest.cpp @@ -8,7 +8,6 @@ #include "clang/Format/Format.h" -#include "clang/Frontend/TextDiagnosticPrinter.h" #include "llvm/Support/Debug.h" #include "gtest/gtest.h" diff --git a/clang/unittests/Tooling/RewriterTestContext.h b/clang/unittests/Tooling/RewriterTestContext.h --- a/clang/unittests/Tooling/RewriterTestContext.h +++ b/clang/unittests/Tooling/RewriterTestContext.h @@ -18,7 +18,6 @@ #include "clang/Basic/FileManager.h" #include "clang/Basic/LangOptions.h" #include "clang/Basic/SourceManager.h" -#include "clang/Frontend/TextDiagnosticPrinter.h" #include "clang/Rewrite/Core/Rewriter.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/Path.h" @@ -26,6 +25,22 @@ namespace clang { +/// \brief A very simple diagnostic consumer that prints to stderr and keeps +/// track of the number of diagnostics. +/// +/// This avoids a dependency on clangFrontend for FormatTests. +struct RewriterDiagnosticConsumer : public DiagnosticConsumer { + RewriterDiagnosticConsumer() : NumDiagnosticsSeen(0) {} + void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel, + const Diagnostic &Info) override { + ++NumDiagnosticsSeen; + SmallString<100> OutStr; + Info.FormatDiagnostic(OutStr); + llvm::errs() << OutStr; + } + unsigned NumDiagnosticsSeen; +}; + /// \brief A class that sets up a ready to use Rewriter. /// /// Useful in unit tests that need a Rewriter. Creates all dependencies @@ -37,7 +52,6 @@ : DiagOpts(new DiagnosticOptions()), Diagnostics(IntrusiveRefCntPtr(new DiagnosticIDs), &*DiagOpts), - DiagnosticPrinter(llvm::outs(), &*DiagOpts), InMemoryFileSystem(new llvm::vfs::InMemoryFileSystem), OverlayFileSystem( new llvm::vfs::OverlayFileSystem(llvm::vfs::getRealFileSystem())), @@ -113,7 +127,7 @@ IntrusiveRefCntPtr DiagOpts; DiagnosticsEngine Diagnostics; - TextDiagnosticPrinter DiagnosticPrinter; + RewriterDiagnosticConsumer DiagnosticPrinter; IntrusiveRefCntPtr InMemoryFileSystem; IntrusiveRefCntPtr OverlayFileSystem; FileManager Files;