diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-04-12 09:26:47 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-04-12 12:59:02 +0200 |
commit | 4d457401672c4ac7e9c752be357339729441a79d (patch) | |
tree | b38302706c01a1544d8ec8d13ec2a42239513b2d /src/shared/cplusplus/Parser.cpp | |
parent | bf518ba841a9be5fff069a022ddc6473793c620b (diff) | |
download | qt-creator-4d457401672c4ac7e9c752be357339729441a79d.tar.gz |
Fixed parsing of anonymous template parameters.
For example,
template <template <typename> class X> struct foo {};
Reviewed-by: erikv
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r-- | src/shared/cplusplus/Parser.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index 11bef468c9..d8281ec984 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -1577,13 +1577,22 @@ bool Parser::parseTemplateTypeParameter(DeclarationAST *&node) bool Parser::lookAtTypeParameter() const { - if ((LA() == T_CLASS || LA() == T_TYPENAME) && LA(2) == T_IDENTIFIER) { - switch (LA(3)) { - case T_EQUAL: - case T_COMMA: - case T_GREATER: - return true; + if (LA() == T_CLASS || LA() == T_TYPENAME) { + if (LA(2) == T_IDENTIFIER) { + switch (LA(3)) { + case T_EQUAL: + case T_COMMA: + case T_GREATER: + return true; + + default: + return false; + } } + + // recognized an anonymous template type parameter. e.g + // template <typename> + return true; } return false; |