llvm-project/clang/lib/Parse
Douglas Gregor 9167f8bbd5 Introduce a new representation for template template
parameters. Rather than storing them as either declarations (for the
non-dependent case) or expressions (for the dependent case), we now
(always) store them as TemplateNames. 

The primary change here is to add a new kind of TemplateArgument,
which stores a TemplateName. However, making that change ripples to
every switch on a TemplateArgument's kind, also affecting
TemplateArgumentLocInfo/TemplateArgumentLoc, default template
arguments for template template parameters, type-checking of template
template arguments, etc.

This change is light on testing. It should fix several pre-existing
problems with template template parameters, such as:
  - the inability to use dependent template names as template template
  arguments
  - template template parameter default arguments cannot be
  instantiation

However, there are enough pieces missing that more implementation is
required before we can adequately test template template parameters. 

llvm-svn: 86777
2009-11-11 01:00:40 +00:00
..
AttributeList.cpp Add support for cdecl attribute. (As far as I know, it doesn't affect CodeGen 2009-11-09 18:38:53 +00:00
CMakeLists.txt Reorder files. 2009-07-21 21:03:50 +00:00
DeclSpec.cpp Improve parsing of template arguments to lay the foundation for 2009-11-10 19:49:08 +00:00
ExtensionRAIIObject.h Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
Makefile Installation of Clang libraries and headers, from Axel Naumann! 2009-10-08 22:15:31 +00:00
MinimalAction.cpp Switch parsing of using declarations over to ParseUnqualifiedId. 2009-11-04 16:30:06 +00:00
ParseCXXInlineMethods.cpp Alter Action's friend interface to prepare for templated friend declarations and 2009-09-11 21:02:39 +00:00
ParseDecl.cpp Improve parsing of template arguments to lay the foundation for 2009-11-10 19:49:08 +00:00
ParseDeclCXX.cpp Improve parsing of template arguments to lay the foundation for 2009-11-10 19:49:08 +00:00
ParseExpr.cpp Remove a bunch of #if 0'd code made irrelevant by the latest ParseUnqualifiedId changes 2009-11-03 20:53:48 +00:00
ParseExprCXX.cpp Improve parsing of template arguments to lay the foundation for 2009-11-10 19:49:08 +00:00
ParseInit.cpp PR5218: Replace IdentifierInfo::getName with StringRef version, now that clients 2009-10-18 21:17:35 +00:00
ParseObjc.cpp Add FIXIT hint for -Wsemicolon-before-method-body 2009-11-10 22:55:49 +00:00
ParsePragma.cpp Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
ParsePragma.h Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
ParseStmt.cpp Reorganize the parsing of decl groups / function definitions so that 2009-11-03 19:26:08 +00:00
ParseTemplate.cpp Introduce a new representation for template template 2009-11-11 01:00:40 +00:00
ParseTentative.cpp Parse C++0x constexpr. Test case follows when this does something useful. 2009-11-05 15:47:02 +00:00
Parser.cpp Improve parsing of template arguments to lay the foundation for 2009-11-10 19:49:08 +00:00