forked from qt-creator/qt-creator
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: I65e8d3092bbc9b01a5dbee241c24d95dd03fc670
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
209078e57e
commit
1a239bd3e9
@@ -1078,8 +1078,9 @@ ClassOrNamespace *ResolveExpression::baseExpression(const QList<LookupItem> &bas
|
||||
ClassOrNamespace *binding
|
||||
= findClassForTemplateParameterInExpressionScope(r.binding(),
|
||||
ty);
|
||||
|
||||
if (! binding)
|
||||
binding = findClass(ty, scope);
|
||||
binding = findClass(ty, scope, r.binding());
|
||||
|
||||
if (binding){
|
||||
// lookup for overloads of operator->
|
||||
|
||||
Reference in New Issue
Block a user