diff options
author | Roberto Raggi <[email protected]> | 2010-08-26 13:38:07 +0200 |
---|---|---|
committer | Roberto Raggi <[email protected]> | 2010-08-26 13:38:07 +0200 |
commit | c5d48034bb3615dd399929235344e00f70527168 (patch) | |
tree | 3c8e7a8166c419bcef52de8013e4fc077c4b12ae /src | |
parent | 5f13608c61e0d4f3e38b15a95c1b1e0480062de4 (diff) |
Compare the scope pointers for local scopes.
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/cplusplus/FindUsages.cpp | 12 | ||||
-rw-r--r-- | src/libs/cplusplus/FindUsages.h | 1 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp index 9723dde5161..905d9be4fc7 100644 --- a/src/libs/cplusplus/FindUsages.cpp +++ b/src/libs/cplusplus/FindUsages.cpp @@ -203,6 +203,16 @@ bool FindUsages::compareName(const Name *name, const Name *other) return false; } +bool FindUsages::isLocalScope(Scope *scope) +{ + if (scope) { + if (scope->isBlock() || scope->isTemplate() || scope->isFunction()) + return true; + } + + return false; +} + bool FindUsages::checkCandidates(const QList<LookupItem> &candidates) const { for (int i = candidates.size() - 1; i != -1; --i) { @@ -214,7 +224,7 @@ bool FindUsages::checkCandidates(const QList<LookupItem> &candidates) const return false; } - if (_declSymbol->scope() && (_declSymbol->scope()->isFunction() || _declSymbol->scope()->isBlock())) { + if (isLocalScope(_declSymbol->scope()) || isLocalScope(s->scope())) { if (s->scope() != _declSymbol->scope()) return false; } diff --git a/src/libs/cplusplus/FindUsages.h b/src/libs/cplusplus/FindUsages.h index d25a9f03351..00c2baa8df1 100644 --- a/src/libs/cplusplus/FindUsages.h +++ b/src/libs/cplusplus/FindUsages.h @@ -83,6 +83,7 @@ protected: static bool compareFullyQualifiedName(const QList<const Name *> &path, const QList<const Name *> &other); static bool compareName(const Name *name, const Name *other); + static bool isLocalScope(Scope *scope); void statement(StatementAST *ast); void expression(ExpressionAST *ast); |