erichkeane wrote:

> @erichkeane I think this is actually a bug in how I applied [[temp.dep.type] 
> p5](http://eel.is/c++draft/temp.dep.type#5):
> 
> > A qualified name is dependent if
> > 
> > * it is a _conversion-function-id_ whose _conversion-type-id_ is dependent, 
> > or
> > * its lookup context is dependent and is not the current instantiation, or
> > * its lookup context is the current instantiation and it is `operator=`, or
> > * its lookup context is the current instantiation and has at least one 
> > dependent base class, and qualified name lookup for the name finds nothing.
> 
> [[basic.lookup.qual.general] 
> p3](http://eel.is/c++draft/basic.lookup.qual.general#3) states:
> 
> > [...] Unless otherwise specified, a qualified name undergoes qualified name 
> > lookup in its lookup context from the point where it appears unless the 
> > lookup context either is dependent and is not the current instantiation or 
> > is not a class or class template. [...]
> 
> In the case of `this->operator=`, even though the _name_ is dependent, it 
> will still be looked up in the template definition context because the lookup 
> context is the current instantiation (as well as in the template 
> instantiation context). If a declaration of a template is found, then `<` 
> will be interpreted as the start of a template argument list.
> 
> ~I'll have a fix ready shortly.~ I have [a 
> fix](https://github.com/llvm/llvm-project/pull/90999) ready.

Ah! Good catch!  I'll review that now.  I'm REALLY glad we wont have to do some 
hackery to make it work.

https://github.com/llvm/llvm-project/pull/90152
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to