aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp12
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h4
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetalang.cpp39
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetalang.h18
-rw-r--r--sources/shiboken6/ApiExtractor/apiextractor.cpp3
-rw-r--r--sources/shiboken6/generator/generator.cpp2
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.cpp14
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.h2
-rw-r--r--sources/shiboken6/generator/shiboken/headergenerator.cpp9
-rw-r--r--sources/shiboken6/generator/shiboken/overloaddata.cpp2
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))