ilya-biryukov added a comment.

Mostly NITs from my side, the change LG, thanks!



================
Comment at: clang-tools-extra/clangd/FindTarget.cpp:422
+      // "using namespace" declaration doesn't have a name.
+      Refs.push_back({D->getQualifierLoc(),
+                      D->getIdentLocation(),
----------------
Same comment as below: could you say `ReferenceLoc` explicitly here and in 
other places? 
Plain initializer lists are somewhat hard to parse


================
Comment at: clang-tools-extra/clangd/FindTarget.cpp:436
+      // For namespace alias, "namespace Foo = Target;", we add two references.
+      VisitNamedDecl(D); // add a declaration reference for Foo.
+      // Add a non-declaration reference for Target.
----------------
NIT: maybe put this comment on a previous line?
Should read more naturally.


================
Comment at: clang-tools-extra/clangd/FindTarget.cpp:658
+    } else if (auto *E = N.get<Expr>()) {
+      if (auto Ref = refInExpr(E))
+        return {*Ref};
----------------
I'd probably suggest to return `SmallVector<ReferenceLoc, 2>` from all 
functions, so that they compose better in this situation.

Although `Optional<ReferenceLoc>` captures the semantics of some of those 
better, I don't think it's particularly useful at this point.
And having to deconstruct all optionals here leads to a lot of clunky code, 
it'd be much better if we could keep the structure the same as it's used to be.


================
Comment at: clang-tools-extra/clangd/FindTarget.cpp:661
+    } else if (auto *NNSL = N.get<NestedNameSpecifierLoc>()) {
+      return {{NNSL->getPrefix(), NNSL->getLocalBeginLoc(), false,
+               explicitReferenceTargets(
----------------
Could we have `{ReferenceLoc{` instead of `{{`?
Plain initializer lists are hard to comprehend, especially when they're nested.


================
Comment at: clang-tools-extra/clangd/FindTarget.cpp:667
+        return {*Ref};
+      // return refInTypeLoc(*TL);
+    } else if (const CXXCtorInitializer *CCI = N.get<CXXCtorInitializer>()) {
----------------
Remove this comment? Seems to be a leftover from experiments


================
Comment at: clang-tools-extra/clangd/FindTarget.cpp:670
       if (CCI->isBaseInitializer())
-        return refInTypeLoc(CCI->getBaseClassLoc());
+        if (auto Ref = refInTypeLoc(CCI->getBaseClassLoc()))
+          return {*Ref};
----------------
NIT: add braces around an inner multi-line if?


================
Comment at: clang-tools-extra/clangd/unittests/XRefsTests.cpp:2280
     }
-    EXPECT_THAT(Names, UnorderedElementsAreArray(C.ExpectedDecls));
+    EXPECT_THAT(Names, UnorderedElementsAreArray(C.ExpectedDecls))
+        << File.code();
----------------
This looks unrelated. Maybe revert and land separately?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D68977



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

Reply via email to