summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-03-03 16:45:18 +0100
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-03-03 16:46:14 +0100
commitcefdb3da30e3d3994fbd7ba3410ee8616db282d3 (patch)
tree926abc04384b6a1cb5f1dc02db9738c72f157ce1 /src/shared/cplusplus/Parser.cpp
parentd2bb23e62f1609a453f8cc8405e8029fc56e67c6 (diff)
downloadqt-creator-cefdb3da30e3d3994fbd7ba3410ee8616db282d3.tar.gz
Fixed parsing of properties whose name is a C++ keyword.
Reviewed-by: Roberto Raggi
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r--src/shared/cplusplus/Parser.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index a7a70a4534..d77d2b3314 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -1792,8 +1792,15 @@ bool Parser::parseQtPropertyDeclaration(DeclarationAST *&node)
if (LA() == T_LPAREN) {
ast->lparen_token = consumeToken();
parseTypeId(ast->type_id);
+
SimpleNameAST *property_name = new (_pool) SimpleNameAST;
- match(T_IDENTIFIER, &property_name->identifier_token);
+ // special case: keywords are allowed for property names!
+ if (tok().isKeyword()) {
+ property_name->identifier_token = consumeToken();
+ } else {
+ match(T_IDENTIFIER, &property_name->identifier_token);
+ }
+
ast->property_name = property_name;
QtPropertyDeclarationItemListAST **iter = &ast->property_declaration_items;
while (true) {