Author: Kadir Cetinkaya Date: 2022-08-22T11:28:06+02:00 New Revision: 3c2cb8e2f09b4ed48c83bda2551de82f2ded1d1d
URL: https://github.com/llvm/llvm-project/commit/3c2cb8e2f09b4ed48c83bda2551de82f2ded1d1d DIFF: https://github.com/llvm/llvm-project/commit/3c2cb8e2f09b4ed48c83bda2551de82f2ded1d1d.diff LOG: [clangd] Disable IncludeCleaner for ObjC Added: Modified: clang-tools-extra/clangd/IncludeCleaner.cpp clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/IncludeCleaner.cpp b/clang-tools-extra/clangd/IncludeCleaner.cpp index 0bdf32c6d69dd..4e5758547a12e 100644 --- a/clang-tools-extra/clangd/IncludeCleaner.cpp +++ b/clang-tools-extra/clangd/IncludeCleaner.cpp @@ -476,6 +476,9 @@ std::vector<Diag> issueUnusedIncludesDiagnostics(ParsedAST &AST, Cfg.Diagnostics.SuppressAll || Cfg.Diagnostics.Suppress.contains("unused-includes")) return {}; + // Interaction is only polished for C/CPP. + if (AST.getLangOpts().ObjC) + return {}; trace::Span Tracer("IncludeCleaner::issueUnusedIncludesDiagnostics"); std::vector<Diag> Result; std::string FileName = diff --git a/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp b/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp index d79f1219511f8..9449952b10e80 100644 --- a/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp +++ b/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp @@ -7,10 +7,12 @@ //===----------------------------------------------------------------------===// #include "Annotations.h" +#include "Config.h" #include "IncludeCleaner.h" #include "SourceCode.h" #include "TestFS.h" #include "TestTU.h" +#include "support/Context.h" #include "llvm/ADT/ScopeExit.h" #include "llvm/Testing/Support/SupportHelpers.h" #include "gmock/gmock.h" @@ -599,6 +601,27 @@ TEST(IncludeCleaner, IWYUPragmaExport) { EXPECT_THAT(computeUnusedIncludes(AST), IsEmpty()); } +TEST(IncludeCleaner, NoDiagsForObjC) { + TestTU TU; + TU.Code = R"cpp( + #include "foo.h" + + void bar() {} + )cpp"; + TU.AdditionalFiles["foo.h"] = R"cpp( + #ifndef FOO_H + #define FOO_H + + #endif + )cpp"; + TU.ExtraArgs.emplace_back("-xobjective-c"); + + Config Cfg; + Cfg.Diagnostics.UnusedIncludes = Config::Strict; + WithContextValue Ctx(Config::Key, std::move(Cfg)); + ParsedAST AST = TU.build(); + EXPECT_THAT(AST.getDiagnostics(), llvm::ValueIs(IsEmpty())); +} } // namespace } // namespace clangd } // namespace clang _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits