summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-02-23 17:43:40 +0100
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-02-23 17:43:52 +0100
commite609e9a70176d5cad7c823f60ab2a7f736d32e41 (patch)
treedeee593ad3061063aca36eed984f4bc34f7a3cd2 /src/libs/cplusplus
parent69dfa3566ceadc08d5f9be4dceae65b5b6ceafee (diff)
downloadqt-creator-e609e9a70176d5cad7c823f60ab2a7f736d32e41.tar.gz
Simplified ObjC selectors in the AST.
Diffstat (limited to 'src/libs/cplusplus')
-rw-r--r--src/libs/cplusplus/FindUsages.cpp19
-rw-r--r--src/libs/cplusplus/FindUsages.h3
-rw-r--r--src/libs/cplusplus/ResolveExpression.cpp4
3 files changed, 11 insertions, 15 deletions
diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp
index a8d0e456b6..83a6b57135 100644
--- a/src/libs/cplusplus/FindUsages.cpp
+++ b/src/libs/cplusplus/FindUsages.cpp
@@ -463,29 +463,26 @@ bool FindUsages::visit(SimpleDeclarationAST *ast)
return false;
}
-bool FindUsages::visit(ObjCSelectorWithoutArgumentsAST *ast)
+bool FindUsages::visit(ObjCSelectorAST *ast)
{
- const Identifier *id = identifier(ast->name_token);
+#if 1
+ const Identifier *id = ast->name->identifier();
if (id == _id) {
LookupContext context = currentContext(ast);
- const QList<Symbol *> candidates = context.resolve(ast->selector_name);
- reportResult(ast->name_token, candidates);
+ const QList<Symbol *> candidates = context.resolve(ast->name);
+ reportResult(ast->firstToken(), candidates);
}
-
- return false;
-}
-
-bool FindUsages::visit(ObjCSelectorWithArgumentsAST *ast)
-{
+#else
for (ObjCSelectorArgumentListAST *iter = ast->selector_argument_list; iter;
iter = iter->next) {
const Identifier *id = identifier(iter->value->name_token);
if (id == _id) {
LookupContext context = currentContext(iter->value);
- const QList<Symbol *> candidates = context.resolve(ast->selector_name);
+ const QList<Symbol *> candidates = context.resolve(ast->name);
reportResult(iter->value->name_token, candidates);
}
}
+#endif
return false;
}
diff --git a/src/libs/cplusplus/FindUsages.h b/src/libs/cplusplus/FindUsages.h
index 313676fc90..ef964deb9e 100644
--- a/src/libs/cplusplus/FindUsages.h
+++ b/src/libs/cplusplus/FindUsages.h
@@ -99,8 +99,7 @@ protected:
virtual bool visit(ExpressionOrDeclarationStatementAST *ast);
virtual bool visit(FunctionDeclaratorAST *ast);
virtual bool visit(SimpleDeclarationAST *);
- virtual bool visit(ObjCSelectorWithoutArgumentsAST *ast);
- virtual bool visit(ObjCSelectorWithArgumentsAST *ast);
+ virtual bool visit(ObjCSelectorAST *ast);
private:
const Identifier *_id;
diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp
index 2425fef422..4102043e74 100644
--- a/src/libs/cplusplus/ResolveExpression.cpp
+++ b/src/libs/cplusplus/ResolveExpression.cpp
@@ -803,12 +803,12 @@ bool ResolveExpression::visit(ObjCMessageExpressionAST *ast)
}
}
- if (klassName&&ast->selector && ast->selector->selector_name) {
+ if (klassName&&ast->selector && ast->selector->name) {
ResolveObjCClass resolveObjCClass;
QList<Symbol *> resolvedSymbols = resolveObjCClass(klassName, result, _context);
foreach (Symbol *resolvedSymbol, resolvedSymbols)
if (ObjCClass *klass = resolvedSymbol->asObjCClass())
- _results.append(resolveMember(ast->selector->selector_name, klass));
+ _results.append(resolveMember(ast->selector->name, klass));
}
}