OSDN Git Service

QmlJS: Import 'as' has precedence over types imported without as.
authorChristian Kamm <christian.d.kamm@nokia.com>
Fri, 27 May 2011 09:47:12 +0000 (11:47 +0200)
committerFawzi Mohamed <fawzi.mohamed@nokia.com>
Mon, 30 May 2011 09:38:51 +0000 (11:38 +0200)
Change-Id: Iece286c9d1725d2bb1e3eff57cd73af97dd8c748
Reviewed-on: http://codereview.qt.nokia.com/181
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
src/libs/qmljs/qmljsinterpreter.cpp

index 0e439f4..722838a 100644 (file)
@@ -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