sdkrystian 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. 

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