diff options
10 files changed, 53 insertions, 52 deletions
diff --git a/sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp b/sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp index 86ce3346f..da0c46e28 100644 --- a/sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp +++ b/sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp @@ -2141,7 +2141,7 @@ TypeEntries AbstractMetaBuilderPrivate::findTypeEntriesHelper(const QString &qua // 5.1.1 - Try using the class parents' scopes if (d && !currentClass->baseClassNames().isEmpty()) { - const AbstractMetaClassList &baseClasses = d->getBaseClasses(currentClass); + const auto &baseClasses = d->getBaseClasses(currentClass); for (const AbstractMetaClass *cls : baseClasses) { if (auto type = findTypeEntryUsingContext(cls, qualifiedName)) return {type}; @@ -2896,12 +2896,13 @@ AbstractMetaClass* AbstractMetaBuilderPrivate::findTemplateClass(const QString & return nullptr; } -AbstractMetaClassList AbstractMetaBuilderPrivate::getBaseClasses(const AbstractMetaClass *metaClass) const +AbstractMetaClassCList + AbstractMetaBuilderPrivate::getBaseClasses(const AbstractMetaClass *metaClass) const { // Shortcut if inheritance has already been set up if (metaClass->inheritanceDone() || !metaClass->needsInheritanceSetup()) return metaClass->baseClasses(); - AbstractMetaClassList baseClasses; + AbstractMetaClassCList baseClasses; const QStringList &baseClassNames = metaClass->baseClassNames(); for (const QString& parent : baseClassNames) { AbstractMetaClass *cls = nullptr; @@ -3247,7 +3248,7 @@ void AbstractMetaBuilderPrivate::parseQ_Properties(AbstractMetaClass *metaClass, } } -void AbstractMetaBuilderPrivate::setupExternalConversion(AbstractMetaClass *cls) +void AbstractMetaBuilderPrivate::setupExternalConversion(const AbstractMetaClass *cls) { const auto &convOps = cls->operatorOverloads(OperatorQueryOption::ConversionOp); for (const auto &func : convOps) { @@ -3258,8 +3259,7 @@ void AbstractMetaBuilderPrivate::setupExternalConversion(AbstractMetaClass *cls) continue; metaClass->addExternalConversionOperator(func); } - const AbstractMetaClassList &innerClasses = cls->innerClasses(); - for (AbstractMetaClass *innerClass : innerClasses) + for (auto *innerClass : cls->innerClasses()) setupExternalConversion(innerClass); } diff --git a/sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h b/sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h index 791986298..bdc1c40a8 100644 --- a/sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h +++ b/sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h @@ -151,7 +151,7 @@ public: void parseQ_Properties(AbstractMetaClass *metaClass, const QStringList &declarations); void setupEquals(AbstractMetaClass *metaClass); void setupComparable(AbstractMetaClass *metaClass); - void setupExternalConversion(AbstractMetaClass *cls); + void setupExternalConversion(const AbstractMetaClass *cls); static bool isQualifiedCppIdentifier(QStringView e); QString fixDefaultValue(QString expr, const AbstractMetaType &type, @@ -183,7 +183,7 @@ public: AbstractMetaClass *findTemplateClass(const QString& name, const AbstractMetaClass *context, TypeInfo *info = Q_NULLPTR, ComplexTypeEntry **baseContainerType = Q_NULLPTR) const; - AbstractMetaClassList getBaseClasses(const AbstractMetaClass *metaClass) const; + AbstractMetaClassCList getBaseClasses(const AbstractMetaClass *metaClass) const; static bool inheritTemplate(AbstractMetaClass *subclass, const AbstractMetaClass *templateClass, diff --git a/sources/shiboken6/ApiExtractor/abstractmetalang.cpp b/sources/shiboken6/ApiExtractor/abstractmetalang.cpp index 226840c8f..a9f1b47a9 100644 --- a/sources/shiboken6/ApiExtractor/abstractmetalang.cpp +++ b/sources/shiboken6/ApiExtractor/abstractmetalang.cpp @@ -114,8 +114,8 @@ public: Documentation m_doc; const AbstractMetaClass *m_enclosingClass = nullptr; - AbstractMetaClass *m_defaultSuperclass = nullptr; - AbstractMetaClassList m_baseClasses; // Real base classes after setting up inheritance + const AbstractMetaClass *m_defaultSuperclass = nullptr; + AbstractMetaClassCList m_baseClasses; // Real base classes after setting up inheritance AbstractMetaTypeList m_baseTemplateInstantiations; const AbstractMetaClass *m_extendedNamespace = nullptr; @@ -124,7 +124,7 @@ public: AbstractMetaFieldList m_fields; AbstractMetaEnumList m_enums; QList<QPropertySpec> m_propertySpecs; - AbstractMetaClassList m_innerClasses; + AbstractMetaClassCList m_innerClasses; AbstractMetaFunctionCList m_externalConversionOperators; @@ -445,7 +445,7 @@ QString AbstractMetaClass::baseClassName() const } // Attribute "default-superclass" -AbstractMetaClass *AbstractMetaClass::defaultSuperclass() const +const AbstractMetaClass *AbstractMetaClass::defaultSuperclass() const { return d->m_defaultSuperclass; } @@ -455,21 +455,21 @@ void AbstractMetaClass::setDefaultSuperclass(AbstractMetaClass *s) d->m_defaultSuperclass = s; } -AbstractMetaClass *AbstractMetaClass::baseClass() const +const AbstractMetaClass *AbstractMetaClass::baseClass() const { return d->m_baseClasses.value(0, nullptr); } -const AbstractMetaClassList &AbstractMetaClass::baseClasses() const +const AbstractMetaClassCList &AbstractMetaClass::baseClasses() const { Q_ASSERT(inheritanceDone() || !needsInheritanceSetup()); return d->m_baseClasses; } // base classes including "defaultSuperclass". -AbstractMetaClassList AbstractMetaClass::typeSystemBaseClasses() const +AbstractMetaClassCList AbstractMetaClass::typeSystemBaseClasses() const { - AbstractMetaClassList result = d->m_baseClasses; + AbstractMetaClassCList result = d->m_baseClasses; if (d->m_defaultSuperclass != nullptr) { result.removeAll(d->m_defaultSuperclass); result.prepend(d->m_defaultSuperclass); @@ -478,25 +478,25 @@ AbstractMetaClassList AbstractMetaClass::typeSystemBaseClasses() const } // Recursive list of all base classes including defaultSuperclass -AbstractMetaClassList AbstractMetaClass::allTypeSystemAncestors() const +AbstractMetaClassCList AbstractMetaClass::allTypeSystemAncestors() const { - AbstractMetaClassList result; - const AbstractMetaClassList baseClasses = typeSystemBaseClasses(); - for (AbstractMetaClass *base : baseClasses) { + AbstractMetaClassCList result; + const auto baseClasses = typeSystemBaseClasses(); + for (auto *base : baseClasses) { result.append(base); result.append(base->allTypeSystemAncestors()); } return result; } -void AbstractMetaClass::addBaseClass(AbstractMetaClass *baseClass) +void AbstractMetaClass::addBaseClass(const AbstractMetaClass *baseClass) { Q_ASSERT(baseClass); d->m_baseClasses.append(baseClass); d->m_isPolymorphic |= baseClass->isPolymorphic(); } -void AbstractMetaClass::setBaseClass(AbstractMetaClass *baseClass) +void AbstractMetaClass::setBaseClass(const AbstractMetaClass *baseClass) { if (baseClass) { d->m_baseClasses.prepend(baseClass); @@ -514,7 +514,7 @@ void AbstractMetaClass::setExtendedNamespace(const AbstractMetaClass *e) d->m_extendedNamespace = e; } -const AbstractMetaClassList &AbstractMetaClass::innerClasses() const +const AbstractMetaClassCList &AbstractMetaClass::innerClasses() const { return d->m_innerClasses; } @@ -524,7 +524,7 @@ void AbstractMetaClass::addInnerClass(AbstractMetaClass *cl) d->m_innerClasses << cl; } -void AbstractMetaClass::setInnerClasses(const AbstractMetaClassList &innerClasses) +void AbstractMetaClass::setInnerClasses(const AbstractMetaClassCList &innerClasses) { d->m_innerClasses = innerClasses; } @@ -1275,7 +1275,7 @@ void AbstractMetaClass::getEnumsToBeGenerated(AbstractMetaEnumList *enumList) co void AbstractMetaClass::getEnumsFromInvisibleNamespacesToBeGenerated(AbstractMetaEnumList *enumList) const { if (isNamespace()) { - invisibleNamespaceRecursion([enumList](AbstractMetaClass *c) { + invisibleNamespaceRecursion([enumList](const AbstractMetaClass *c) { c->getEnumsToBeGenerated(enumList); }); } @@ -1284,7 +1284,7 @@ void AbstractMetaClass::getEnumsFromInvisibleNamespacesToBeGenerated(AbstractMet void AbstractMetaClass::getFunctionsFromInvisibleNamespacesToBeGenerated(AbstractMetaFunctionCList *funcList) const { if (isNamespace()) { - invisibleNamespaceRecursion([funcList](AbstractMetaClass *c) { + invisibleNamespaceRecursion([funcList](const AbstractMetaClass *c) { funcList->append(c->functions()); }); } @@ -1389,7 +1389,8 @@ void AbstractMetaClass::fixFunctions() nonRemovedFuncs.append(f); } - for (auto superClass : d->m_baseClasses) { + for (auto *superClassC : d->m_baseClasses) { + auto *superClass = const_cast<AbstractMetaClass *>(superClassC); superClass->fixFunctions(); // Since we always traverse the complete hierarchy we are only // interrested in what each super class implements, not what diff --git a/sources/shiboken6/ApiExtractor/abstractmetalang.h b/sources/shiboken6/ApiExtractor/abstractmetalang.h index 7f0de0eea..848d3c7c9 100644 --- a/sources/shiboken6/ApiExtractor/abstractmetalang.h +++ b/sources/shiboken6/ApiExtractor/abstractmetalang.h @@ -209,18 +209,18 @@ public: QString baseClassName() const; - AbstractMetaClass *defaultSuperclass() const; // Attribute "default-superclass" + const AbstractMetaClass *defaultSuperclass() const; // Attribute "default-superclass" void setDefaultSuperclass(AbstractMetaClass *s); - AbstractMetaClass *baseClass() const; - const AbstractMetaClassList &baseClasses() const; + const AbstractMetaClass *baseClass() const; + const AbstractMetaClassCList &baseClasses() const; // base classes including defaultSuperclass - AbstractMetaClassList typeSystemBaseClasses() const; + AbstractMetaClassCList typeSystemBaseClasses() const; // Recursive list of all base classes including defaultSuperclass - AbstractMetaClassList allTypeSystemAncestors() const; + AbstractMetaClassCList allTypeSystemAncestors() const; - void addBaseClass(AbstractMetaClass *base_class); - void setBaseClass(AbstractMetaClass *base_class); + void addBaseClass(const AbstractMetaClass *base_class); + void setBaseClass(const AbstractMetaClass *base_class); /** * \return the namespace from another package which this namespace extends. @@ -228,9 +228,9 @@ public: const AbstractMetaClass *extendedNamespace() const; void setExtendedNamespace(const AbstractMetaClass *e); - const AbstractMetaClassList &innerClasses() const; + const AbstractMetaClassCList &innerClasses() const; void addInnerClass(AbstractMetaClass* cl); - void setInnerClasses(const AbstractMetaClassList &innerClasses); + void setInnerClasses(const AbstractMetaClassCList &innerClasses); QString package() const; diff --git a/sources/shiboken6/ApiExtractor/apiextractor.cpp b/sources/shiboken6/ApiExtractor/apiextractor.cpp index 31ad639d5..24a2c9190 100644 --- a/sources/shiboken6/ApiExtractor/apiextractor.cpp +++ b/sources/shiboken6/ApiExtractor/apiextractor.cpp @@ -565,8 +565,7 @@ ApiExtractorPrivate::collectInstantiatedContainersAndSmartPointers(Instantiation collectInstantiatedContainersAndSmartPointers(context, func); for (const AbstractMetaField &field : metaClass->fields()) addInstantiatedContainersAndSmartPointers(context, field.type(), field.name()); - const AbstractMetaClassList &innerClasses = metaClass->innerClasses(); - for (AbstractMetaClass *innerClass : innerClasses) + for (auto *innerClass : metaClass->innerClasses()) collectInstantiatedContainersAndSmartPointers(context, innerClass); } diff --git a/sources/shiboken6/generator/generator.cpp b/sources/shiboken6/generator/generator.cpp index c813671b5..f5b0dc6a0 100644 --- a/sources/shiboken6/generator/generator.cpp +++ b/sources/shiboken6/generator/generator.cpp @@ -222,7 +222,7 @@ bool Generator::setup(const ApiExtractorResult &api) for (auto c : api.classes()) { if (c->enclosingClass() == nullptr && c->isInvisibleNamespace()) { m_d->m_invisibleTopNamespaces.append(c); - c->invisibleNamespaceRecursion([&](AbstractMetaClass *ic) { + c->invisibleNamespaceRecursion([&](const AbstractMetaClass *ic) { m_d->m_invisibleTopNamespaces.append(ic); }); } diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.cpp b/sources/shiboken6/generator/shiboken/cppgenerator.cpp index 58a3ce8f3..1b36968db 100644 --- a/sources/shiboken6/generator/shiboken/cppgenerator.cpp +++ b/sources/shiboken6/generator/shiboken/cppgenerator.cpp @@ -397,7 +397,7 @@ static bool generateRichComparison(const GeneratorContext &c) void CppGenerator::generateIncludes(TextStream &s, const GeneratorContext &classContext, QList<Include> includes, - const AbstractMetaClassList &innerClasses) const + const AbstractMetaClassCList &innerClasses) const { const AbstractMetaClass *metaClass = classContext.metaClass(); @@ -506,7 +506,7 @@ void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classCon const AbstractMetaClass *metaClass = classContext.metaClass(); const auto *typeEntry = metaClass->typeEntry(); - AbstractMetaClassList innerClasses = metaClass->innerClasses(); + auto innerClasses = metaClass->innerClasses(); for (auto it = innerClasses.begin(); it != innerClasses.end(); ) { auto *innerTypeEntry = (*it)->typeEntry(); if (shouldGenerate(innerTypeEntry) && !innerTypeEntry->isSmartPointer()) @@ -4107,7 +4107,7 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunctionCPtr QStringList CppGenerator::getAncestorMultipleInheritance(const AbstractMetaClass *metaClass) { QStringList result; - const AbstractMetaClassList &baseClases = metaClass->typeSystemBaseClasses(); + const auto &baseClases = metaClass->typeSystemBaseClasses(); if (!baseClases.isEmpty()) { for (const AbstractMetaClass *baseClass : baseClases) { QString offset; @@ -4162,7 +4162,7 @@ void CppGenerator::writeSpecialCastFunction(TextStream &s, const AbstractMetaCla << "(void *obj, PyTypeObject *desiredType)\n{\n" << indent << "auto me = reinterpret_cast< ::" << className << " *>(obj);\n"; bool firstClass = true; - const AbstractMetaClassList &allAncestors = metaClass->allTypeSystemAncestors(); + const auto &allAncestors = metaClass->allTypeSystemAncestors(); for (const AbstractMetaClass *baseClass : allAncestors) { if (!firstClass) s << "else "; @@ -5806,7 +5806,7 @@ void CppGenerator::writeClassRegister(TextStream &s, // Multiple inheritance QString pyTypeBasesVariable = chopType(pyTypeName) + QLatin1String("_Type_bases"); - const AbstractMetaClassList baseClasses = metaClass->typeSystemBaseClasses(); + const auto &baseClasses = metaClass->typeSystemBaseClasses(); if (metaClass->baseClassNames().size() > 1) { s << "PyObject *" << pyTypeBasesVariable << " = PyTuple_Pack(" << baseClasses.size() << ',' << '\n'; @@ -6066,8 +6066,8 @@ void CppGenerator::writeTypeDiscoveryFunction(TextStream &s, const AbstractMetaC s << "return cptr;\n"; } } else if (metaClass->isPolymorphic()) { - const AbstractMetaClassList &ancestors = metaClass->allTypeSystemAncestors(); - for (AbstractMetaClass *ancestor : ancestors) { + const auto &ancestors = metaClass->allTypeSystemAncestors(); + for (auto *ancestor : ancestors) { if (ancestor->baseClass()) continue; if (ancestor->isPolymorphic()) { diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.h b/sources/shiboken6/generator/shiboken/cppgenerator.h index 0b522c0b8..314270e39 100644 --- a/sources/shiboken6/generator/shiboken/cppgenerator.h +++ b/sources/shiboken6/generator/shiboken/cppgenerator.h @@ -81,7 +81,7 @@ private: void generateSmartPointerClass(TextStream &s, const GeneratorContext &classContext); void generateIncludes(TextStream &s, const GeneratorContext &classContext, QList<Include> includes = {}, - const AbstractMetaClassList &innerClasses = {}) const; + const AbstractMetaClassCList &innerClasses = {}) const; static void writeInitFunc(TextStream &declStr, TextStream &callStr, const QString &initFunctionName, const TypeEntry *enclosingEntry = nullptr); diff --git a/sources/shiboken6/generator/shiboken/headergenerator.cpp b/sources/shiboken6/generator/shiboken/headergenerator.cpp index eeb004fa8..0dc300bd4 100644 --- a/sources/shiboken6/generator/shiboken/headergenerator.cpp +++ b/sources/shiboken6/generator/shiboken/headergenerator.cpp @@ -434,11 +434,12 @@ bool HeaderGenerator::finishGeneration() } macrosStream << "// Type indices\nenum : int {\n"; - AbstractMetaClassCList classList = api().classes(); + auto classList = api().classes(); - std::sort(classList.begin(), classList.end(), [](const AbstractMetaClass *a, const AbstractMetaClass *b) { - return a->typeEntry()->sbkIndex() < b->typeEntry()->sbkIndex(); - }); + std::sort(classList.begin(), classList.end(), + [](const AbstractMetaClass *a, const AbstractMetaClass *b) { + return a->typeEntry()->sbkIndex() < b->typeEntry()->sbkIndex(); + }); for (const AbstractMetaClass *metaClass : classList) writeTypeIndexValueLines(macrosStream, api(), metaClass); diff --git a/sources/shiboken6/generator/shiboken/overloaddata.cpp b/sources/shiboken6/generator/shiboken/overloaddata.cpp index eae177c7a..c9c36fe02 100644 --- a/sources/shiboken6/generator/shiboken/overloaddata.cpp +++ b/sources/shiboken6/generator/shiboken/overloaddata.cpp @@ -264,7 +264,7 @@ void OverloadDataRootNode::sortNextOverloads(const ApiExtractorResult &api) auto metaClass = AbstractMetaClass::findClass(api.classes(), te); if (!metaClass) throw Exception(msgArgumentClassNotFound(m_overloads.constFirst(), te)); - const AbstractMetaClassList &ancestors = metaClass->allTypeSystemAncestors(); + const auto &ancestors = metaClass->allTypeSystemAncestors(); for (const AbstractMetaClass *ancestor : ancestors) { QString ancestorTypeName = ancestor->typeEntry()->name(); if (!graph.hasNode(ancestorTypeName)) |
