diff options
author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2009-08-10 12:44:52 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2009-08-10 12:44:52 +0200 |
commit | ffccb612af75d72ef851af54c3cd1d8523950443 (patch) | |
tree | b9a2f6debda85b3f91c6849c9e5f92692032e333 /src/shared/cplusplus/Parser.cpp | |
parent | 0ab8f1ed462d9202a3d925c52448b35490ac658c (diff) | |
download | qt-creator-ffccb612af75d72ef851af54c3cd1d8523950443.tar.gz |
Parsing fix for casts in ObjC message expressions.
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r-- | src/shared/cplusplus/Parser.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index 3ed4839928..654fa26c7c 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -3076,7 +3076,12 @@ bool Parser::parseObjCSelectorArg(ObjCSelectorArgumentAST *&selNode, ObjCMessage selNode->colon_token = consumeToken(); argNode = new (_pool) ObjCMessageArgumentAST; - parseAssignmentExpression(argNode->parameter_value_expression); + ExpressionAST *expr = argNode->parameter_value_expression; + unsigned expressionStart = cursor(); + if (parseAssignmentExpression(expr) && LA() == T_COLON && expr->asCastExpression()) { + rewind(expressionStart); + parseUnaryExpression(expr); + } return true; } |