5chmidti added inline comments.
================ Comment at: clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp:178 + // Allow all expressions except partial LambdaExpr selections since we + // don't want to extract from the captures/default arguments of a lambda + if (isa<clang::Expr>(Stmt)) { ---------------- Noticed that this can be removed because extracting from captures is allowed. Will change in the next update ================ Comment at: clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp:182-184 + if (InsertionPoint->Parent->ASTNode.get<ParmVarDecl>() != nullptr) { + return false; + } ---------------- This is supposed to stop the following invalid code from happening: ``` void foo() { int placeholder = 42; [](int x = placeholder {}; extern void bar(int x = placeholder); } ``` clangd does not seem to support extracting from the initializers of defaulted parameters, should I keep the condition as is, or should I do something different here? It is legal to have default arguments in global scope (examples below). The following insertions could exist (out of scope for this patch): ``` int placeholder = 42; void foo() { [](int x = placeholder {}; extern void bar(int x = placeholder); } ``` ``` struct X { static inline int placeholder = 42; void foo(int x = placeholder) {} }; ``` Either way, I'll have to adjust the comment because this is not just to stop default parameter initializers in lambdas from being extracted to a local scope. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141757/new/ https://reviews.llvm.org/D141757 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits