diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-09-15 12:18:41 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-09-19 09:35:11 +0200 |
commit | 200275225befe77d020f5caf6d8eb1a576a79755 (patch) | |
tree | 88f8d0d535b0492c7d37be680297fba97e1dc9dd /sources/shiboken6/generator/shiboken | |
parent | f2cc10c24014a41c9b92ae1f1aed04445fcf608e (diff) |
shiboken6: Make more generator methods static
After db3ef22bc3725cabdc46f3359509326df5f270cf (making generator
options statically accessible), more generator methods can be made
static.
Apply several rounds of clang-tidy scanning for
[readability-convert-member-functions-to-static].
Pick-to: 6.6
Change-Id: I67f4c5652f37d3aa1dfa56c18ce5dff3c503a341
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Diffstat (limited to 'sources/shiboken6/generator/shiboken')
6 files changed, 142 insertions, 125 deletions
diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.cpp b/sources/shiboken6/generator/shiboken/cppgenerator.cpp index 204c68ae9..093264479 100644 --- a/sources/shiboken6/generator/shiboken/cppgenerator.cpp +++ b/sources/shiboken6/generator/shiboken/cppgenerator.cpp @@ -989,7 +989,7 @@ void CppGenerator::writeConstructorNative(TextStream &s, const GeneratorContext } void CppGenerator::writeDestructorNative(TextStream &s, - const GeneratorContext &classContext) const + const GeneratorContext &classContext) { s << classContext.wrapperName() << "::~" << classContext.wrapperName() << "()\n{\n" << indent; @@ -1170,7 +1170,7 @@ static const char PYTHON_ARGS_ARRAY[] = "pyArgArray"; void CppGenerator::writeVirtualMethodNativeVectorCallArgs(TextStream &s, const AbstractMetaFunctionCPtr &func, const AbstractMetaArgumentList &arguments, - const QList<int> &invalidateArgs) const + const QList<int> &invalidateArgs) { Q_ASSERT(!arguments.isEmpty()); s << "PyObject *" << PYTHON_ARGS_ARRAY <<'[' << arguments.size() << "] = {\n" << indent; @@ -1199,7 +1199,7 @@ void CppGenerator::writeVirtualMethodNativeVectorCallArgs(TextStream &s, void CppGenerator::writeVirtualMethodNativeArgs(TextStream &s, const AbstractMetaFunctionCPtr &func, const AbstractMetaArgumentList &arguments, - const QList<int> &invalidateArgs) const + const QList<int> &invalidateArgs) { s << "Shiboken::AutoDecRef " << PYTHON_ARGS << '('; if (arguments.isEmpty()) { @@ -2052,7 +2052,7 @@ void CppGenerator::writeSmartPointerConverterFunctions(TextStream &s, } } -bool CppGenerator::needsArgumentErrorHandling(const OverloadData &overloadData) const +bool CppGenerator::needsArgumentErrorHandling(const OverloadData &overloadData) { if (overloadData.maxArgs() > 0) return true; @@ -2064,9 +2064,10 @@ bool CppGenerator::needsArgumentErrorHandling(const OverloadData &overloadData) && isQObject(rfunc->ownerClass()); } -void CppGenerator::writeMethodWrapperPreamble(TextStream &s,const OverloadData &overloadData, +void CppGenerator::writeMethodWrapperPreamble(TextStream &s, + const OverloadData &overloadData, const GeneratorContext &context, - ErrorReturn errorReturn) const + ErrorReturn errorReturn) { const auto rfunc = overloadData.referenceFunction(); const auto ownerClass = rfunc->targetLangOwner(); @@ -2504,7 +2505,7 @@ void CppGenerator::writeSmartPointerCppSelfDefinition(TextStream &s, void CppGenerator::writeCppSelfDefinition(TextStream &s, const GeneratorContext &context, ErrorReturn errorReturn, - CppSelfDefinitionFlags flags) const + CppSelfDefinitionFlags flags) { Q_ASSERT(!(flags.testFlag(CppSelfAsReference) && flags.testFlag(HasStaticOverload))); if (context.forSmartPointer()) { @@ -2556,7 +2557,7 @@ void CppGenerator::writeCppSelfDefinition(TextStream &s, const AbstractMetaFunctionCPtr &func, const GeneratorContext &context, ErrorReturn errorReturn, - CppSelfDefinitionFlags flags) const + CppSelfDefinitionFlags flags) { if (!func->ownerClass() || func->isConstructor()) return; @@ -3614,9 +3615,11 @@ static bool forceQObjectNamedArguments(const AbstractMetaFunctionCPtr &func) || name == u"QSplitterHandle" || name == u"QSizeGrip"; } -void CppGenerator::writeNamedArgumentResolution(TextStream &s, const AbstractMetaFunctionCPtr &func, - bool usePyArgs, const OverloadData &overloadData, - ErrorReturn errorReturn) const +void CppGenerator::writeNamedArgumentResolution(TextStream &s, + const AbstractMetaFunctionCPtr &func, + bool usePyArgs, + const OverloadData &overloadData, + ErrorReturn errorReturn) { const AbstractMetaArgumentList &args = OverloadData::getArgumentsWithDefaultValues(func); const bool hasDefaultArguments = !args.isEmpty(); @@ -4315,7 +4318,8 @@ void CppGenerator::writeEnumConverterInitialization(TextStream &s, const Abstrac s << outdent << "}\n"; } -QString CppGenerator::writeContainerConverterInitialization(TextStream &s, const AbstractMetaType &type) const +QString CppGenerator::writeContainerConverterInitialization(TextStream &s, + const AbstractMetaType &type) { QByteArray cppSignature = QMetaObject::normalizedSignature(type.cppSignature().toUtf8()); s << "// Register converter for type '" << cppSignature << "'.\n"; @@ -4423,7 +4427,7 @@ bool CppGenerator::supportsMappingProtocol(const AbstractMetaClassCPtr &metaClas return false; } -bool CppGenerator::supportsNumberProtocol(const AbstractMetaClassCPtr &metaClass) const +bool CppGenerator::supportsNumberProtocol(const AbstractMetaClassCPtr &metaClass) { return metaClass->hasArithmeticOperatorOverload() || metaClass->hasIncDecrementOperatorOverload() @@ -4443,7 +4447,7 @@ bool CppGenerator::supportsSequenceProtocol(const AbstractMetaClassCPtr &metaCla return baseType && baseType->isContainer(); } -bool CppGenerator::shouldGenerateGetSetList(const AbstractMetaClassCPtr &metaClass) const +bool CppGenerator::shouldGenerateGetSetList(const AbstractMetaClassCPtr &metaClass) { for (const AbstractMetaField &f : metaClass->fields()) { if (!f.isStatic()) @@ -4842,7 +4846,7 @@ void CppGenerator::writeTpClearFunction(TextStream &s, const AbstractMetaClassCP << outdent << "}\n"; } -void CppGenerator::writeCopyFunction(TextStream &s, const GeneratorContext &context) const +void CppGenerator::writeCopyFunction(TextStream &s, const GeneratorContext &context) { const auto metaClass = context.metaClass(); const QString className = chopType(cpythonTypeName(metaClass)); @@ -4869,7 +4873,7 @@ static inline void writeGetterFunctionStart(TextStream &s, const QString &funcNa } QString CppGenerator::cppFieldAccess(const AbstractMetaField &metaField, - const GeneratorContext &context) const + const GeneratorContext &context) { QString result; QTextStream str(&result); @@ -4883,7 +4887,7 @@ QString CppGenerator::cppFieldAccess(const AbstractMetaField &metaField, void CppGenerator::writeGetterFunction(TextStream &s, const AbstractMetaField &metaField, - const GeneratorContext &context) const + const GeneratorContext &context) { writeGetterFunctionStart(s, cpythonGetterFunctionName(metaField)); @@ -4957,8 +4961,9 @@ void CppGenerator::writeGetterFunction(TextStream &s, } // Write a getter for QPropertySpec -void CppGenerator::writeGetterFunction(TextStream &s, const QPropertySpec &property, - const GeneratorContext &context) const +void CppGenerator::writeGetterFunction(TextStream &s, + const QPropertySpec &property, + const GeneratorContext &context) { writeGetterFunctionStart(s, cpythonGetterFunctionName(property, context.metaClass())); writeCppSelfDefinition(s, context); @@ -4972,10 +4977,11 @@ void CppGenerator::writeGetterFunction(TextStream &s, const QPropertySpec &prope } // Write setter function preamble (type checks on "pyIn") -void CppGenerator::writeSetterFunctionPreamble(TextStream &s, const QString &name, +void CppGenerator::writeSetterFunctionPreamble(TextStream &s, + const QString &name, const QString &funcName, const AbstractMetaType &type, - const GeneratorContext &context) const + const GeneratorContext &context) { s << "static int " << funcName << "(PyObject *self, PyObject *pyIn, void *)\n" << "{\n" << indent; @@ -4999,7 +5005,7 @@ void CppGenerator::writeSetterFunctionPreamble(TextStream &s, const QString &nam void CppGenerator::writeSetterFunction(TextStream &s, const AbstractMetaField &metaField, - const GeneratorContext &context) const + const GeneratorContext &context) { const AbstractMetaType &fieldType = metaField.type(); writeSetterFunctionPreamble(s, metaField.name(), cpythonSetterFunctionName(metaField), @@ -5031,10 +5037,12 @@ void CppGenerator::writeSetterFunction(TextStream &s, } // Write a setter for QPropertySpec -void CppGenerator::writeSetterFunction(TextStream &s, const QPropertySpec &property, - const GeneratorContext &context) const +void CppGenerator::writeSetterFunction(TextStream &s, + const QPropertySpec &property, + const GeneratorContext &context) { - writeSetterFunctionPreamble(s, property.name(), + writeSetterFunctionPreamble(s, + property.name(), cpythonSetterFunctionName(property, context.metaClass()), property.type(), context); @@ -5048,7 +5056,7 @@ void CppGenerator::writeSetterFunction(TextStream &s, const QPropertySpec &prope void CppGenerator::writeRichCompareFunctionHeader(TextStream &s, const QString &baseName, - const GeneratorContext &context) const + const GeneratorContext &context) { s << "static PyObject * "; s << baseName << "_richcompare(PyObject *self, PyObject *" << PYTHON_ARG @@ -5405,7 +5413,7 @@ void CppGenerator::writeSignatureInfo(TextStream &s, const OverloadData &overloa } } -void CppGenerator::writeEnumsInitialization(TextStream &s, AbstractMetaEnumList &enums) const +void CppGenerator::writeEnumsInitialization(TextStream &s, AbstractMetaEnumList &enums) { if (enums.isEmpty()) return; @@ -5437,7 +5445,7 @@ static qsizetype maxLineLength(const QStringList &list) return result; } -bool CppGenerator::writeEnumInitialization(TextStream &s, const AbstractMetaEnum &cppEnum) const +bool CppGenerator::writeEnumInitialization(TextStream &s, const AbstractMetaEnum &cppEnum) { const auto enclosingClass = cppEnum.targetLangEnclosingClass(); const bool hasUpperEnclosingClass = enclosingClass @@ -5645,7 +5653,7 @@ void CppGenerator::writeSignatureStrings(TextStream &s, // Return the class name for which to invoke the destructor QString CppGenerator::destructorClassName(const AbstractMetaClassCPtr &metaClass, - const GeneratorContext &classContext) const + const GeneratorContext &classContext) { if (metaClass->isNamespace() || metaClass->hasPrivateDestructor()) return {}; @@ -6002,7 +6010,7 @@ void CppGenerator::writeTypeDiscoveryFunction(TextStream &s, } void CppGenerator::writeSetattroDefinition(TextStream &s, - const AbstractMetaClassCPtr &metaClass) const + const AbstractMetaClassCPtr &metaClass) { s << "static int " << ShibokenGenerator::cpythonSetattroFunctionName(metaClass) << "(PyObject *self, PyObject *name, PyObject *value)\n{\n" << indent; @@ -6073,7 +6081,7 @@ static QString smartPointerGetter(const GeneratorContext &context) } void CppGenerator::writeSmartPointerSetattroFunction(TextStream &s, - const GeneratorContext &context) const + const GeneratorContext &context) { Q_ASSERT(context.forSmartPointer()); writeSetattroDefinition(s, context.metaClass()); @@ -6230,7 +6238,7 @@ void CppGenerator::writeNbBoolExpression(TextStream &s, const BoolCastFunction & void CppGenerator::writeNbBoolFunction(const GeneratorContext &context, const BoolCastFunction &f, - TextStream &s) const + TextStream &s) { s << "static int " << cpythonBaseName(context.metaClass()) << "___nb_bool(PyObject *self)\n" << "{\n" << indent; @@ -6839,7 +6847,7 @@ void CppGenerator::writeReturnValueHeuristics(TextStream &s, const AbstractMetaF } } -void CppGenerator::writeHashFunction(TextStream &s, const GeneratorContext &context) const +void CppGenerator::writeHashFunction(TextStream &s, const GeneratorContext &context) { const auto metaClass = context.metaClass(); const char hashType[] = "Py_hash_t"; @@ -6934,7 +6942,7 @@ void CppGenerator::writeIndexError(TextStream &s, const QString &errorMsg, QString CppGenerator::writeReprFunction(TextStream &s, const GeneratorContext &context, - uint indirections) const + uint indirections) { const auto metaClass = context.metaClass(); QString funcName = cpythonBaseName(metaClass) + reprFunction(); diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.h b/sources/shiboken6/generator/shiboken/cppgenerator.h index 72d9d707d..110326f5c 100644 --- a/sources/shiboken6/generator/shiboken/cppgenerator.h +++ b/sources/shiboken6/generator/shiboken/cppgenerator.h @@ -58,21 +58,22 @@ private: static void writeCacheResetNative(TextStream &s, const GeneratorContext &classContext); void writeConstructorNative(TextStream &s, const GeneratorContext &classContext, const AbstractMetaFunctionCPtr &func) const; - void writeDestructorNative(TextStream &s, const GeneratorContext &classContext) const; + static void writeDestructorNative(TextStream &s, const GeneratorContext &classContext); QString getVirtualFunctionReturnTypeName(const AbstractMetaFunctionCPtr &func) const; static QPair<QString, QChar> virtualMethodNativeArg(const AbstractMetaFunctionCPtr &func, const AbstractMetaArgument &arg); - void writeVirtualMethodNativeVectorCallArgs(TextStream &s, - const AbstractMetaFunctionCPtr &func, - const AbstractMetaArgumentList &arguments, - const QList<int> &invalidateArgs) const; - void writeVirtualMethodNativeArgs(TextStream &s, - const AbstractMetaFunctionCPtr &func, - const AbstractMetaArgumentList &arguments, - const QList<int> &invalidateArgs) const; - void writeVirtualMethodNative(TextStream &s, const AbstractMetaFunctionCPtr &func, + static void writeVirtualMethodNativeVectorCallArgs(TextStream &s, + const AbstractMetaFunctionCPtr &func, + const AbstractMetaArgumentList &arguments, + const QList<int> &invalidateArgs); + static void writeVirtualMethodNativeArgs(TextStream &s, + const AbstractMetaFunctionCPtr &func, + const AbstractMetaArgumentList &arguments, + const QList<int> &invalidateArgs); + void writeVirtualMethodNative(TextStream &s, + const AbstractMetaFunctionCPtr &func, int cacheIndex) const; void writeVirtualMethodCppCall(TextStream &s, const AbstractMetaFunctionCPtr &func, const QString &funcName, const QList<CodeSnip> &snips, @@ -117,11 +118,13 @@ private: void writeSmartPointerConverterFunctions(TextStream &s, const AbstractMetaType &smartPointerType) const; - bool needsArgumentErrorHandling(const OverloadData &overloadData) const; - void writeMethodWrapperPreamble(TextStream &s, const OverloadData &overloadData, - const GeneratorContext &context, - ErrorReturn errorReturn = ErrorReturn::Default) const; - void writeConstructorWrapper(TextStream &s, const OverloadData &overloadData, + static bool needsArgumentErrorHandling(const OverloadData &overloadData); + static void writeMethodWrapperPreamble(TextStream &s, + const OverloadData &overloadData, + const GeneratorContext &context, + ErrorReturn errorReturn = ErrorReturn::Default); + void writeConstructorWrapper(TextStream &s, + const OverloadData &overloadData, const GeneratorContext &classContext) const; void writeMethodWrapper(TextStream &s, const OverloadData &overloadData, const GeneratorContext &classContext) const; @@ -141,17 +144,18 @@ private: const GeneratorContext &, ErrorReturn errorReturn = ErrorReturn::Default, CppSelfDefinitionFlags flags = {}); - void writeCppSelfDefinition(TextStream &s, - const AbstractMetaFunctionCPtr &func, - const GeneratorContext &context, - ErrorReturn errorReturn = ErrorReturn::Default, - CppSelfDefinitionFlags flags = {}) const; - void writeCppSelfDefinition(TextStream &s, - const GeneratorContext &context, - ErrorReturn errorReturn = ErrorReturn::Default, - CppSelfDefinitionFlags flags = {}) const; - - static void writeErrorSection(TextStream &s, const OverloadData &overloadData, + static void writeCppSelfDefinition(TextStream &s, + const AbstractMetaFunctionCPtr &func, + const GeneratorContext &context, + ErrorReturn errorReturn = ErrorReturn::Default, + CppSelfDefinitionFlags flags = {}); + static void writeCppSelfDefinition(TextStream &s, + const GeneratorContext &context, + ErrorReturn errorReturn = ErrorReturn::Default, + CppSelfDefinitionFlags flags = {}); + + static void writeErrorSection(TextStream &s, + const OverloadData &overloadData, ErrorReturn errorReturn); static QString returnErrorWrongArguments(const OverloadData &overloadData, @@ -176,11 +180,12 @@ private: static void writeTypeDiscoveryFunction(TextStream &s, const AbstractMetaClassCPtr &metaClass); - void writeSetattroDefinition(TextStream &s, const AbstractMetaClassCPtr &metaClass) const; + static void writeSetattroDefinition(TextStream &s, const AbstractMetaClassCPtr &metaClass); static void writeSetattroDefaultReturn(TextStream &s); - void writeSmartPointerSetattroFunction(TextStream &s, - const GeneratorContext &context) const; - void writeSetattroFunction(TextStream &s, AttroCheck attroCheck, + static void writeSmartPointerSetattroFunction(TextStream &s, + const GeneratorContext &context); + void writeSetattroFunction(TextStream &s, + AttroCheck attroCheck, const GeneratorContext &context) const; static void writeGetattroDefinition(TextStream &s, const AbstractMetaClassCPtr &metaClass); static void writeSmartPointerGetattroFunction(TextStream &s, @@ -190,11 +195,10 @@ private: const GeneratorContext &context) const; QString qObjectGetAttroFunction() const; - void writeNbBoolFunction(const GeneratorContext &context, - const BoolCastFunction &f, - TextStream &s) const; - static void writeNbBoolExpression(TextStream &s, const BoolCastFunction &f, - bool invert = false); + static void writeNbBoolFunction(const GeneratorContext &context, + const BoolCastFunction &f, + TextStream &s); + static void writeNbBoolExpression(TextStream &s, const BoolCastFunction &f, bool invert = false); /** * Writes Python to C++ conversions for arguments on Python wrappers. @@ -344,9 +348,11 @@ private: const QString &pythonToCppFunc, const QString &isConvertibleFunc); - void writeNamedArgumentResolution(TextStream &s, const AbstractMetaFunctionCPtr &func, - bool usePyArgs, const OverloadData &overloadData, - ErrorReturn errorReturn) const; + static void writeNamedArgumentResolution(TextStream &s, + const AbstractMetaFunctionCPtr &func, + bool usePyArgs, + const OverloadData &overloadData, + ErrorReturn errorReturn); /// Returns a string containing the name of an argument for the given function and argument index. static QString argumentNameFromIndex(const ApiExtractorResult &api, @@ -374,8 +380,8 @@ private: const AbstractMetaClassCPtr &metaClass, const GeneratorContext &classContext, const QString &signatures) const; - QString destructorClassName(const AbstractMetaClassCPtr &metaClass, - const GeneratorContext &classContext) const; + static QString destructorClassName(const AbstractMetaClassCPtr &metaClass, + const GeneratorContext &classContext); static void writeStaticFieldInitialization(TextStream &s, const AbstractMetaClassCPtr &metaClass); void writeClassDefinition(TextStream &s, @@ -405,36 +411,36 @@ private: static void writeTpTraverseFunction(TextStream &s, const AbstractMetaClassCPtr &metaClass); static void writeTpClearFunction(TextStream &s, const AbstractMetaClassCPtr &metaClass); - void writeCopyFunction(TextStream &s, const GeneratorContext &context) const; - - QString cppFieldAccess(const AbstractMetaField &metaField, - const GeneratorContext &context) const; - void writeGetterFunction(TextStream &s, - const AbstractMetaField &metaField, - const GeneratorContext &context) const; - void writeGetterFunction(TextStream &s, - const QPropertySpec &property, - const GeneratorContext &context) const; - void writeSetterFunctionPreamble(TextStream &s, - const QString &name, - const QString &funcName, - const AbstractMetaType &type, - const GeneratorContext &context) const; - void writeSetterFunction(TextStream &s, - const AbstractMetaField &metaField, - const GeneratorContext &context) const; - void writeSetterFunction(TextStream &s, - const QPropertySpec &property, - const GeneratorContext &context) const; - - void writeRichCompareFunctionHeader(TextStream &s, - const QString &baseName, - const GeneratorContext &context) const; + static void writeCopyFunction(TextStream &s, const GeneratorContext &context); + + static QString cppFieldAccess(const AbstractMetaField &metaField, + const GeneratorContext &context); + static void writeGetterFunction(TextStream &s, + const AbstractMetaField &metaField, + const GeneratorContext &context); + static void writeGetterFunction(TextStream &s, + const QPropertySpec &property, + const GeneratorContext &context); + static void writeSetterFunctionPreamble(TextStream &s, + const QString &name, + const QString &funcName, + const AbstractMetaType &type, + const GeneratorContext &context); + static void writeSetterFunction(TextStream &s, + const AbstractMetaField &metaField, + const GeneratorContext &context); + static void writeSetterFunction(TextStream &s, + const QPropertySpec &property, + const GeneratorContext &context); + + static void writeRichCompareFunctionHeader(TextStream &s, + const QString &baseName, + const GeneratorContext &context); void writeRichCompareFunction(TextStream &s, const GeneratorContext &context) const; void writeSmartPointerRichCompareFunction(TextStream &s, const GeneratorContext &context) const; - void writeEnumsInitialization(TextStream &s, AbstractMetaEnumList &enums) const; - bool writeEnumInitialization(TextStream &s, const AbstractMetaEnum &metaEnum) const; + static void writeEnumsInitialization(TextStream &s, AbstractMetaEnumList &enums); + static bool writeEnumInitialization(TextStream &s, const AbstractMetaEnum &metaEnum); static void writeSignalInitialization(TextStream &s, const AbstractMetaClassCPtr &metaClass); @@ -449,7 +455,8 @@ private: static void writePrimitiveConverterInitialization(TextStream &s, const CustomConversionPtr &customConversion); static void writeEnumConverterInitialization(TextStream &s, const AbstractMetaEnum &metaEnum); - QString writeContainerConverterInitialization(TextStream &s, const AbstractMetaType &type) const; + static QString writeContainerConverterInitialization(TextStream &s, + const AbstractMetaType &type); void writeSmartPointerConverterInitialization(TextStream &s, const AbstractMetaType &ype) const; static void writeExtendedConverterInitialization(TextStream &s, const TypeEntryCPtr &externalType, @@ -477,7 +484,7 @@ private: static QStringList getAncestorMultipleInheritance(const AbstractMetaClassCPtr &metaClass); /// Returns true if the given class supports the python number protocol - bool supportsNumberProtocol(const AbstractMetaClassCPtr &metaClass) const; + static bool supportsNumberProtocol(const AbstractMetaClassCPtr &metaClass); /// Returns true if the given class supports the python sequence protocol static bool supportsSequenceProtocol(const AbstractMetaClassCPtr &metaClass) ; @@ -486,9 +493,9 @@ private: static bool supportsMappingProtocol(const AbstractMetaClassCPtr &metaClass) ; /// Returns true if generator should produce getters and setters for the given class. - bool shouldGenerateGetSetList(const AbstractMetaClassCPtr &metaClass) const; + static bool shouldGenerateGetSetList(const AbstractMetaClassCPtr &metaClass); - void writeHashFunction(TextStream &s, const GeneratorContext &context) const; + static void writeHashFunction(TextStream &s, const GeneratorContext &context); /// Write default implementations for sequence protocol void writeDefaultSequenceMethods(TextStream &s, const GeneratorContext &context) const; @@ -496,8 +503,9 @@ private: static void writeIndexError(TextStream &s, const QString &errorMsg, ErrorReturn errorReturn); - QString writeReprFunction(TextStream &s, const GeneratorContext &context, - uint indirections) const; + static QString writeReprFunction(TextStream &s, + const GeneratorContext &context, + uint indirections); static bool hasBoolCast(const AbstractMetaClassCPtr &metaClass) { return boolCast(metaClass).has_value(); } diff --git a/sources/shiboken6/generator/shiboken/headergenerator.cpp b/sources/shiboken6/generator/shiboken/headergenerator.cpp index 4d02bda3d..762ff4b19 100644 --- a/sources/shiboken6/generator/shiboken/headergenerator.cpp +++ b/sources/shiboken6/generator/shiboken/headergenerator.cpp @@ -76,7 +76,7 @@ QString HeaderGenerator::fileNameForContext(const GeneratorContext &context) con } void HeaderGenerator::writeCopyCtor(TextStream &s, - const AbstractMetaClassCPtr &metaClass) const + const AbstractMetaClassCPtr &metaClass) { s << wrapperName(metaClass) << "(const " << metaClass->qualifiedCppName() << "& self) : " << metaClass->qualifiedCppName() << "(self)\n{\n}\n\n"; @@ -848,13 +848,13 @@ void HeaderGenerator::writeTypeFunctions(TextStream &s, const QString &typeFunct s << "QT_WARNING_POP\n"; } -void HeaderGenerator::writeProtectedEnumSurrogate(TextStream &s, const AbstractMetaEnum &cppEnum) const +void HeaderGenerator::writeProtectedEnumSurrogate(TextStream &s, const AbstractMetaEnum &cppEnum) { if (avoidProtectedHack() && cppEnum.isProtected()) s << "enum " << protectedEnumSurrogateName(cppEnum) << " {};\n"; } -void HeaderGenerator::writeSbkTypeFunction(TextStream &s, const AbstractMetaEnum &cppEnum) const +void HeaderGenerator::writeSbkTypeFunction(TextStream &s, const AbstractMetaEnum &cppEnum) { const QString enumName = avoidProtectedHack() && cppEnum.isProtected() ? protectedEnumSurrogateName(cppEnum) diff --git a/sources/shiboken6/generator/shiboken/headergenerator.h b/sources/shiboken6/generator/shiboken/headergenerator.h index 6bb474cfd..5b5f5a4a1 100644 --- a/sources/shiboken6/generator/shiboken/headergenerator.h +++ b/sources/shiboken6/generator/shiboken/headergenerator.h @@ -30,25 +30,26 @@ protected: private: using InheritedOverloadSet = QSet<AbstractMetaFunctionCPtr>; - void writeCopyCtor(TextStream &s, const AbstractMetaClassCPtr &metaClass) const; - void writeFunction(TextStream &s, const AbstractMetaFunctionCPtr &func, + static void writeCopyCtor(TextStream &s, const AbstractMetaClassCPtr &metaClass); + void writeFunction(TextStream &s, + const AbstractMetaFunctionCPtr &func, InheritedOverloadSet *inheritedOverloads, FunctionGeneration generation) const; - void writeSbkTypeFunction(TextStream &s, const AbstractMetaEnum &cppEnum) const; + static void writeSbkTypeFunction(TextStream &s, const AbstractMetaEnum &cppEnum); static void writeSbkTypeFunction(TextStream &s, const AbstractMetaClassCPtr &cppClass); static void writeSbkTypeFunction(TextStream &s, const AbstractMetaType &metaType); void writeTypeIndexValueLine(TextStream &s, const ApiExtractorResult &api, const TypeEntryCPtr &typeEntry); void writeTypeIndexValueLines(TextStream &s, const ApiExtractorResult &api, const AbstractMetaClassCPtr &metaClass); - void writeProtectedEnumSurrogate(TextStream &s, const AbstractMetaEnum &cppEnum) const; + static void writeProtectedEnumSurrogate(TextStream &s, const AbstractMetaEnum &cppEnum); void writeMemberFunctionWrapper(TextStream &s, const AbstractMetaFunctionCPtr &func, const QString &postfix = {}) const; void writePrivateHeader(const QString &moduleHeaderDir, const QString &publicIncludeShield, const ModuleHeaderParameters ¶meters); - void writeTypeFunctions(TextStream &s, const QString &typeFunctions); + static void writeTypeFunctions(TextStream &s, const QString &typeFunctions); void writeWrapperClassDeclaration(TextStream &s, const QString &wrapperName, const GeneratorContext &classContext) const; diff --git a/sources/shiboken6/generator/shiboken/shibokengenerator.cpp b/sources/shiboken6/generator/shiboken/shibokengenerator.cpp index f9f52a257..cf6b1f79a 100644 --- a/sources/shiboken6/generator/shiboken/shibokengenerator.cpp +++ b/sources/shiboken6/generator/shiboken/shibokengenerator.cpp @@ -206,7 +206,7 @@ QString ShibokenGenerator::translateTypeForWrapperMethod(const AbstractMetaType return translateType(cType, context, options); } -bool ShibokenGenerator::shouldGenerateCppWrapper(const AbstractMetaClassCPtr &metaClass) const +bool ShibokenGenerator::shouldGenerateCppWrapper(const AbstractMetaClassCPtr &metaClass) { const auto wrapper = metaClass->cppWrapper(); return wrapper.testFlag(AbstractMetaClass::CppVirtualMethodWrapper) @@ -214,8 +214,8 @@ bool ShibokenGenerator::shouldGenerateCppWrapper(const AbstractMetaClassCPtr &me && wrapper.testFlag(AbstractMetaClass::CppProtectedHackWrapper)); } -ShibokenGenerator::FunctionGeneration - ShibokenGenerator::functionGeneration(const AbstractMetaFunctionCPtr &func) const +ShibokenGenerator::FunctionGeneration ShibokenGenerator::functionGeneration( + const AbstractMetaFunctionCPtr &func) { FunctionGeneration result; @@ -299,7 +299,7 @@ AbstractMetaFunctionCList ShibokenGenerator::implicitConversions(const TypeEntry return result; } -QString ShibokenGenerator::wrapperName(const AbstractMetaClassCPtr &metaClass) const +QString ShibokenGenerator::wrapperName(const AbstractMetaClassCPtr &metaClass) { Q_ASSERT(shouldGenerateCppWrapper(metaClass)); QString result = metaClass->name(); @@ -1807,8 +1807,8 @@ bool ShibokenGenerator::useOverrideCaching(const AbstractMetaClassCPtr &metaClas return metaClass->isPolymorphic(); } -ShibokenGenerator::AttroCheck - ShibokenGenerator::checkAttroFunctionNeeds(const AbstractMetaClassCPtr &metaClass) const +ShibokenGenerator::AttroCheck ShibokenGenerator::checkAttroFunctionNeeds( + const AbstractMetaClassCPtr &metaClass) { AttroCheck result; if (metaClass->typeEntry()->isSmartPointer()) { diff --git a/sources/shiboken6/generator/shiboken/shibokengenerator.h b/sources/shiboken6/generator/shiboken/shibokengenerator.h index b8d8263ac..962b00eaf 100644 --- a/sources/shiboken6/generator/shiboken/shibokengenerator.h +++ b/sources/shiboken6/generator/shiboken/shibokengenerator.h @@ -172,7 +172,7 @@ protected: getMultipleInheritingClass(const AbstractMetaClassCPtr &metaClass); static bool useOverrideCaching(const AbstractMetaClassCPtr &metaClass); - AttroCheck checkAttroFunctionNeeds(const AbstractMetaClassCPtr &metaClass) const; + static AttroCheck checkAttroFunctionNeeds(const AbstractMetaClassCPtr &metaClass); /// Returns a list of methods of the given class where each one is part of /// a different overload with both static and non-static method. @@ -199,15 +199,15 @@ protected: /// Verifies if the class should have a C++ wrapper generated for it, /// instead of only a Python wrapper. - bool shouldGenerateCppWrapper(const AbstractMetaClassCPtr &metaClass) const; + static bool shouldGenerateCppWrapper(const AbstractMetaClassCPtr &metaClass); /// Returns which functions need to be generated into the wrapper class - FunctionGeneration functionGeneration(const AbstractMetaFunctionCPtr &func) const; + static FunctionGeneration functionGeneration(const AbstractMetaFunctionCPtr &func); // Return a list of implicit conversions if generation is enabled. AbstractMetaFunctionCList implicitConversions(const TypeEntryCPtr &t) const; - QString wrapperName(const AbstractMetaClassCPtr &metaClass) const; + static QString wrapperName(const AbstractMetaClassCPtr &metaClass); static QString fullPythonClassName(const AbstractMetaClassCPtr &metaClass); |