diff options
-rw-r--r-- | abstractmetabuilder.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/abstractmetabuilder.cpp b/abstractmetabuilder.cpp index 6e6a4a6e6..5bb22afc1 100644 --- a/abstractmetabuilder.cpp +++ b/abstractmetabuilder.cpp @@ -2157,6 +2157,16 @@ bool AbstractMetaBuilder::inheritTemplate(AbstractMetaClass *subclass, QList<TypeParser::Info> targs = info.template_instantiations; QList<AbstractMetaType *> templateTypes; + if (subclass->isTypeAlias()) { + subclass->setHasCloneOperator(templateClass->hasCloneOperator()); + subclass->setHasEqualsOperator(templateClass->hasEqualsOperator()); + subclass->setHasHashFunction(templateClass->hasHashFunction()); + subclass->setHasNonPrivateConstructor(templateClass->hasNonPrivateConstructor()); + subclass->setHasPrivateDestructor(templateClass->hasPrivateDestructor()); + subclass->setHasProtectedDestructor(templateClass->hasProtectedDestructor()); + subclass->setHasVirtualDestructor(templateClass->hasVirtualDestructor()); + } + foreach (const TypeParser::Info &i, targs) { QString typeName = i.qualified_name.join("::"); QStringList possibleNames; |