forked from qt-creator/qt-creator
C++: fix matching type with using from other namespace
example code:
struct S { int s; };
namespace std
{
template <typename T>
struct shared_ptr
{
T* operator->();
};
}
namespace NS
{
using std::shared_ptr;
}
int main()
{
NS::shared_ptr<S> p;// for this shared_ptr
return 0;
}
Fixes:
* find usages
* follow symbol
* highlighting
* marking
Task-number: QTCREATORBUG-7978
Change-Id: I28994c960b87ddd400e1d7b860fca6c6683bbb5a
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
committed by
Erik Verbruggen
parent
9de44134c0
commit
3256b7b2ef
@@ -852,7 +852,10 @@ bool CheckSymbols::visit(QualifiedNameAST *ast)
|
||||
addUse(ast->unqualified_name, CppHighlightingSupport::FunctionUse);
|
||||
}
|
||||
} else {
|
||||
maybeAddTypeOrStatic(binding->find(ast->unqualified_name->name), ast->unqualified_name);
|
||||
QList<LookupItem> items = binding->find(ast->unqualified_name->name);
|
||||
if (items.empty())
|
||||
items = _context.lookup(ast->name, enclosingScope());
|
||||
maybeAddTypeOrStatic(items, ast->unqualified_name);
|
||||
}
|
||||
|
||||
if (TemplateIdAST *template_id = ast->unqualified_name->asTemplateId())
|
||||
|
||||
Reference in New Issue
Block a user