[clang-tools-extra] 3c2cb8e - [clangd] Disable IncludeCleaner for ObjC
Kadir Cetinkaya via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 22 02:33:33 PDT 2022
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
More information about the cfe-commits
mailing list