forked from OSchip/llvm-project
d1446017f3
C++ unqualified name lookup searches template parameter scopes immediately after finishing searching the entity the parameters belong to. (Eg, for a class template, you search the template parameter scope after looking in that class template and its base classes and before looking in the scope containing the class template.) This is complicated by the fact that scope lookup within a template parameter scope looks in a different sequence of places prior to reaching the end of the declarator-id in the template declaration. We used to approximate the proper lookup rule with a hack in the scope / decl context walk inside name lookup. Now we instead compute the lookup parent for each template parameter scope. In order to get this right, we now make sure to enter a distinct Scope for each template parameter scope, and make sure to re-enter the enclosing class scopes properly when handling delay-parsed regions within a class. |
||
---|---|---|
.. | ||
basic | ||
class | ||
class.access | ||
class.derived | ||
conv | ||
cpp | ||
dcl | ||
dcl.dcl | ||
dcl.decl | ||
drs | ||
except | ||
expr | ||
lex | ||
module | ||
modules-ts | ||
over | ||
special | ||
stmt.stmt | ||
temp |