summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljslink.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/qmljs/qmljslink.cpp')
-rw-r--r--src/libs/qmljs/qmljslink.cpp24
1 files changed, 11 insertions, 13 deletions
diff --git a/src/libs/qmljs/qmljslink.cpp b/src/libs/qmljs/qmljslink.cpp
index 8c2cda4568..1ff75045e0 100644
--- a/src/libs/qmljs/qmljslink.cpp
+++ b/src/libs/qmljs/qmljslink.cpp
@@ -233,15 +233,13 @@ Context::ImportsPerDocument LinkPrivate::linkImports()
void LinkPrivate::populateImportedTypes(Imports *imports, Document::Ptr doc)
{
- if (! doc->qmlProgram())
- return;
-
// implicit imports: the <default> package is always available
loadImplicitDefaultImports(imports);
// implicit imports:
// qml files in the same directory are available without explicit imports
- loadImplicitDirectoryImports(imports, doc);
+ if (doc->isQmlDocument())
+ loadImplicitDirectoryImports(imports, doc);
// explicit imports, whether directories, files or libraries
foreach (const ImportInfo &info, doc->bind()->imports()) {
@@ -261,8 +259,10 @@ void LinkPrivate::populateImportedTypes(Imports *imports, Document::Ptr doc)
import = importNonFile(doc, info);
break;
case ImportInfo::UnknownFileImport:
- error(doc, info.ast()->fileNameToken,
- Link::tr("file or directory not found"));
+ if (info.ast()) {
+ error(doc, info.ast()->fileNameToken,
+ Link::tr("file or directory not found"));
+ }
break;
default:
break;
@@ -400,9 +400,8 @@ bool LinkPrivate::importLibrary(Document::Ptr doc,
import->libraryPath = libraryPath;
const ComponentVersion version = importInfo.version();
- const UiImport *ast = importInfo.ast();
SourceLocation errorLoc;
- if (ast)
+ if (const UiImport *ast = importInfo.ast())
errorLoc = locationFromRange(ast->firstSourceLocation(), ast->lastSourceLocation());
if (!libraryInfo.plugins().isEmpty()) {
@@ -505,8 +504,7 @@ void LinkPrivate::loadQmldirComponents(ObjectValue *import, ComponentVersion ver
void LinkPrivate::loadImplicitDirectoryImports(Imports *imports, Document::Ptr doc)
{
- ImportInfo implcitDirectoryImportInfo(
- ImportInfo::ImplicitDirectoryImport, doc->path());
+ ImportInfo implcitDirectoryImportInfo = ImportInfo::implicitDirectoryImport(doc->path());
Import directoryImport = importCache.value(ImportCacheKey(implcitDirectoryImportInfo));
if (!directoryImport.object) {
@@ -523,15 +521,15 @@ void LinkPrivate::loadImplicitDefaultImports(Imports *imports)
{
const QString defaultPackage = CppQmlTypes::defaultPackage;
if (valueOwner->cppQmlTypes().hasModule(defaultPackage)) {
- ImportInfo info(ImportInfo::LibraryImport, defaultPackage);
+ const ComponentVersion maxVersion(ComponentVersion::MaxVersion, ComponentVersion::MaxVersion);
+ const ImportInfo info = ImportInfo::moduleImport(defaultPackage, maxVersion, QString());
Import import = importCache.value(ImportCacheKey(info));
if (!import.object) {
import.info = info;
import.object = new ObjectValue(valueOwner);
foreach (const QmlObjectValue *object,
valueOwner->cppQmlTypes().createObjectsForImport(
- defaultPackage,
- ComponentVersion(ComponentVersion::MaxVersion, ComponentVersion::MaxVersion))) {
+ defaultPackage, maxVersion)) {
import.object->setMember(object->className(), object);
}
importCache.insert(ImportCacheKey(info), import);