summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppfindreferences.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cppfindreferences.cpp')
-rw-r--r--src/plugins/cpptools/cppfindreferences.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp
index 03397a655a..a78087d6a3 100644
--- a/src/plugins/cpptools/cppfindreferences.cpp
+++ b/src/plugins/cpptools/cppfindreferences.cpp
@@ -168,10 +168,10 @@ protected:
bool isDeclSymbol(Symbol *symbol) const
{
- if (! symbol)
+ if (! symbol) {
return false;
- else if (symbol == _declSymbol) {
+ } else if (symbol == _declSymbol) {
return true;
} else if (symbol->line() == _declSymbol->line() && symbol->column() == _declSymbol->column()) {
@@ -349,6 +349,20 @@ protected:
return false;
}
+ virtual bool visit(EnumeratorAST *ast)
+ {
+ Identifier *id = identifier(ast->identifier_token);
+ if (id == _id) {
+ LookupContext context = currentContext(ast);
+ const QList<Symbol *> candidates = context.resolve(control()->nameId(id));
+ reportResult(ast->identifier_token, candidates);
+ }
+
+ accept(ast->expression);
+
+ return false;
+ }
+
virtual bool visit(SimpleNameAST *ast)
{
Identifier *id = identifier(ast->identifier_token);