File tree Expand file tree Collapse file tree 2 files changed +13
-0
lines changed
Expand file tree Collapse file tree 2 files changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -471,6 +471,18 @@ void Binder::visitFunctionDefinition(FunctionDefinitionAST *node)
471471 foreach (DeclaratorCompiler::Parameter p, decl_cc.parameters ())
472472 {
473473 ArgumentModelItem arg = model ()->create <ArgumentModelItem>();
474+
475+ if (_M_current_class && _M_current_class->isTemplateClass ())
476+ {
477+ QStringList qualifiedName = p.type .qualifiedName ();
478+ if (qualifiedName.size () == 1 && !qualifiedName.last ().contains (' <' ) &&
479+ qualifiedName.last () == _M_current_class->name ().split (' <' ).first ())
480+ {
481+ // Fix: add template arguments if the argument type is the current class
482+ // name without template arguments
483+ p.type .setQualifiedName (QStringList (_M_current_class->name ()));
484+ }
485+ }
474486 arg->setType (qualifyType (p.type , functionScope->qualifiedName ()));
475487 arg->setName (p.name );
476488 arg->setDefaultValue (p.defaultValue );
Original file line number Diff line number Diff line change @@ -355,6 +355,7 @@ class _ClassModelItem: public _ScopeModelItem
355355
356356 TemplateParameterList templateParameters () const ;
357357 void setTemplateParameters (const TemplateParameterList &templateParameters);
358+ bool isTemplateClass () const { return _M_templateParameters.size (); }
358359
359360 bool extendsClass (const QString &name) const ;
360361
You can’t perform that action at this time.
0 commit comments