This revision was automatically updated to reflect the committed changes. Closed by commit rG64168c6d996b: [clangd] Disable suffix matching fallback for C during include insertion (authored by kadircet).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D88144/new/ https://reviews.llvm.org/D88144 Files: clang-tools-extra/clangd/index/CanonicalIncludes.cpp clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp Index: clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp +++ clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp @@ -21,6 +21,10 @@ CI.addSystemHeadersMapping(Language); // Usual standard library symbols are mapped correctly. EXPECT_EQ("<stdio.h>", CI.mapHeader("path/stdio.h", "printf")); + // Suffix mapping isn't available for C, instead of mapping to `<cstdio> we + // just leave the header as-is. + EXPECT_EQ("include/stdio.h", + CI.mapHeader("include/stdio.h", "unknown_symbol")); } TEST(CanonicalIncludesTest, CXXStandardLibrary) { Index: clang-tools-extra/clangd/index/CanonicalIncludes.cpp =================================================================== --- clang-tools-extra/clangd/index/CanonicalIncludes.cpp +++ clang-tools-extra/clangd/index/CanonicalIncludes.cpp @@ -772,7 +772,10 @@ MaxSuffixComponents; }) != SystemHeaderMap->keys().end()); - StdSuffixHeaderMapping = SystemHeaderMap; + // FIXME: Suffix mapping contains invalid entries for C, so only enable it for + // CPP. + if (Language.CPlusPlus) + StdSuffixHeaderMapping = SystemHeaderMap; } } // namespace clangd
Index: clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp +++ clang-tools-extra/clangd/unittests/CanonicalIncludesTests.cpp @@ -21,6 +21,10 @@ CI.addSystemHeadersMapping(Language); // Usual standard library symbols are mapped correctly. EXPECT_EQ("<stdio.h>", CI.mapHeader("path/stdio.h", "printf")); + // Suffix mapping isn't available for C, instead of mapping to `<cstdio> we + // just leave the header as-is. + EXPECT_EQ("include/stdio.h", + CI.mapHeader("include/stdio.h", "unknown_symbol")); } TEST(CanonicalIncludesTest, CXXStandardLibrary) { Index: clang-tools-extra/clangd/index/CanonicalIncludes.cpp =================================================================== --- clang-tools-extra/clangd/index/CanonicalIncludes.cpp +++ clang-tools-extra/clangd/index/CanonicalIncludes.cpp @@ -772,7 +772,10 @@ MaxSuffixComponents; }) != SystemHeaderMap->keys().end()); - StdSuffixHeaderMapping = SystemHeaderMap; + // FIXME: Suffix mapping contains invalid entries for C, so only enable it for + // CPP. + if (Language.CPlusPlus) + StdSuffixHeaderMapping = SystemHeaderMap; } } // namespace clangd
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits