From b1522ba5c8e79bc9c160ad37e461daaf415f6344 Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Tue, 23 Feb 2010 12:34:52 +0100
Subject: [PATCH] Fix semantic checks not being applied to the Qml root object.

By always setting the scope object, even if it is identical to the root
object.

Done-with: Erik Verbruggen
---
 src/libs/qmljs/qmljsinterpreter.cpp  | 2 +-
 src/libs/qmljs/qmljsscopebuilder.cpp | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 54f68232424..9a287b44e95 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -771,7 +771,7 @@ void ScopeChain::update()
     foreach (QmlComponentChain *parent, qmlComponentScope.instantiatingComponents)
         parent->add(&_all);
 
-    if (qmlComponentScope.rootObject)
+    if (qmlComponentScope.rootObject && ! qmlScopeObjects.contains(qmlComponentScope.rootObject))
         _all += qmlComponentScope.rootObject;
     _all += qmlScopeObjects;
     _all += qmlComponentScope.functionScopes;
diff --git a/src/libs/qmljs/qmljsscopebuilder.cpp b/src/libs/qmljs/qmljsscopebuilder.cpp
index 4f3f6fa1233..18c8dcf1b8c 100644
--- a/src/libs/qmljs/qmljsscopebuilder.cpp
+++ b/src/libs/qmljs/qmljsscopebuilder.cpp
@@ -68,8 +68,7 @@ void ScopeBuilder::setQmlScopeObject(Node *node)
 
     const ObjectValue *scopeObject = _doc->bind()->findQmlObject(node);
     if (scopeObject) {
-        if (scopeObject != scopeChain.qmlComponentScope.rootObject)
-            scopeChain.qmlScopeObjects += scopeObject;
+        scopeChain.qmlScopeObjects += scopeObject;
     }
 
 #ifndef NO_DECLARATIVE_BACKEND
-- 
GitLab