https://github.com/kadircet created https://github.com/llvm/llvm-project/pull/65499:
None From c1f9b400497b78a5283d75da6f7ee0c14320e541 Mon Sep 17 00:00:00 2001 From: Kadir Cetinkaya <kadir...@google.com> Date: Wed, 6 Sep 2023 18:42:21 +0200 Subject: [PATCH] [include-cleaner] Always keep non-self-contained files --- .../clangd/unittests/IncludeCleanerTests.cpp | 8 ++++---- clang-tools-extra/include-cleaner/lib/Record.cpp | 3 ++- .../include-cleaner/unittests/RecordTest.cpp | 2 +- .../unittests/clang-tidy/IncludeCleanerTest.cpp | 16 +++++++++------- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp b/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp index 1d6b99af081429..493a7480bd5b1e 100644 --- a/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp +++ b/clang-tools-extra/clangd/unittests/IncludeCleanerTests.cpp @@ -88,10 +88,10 @@ TEST(IncludeCleaner, StdlibUnused) { template <typename> class vector {}; } )cpp"; - TU.AdditionalFiles["list"] = "#include <bits>"; - TU.AdditionalFiles["queue"] = "#include <bits>"; - TU.AdditionalFiles["vector"] = "#include <bits>"; - TU.AdditionalFiles["string"] = "#include <bits>"; + TU.AdditionalFiles["list"] = guard("#include <bits>"); + TU.AdditionalFiles["queue"] = guard("#include <bits>"); + TU.AdditionalFiles["vector"] = guard("#include <bits>"); + TU.AdditionalFiles["string"] = guard("#include <bits>"); TU.ExtraArgs = {"-isystem", testRoot()}; auto AST = TU.build(); IncludeCleanerFindings Findings = computeIncludeCleanerFindings(AST); diff --git a/clang-tools-extra/include-cleaner/lib/Record.cpp b/clang-tools-extra/include-cleaner/lib/Record.cpp index d7237325f701bb..c87408f213816c 100644 --- a/clang-tools-extra/include-cleaner/lib/Record.cpp +++ b/clang-tools-extra/include-cleaner/lib/Record.cpp @@ -430,7 +430,8 @@ bool PragmaIncludes::isPrivate(const FileEntry *FE) const { } bool PragmaIncludes::shouldKeep(const FileEntry *FE) const { - return ShouldKeep.contains(FE->getUniqueID()); + return ShouldKeep.contains(FE->getUniqueID()) || + NonSelfContainedFiles.contains(FE->getUniqueID()); } namespace { diff --git a/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp b/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp index 69bec04ed60194..3f6767270998bc 100644 --- a/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp +++ b/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp @@ -320,7 +320,7 @@ class PragmaIncludeTest : public ::testing::Test { void createEmptyFiles(llvm::ArrayRef<StringRef> FileNames) { for (llvm::StringRef File : FileNames) - Inputs.ExtraFiles[File] = ""; + Inputs.ExtraFiles[File] = "#pragma once"; } }; diff --git a/clang-tools-extra/unittests/clang-tidy/IncludeCleanerTest.cpp b/clang-tools-extra/unittests/clang-tidy/IncludeCleanerTest.cpp index f84133b01a3a49..0c29b469b617b7 100644 --- a/clang-tools-extra/unittests/clang-tidy/IncludeCleanerTest.cpp +++ b/clang-tools-extra/unittests/clang-tidy/IncludeCleanerTest.cpp @@ -47,9 +47,10 @@ TEST(IncludeCleanerCheckTest, BasicUnusedIncludes) { const char *PostCode = "\n"; std::vector<ClangTidyError> Errors; - EXPECT_EQ(PostCode, runCheckOnCode<IncludeCleanerCheck>( - PreCode, &Errors, "file.cpp", std::nullopt, - ClangTidyOptions(), {{"bar.h", ""}, {"vector", ""}})); + EXPECT_EQ(PostCode, + runCheckOnCode<IncludeCleanerCheck>( + PreCode, &Errors, "file.cpp", std::nullopt, ClangTidyOptions(), + {{"bar.h", "#pragma once"}, {"vector", "#pragma once"}})); } TEST(IncludeCleanerCheckTest, SuppressUnusedIncludes) { @@ -76,10 +77,11 @@ TEST(IncludeCleanerCheckTest, SuppressUnusedIncludes) { PostCode, runCheckOnCode<IncludeCleanerCheck>( PreCode, &Errors, "file.cpp", std::nullopt, Opts, - {{"bar.h", ""}, - {"vector", ""}, - {appendPathFileSystemIndependent({"foo", "qux.h"}), ""}, - {appendPathFileSystemIndependent({"baz", "qux", "qux.h"}), ""}})); + {{"bar.h", "#pragma once"}, + {"vector", "#pragma once"}, + {appendPathFileSystemIndependent({"foo", "qux.h"}), "#pragma once"}, + {appendPathFileSystemIndependent({"baz", "qux", "qux.h"}), + "#pragma once"}})); } TEST(IncludeCleanerCheckTest, BasicMissingIncludes) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits