diff --git a/src/libs/qmljs/qmljsbind.cpp b/src/libs/qmljs/qmljsbind.cpp index 1cdf8e2b5e0b083b9b7eaf24927ec2a401340258..bc56065463bcf61998853419680e17832189a4c1 100644 --- a/src/libs/qmljs/qmljsbind.cpp +++ b/src/libs/qmljs/qmljsbind.cpp @@ -241,7 +241,7 @@ bool Bind::visit(UiObjectDefinition *ast) // think anchors { ... } bool isGroupedBinding = false; for (UiQualifiedId *it = ast->qualifiedTypeNameId; it; it = it->next) { - if (!it->next) + if (!it->next && it->name) isGroupedBinding = it->name->asString().at(0).isLower(); } diff --git a/src/libs/qmljs/qmljsrewriter.cpp b/src/libs/qmljs/qmljsrewriter.cpp index 17293b34f6ef4fae57d74e29633a5f7bbfd2991c..aad4b650abf9c9aef5a8851b5ef485dda5abfe20 100644 --- a/src/libs/qmljs/qmljsrewriter.cpp +++ b/src/libs/qmljs/qmljsrewriter.cpp @@ -256,7 +256,8 @@ QString Rewriter::flatten(UiQualifiedId *first) if (current != first) flatId += '.'; - flatId += current->name->asString(); + if (current->name) + flatId += current->name->asString(); } return flatId; diff --git a/src/libs/qmljs/qmljsscopebuilder.cpp b/src/libs/qmljs/qmljsscopebuilder.cpp index 2fbdc0403c6514b0d1ab1d6486d3a12a645705e7..e1b42833300348f566ef7ab2e6116831aebbfc8b 100644 --- a/src/libs/qmljs/qmljsscopebuilder.cpp +++ b/src/libs/qmljs/qmljsscopebuilder.cpp @@ -228,7 +228,7 @@ void ScopeBuilder::setQmlScopeObject(Node *node) if (initializer) { for (UiObjectMemberList *m = initializer->members; m; m = m->next) { if (UiScriptBinding *scriptBinding = cast<UiScriptBinding *>(m->member)) { - if (scriptBinding->qualifiedId + if (scriptBinding->qualifiedId && scriptBinding->qualifiedId->name && scriptBinding->qualifiedId->name->asString() == QLatin1String("target") && ! scriptBinding->qualifiedId->next) { // ### make Evaluate understand statements. @@ -256,6 +256,8 @@ const Value *ScopeBuilder::scopeObjectLookup(AST::UiQualifiedId *id) foreach (const ObjectValue *scopeObject, _context->scopeChain().qmlScopeObjects) { const ObjectValue *object = scopeObject; for (UiQualifiedId *it = id; it; it = it->next) { + if (!it->name) + return 0; result = object->property(it->name->asString(), _context); if (!result) break; diff --git a/src/plugins/qmljseditor/qmljsfindreferences.cpp b/src/plugins/qmljseditor/qmljsfindreferences.cpp index d3f9de96a00c1839d925853be9e58aa966e61751..ff7f106c7b0c5c88b215eaf7467a80aa0f13848e 100644 --- a/src/plugins/qmljseditor/qmljsfindreferences.cpp +++ b/src/plugins/qmljseditor/qmljsfindreferences.cpp @@ -468,7 +468,7 @@ private: bool checkBindingName(UiQualifiedId *id) { - if (id && !id->next && containsOffset(id->identifierToken)) { + if (id && id->name && !id->next && containsOffset(id->identifierToken)) { _result.second = id->name->asString(); return true; }