From 88dc2d71fb7093713cdc6130102d856ef369ee4e Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Fri, 27 May 2011 11:47:12 +0200
Subject: [PATCH] QmlJS: Import 'as' has precedence over types imported without
 as.

Change-Id: Iece286c9d1725d2bb1e3eff57cd73af97dd8c748
Reviewed-on: http://codereview.qt.nokia.com/181
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
---
 src/libs/qmljs/qmljsinterpreter.cpp | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 0e439f46ad9..722838a0930 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -3104,7 +3104,20 @@ Imports::Imports(Engine *engine)
 
 void Imports::append(const Import &import)
 {
-    _imports.append(import);
+    // when doing lookup, imports with 'as' clause are looked at first
+    if (!import.info.id().isEmpty()) {
+        _imports.append(import);
+    } else {
+        // find first as-import and prepend
+        for (int i = 0; i < _imports.size(); ++i) {
+            if (!_imports.at(i).info.id().isEmpty()) {
+                _imports.insert(i, import);
+                return;
+            }
+        }
+        // not found, append
+        _imports.append(import);
+    }
 }
 
 ImportInfo Imports::info(const QString &name, const Context *context) const
-- 
GitLab