summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2009-10-07 14:33:37 +0200
committercon <qtc-committer@nokia.com>2009-10-07 19:18:21 +0200
commit6b61561dfc763536f51c9d7afba43c20696b8a6a (patch)
treedcca2a6c1d467ce8071e39d56a09dd63ca9055a2
parentc33a5f38ae85484d1330a9057db58224e228babd (diff)
downloadqt-creator-6b61561dfc763536f51c9d7afba43c20696b8a6a.tar.gz
Run the binder before searching strong and weak references.
(cherry picked from commit afedec330a9be2378009c5497bbb8b88efd4255d)
-rw-r--r--src/plugins/cpptools/cppfindreferences.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp
index 26f9a18696..40259589a2 100644
--- a/src/plugins/cpptools/cppfindreferences.cpp
+++ b/src/plugins/cpptools/cppfindreferences.cpp
@@ -49,6 +49,7 @@
#include <Scope.h>
#include <cplusplus/CppDocument.h>
+#include <cplusplus/CppBindings.h>
#include <cplusplus/ExpressionUnderCursor.h>
#include <cplusplus/ResolveExpression.h>
#include <cplusplus/Overview.h>
@@ -81,6 +82,11 @@ public:
_snapshot.insert(_doc);
}
+ void setGlobalNamespaceBinding(NamespaceBindingPtr globalNamespaceBinding)
+ {
+ _globalNamespaceBinding = globalNamespaceBinding;
+ }
+
QList<int> operator()(Symbol *symbol, Identifier *id, AST *ast)
{
_references.clear();
@@ -419,6 +425,7 @@ private:
QByteArray _source;
Document::Ptr _exprDoc;
Semantic _sem;
+ NamespaceBindingPtr _globalNamespaceBinding;
QList<PostfixExpressionAST *> _postfixExpressionStack;
QList<QualifiedNameAST *> _qualifiedNameStack;
QList<int> _references;
@@ -456,6 +463,7 @@ QList<int> CppFindReferences::references(Symbol *symbol,
Q_ASSERT(translationUnit != 0);
Process process(doc, snapshot, /*future = */ 0);
+ process.setGlobalNamespaceBinding(bind(doc, snapshot));
references = process(symbol, id, translationUnit->ast());
return references;
@@ -542,6 +550,7 @@ static void find_helper(QFutureInterface<Utils::FileSearchResult> &future,
tm.start();
Process process(doc, snapshot, &future);
+ process.setGlobalNamespaceBinding(bind(doc, snapshot));
TranslationUnit *unit = doc->translationUnit();
process(symbol, id, unit->ast());