llvm-project/clang/lib/Parse
Douglas Gregor e93e46c690 Implement support for out-of-line definitions of the class members of class
templates, e.g.,

  template<typename T>
  struct Outer {
    struct Inner;
  };

  template<typename T>
  struct Outer<T>::Inner {
    // ...
  };

Implementing this feature required some extensions to ActOnTag, which
now takes a set of template parameter lists, and is the precursor to
removing the ActOnClassTemplate function from the parser Action
interface. The reason for this approach is simple: the parser cannot
tell the difference between a class template definition and the
definition of a member of a class template; both have template
parameter lists, and semantic analysis determines what that template
parameter list means.

There is still some cleanup to do with ActOnTag and
ActOnClassTemplate. This commit provides the basic functionality we
need, however.

llvm-svn: 76820
2009-07-22 23:48:44 +00:00
..
AttributeList.cpp OpenCL 1.0 support: attributes 2009-06-26 06:32:41 +00:00
CMakeLists.txt Reorder files. 2009-07-21 21:03:50 +00:00
DeclSpec.cpp Basic support for C++0x unicode types. Support for literals will follow in an incremental patch 2009-07-14 06:30:34 +00:00
ExtensionRAIIObject.h Rejigger how -pedantic and -pedantic-errors work and their interaction 2009-04-15 07:01:18 +00:00
Makefile Build system changes to use TableGen to generate the various 2009-03-16 23:06:59 +00:00
MinimalAction.cpp Make it possible for using decls to point to operators. Fixes PR4441. 2009-06-27 00:27:47 +00:00
ParseCXXInlineMethods.cpp Fix the parsing of default arguments for inline member function 2009-07-22 21:45:50 +00:00
ParseDecl.cpp Issue a more descriptive diagnostics when mis-declaring 2009-07-20 17:43:15 +00:00
ParseDeclCXX.cpp Implement support for out-of-line definitions of the class members of class 2009-07-22 23:48:44 +00:00
ParseExpr.cpp Basic support for C++0x unicode types. Support for literals will follow in an incremental patch 2009-07-14 06:30:34 +00:00
ParseExprCXX.cpp Basic support for C++0x unicode types. Support for literals will follow in an incremental patch 2009-07-14 06:30:34 +00:00
ParseInit.cpp Merge the ASTVector and ASTOwningVector templates, since they offered 2009-05-21 16:25:11 +00:00
ParseObjc.cpp Fix a clang crash caused by incorrect user code. 2009-06-24 17:00:18 +00:00
ParsePragma.cpp Add parser support for #pragma weak. 2009-06-05 00:49:58 +00:00
ParsePragma.h Add parser support for #pragma weak. 2009-06-05 00:49:58 +00:00
ParseStmt.cpp change ParseStatementOrDeclaration to emit the 'missing ;' with 2009-06-14 00:23:56 +00:00
ParseTemplate.cpp Implement support for out-of-line definitions of the class members of class 2009-07-22 23:48:44 +00:00
ParseTentative.cpp Consider nested-names as part of the declarator when resolving an ambiguous statement. 2009-07-21 17:05:03 +00:00
Parser.cpp Patch to accomodate Doug's comment on default 2009-07-21 22:36:06 +00:00