llvm-project/clang/lib/Parse
Douglas Gregor 120635bc9c Fix speculative parsing of dependent template names in
nested-name-specifiers so that they don't gobble the template name (or
operator-function-id) unless there is also a
template-argument-list. For example, given

  T::template apply

we would previously consume both "template" and "apply" as part of
parsing the nested-name-specifier, then error when we see that there
is no "<" starting a template argument list. Now, we parse such
constructs tentatively, and back off if the "<" is not present. This
allows us to parse dependent template names as one would use them for,
e.g., template template parameters:

  template<typename T, template<class> class X = T::template apply>
    struct MetaSomething;

Also, test default arguments for template template parameters.

llvm-svn: 86841
2009-11-11 16:39:34 +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 Fix speculative parsing of dependent template names in 2009-11-11 16:39:34 +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