ilya-biryukov added inline comments.

================
Comment at: clang-tools-extra/clangd/XRefs.cpp:628
+    auto QT = VD->getType();
+    while (!QT->getPointeeType().isNull())
+      QT = QT->getPointeeType();
----------------
We need a check for `!QT.isNull` here


================
Comment at: clang-tools-extra/clangd/unittests/XRefsTests.cpp:831
+         };
          return HI;
        }},
----------------
kadircet wrote:
> ilya-biryukov wrote:
> > Could you add another test with even weirder types where we fail to show 
> > the signature? To make sure we don't break when reaching the limitations of 
> > the chosen approach and document what those limitations are.
> > 
> > Something like:
> > ```
> > auto a = [](int a) { return 10; };
> > auto *b = &a;
> > auto *c = &b;
> > ```
> > 
> > We would fail to show the signature here, but it's totally ok to ignore it.
> added cases, and changed code(a lot simpler now) to generate signatures for 
> those cases as well.
Here's an example when the new approach falls short too:

```
auto a = [](int) { return 10; }
std::function<void(decltype(a) x)> b;
```

In general, are we ok with loosing all the information about the type that we 
drop?
One level of references and pointers seemed ok, dropping more is a bit more 
cheesy..

At the same time, either case is **so** rare that we probably don't care.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D62814



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

Reply via email to