diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/cplusplus/ResolveExpression.cpp | 10 | ||||
-rw-r--r-- | src/libs/qmljs/qmljsinterpreter.cpp | 5 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp index a6b5203f23..a247515627 100644 --- a/src/libs/cplusplus/ResolveExpression.cpp +++ b/src/libs/cplusplus/ResolveExpression.cpp @@ -491,8 +491,8 @@ bool ResolveExpression::visit(CallAST *ast) foreach (Symbol *overload, b->find(functionCallOp)) { if (Function *funTy = overload->type()->asFunctionType()) { if (maybeValidPrototype(funTy, actualArgumentCount)) { - Function *proto = instantiate(namedTy->name(), funTy)->asFunctionType(); - addResult(proto->returnType().simplified(), scope); + if (Function *proto = instantiate(namedTy->name(), funTy)->asFunctionType()) + addResult(proto->returnType().simplified(), scope); } } } @@ -535,9 +535,9 @@ bool ResolveExpression::visit(ArrayAccessAST *ast) if (ClassOrNamespace *b = _context.lookupType(namedTy->name(), scope)) { foreach (Symbol *overload, b->find(arrayAccessOp)) { if (Function *funTy = overload->type()->asFunctionType()) { - Function *proto = instantiate(namedTy->name(), funTy)->asFunctionType(); - // ### TODO: check the actual arguments - addResult(proto->returnType().simplified(), scope); + if (Function *proto = instantiate(namedTy->name(), funTy)->asFunctionType()) + // ### TODO: check the actual arguments + addResult(proto->returnType().simplified(), scope); } } diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index a32cd10c9f..29cfe1a1cc 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -1469,10 +1469,11 @@ const ObjectValue *Context::lookupType(const QmlJS::Document *doc, UiQualifiedId const ObjectValue *Context::lookupType(const QmlJS::Document *doc, const QStringList &qmlTypeName) { const ObjectValue *objectValue = typeEnvironment(doc); - if (!objectValue) - return 0; foreach (const QString &name, qmlTypeName) { + if (!objectValue) + return 0; + const Value *value = objectValue->property(name, this); if (!value) return 0; |