summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/ResolveExpression.cpp
diff options
context:
space:
mode:
authorPrzemyslaw Gorszkowski <pgorszkowski@gmail.com>2015-02-06 12:16:08 +0100
committerOrgad Shaneh <orgads@gmail.com>2015-02-25 15:03:40 +0000
commit209078e57e97cd45c213c58a21df02c9a1ad89c8 (patch)
tree419bff20006732d186d3f8ef4419369de0322b62 /src/libs/cplusplus/ResolveExpression.cpp
parent25989cbf94e951f27ccf2d973e7e877d55ed96e2 (diff)
downloadqt-creator-209078e57e97cd45c213c58a21df02c9a1ad89c8.tar.gz
C++: fix dereferencing of nested type and operator '*'
Fixed case: template<class T> struct List { struct iterator { T &operator*() { return t; } T t; }; iterator begin() { return iterator(); } }; struct Foo { int bar; }; void func() { List<Foo> list; (*list.begin()).; // code completion doesn't work } Task-number: QTCREATORBUG-13799 Change-Id: Ia3f5c1631c2f6a25d7fb1186b4ef506354ed22be Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Diffstat (limited to 'src/libs/cplusplus/ResolveExpression.cpp')
-rw-r--r--src/libs/cplusplus/ResolveExpression.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp
index c1a277f74e..5ea8392ee6 100644
--- a/src/libs/cplusplus/ResolveExpression.cpp
+++ b/src/libs/cplusplus/ResolveExpression.cpp
@@ -612,7 +612,7 @@ bool ResolveExpression::visit(UnaryExpressionAST *ast)
added = true;
} else if (namedTy != 0) {
const Name *starOp = control()->operatorNameId(OperatorNameId::StarOp);
- if (ClassOrNamespace *b = _context.lookupType(namedTy->name(), p.scope())) {
+ if (ClassOrNamespace *b = _context.lookupType(namedTy->name(), p.scope(), p.binding())) {
foreach (const LookupItem &r, b->find(starOp)) {
Symbol *overload = r.declaration();
if (Function *funTy = overload->type()->asFunctionType()) {