nridge marked 2 inline comments as done.
nridge added inline comments.

================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:181
+      addToken(E->getMemberLoc(), E->getQualifier()
+                                      ? HighlightingKind::StaticField
+                                      : HighlightingKind::Field);
----------------
hokein wrote:
> ilya-biryukov wrote:
> > nridge wrote:
> > > hokein wrote:
> > > > This could be member functions, a case is like
> > > > 
> > > > ```
> > > > template<class T>
> > > > class Foo {
> > > > public:
> > > >   void foo() {
> > > >     this->foo();
> > > >   }
> > > > };
> > > > ```
> > > Thanks for the example.
> > > 
> > > Do you have a suggestion for how to discriminate this case? To me, it 
> > > would seem logical to do it based on syntax (highlight as a member 
> > > function if the expression forms the function name of a function call 
> > > expression). That would require navigating from the expression to its 
> > > parent node. Is there a way to do that?
> > There is no way to do this in C++.
> > Even if the name is followed by a pair of parenthese, this could either be 
> > a field with overloaded `operator()` (e.g. a `std::function<void()> field`) 
> > or a function with the same name.
> > 
> > It's much better to pick a separate highlighting kind for dependent names, 
> > this follows the actual semantics of C++.
> +1, I think we should just highlight them as a dependent type.
Of course, any attempt to disambiguate between a member function and a field 
would be heuristic only. I figured that would be better than nothing. But if 
you prefer using a separate highlighting for dependent names that resolve to a 
function or a variable, we could do that.

(Hokein, I assume you don't actually mean using the dependent *type* 
highlighting. Using a type highlighting for something we know is not a type, 
but rather a function or variable, would be rather confusing.)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D67901



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

Reply via email to