summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljsinterpreter.cpp
diff options
context:
space:
mode:
authorMarco Benelli <marco.benelli@qt.io>2017-03-16 17:13:46 +0100
committerMarco Benelli <marco.benelli@qt.io>2017-03-23 07:50:26 +0000
commit61d30a20ce5086badd19c6cc6696387290d6f642 (patch)
treed00997b92edd2e5787125796170d3f495b43c13e /src/libs/qmljs/qmljsinterpreter.cpp
parentaa87ee72ec4a74345afed5096ac5b418b09bfd5e (diff)
downloadqt-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.cpp18
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