[clang-tools-extra] [clangd] Do not offer extraction to variable for decl init expression (PR #69477)

kadir çetinkaya via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 19 09:28:41 PST 2024


================
@@ -490,6 +491,13 @@ bool eligibleForExtraction(const SelectionTree::Node *N) {
         BO->getRHS() == OuterImplicit.ASTNode.get<Expr>())
       return false;
   }
+  if (const auto *Decl = Parent->ASTNode.get<VarDecl>()) {
+    if (!Decl->isInitCapture() &&
----------------
kadircet wrote:

> "end":{"character":18,"
But that's [[2 + ]]3, no? I get an end character position of 19 with both Qt Creator and VSCode for the [[2 + 3]] selection.

oh wow you're right, looks like the version of YCM I have is having off-by-one for that case.

---

sorry for the noise, i didn't know about `getBinaryOperatorRange` which does this kind of pruning. it all makes sense now.

https://github.com/llvm/llvm-project/pull/69477


More information about the cfe-commits mailing list