diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-01-27 16:55:49 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-29 10:08:50 +0100 |
commit | 3d3429f55bca1b09c1d2184ef719abae0e762a09 (patch) | |
tree | fbf79751ef8c18bfa594667c9c0d3c62d986e06b /src/qml/qml | |
parent | 7cfd7ab2b1244681e384ec4640ee6e528881f4af (diff) |
[new compiler] Avoid uncreatable type errors for types that aren't created
QtQuick.Keys for example is not creatable, but it's also never created but
only used as attached properties. Therefore types used as attached properties
create the needCreation = false flag in the referenced types.
Change-Id: I6ca3a3ff677858bf3c55d3e08a0f0fc8ee9160fe
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml')
-rw-r--r-- | src/qml/qml/qqmltypeloader.cpp | 10 | ||||
-rw-r--r-- | src/qml/qml/qqmltypeloader_p.h | 3 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index f734b77eec..7c32d4f19c 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -2453,8 +2453,8 @@ void QQmlTypeData::resolveTypes() error.setDescription(QQmlTypeLoader::tr("%1 %2").arg(name).arg(error.description())); } - error.setLine(unresolvedRef->line); - error.setColumn(unresolvedRef->column); + error.setLine(unresolvedRef->location.line); + error.setColumn(unresolvedRef->location.column); errors.prepend(error); setError(errors); @@ -2468,8 +2468,10 @@ void QQmlTypeData::resolveTypes() ref.majorVersion = majorVersion; ref.minorVersion = minorVersion; - ref.location.line = unresolvedRef->line; - ref.location.column = unresolvedRef->column; + ref.location.line = unresolvedRef->location.line; + ref.location.column = unresolvedRef->location.column; + + ref.needsCreation = unresolvedRef->needsCreation; m_resolvedTypes.insert(unresolvedRef.key(), ref); } diff --git a/src/qml/qml/qqmltypeloader_p.h b/src/qml/qml/qqmltypeloader_p.h index 976f5a5ffb..02797220c5 100644 --- a/src/qml/qml/qqmltypeloader_p.h +++ b/src/qml/qml/qqmltypeloader_p.h @@ -396,7 +396,7 @@ class Q_AUTOTEST_EXPORT QQmlTypeData : public QQmlTypeLoader::Blob public: struct TypeReference { - TypeReference() : type(0), majorVersion(0), minorVersion(0), typeData(0) {} + TypeReference() : type(0), majorVersion(0), minorVersion(0), typeData(0), needsCreation(true) {} QQmlScript::Location location; QQmlType *type; @@ -404,6 +404,7 @@ public: int minorVersion; QQmlTypeData *typeData; QString prefix; // used by CompositeSingleton types + bool needsCreation; }; struct ScriptReference |