summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-04-12 09:26:47 +0200
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-04-12 12:59:02 +0200
commit4d457401672c4ac7e9c752be357339729441a79d (patch)
treeb38302706c01a1544d8ec8d13ec2a42239513b2d /src/shared/cplusplus/Parser.cpp
parentbf518ba841a9be5fff069a022ddc6473793c620b (diff)
downloadqt-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.cpp21
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;