diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-02-12 15:28:36 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-18 10:01:52 +0100 |
commit | f97f339f0bebceb00c01cc92acdbe045506c81c8 (patch) | |
tree | 47eed75f6877dc6d890c90ed2b842ad2b038a3ad | |
parent | 3c0bf1c0a8fe80f75f9e9194637c86726d156c82 (diff) |
[new compiler] Report errors at type compile time for invalid group property access
Change-Id: I36a945dd4e4c0e699a2b34af066eae4d4c73a588
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
-rw-r--r-- | src/qml/compiler/qqmltypecompiler.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/qml/compiler/qqmltypecompiler.cpp b/src/qml/compiler/qqmltypecompiler.cpp index a6b07410ed..090b4c06cb 100644 --- a/src/qml/compiler/qqmltypecompiler.cpp +++ b/src/qml/compiler/qqmltypecompiler.cpp @@ -1531,6 +1531,18 @@ bool QQmlPropertyValidator::validateObject(int objectIndex, const QV4::CompiledD } else if (binding->type == QV4::CompiledData::Binding::Type_Object) { if (!validateObjectBinding(pd, name, binding)) return false; + } else if (binding->type == QV4::CompiledData::Binding::Type_GroupProperty) { + if (QQmlValueTypeFactory::isValueType(pd->propType)) { + if (!QQmlValueTypeFactory::valueType(pd->propType)) { + recordError(binding->location, tr("Invalid grouped property access")); + return false; + } + } else { + if (!enginePrivate->propertyCacheForType(pd->propType)) { + recordError(binding->location, tr("Invalid grouped property access")); + return false; + } + } } } else { if (customParser) { |