SureYeaah added inline comments.

================
Comment at: clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp:50
   // Generate Replacement for declaring the selected Expr as a new variable
-  tooling::Replacement insertDeclaration(llvm::StringRef VarName) const;
+  tooling::Replacement insertDeclaration(llvm::StringRef VarName,
+                                         SourceRange InitChars) const;
----------------
Nit: same parameter order for replaceWithVar and insertDeclaration.


================
Comment at: clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp:245
+        assert(E && "callee and args should be Exprs!");
+        if (E == Op->getArg(0) || E == Op->getArg(1))
+          SelectedOperands.push_back(Child);
----------------
Why do we need to check this for CXXOperatorCallExpr and not BinaryOperator?


================
Comment at: clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp:305
+  const SelectionTree::Node *Start = Op.SelectedOperands.front(); // LHS
+  const SelectionTree::Node *End = Op.SelectedOperands.back();    // RHS
+  // End is already correct, Start needs to be pushed down to the right spot.
----------------
For 1 + [[2 + 3 * 4]] + 5, we probably don't get an invalid range from this 
function. If so, we might want to add one more check where we parse End and 
compare it's operator.




================
Comment at: clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp:314
+    }
+    // Op.LHS (partially) selected, so descend into it.
+    Start = Op.SelectedOperands.front();
----------------
Nit: For [[a + b + c]],

       +
     /  \
    +    c
   / \
  a   b

For the second + as Op, a would be completely selected. So Op.LHS can be 
partially or completely selected.


================
Comment at: clang-tools-extra/clangd/unittests/TweakTests.cpp:448
+
+          // Binary subexpressions
+          {R"cpp(void f() {
----------------
Can we have some tests with macros as well?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65139/new/

https://reviews.llvm.org/D65139



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to