aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/qmljs/qmljslink.cpp
diff options
context:
space:
mode:
authorChristian Kamm <[email protected]>2011-09-29 11:48:13 +0200
committerChristian Kamm <[email protected]>2011-10-12 08:49:30 +0200
commit038111c384e79d20faa33e52a9bbbc8999ad695b (patch)
tree0d0b680bf6bfabbcc8f4b16f9b8ed31dbe6d11db /src/libs/qmljs/qmljslink.cpp
parentf3c78d352276f01035d79f0a97cfe88f43b30374 (diff)
QmlJS checks: Disable some checks when imports failed.
The important error in this case is on the import. Change-Id: I3a547ca7ac44a89aba6819ea80ec52185071408a Reviewed-on: http://codereview.qt-project.org/5879 Reviewed-by: Christian Kamm <[email protected]> Sanity-Review: Christian Kamm <[email protected]>
Diffstat (limited to 'src/libs/qmljs/qmljslink.cpp')
-rw-r--r--src/libs/qmljs/qmljslink.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libs/qmljs/qmljslink.cpp b/src/libs/qmljs/qmljslink.cpp
index 147b2643732..d3e553bbc73 100644
--- a/src/libs/qmljs/qmljslink.cpp
+++ b/src/libs/qmljs/qmljslink.cpp
@@ -257,6 +257,7 @@ void LinkPrivate::populateImportedTypes(Imports *imports, Document::Ptr doc)
import = importNonFile(doc, info);
break;
case ImportInfo::UnknownFileImport:
+ imports->setImportFailed();
if (info.ast()) {
error(doc, info.ast()->fileNameToken,
Link::tr("file or directory not found"));
@@ -288,6 +289,7 @@ Import LinkPrivate::importFileOrDirectory(Document::Ptr doc, const ImportInfo &i
Import import;
import.info = importInfo;
import.object = 0;
+ import.valid = true;
const QString &path = importInfo.path();
@@ -323,6 +325,7 @@ Import LinkPrivate::importNonFile(Document::Ptr doc, const ImportInfo &importInf
Import import;
import.info = importInfo;
import.object = new ObjectValue(valueOwner);
+ import.valid = true;
const QString packageName = importInfo.name();
const ComponentVersion version = importInfo.version();
@@ -370,6 +373,7 @@ Import LinkPrivate::importNonFile(Document::Ptr doc, const ImportInfo &importInf
}
if (!importFound && importInfo.ast()) {
+ import.valid = false;
error(doc, locationFromRange(importInfo.ast()->firstSourceLocation(),
importInfo.ast()->lastSourceLocation()),
Link::tr(
@@ -422,6 +426,7 @@ bool LinkPrivate::importLibrary(Document::Ptr doc,
if (errorLoc.isValid()) {
warning(doc, errorLoc,
Link::tr("QML module contains C++ plugins, currently reading type information..."));
+ import->valid = false;
}
} else if (libraryInfo.pluginTypeInfoStatus() == LibraryInfo::DumpError
|| libraryInfo.pluginTypeInfoStatus() == LibraryInfo::TypeInfoFileError) {
@@ -429,6 +434,7 @@ bool LinkPrivate::importLibrary(Document::Ptr doc,
QString packageName = importInfo.name();
if (errorLoc.isValid() && (packageName.isEmpty() || !valueOwner->cppQmlTypes().hasModule(packageName))) {
error(doc, errorLoc, libraryInfo.pluginTypeInfoError());
+ import->valid = false;
}
} else {
const QString packageName = importInfo.name();
@@ -513,6 +519,7 @@ void LinkPrivate::loadImplicitDefaultImports(Imports *imports)
const ImportInfo info = ImportInfo::moduleImport(defaultPackage, maxVersion, QString());
Import import = importCache.value(ImportCacheKey(info));
if (!import.object) {
+ import.valid = true;
import.info = info;
import.object = new ObjectValue(valueOwner);
foreach (const QmlObjectValue *object,