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> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits