From 7b44f1749a11928346b07511ae7a1470bcb93673 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Wed, 3 Jun 2009 12:13:22 +0200 Subject: [PATCH] Run the binding pass --- src/libs/cplusplus/CppBindings.cpp | 9 +++++++++ src/libs/cplusplus/CppBindings.h | 4 +++- src/plugins/cpptools/cppmodelmanager.cpp | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/libs/cplusplus/CppBindings.cpp b/src/libs/cplusplus/CppBindings.cpp index 9d8531fd515..722db83460d 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 57c37f91928..24b308cee77 100644 --- a/src/libs/cplusplus/CppBindings.h +++ b/src/libs/cplusplus/CppBindings.h @@ -30,7 +30,7 @@ #ifndef CPPBINDINGS_H #define CPPBINDINGS_H -#include +#include "CppDocument.h" #include #include @@ -171,6 +171,8 @@ public: // attributes QList 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 49592e287ef..0451b930e50 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -28,6 +28,7 @@ **************************************************************************/ #include +#include #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());