diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index 26f9a18696b2d96f558c0dca4676d6357e048f6a..40259589a27f4fdea02c2d073ac770e7d7dd4fe1 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -49,6 +49,7 @@ #include #include +#include #include #include #include @@ -81,6 +82,11 @@ public: _snapshot.insert(_doc); } + void setGlobalNamespaceBinding(NamespaceBindingPtr globalNamespaceBinding) + { + _globalNamespaceBinding = globalNamespaceBinding; + } + QList operator()(Symbol *symbol, Identifier *id, AST *ast) { _references.clear(); @@ -419,6 +425,7 @@ private: QByteArray _source; Document::Ptr _exprDoc; Semantic _sem; + NamespaceBindingPtr _globalNamespaceBinding; QList _postfixExpressionStack; QList _qualifiedNameStack; QList _references; @@ -456,6 +463,7 @@ QList 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 &future, tm.start(); Process process(doc, snapshot, &future); + process.setGlobalNamespaceBinding(bind(doc, snapshot)); TranslationUnit *unit = doc->translationUnit(); process(symbol, id, unit->ast());