Author: Marek Kurdej Date: 2020-12-03T10:59:46+01:00 New Revision: fe21c86ee75f93bb0372660c004ac2325ac12cdc
URL: https://github.com/llvm/llvm-project/commit/fe21c86ee75f93bb0372660c004ac2325ac12cdc DIFF: https://github.com/llvm/llvm-project/commit/fe21c86ee75f93bb0372660c004ac2325ac12cdc.diff LOG: [clang-format] De-duplicate includes with leading or trailing whitespace. This fixes PR46555 (https://bugs.llvm.org/show_bug.cgi?id=46555). Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D88296 Added: Modified: clang/lib/Format/Format.cpp clang/unittests/Format/SortIncludesTest.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 235621c4f9aa8..6f96395f608d2 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -2179,7 +2179,8 @@ static void sortCppIncludes(const FormatStyle &Style, // Deduplicate #includes. Indices.erase(std::unique(Indices.begin(), Indices.end(), [&](unsigned LHSI, unsigned RHSI) { - return Includes[LHSI].Text == Includes[RHSI].Text; + return Includes[LHSI].Text.trim() == + Includes[RHSI].Text.trim(); }), Indices.end()); diff --git a/clang/unittests/Format/SortIncludesTest.cpp b/clang/unittests/Format/SortIncludesTest.cpp index 279c4ee15a10c..cb2d2bd782fc8 100644 --- a/clang/unittests/Format/SortIncludesTest.cpp +++ b/clang/unittests/Format/SortIncludesTest.cpp @@ -289,6 +289,19 @@ TEST_F(SortIncludesTest, LeadingWhitespace) { sort("# include \"a.h\"\n" "# include \"c.h\"\n" "# include \"b.h\"\n")); + EXPECT_EQ("#include \"a.h\"\n", sort("#include \"a.h\"\n" + " #include \"a.h\"\n")); +} + +TEST_F(SortIncludesTest, TrailingWhitespace) { + EXPECT_EQ("#include \"a.h\"\n" + "#include \"b.h\"\n" + "#include \"c.h\"\n", + sort("#include \"a.h\" \n" + "#include \"c.h\" \n" + "#include \"b.h\" \n")); + EXPECT_EQ("#include \"a.h\"\n", sort("#include \"a.h\"\n" + "#include \"a.h\" \n")); } TEST_F(SortIncludesTest, GreaterInComment) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits