diff options
author | Christian Kamm <[email protected]> | 2011-09-29 11:48:13 +0200 |
---|---|---|
committer | Christian Kamm <[email protected]> | 2011-10-12 08:49:30 +0200 |
commit | 038111c384e79d20faa33e52a9bbbc8999ad695b (patch) | |
tree | 0d0b680bf6bfabbcc8f4b16f9b8ed31dbe6d11db /src/libs/qmljs/qmljslink.cpp | |
parent | f3c78d352276f01035d79f0a97cfe88f43b30374 (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.cpp | 7 |
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, |