[clang-tools-extra] 555d5ad - [clangd] Disable ExtractVariable for C
Kadir Cetinkaya via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 25 03:15:23 PST 2020
Author: Kadir Cetinkaya
Date: 2020-02-25T12:15:15+01:00
New Revision: 555d5ad85a4986d003040eb94109c72579021423
URL: https://github.com/llvm/llvm-project/commit/555d5ad85a4986d003040eb94109c72579021423
DIFF: https://github.com/llvm/llvm-project/commit/555d5ad85a4986d003040eb94109c72579021423.diff
LOG: [clangd] Disable ExtractVariable for C
Summary:
Currently extract variable doesn't spell the type explicitly and just
uses an `auto` instead, which is not available in C.
Reviewers: usaxena95
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75053
Added:
Modified:
clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp
clang-tools-extra/clangd/unittests/TweakTests.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp b/clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp
index 83bc901a3f2f..cf38227c29d7 100644
--- a/clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp
+++ b/clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp
@@ -450,6 +450,10 @@ bool ExtractVariable::prepare(const Selection &Inputs) {
if (Inputs.SelectionBegin == Inputs.SelectionEnd)
return false;
const ASTContext &Ctx = Inputs.AST->getASTContext();
+ // FIXME: Enable non-C++ cases once we start spelling types explicitly instead
+ // of making use of auto.
+ if (!Ctx.getLangOpts().CPlusPlus)
+ return false;
const SourceManager &SM = Inputs.AST->getSourceManager();
if (const SelectionTree::Node *N =
computeExtractedExpr(Inputs.ASTSelection.commonAncestor()))
diff --git a/clang-tools-extra/clangd/unittests/TweakTests.cpp b/clang-tools-extra/clangd/unittests/TweakTests.cpp
index 40ab6b12643e..24210aaa101d 100644
--- a/clang-tools-extra/clangd/unittests/TweakTests.cpp
+++ b/clang-tools-extra/clangd/unittests/TweakTests.cpp
@@ -230,6 +230,14 @@ TEST_F(ExtractVariableTest, Test) {
)cpp";
EXPECT_AVAILABLE(AvailableCases);
+ ExtraArgs = {"-xc"};
+ const char *AvailableButC = R"cpp(
+ void foo() {
+ int x = [[1]];
+ })cpp";
+ EXPECT_UNAVAILABLE(AvailableButC);
+ ExtraArgs = {};
+
const char *NoCrashCases = R"cpp(
// error-ok: broken code, but shouldn't crash
template<typename T, typename ...Args>
More information about the cfe-commits
mailing list