[clang-tools-extra] 24a816c - [clangd] Disable ExtractFunction for C
Kadir Cetinkaya via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 11 07:00:49 PDT 2020
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) {
More information about the cfe-commits
mailing list