llvm-project/clang/include/clang
Douglas Gregor e362cea568 Implement the semantics of the injected-class-name within a class
template. The injected-class-name is either a type or a template,
depending on whether a '<' follows it. As a type, the
injected-class-name's template argument list contains its template
parameters in declaration order.

As part of this, add logic for canonicalizing declarations, and be
sure to canonicalize declarations used in template names and template
arguments. 

A TagType is dependent if the declaration it references is dependent.

I'm not happy about the rather complicated protocol needed to use
ASTContext::getTemplateSpecializationType.

llvm-svn: 71408
2009-05-10 22:57:19 +00:00
..
AST Implement the semantics of the injected-class-name within a class 2009-05-10 22:57:19 +00:00
Analysis Rename: 2009-05-09 04:08:27 +00:00
Basic We want to diagnose sending message to a forward class 2009-05-08 23:45:49 +00:00
CodeGen most of this is plumbing to get CompileOptions down into 2009-03-26 05:00:52 +00:00
Driver More x86 target feature support. 2009-05-06 21:07:50 +00:00
Frontend Implement C++0x nullptr. 2009-05-10 18:38:11 +00:00
Lex PR4063, with feeling: Chain PP callbacks by default. 2009-05-03 10:04:17 +00:00
Parse Implement C++0x nullptr. 2009-05-10 18:38:11 +00:00
Rewrite Change Lexer::MeasureTokenLength to take a LangOptions reference. 2009-04-14 23:22:57 +00:00
Sema PCH support for the global method pool (= instance and factory method 2009-04-24 21:10:55 +00:00
CMakeLists.txt Build system changes to use TableGen to generate the various 2009-03-16 23:06:59 +00:00
Makefile Build system changes to use TableGen to generate the various 2009-03-16 23:06:59 +00:00