diff options
author | Przemyslaw Gorszkowski <pgorszkowski@gmail.com> | 2013-06-18 23:05:57 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-08-05 10:50:38 +0200 |
commit | bfbf93e64f91630d7fad0bad1c4d38898ed5086b (patch) | |
tree | 6b5353d4e2bd383d839e5abf3af7587fa474472a /src/libs/cplusplus/ResolveExpression.h | |
parent | 62af8171754f8ec892a609ba7434928793026731 (diff) | |
download | qt-creator-bfbf93e64f91630d7fad0bad1c4d38898ed5086b.tar.gz |
C++: fix auto completion for template parameters
Fix auto completion for the case when template parameter should be
found somewhere of scope of template instantiation declaration.
Example:
struct A
{
void foo();
struct B
{
int b;
};
};
template<typename T>
struct Template
{
T* get() { return 0; }
T t;
};
void A::foo()
{
Template<B> templ;
templ.get()->//no autocompletion
templ.t.//no autocompletion
}
Task-number: QTCREATORBUG-8852
Task-number: QTCREATORBUG-9169
Change-Id: I56b40776e66740f995ae6fc5d69e3c50139a3af2
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/libs/cplusplus/ResolveExpression.h')
-rw-r--r-- | src/libs/cplusplus/ResolveExpression.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libs/cplusplus/ResolveExpression.h b/src/libs/cplusplus/ResolveExpression.h index b261dc39a2..79f843107c 100644 --- a/src/libs/cplusplus/ResolveExpression.h +++ b/src/libs/cplusplus/ResolveExpression.h @@ -71,7 +71,7 @@ protected: void thisObject(); - void addResult(const FullySpecifiedType &ty, Scope *scope); + void addResult(const FullySpecifiedType &ty, Scope *scope, ClassOrNamespace *binding = 0); void addResults(const QList<Symbol *> &symbols); void addResults(const QList<LookupItem> &items); @@ -126,6 +126,10 @@ protected: private: + ClassOrNamespace *findClassForTemplateParameterInExpressionScope( + ClassOrNamespace *resultBinding, + const FullySpecifiedType &ty) const; + Scope *_scope; const LookupContext& _context; Bind bind; |