diff options
author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-05-20 12:54:59 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-05-20 12:54:59 +0200 |
commit | 36a36799028609ed069f66d557e504f17d0b502a (patch) | |
tree | 89fe151e01598d52d489060abca1be93181dccee /src/shared/cplusplus | |
parent | 8d5dde66c0a1d9e46f68fddf96454ec4639c0407 (diff) | |
download | qt-creator-36a36799028609ed069f66d557e504f17d0b502a.tar.gz |
Fixed ObjC selector name creation.
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r-- | src/shared/cplusplus/CheckName.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/shared/cplusplus/CheckName.cpp b/src/shared/cplusplus/CheckName.cpp index 46afb78456..d98c9b9610 100644 --- a/src/shared/cplusplus/CheckName.cpp +++ b/src/shared/cplusplus/CheckName.cpp @@ -367,11 +367,15 @@ bool CheckName::visit(TemplateIdAST *ast) bool CheckName::visit(ObjCSelectorAST *ast) { std::vector<const Name *> names; + bool hasArgs = false; for (ObjCSelectorArgumentListAST *it = ast->selector_argument_list; it; it = it->next) { if (it->value->name_token) { const Identifier *id = control()->findOrInsertIdentifier(spell(it->value->name_token)); const NameId *nameId = control()->nameId(id); names.push_back(nameId); + + if (!hasArgs && it->value->colon_token) + hasArgs = true; } else { // we have an incomplete name due, probably due to error recovery. So, back out completely return false; @@ -379,7 +383,7 @@ bool CheckName::visit(ObjCSelectorAST *ast) } if (!names.empty()) { - _name = control()->selectorNameId(&names[0], names.size(), true); + _name = control()->selectorNameId(&names[0], names.size(), hasArgs); ast->name = _name; } |