aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2014-02-12 15:28:36 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-18 10:01:52 +0100
commitf97f339f0bebceb00c01cc92acdbe045506c81c8 (patch)
tree47eed75f6877dc6d890c90ed2b842ad2b038a3ad
parent3c0bf1c0a8fe80f75f9e9194637c86726d156c82 (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.cpp12
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) {