diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-11-25 08:03:23 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-11-25 11:43:14 +0000 |
commit | fcc2431ab132519a0038b6702372d8460d7cd635 (patch) | |
tree | 25933ed2fd3a8e5a850e2877b26755d613eaf4c7 /sources/shiboken6/generator | |
parent | 30620db0941a36298b194d7bfbf5213ba4eb8bba (diff) |
Replace QVector by QList
Change AbstractMetaClass::templateArguments()
to return TypeEntries (const TypeEntry *) instead
non-const.
Remove redundant typedef OverloadData::MetaFunctionList.
Use existing typedefs in some places.
Add new typedefs for MetaObjectBuilder::EnumValues and
AbstractMetaFunctionCList.
Change-Id: Ia241b5fbe54d60ea57175fb1f6c844604e066a3d
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken6/generator')
9 files changed, 54 insertions, 55 deletions
diff --git a/sources/shiboken6/generator/generator.cpp b/sources/shiboken6/generator/generator.cpp index 9e6c6c7ac..0c986661b 100644 --- a/sources/shiboken6/generator/generator.cpp +++ b/sources/shiboken6/generator/generator.cpp @@ -174,8 +174,8 @@ struct Generator::GeneratorPrivate QString licenseComment; QString moduleName; QStringList instantiatedContainersNames; - QVector<AbstractMetaType> instantiatedContainers; - QVector<AbstractMetaType> instantiatedSmartPointers; + AbstractMetaTypeList instantiatedContainers; + AbstractMetaTypeList instantiatedSmartPointers; AbstractMetaClassList m_invisibleTopNamespaces; }; @@ -332,12 +332,12 @@ void Generator::collectInstantiatedContainersAndSmartPointers() collectInstantiatedContainersAndSmartPointers(metaClass); } -QVector<AbstractMetaType> Generator::instantiatedContainers() const +AbstractMetaTypeList Generator::instantiatedContainers() const { return m_d->instantiatedContainers; } -QVector<AbstractMetaType> Generator::instantiatedSmartPointers() const +AbstractMetaTypeList Generator::instantiatedSmartPointers() const { return m_d->instantiatedSmartPointers; } diff --git a/sources/shiboken6/generator/generator.h b/sources/shiboken6/generator/generator.h index 7a14eabab..28120b5b4 100644 --- a/sources/shiboken6/generator/generator.h +++ b/sources/shiboken6/generator/generator.h @@ -35,7 +35,7 @@ #include <QtCore/QObject> #include <QtCore/QSharedPointer> #include <QtCore/QTextStream> -#include <QtCore/QVector> +#include <QtCore/QList> #include <optional> @@ -185,7 +185,7 @@ class Generator { public: using OptionDescription = QPair<QString, QString>; - using OptionDescriptions = QVector<OptionDescription>; + using OptionDescriptions = QList<OptionDescription>; /// Optiosn used around the generator code enum Option { @@ -386,8 +386,8 @@ protected: */ virtual QString subDirectoryForPackage(QString packageName = QString()) const; - QVector<AbstractMetaType> instantiatedContainers() const; - QVector<AbstractMetaType> instantiatedSmartPointers() const; + AbstractMetaTypeList instantiatedContainers() const; + AbstractMetaTypeList instantiatedSmartPointers() const; static QString getSimplifiedContainerTypeName(const AbstractMetaType &type); void addInstantiatedContainersAndSmartPointers(const AbstractMetaType &type, @@ -405,7 +405,7 @@ private: Q_DECLARE_OPERATORS_FOR_FLAGS(Generator::Options) using GeneratorPtr = QSharedPointer<Generator>; -using Generators = QVector<GeneratorPtr>; +using Generators = QList<GeneratorPtr>; #endif // GENERATOR_H diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.cpp b/sources/shiboken6/generator/shiboken/cppgenerator.cpp index f4c638de8..edf6bb4a4 100644 --- a/sources/shiboken6/generator/shiboken/cppgenerator.cpp +++ b/sources/shiboken6/generator/shiboken/cppgenerator.cpp @@ -216,8 +216,9 @@ QString CppGenerator::fileNameForContext(const GeneratorContext &context) const return fileNameBase + fileNameSuffix(); } -QVector<AbstractMetaFunctionList> CppGenerator::filterGroupedOperatorFunctions(const AbstractMetaClass *metaClass, - uint queryIn) +QList<AbstractMetaFunctionList> + CppGenerator::filterGroupedOperatorFunctions(const AbstractMetaClass *metaClass, + uint queryIn) { // ( func_name, num_args ) => func_list QMap<QPair<QString, int>, AbstractMetaFunctionList> results; @@ -240,7 +241,7 @@ QVector<AbstractMetaFunctionList> CppGenerator::filterGroupedOperatorFunctions(c QPair<QString, int > op(func->name(), args); results[op].append(func); } - QVector<AbstractMetaFunctionList> result; + QList<AbstractMetaFunctionList> result; result.reserve(results.size()); for (auto it = results.cbegin(), end = results.cend(); it != end; ++it) result.append(it.value()); @@ -410,7 +411,7 @@ void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classCon metaClass->getEnumsFromInvisibleNamespacesToBeGenerated(&classEnums); //Extra includes - QVector<Include> includes; + QList<Include> includes; if (!classContext.useWrapper()) includes += metaClass->typeEntry()->extraIncludes(); for (const AbstractMetaEnum &cppEnum : qAsConst(classEnums)) @@ -667,7 +668,7 @@ void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classCon } if (supportsNumberProtocol(metaClass) && !metaClass->typeEntry()->isSmartPointer()) { - const QVector<AbstractMetaFunctionList> opOverloads = filterGroupedOperatorFunctions( + const QList<AbstractMetaFunctionList> opOverloads = filterGroupedOperatorFunctions( metaClass, AbstractMetaClass::ArithmeticOp | AbstractMetaClass::LogicalOp @@ -2155,7 +2156,7 @@ void CppGenerator::writeArgumentsInitializer(TextStream &s, OverloadData &overlo s << '}'; } } - const QVector<int> invalidArgsLength = overloadData.invalidArgumentLengths(); + const QList<int> invalidArgsLength = overloadData.invalidArgumentLengths(); if (!invalidArgsLength.isEmpty()) { QStringList invArgsLen; for (int i : qAsConst(invalidArgsLength)) @@ -2409,7 +2410,7 @@ void CppGenerator::writeTypeCheck(TextStream &s, const OverloadData *overloadDat QSet<const TypeEntry *> numericTypes; const OverloadDataList &overloads = overloadData->previousOverloadData()->nextOverloadData(); for (OverloadData *od : overloads) { - const OverloadData::MetaFunctionList &odOverloads = od->overloads(); + const AbstractMetaFunctionCList &odOverloads = od->overloads(); for (const AbstractMetaFunction *func : odOverloads) { checkTypeViability(func); const AbstractMetaType &argType = od->argument(func)->type(); @@ -2655,7 +2656,7 @@ void CppGenerator::writeOverloadedFunctionDecisor(TextStream &s, const OverloadD { s << "// Overloaded function decisor\n"; const AbstractMetaFunction *rfunc = overloadData.referenceFunction(); - const OverloadData::MetaFunctionList &functionOverloads = overloadData.overloadsWithoutRepetition(); + const AbstractMetaFunctionCList &functionOverloads = overloadData.overloadsWithoutRepetition(); for (int i = 0; i < functionOverloads.count(); i++) { const auto func = functionOverloads.at(i); s << "// " << i << ": "; @@ -2697,7 +2698,7 @@ void CppGenerator::writeOverloadedFunctionDecisorEngine(TextStream &s, // variable to be used further on this method on the conditional that identifies default // method calls. if (!hasDefaultCall) { - const OverloadData::MetaFunctionList &overloads = parentOverloadData->overloads(); + const AbstractMetaFunctionCList &overloads = parentOverloadData->overloads(); for (const AbstractMetaFunction *func : overloads) { if (parentOverloadData->isFinalOccurrence(func)) { referenceFunction = func; @@ -2853,7 +2854,7 @@ void CppGenerator::writeOverloadedFunctionDecisorEngine(TextStream &s, void CppGenerator::writeFunctionCalls(TextStream &s, const OverloadData &overloadData, const GeneratorContext &context) const { - const OverloadData::MetaFunctionList &overloads = overloadData.overloadsWithoutRepetition(); + const AbstractMetaFunctionCList &overloads = overloadData.overloadsWithoutRepetition(); s << "// Call function/method\n" << (overloads.count() > 1 ? "switch (overloadId) " : "") << "{\n"; { @@ -3707,9 +3708,9 @@ void CppGenerator::writeMethodCall(TextStream &s, const AbstractMetaFunction *fu bool hasReturnPolicy = false; // Ownership transference between C++ and Python. - QVector<ArgumentModification> ownership_mods; + QList<ArgumentModification> ownership_mods; // Python object reference management. - QVector<ArgumentModification> refcount_mods; + QList<ArgumentModification> refcount_mods; for (const auto &func_mod : func->modifications()) { for (const ArgumentModification &arg_mod : func_mod.argument_mods()) { if (!arg_mod.ownerships.isEmpty() && arg_mod.ownerships.contains(TypeSystem::TargetLangCode)) @@ -4052,7 +4053,7 @@ void CppGenerator::writeSmartPointerConverterInitialization(TextStream &s, const } void CppGenerator::writeExtendedConverterInitialization(TextStream &s, const TypeEntry *externalType, - const QVector<const AbstractMetaClass *>& conversions) const + const AbstractMetaClassCList &conversions) const { s << "// Extended implicit conversions for " << externalType->qualifiedTargetLangName() << ".\n"; @@ -4450,7 +4451,7 @@ void CppGenerator::writeTypeAsNumberDefinition(TextStream &s, const AbstractMeta nb.insert(QLatin1String("__ixor__"), QString()); nb.insert(QLatin1String("__ior__"), QString()); - const QVector<AbstractMetaFunctionList> opOverloads = + const QList<AbstractMetaFunctionList> opOverloads = filterGroupedOperatorFunctions(metaClass, AbstractMetaClass::ArithmeticOp | AbstractMetaClass::LogicalOp @@ -4747,7 +4748,7 @@ void CppGenerator::writeRichCompareFunction(TextStream &s, s << "switch (op) {\n"; { Indentation indent(s); - const QVector<AbstractMetaFunctionList> &groupedFuncs = filterGroupedOperatorFunctions(metaClass, AbstractMetaClass::ComparisonOp); + const QList<AbstractMetaFunctionList> &groupedFuncs = filterGroupedOperatorFunctions(metaClass, AbstractMetaClass::ComparisonOp); for (const AbstractMetaFunctionList &overloads : groupedFuncs) { const AbstractMetaFunction *rfunc = overloads[0]; @@ -5950,7 +5951,7 @@ bool CppGenerator::finishGeneration() //Extra includes s << '\n' << "// Extra includes\n"; - QVector<Include> extraIncludes = moduleEntry->extraIncludes(); + QList<Include> extraIncludes = moduleEntry->extraIncludes(); for (const AbstractMetaEnum &cppEnum : qAsConst(globalEnums)) extraIncludes.append(cppEnum.typeEntry()->extraIncludes()); std::sort(extraIncludes.begin(), extraIncludes.end()); @@ -6041,7 +6042,7 @@ bool CppGenerator::finishGeneration() } } - const QVector<const CustomConversion *> &typeConversions = getPrimitiveCustomConversions(); + const QList<const CustomConversion *> &typeConversions = getPrimitiveCustomConversions(); if (!typeConversions.isEmpty()) { s << "\n// Primitive Type converters.\n\n"; for (const CustomConversion *conversion : typeConversions) { diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.h b/sources/shiboken6/generator/shiboken/cppgenerator.h index 43bdd2623..32e44ce59 100644 --- a/sources/shiboken6/generator/shiboken/cppgenerator.h +++ b/sources/shiboken6/generator/shiboken/cppgenerator.h @@ -44,7 +44,7 @@ public: protected: QString fileNameSuffix() const override; QString fileNameForContext(const GeneratorContext &context) const override; - static QVector<AbstractMetaFunctionList> + static QList<AbstractMetaFunctionList> filterGroupedOperatorFunctions(const AbstractMetaClass *metaClass, uint query); void generateClass(TextStream &s, const GeneratorContext &classContext) override; bool finishGeneration() override; @@ -354,7 +354,7 @@ private: void writeContainerConverterInitialization(TextStream &s, const AbstractMetaType &type) const; void writeSmartPointerConverterInitialization(TextStream &s, const AbstractMetaType &ype) const; void writeExtendedConverterInitialization(TextStream &s, const TypeEntry *externalType, - const QVector<const AbstractMetaClass *>& conversions) const; + const AbstractMetaClassCList &conversions) const; void writeParentChildManagement(TextStream &s, const AbstractMetaFunction *func, bool userHeuristicForReturn) const; bool writeParentChildManagement(TextStream &s, const AbstractMetaFunction *func, int argIndex, bool userHeuristicPolicy) const; diff --git a/sources/shiboken6/generator/shiboken/headergenerator.cpp b/sources/shiboken6/generator/shiboken/headergenerator.cpp index aa5c885d9..05c76b4d8 100644 --- a/sources/shiboken6/generator/shiboken/headergenerator.cpp +++ b/sources/shiboken6/generator/shiboken/headergenerator.cpp @@ -354,7 +354,7 @@ void HeaderGenerator::writeTypeIndexValueLines(TextStream &s, const AbstractMeta // Format the typedefs for the typedef entries to be generated static void formatTypeDefEntries(TextStream &s) { - QVector<const TypedefEntry *> entries; + QList<const TypedefEntry *> entries; const auto typeDbEntries = TypeDatabase::instance()->typedefEntries(); for (auto it = typeDbEntries.cbegin(), end = typeDbEntries.cend(); it != end; ++it) { if (it.value()->generateCode() != 0) @@ -408,7 +408,7 @@ bool HeaderGenerator::finishGeneration() // Write the smart pointer define indexes. int smartPointerCountIndex = getMaxTypeIndex(); int smartPointerCount = 0; - const QVector<AbstractMetaType> &instantiatedSmartPtrs = instantiatedSmartPointers(); + const AbstractMetaTypeList &instantiatedSmartPtrs = instantiatedSmartPointers(); for (const AbstractMetaType &metaType : instantiatedSmartPtrs) { QString indexName = getTypeIndexVariableName(metaType); _writeTypeIndexValue(macrosStream, indexName, smartPointerCountIndex); @@ -453,7 +453,7 @@ bool HeaderGenerator::finishGeneration() _writeTypeIndexValueLine(macrosStream, getTypeIndexVariableName(ptype), pCount++); } - const QVector<AbstractMetaType> &containers = instantiatedContainers(); + const AbstractMetaTypeList &containers = instantiatedContainers(); for (const AbstractMetaType &container : containers) { _writeTypeIndexValue(macrosStream, getTypeIndexVariableName(container), pCount); macrosStream << ", // " << container.cppSignature() << '\n'; diff --git a/sources/shiboken6/generator/shiboken/overloaddata.cpp b/sources/shiboken6/generator/shiboken/overloaddata.cpp index 358507f76..6113cdda1 100644 --- a/sources/shiboken6/generator/shiboken/overloaddata.cpp +++ b/sources/shiboken6/generator/shiboken/overloaddata.cpp @@ -157,7 +157,7 @@ static QString getImplicitConversionTypeName(const AbstractMetaType &containerTy // overloaddata.cpp static QString msgCyclicDependency(const QString &funcName, const QString &graphName, const AbstractMetaFunctionCList &cyclic, - const OverloadData::MetaFunctionList &involvedConversions) + const AbstractMetaFunctionCList &involvedConversions) { QString result; QTextStream str(&result); @@ -301,7 +301,7 @@ void OverloadData::sortNextOverloads() QStringList classesWithIntegerImplicitConversion; - MetaFunctionList involvedConversions; + AbstractMetaFunctionCList involvedConversions; for (OverloadData *ov : qAsConst(m_nextOverloadData)) { const AbstractMetaType &targetType = ov->argType(); @@ -739,9 +739,9 @@ bool OverloadData::isFinalOccurrence(const AbstractMetaFunction *func) const return true; } -OverloadData::MetaFunctionList OverloadData::overloadsWithoutRepetition() const +AbstractMetaFunctionCList OverloadData::overloadsWithoutRepetition() const { - MetaFunctionList overloads = m_overloads; + AbstractMetaFunctionCList overloads = m_overloads; for (const AbstractMetaFunction *func : m_overloads) { if (func->minimalSignature().endsWith(QLatin1String("const"))) continue; @@ -769,7 +769,7 @@ const AbstractMetaFunction *OverloadData::getFunctionWithDefaultValue() const return nullptr; } -QVector<int> OverloadData::invalidArgumentLengths() const +QList<int> OverloadData::invalidArgumentLengths() const { QSet<int> validArgLengths; @@ -787,7 +787,7 @@ QVector<int> OverloadData::invalidArgumentLengths() const validArgLengths << args.size() - offset; } - QVector<int> invalidArgLengths; + QList<int> invalidArgLengths; for (int i = minArgs() + 1; i < maxArgs(); i++) { if (!validArgLengths.contains(i)) invalidArgLengths.append(i); diff --git a/sources/shiboken6/generator/shiboken/overloaddata.h b/sources/shiboken6/generator/shiboken/overloaddata.h index 2507c3213..86f76843f 100644 --- a/sources/shiboken6/generator/shiboken/overloaddata.h +++ b/sources/shiboken6/generator/shiboken/overloaddata.h @@ -31,20 +31,18 @@ #include <abstractmetalang_typedefs.h> #include <QtCore/QBitArray> -#include <QtCore/QVector> +#include <QtCore/QList> QT_FORWARD_DECLARE_CLASS(QDebug) class ShibokenGenerator; class OverloadData; -using OverloadDataList = QVector<OverloadData *>; +using OverloadDataList = QList<OverloadData *>; class OverloadData { public: - using MetaFunctionList = QVector<const AbstractMetaFunction *>; - OverloadData(const AbstractMetaFunctionList &overloads, const ShibokenGenerator *generator); ~OverloadData(); @@ -102,12 +100,12 @@ public: bool isFinalOccurrence(const AbstractMetaFunction *func) const; /// Returns the list of overloads removing repeated constant functions (ex.: "foo()" and "foo()const", the second is removed). - MetaFunctionList overloadsWithoutRepetition() const; - const MetaFunctionList &overloads() const { return m_overloads; } + AbstractMetaFunctionCList overloadsWithoutRepetition() const; + const AbstractMetaFunctionCList &overloads() const { return m_overloads; } OverloadDataList nextOverloadData() const { return m_nextOverloadData; } OverloadData *previousOverloadData() const { return m_previousOverloadData; } - QVector<int> invalidArgumentLengths() const; + QList<int> invalidArgumentLengths() const; static int numberOfRemovedArguments(const AbstractMetaFunction *func, int finalArgPos = -1); static QPair<int, int> getMinMaxArguments(const AbstractMetaFunctionList &overloads); @@ -149,7 +147,7 @@ private: int m_argPos; AbstractMetaType m_argType; QString m_argTypeReplaced; - MetaFunctionList m_overloads; + AbstractMetaFunctionCList m_overloads; OverloadData *m_headOverloadData; OverloadDataList m_nextOverloadData; diff --git a/sources/shiboken6/generator/shiboken/shibokengenerator.cpp b/sources/shiboken6/generator/shiboken/shibokengenerator.cpp index 199875e7e..3e8153175 100644 --- a/sources/shiboken6/generator/shiboken/shibokengenerator.cpp +++ b/sources/shiboken6/generator/shiboken/shibokengenerator.cpp @@ -1519,9 +1519,9 @@ ShibokenGenerator::ExtendedConverterData ShibokenGenerator::getExtendedConverter return extConvs; } -QVector<const CustomConversion *> ShibokenGenerator::getPrimitiveCustomConversions() const +QList<const CustomConversion *> ShibokenGenerator::getPrimitiveCustomConversions() const { - QVector<const CustomConversion *> conversions; + QList<const CustomConversion *> conversions; const PrimitiveTypeEntryList &primitiveTypeList = primitiveTypes(); for (const PrimitiveTypeEntry *type : primitiveTypeList) { if (!shouldGenerateTypeEntry(type) || !type->isUserPrimitive() || !type->customConversion()) @@ -1964,7 +1964,7 @@ using StringPair = QPair<QString, QString>; void ShibokenGenerator::replaceConverterTypeSystemVariable(TypeSystemConverterVariable converterVariable, QString &code) const { - QVector<StringPair> replacements; + QList<StringPair> replacements; QRegularExpressionMatchIterator rit = m_typeSystemConvRegEx[converterVariable].globalMatch(code); while (rit.hasNext()) { const QRegularExpressionMatch match = rit.next(); diff --git a/sources/shiboken6/generator/shiboken/shibokengenerator.h b/sources/shiboken6/generator/shiboken/shibokengenerator.h index 66afbd5d4..8d25bcc95 100644 --- a/sources/shiboken6/generator/shiboken/shibokengenerator.h +++ b/sources/shiboken6/generator/shiboken/shibokengenerator.h @@ -115,17 +115,17 @@ protected: /// Write user's custom code snippets at class or module level. void writeClassCodeSnips(TextStream &s, - const QVector<CodeSnip> & codeSnips, + const CodeSnipList &codeSnips, TypeSystem::CodeSnipPosition position, TypeSystem::Language language, const GeneratorContext &context) const; void writeCodeSnips(TextStream &s, - const QVector<CodeSnip> & codeSnips, + const CodeSnipList &codeSnips, TypeSystem::CodeSnipPosition position, TypeSystem::Language language) const; /// Write user's custom code snippets at function level. void writeCodeSnips(TextStream &s, - const QVector<CodeSnip> & codeSnips, + const CodeSnipList &codeSnips, TypeSystem::CodeSnipPosition position, TypeSystem::Language language, const AbstractMetaFunction *func, @@ -364,12 +364,12 @@ protected: // All data about extended converters: the type entries of the target type, and a // list of AbstractMetaClasses accepted as argument for the conversion. - using ExtendedConverterData = QHash<const TypeEntry *, QVector<const AbstractMetaClass *> >; + using ExtendedConverterData = QHash<const TypeEntry *, AbstractMetaClassCList>; /// Returns all extended conversions for the current module. ExtendedConverterData getExtendedConverters() const; /// Returns a list of converters for the non wrapper types of the current module. - QVector<const CustomConversion *> getPrimitiveCustomConversions() const; + QList<const CustomConversion *> getPrimitiveCustomConversions() const; /// Returns true if the Python wrapper for the received OverloadData must accept a list of arguments. static bool pythonFunctionWrapperUsesListOfArguments(const OverloadData &overloadData); @@ -441,13 +441,13 @@ private: /// Utility function for writeCodeSnips. using ArgumentVarReplacementPair = QPair<AbstractMetaArgument, QString>; - using ArgumentVarReplacementList = QVector<ArgumentVarReplacementPair>; + using ArgumentVarReplacementList = QList<ArgumentVarReplacementPair>; ArgumentVarReplacementList getArgumentReplacement(const AbstractMetaFunction* func, bool usePyArgs, TypeSystem::Language language, const AbstractMetaArgument *lastArg) const; /// Returns a string with the user's custom code snippets that comply with \p position and \p language. - QString getCodeSnippets(const QVector<CodeSnip> & codeSnips, + QString getCodeSnippets(const CodeSnipList &codeSnips, TypeSystem::CodeSnipPosition position, TypeSystem::Language language) const; |