diff options
author | Marco Benelli <marco.benelli@qt.io> | 2017-03-16 17:13:46 +0100 |
---|---|---|
committer | Marco Benelli <marco.benelli@qt.io> | 2017-03-23 07:50:26 +0000 |
commit | 61d30a20ce5086badd19c6cc6696387290d6f642 (patch) | |
tree | d00997b92edd2e5787125796170d3f495b43c13e /src/libs/qmljs/qmljsinterpreter.cpp | |
parent | aa87ee72ec4a74345afed5096ac5b418b09bfd5e (diff) | |
download | qt-creator-61d30a20ce5086badd19c6cc6696387290d6f642.tar.gz |
QmlJs: sync qmljs parser
The last version of the grammar contains some constructs that the code model
needs to know.
Task-number: QTCREATORBUG-17842
Change-Id: I6250f96431acc05b19f3fd1b6cc268a07485cf0f
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/libs/qmljs/qmljsinterpreter.cpp')
-rw-r--r-- | src/libs/qmljs/qmljsinterpreter.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index a0fb193807..61c3aa4315 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -1852,7 +1852,7 @@ ASTObjectValue::ASTObjectValue(UiQualifiedId *typeName, for (UiObjectMemberList *it = m_initializer->members; it; it = it->next) { UiObjectMember *member = it->member; if (UiPublicMember *def = cast<UiPublicMember *>(member)) { - if (def->type == UiPublicMember::Property && !def->name.isEmpty() && !def->memberType.isEmpty()) { + if (def->type == UiPublicMember::Property && !def->name.isEmpty() && def->isValid()) { ASTPropertyReference *ref = new ASTPropertyReference(def, m_doc, valueOwner); m_properties.append(ref); if (def->defaultToken.isValid()) @@ -2117,10 +2117,10 @@ bool ASTPropertyReference::getSourceLocation(QString *fileName, int *line, int * const Value *ASTPropertyReference::value(ReferenceContext *referenceContext) const { if (m_ast->statement - && (m_ast->memberType.isEmpty() - || m_ast->memberType == QLatin1String("variant") - || m_ast->memberType == QLatin1String("var") - || m_ast->memberType == QLatin1String("alias"))) { + && (!m_ast->isValid() + || m_ast->memberTypeName() == QLatin1String("variant") + || m_ast->memberTypeName() == QLatin1String("var") + || m_ast->memberTypeName() == QLatin1String("alias"))) { // Adjust the context for the current location - expensive! // ### Improve efficiency by caching the 'use chain' constructed in ScopeBuilder. @@ -2136,7 +2136,7 @@ const Value *ASTPropertyReference::value(ReferenceContext *referenceContext) con return evaluator(m_ast->statement); } - const QString memberType = m_ast->memberType.toString(); + const QString memberType = m_ast->memberTypeName().toString(); const Value *builtin = valueOwner()->defaultValueForBuiltinType(memberType); if (!builtin->asUndefinedValue()) @@ -2160,7 +2160,7 @@ ASTSignal::ASTSignal(UiPublicMember *ast, const Document *doc, ValueOwner *value ObjectValue *v = valueOwner->newObject(/*prototype=*/0); for (UiParameterList *it = ast->parameters; it; it = it->next) { if (!it->name.isEmpty()) - v->setMember(it->name.toString(), valueOwner->defaultValueForBuiltinType(it->type.toString())); + v->setMember(it->name.toString(), valueOwner->defaultValueForBuiltinType(it->type->name.toString())); } m_bodyScope = v; } @@ -2187,9 +2187,9 @@ const Value *ASTSignal::argument(int index) const UiParameterList *param = m_ast->parameters; for (int i = 0; param && i < index; ++i) param = param->next; - if (!param || param->type.isEmpty()) + if (!param || param->type->name.isEmpty()) return valueOwner()->unknownValue(); - return valueOwner()->defaultValueForBuiltinType(param->type.toString()); + return valueOwner()->defaultValueForBuiltinType(param->type->name.toString()); } QString ASTSignal::argumentName(int index) const |