forked from qt-creator/qt-creator
		
	C++: Fix decltype resolving for template function
The last nail for std::unique_ptr (GCC variant, MSVC still doesn't work).
Use-case:
template<typename T>
static T f();
struct Foo { int bar; };
void fun()
{
    decltype(f<Foo>()) s;
    s.bar; // bar not highlighted
}
Task-number: QTCREATORBUG-14483
Task-number: QTCREATORBUG-8937
Change-Id: I5bab757400b070cf9dbb688a44fd8eafe95ddc61
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
			
			
This commit is contained in:
		
				
					committed by
					
						 Orgad Shaneh
						Orgad Shaneh
					
				
			
			
				
	
			
			
			
						parent
						
							a429ef3d50
						
					
				
				
					commit
					07f8c474be
				
			| @@ -1300,12 +1300,8 @@ bool CheckSymbols::maybeAddFunction(const QList<LookupItem> &candidates, NameAST | ||||
|         isConstructor = isConstructorDeclaration(c); | ||||
|  | ||||
|         Function *funTy = c->type()->asFunctionType(); | ||||
|         if (!funTy) { | ||||
|             //Try to find a template function | ||||
|             if (Template * t = r.type()->asTemplateType()) | ||||
|                 if ((c = t->declaration())) | ||||
|                     funTy = c->type()->asFunctionType(); | ||||
|         } | ||||
|         if (!funTy) // Template function has an overridden type | ||||
|             funTy = r.type()->asFunctionType(); | ||||
|         if (!funTy) | ||||
|             continue; // TODO: add diagnostic messages and color call-operators calls too? | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user