hokein added a comment.

thanks, looks better now, just some nits to improve the code readability.



================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:332
+  DynTypedNodeList Parents = Ctx.getParents(RenamedDecl);
+  if (Parents.size() != 1 || !Parents.begin()->get<DeclStmt>())
+    return nullptr;
----------------
since we repeat this code multiple times, I think we can use wrap it with a 
lambda (e.g. getSingleParent etc).


================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:338
+  // This helper checks if any statement within DeclStmt has NewName.
+  auto CheckDeclStmt = [&](const DeclStmt *DS) -> const NamedDecl * {
+    for (const auto &Child : DS->getDeclGroup())
----------------
maybe name it `LookupInDeclStmt` and pass the `Name` as a parameter, the same 
below.


================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:345
+  };
+  auto CheckCompoundStmt = [&](const CompoundStmt *CS) -> const NamedDecl * {
+    if (!CS)
----------------
the same lookupInCompoundStmt.
nit: I would pass Stmt directly, and do the "compoundStmt" cast internally, to 
save some boilerplate cast in call sides :)


================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:350
+      if (const auto *DS = dyn_cast<DeclStmt>(Node))
+        if (const auto *Result = CheckDeclStmt(DS))
+          return Result;
----------------
nit: can be just `return CheckDeclStmt(DS);`


================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:355
+  // This helper checks if there is a condition variable has NewName.
+  auto CheckConditionVariable = [&](const auto *Scope) -> const NamedDecl * {
+    if (!Scope)
----------------
nit: explicit spell out the `auto` type?


================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:359
+    if (const auto *ConditionDS = Scope->getConditionVariableDeclStmt())
+      if (const auto *Result = CheckDeclStmt(ConditionDS))
+        return Result;
----------------
nit: the same here, `return CheckDeclStmt 
(Scope->getConditionVariableDeclStmt())`, just adding the nullptr handling in 
`CheckDeclStmt`.




================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:364
+  const auto *ParentNode = Parents.begin();
+  if (const auto *EnclosingCS = ParentNode->get<CompoundStmt>()) {
+    if (const auto *Result = CheckCompoundStmt(EnclosingCS))
----------------
I understand all cases of these if branches at the moment, but I think we'd 
better to add some comments, or examples here -- help us understand this code 
in case that we forget the context in the future :)


================
Comment at: clang-tools-extra/clangd/refactor/Rename.cpp:382
+        if (Parameter->getName() == NewName)
+          return Parameter;
+  }
----------------
I think we need a `return null` here (or use if-else pattern), otherwise, the 
following if-stmt will be examined as well, which seems no necessary.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D95925

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

Reply via email to