forked from OSchip/llvm-project
e861bac059
their members, including member class template, member function templates, and member classes and functions of member templates. To actually parse the nested-name-specifiers that qualify the name of an out-of-line definition of a member template, e.g., template<typename X> template<typename Y> X Outer<X>::Inner1<Y>::foo(Y) { return X(); } we need to look for the template names (e.g., "Inner1") as a member of the current instantiation (Outer<X>), even before we have entered the scope of the current instantiation. Since we can't do this in general (i.e., we should not be looking into all dependent nested-name-specifiers as if they were the current instantiation), we rely on the parser to tell us when it is parsing a declaration specifier sequence, and, therefore, when we should consider the current scope specifier to be a current instantiation. Printing of complicated, dependent nested-name-specifiers may be somewhat broken by this commit; I'll add tests for this issue and fix the problem (if it still exists) in a subsequent commit. llvm-svn: 80044 |
||
---|---|---|
.. | ||
APValue.cpp | ||
ASTConsumer.cpp | ||
ASTContext.cpp | ||
CMakeLists.txt | ||
Decl.cpp | ||
DeclBase.cpp | ||
DeclCXX.cpp | ||
DeclGroup.cpp | ||
DeclObjC.cpp | ||
DeclPrinter.cpp | ||
DeclTemplate.cpp | ||
DeclarationName.cpp | ||
Expr.cpp | ||
ExprCXX.cpp | ||
ExprConstant.cpp | ||
InheritViz.cpp | ||
Makefile | ||
NestedNameSpecifier.cpp | ||
ParentMap.cpp | ||
RecordLayoutBuilder.cpp | ||
RecordLayoutBuilder.h | ||
Stmt.cpp | ||
StmtDumper.cpp | ||
StmtIterator.cpp | ||
StmtPrinter.cpp | ||
StmtProfile.cpp | ||
StmtViz.cpp | ||
TemplateName.cpp | ||
Type.cpp | ||
TypeLoc.cpp |