diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-01-29 08:55:02 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-03 14:37:49 +0100 |
commit | 47e21b3855c0a57b0cc9b920df8387deb049e1b4 (patch) | |
tree | 4c0e4d8bfed9b00a2b225fba1b25318378e8e3c5 /src/qml/compiler/qqmlcodegenerator.cpp | |
parent | 76f27aeff6362670e2b58fdd16b835d854e31782 (diff) |
[new compiler] Fix location of errors in group property objects
Change-Id: I63aa43ec7d9e90c1593c54dfc44890330c8669ae
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/compiler/qqmlcodegenerator.cpp')
-rw-r--r-- | src/qml/compiler/qqmlcodegenerator.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/qml/compiler/qqmlcodegenerator.cpp b/src/qml/compiler/qqmlcodegenerator.cpp index 6776c1e91b..ab9958335e 100644 --- a/src/qml/compiler/qqmlcodegenerator.cpp +++ b/src/qml/compiler/qqmlcodegenerator.cpp @@ -222,7 +222,7 @@ bool QQmlCodeGenerator::visit(AST::UiObjectDefinition *node) int idx = defineQMLObject(node); appendBinding(node->qualifiedTypeNameId->identifierToken, emptyStringIndex, idx); } else { - int idx = defineQMLObject(/*qualfied type name id*/0, node->initializer); + int idx = defineQMLObject(/*qualfied type name id*/0, node->qualifiedTypeNameId->firstSourceLocation(), node->initializer); appendBinding(node->qualifiedTypeNameId, idx); } return false; @@ -230,7 +230,7 @@ bool QQmlCodeGenerator::visit(AST::UiObjectDefinition *node) bool QQmlCodeGenerator::visit(AST::UiObjectBinding *node) { - int idx = defineQMLObject(node->qualifiedTypeNameId, node->initializer); + int idx = defineQMLObject(node->qualifiedTypeNameId, node->qualifiedTypeNameId->firstSourceLocation(), node->initializer); appendBinding(node->qualifiedId, idx, node->hasOnToken); return false; } @@ -315,17 +315,14 @@ bool QQmlCodeGenerator::sanityCheckFunctionNames() return true; } -int QQmlCodeGenerator::defineQMLObject(AST::UiQualifiedId *qualifiedTypeNameId, AST::UiObjectInitializer *initializer) +int QQmlCodeGenerator::defineQMLObject(AST::UiQualifiedId *qualifiedTypeNameId, const AST::SourceLocation &location, AST::UiObjectInitializer *initializer) { QmlObject *obj = New<QmlObject>(); _objects.append(obj); const int objectIndex = _objects.size() - 1; qSwap(_object, obj); - AST::SourceLocation loc; - if (qualifiedTypeNameId) - loc = qualifiedTypeNameId->firstSourceLocation(); - _object->init(pool, registerString(asString(qualifiedTypeNameId)), emptyStringIndex, loc); + _object->init(pool, registerString(asString(qualifiedTypeNameId)), emptyStringIndex, location); QSet<QString> propertyNames; QSet<QString> signalNames; @@ -1006,7 +1003,7 @@ bool QQmlCodeGenerator::resolveQualifiedId(AST::UiQualifiedId **nameToResolve, Q else binding->type = QV4::CompiledData::Binding::Type_GroupProperty; - int objIndex = defineQMLObject(0, 0); + int objIndex = defineQMLObject(0, AST::SourceLocation(), 0); binding->value.objectIndex = objIndex; (*object)->bindings->append(binding); |