Author: Kadir Cetinkaya Date: 2020-08-11T16:00:39+02:00 New Revision: 24a816c7d3925eb21970ea733d7d6bda11088ac7
URL: https://github.com/llvm/llvm-project/commit/24a816c7d3925eb21970ea733d7d6bda11088ac7 DIFF: https://github.com/llvm/llvm-project/commit/24a816c7d3925eb21970ea733d7d6bda11088ac7.diff LOG: [clangd] Disable ExtractFunction for C This tweak uses constructs like auto and refs, which are not available in C. Differential Revision: https://reviews.llvm.org/D85727 Added: Modified: clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp clang-tools-extra/clangd/unittests/TweakTests.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp b/clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp index 895afbb116f1..d4c723e02eeb 100644 --- a/clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp +++ b/clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp @@ -673,6 +673,8 @@ bool ExtractFunction::prepare(const Selection &Inputs) { const Node *CommonAnc = Inputs.ASTSelection.commonAncestor(); const SourceManager &SM = Inputs.AST->getSourceManager(); const LangOptions &LangOpts = Inputs.AST->getLangOpts(); + if (!LangOpts.CPlusPlus) + return false; if (auto MaybeExtZone = findExtractionZone(CommonAnc, SM, LangOpts)) { ExtZone = std::move(*MaybeExtZone); return true; diff --git a/clang-tools-extra/clangd/unittests/TweakTests.cpp b/clang-tools-extra/clangd/unittests/TweakTests.cpp index 200a53c690b6..b4f135b3efe2 100644 --- a/clang-tools-extra/clangd/unittests/TweakTests.cpp +++ b/clang-tools-extra/clangd/unittests/TweakTests.cpp @@ -605,6 +605,9 @@ TEST_F(ExtractFunctionTest, FunctionTest) { EXPECT_THAT(apply(" if(true) [[{ return; }]] "), HasSubstr("extracted")); // Don't extract uncertain return EXPECT_THAT(apply(" if(true) [[if (false) return;]] "), StartsWith("fail")); + + FileName = "a.c"; + EXPECT_THAT(apply(" for([[int i = 0;]];);"), HasSubstr("unavailable")); } TEST_F(ExtractFunctionTest, FileTest) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits