summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-08-13 15:28:22 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-08-13 16:55:43 +0200
commit6659e3ecba7279f933280ea3f07fcc0730476b64 (patch)
tree1ce653215ff765bf180431647269979446964468
parentf79187ca9772b70a07694becabd936b0184337ed (diff)
downloadqt-creator-6659e3ecba7279f933280ea3f07fcc0730476b64.tar.gz
Use the new binder
-rw-r--r--src/libs/cplusplus/CppDocument.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp
index e86cb18b2e..f54420ee73 100644
--- a/src/libs/cplusplus/CppDocument.cpp
+++ b/src/libs/cplusplus/CppDocument.cpp
@@ -31,6 +31,7 @@
#include "FastPreprocessor.h"
#include "LookupContext.h"
#include "Overview.h"
+#include "Bind.h"
#include <Control.h>
#include <TranslationUnit.h>
@@ -545,21 +546,18 @@ void Document::check(CheckMode mode)
if (! isParsed())
parse();
- Semantic semantic(_translationUnit);
+ _globalNamespace = _control->newNamespace(0);
+ Bind semantic(_translationUnit);
if (mode == FastCheck)
semantic.setSkipFunctionBodies(true);
- _globalNamespace = _control->newNamespace(0);
- Scope *globals = _globalNamespace;
if (! _translationUnit->ast())
return; // nothing to do.
if (TranslationUnitAST *ast = _translationUnit->ast()->asTranslationUnit()) {
- for (DeclarationListAST *decl = ast->declaration_list; decl; decl = decl->next) {
- semantic.check(decl->value, globals);
- }
+ semantic(ast, _globalNamespace);
} else if (ExpressionAST *ast = _translationUnit->ast()->asExpression()) {
- semantic.check(ast, globals);
+ semantic(ast, _globalNamespace);
}
}