diff --git a/src/libs/cplusplus/CppBindings.cpp b/src/libs/cplusplus/CppBindings.cpp index 9d8531fd5158583c0c19ab98ce1842a1bec15757..722db83460d0464dc71cc613410ffd01842d57e4 100644 --- a/src/libs/cplusplus/CppBindings.cpp +++ b/src/libs/cplusplus/CppBindings.cpp @@ -567,3 +567,12 @@ bool Binder::visit(Block *) } // end of anonymous namespace +NamespaceBindingPtr CPlusPlus::bind(Document::Ptr doc, Snapshot snapshot) +{ + NamespaceBindingPtr global(new NamespaceBinding()); + + Binder bind(global.data()); + bind(doc, snapshot); + return global; +} + diff --git a/src/libs/cplusplus/CppBindings.h b/src/libs/cplusplus/CppBindings.h index 57c37f9192875c9df195dbd64ba3ae2b6b2f5702..24b308cee77718431282d893090e31fb868fd9c8 100644 --- a/src/libs/cplusplus/CppBindings.h +++ b/src/libs/cplusplus/CppBindings.h @@ -30,7 +30,7 @@ #ifndef CPPBINDINGS_H #define CPPBINDINGS_H -#include <CPlusPlusForwardDeclarations.h> +#include "CppDocument.h" #include <QtCore/QList> #include <QtCore/QSharedPointer> @@ -171,6 +171,8 @@ public: // attributes QList<ClassBinding *> baseClassBindings; }; +CPLUSPLUS_EXPORT NamespaceBindingPtr bind(Document::Ptr doc, Snapshot snapshot); + } // end of namespace CPlusPlus #endif // CPPBINDINGS_H diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 49592e287ef5f24d4f6752d33b3bf1806aed81f6..0451b930e50c220e45cfe6b19fbe9add19f0ca1d 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -28,6 +28,7 @@ **************************************************************************/ #include <cplusplus/pp.h> +#include <cplusplus/CppBindings.h> #include "cppmodelmanager.h" #include "cpptoolsconstants.h" @@ -331,6 +332,10 @@ public: doc->check(); if (_workingCopy.contains(doc->fileName())) { + // run the binding pass + NamespaceBindingPtr ns = bind(doc, _snapshot); + Q_UNUSED(ns); + // check for undefined symbols. CheckUndefinedBaseClasses checkUndefinedBaseClasses(doc->control());