File tree 2 files changed +13
-0
lines changed
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)
471
471
foreach (DeclaratorCompiler::Parameter p, decl_cc.parameters ())
472
472
{
473
473
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
+ }
474
486
arg->setType (qualifyType (p.type , functionScope->qualifiedName ()));
475
487
arg->setName (p.name );
476
488
arg->setDefaultValue (p.defaultValue );
Original file line number Diff line number Diff line change @@ -355,6 +355,7 @@ class _ClassModelItem: public _ScopeModelItem
355
355
356
356
TemplateParameterList templateParameters () const ;
357
357
void setTemplateParameters (const TemplateParameterList &templateParameters);
358
+ bool isTemplateClass () const { return _M_templateParameters.size (); }
358
359
359
360
bool extendsClass (const QString &name) const ;
360
361
You can’t perform that action at this time.
0 commit comments