diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-09-06 14:17:15 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-09-07 14:38:37 +0200 |
commit | 3d2b4c9954207f1995c60eff27ea5a08ec02f950 (patch) | |
tree | ac6981be9473c24bcf4ffe76af3e04210e623b0f | |
parent | 5013f3376cf7bf57eb6003fc4453baefe9060dc5 (diff) |
shiboken6: Clean up OverloadData
- Remove unused code
- Streamline some functions
- Remove fixups of the min/max arguments that
were apparently workarounds for issues fixed by
7c122a523d48f56b5a958219a4e3dc6cbc4750d
Change-Id: Ie600894ec1fc999f439894f36619aaa3f4f4e31a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
-rw-r--r-- | sources/shiboken6/generator/shiboken/overloaddata.cpp | 63 | ||||
-rw-r--r-- | sources/shiboken6/generator/shiboken/overloaddata.h | 7 |
2 files changed, 10 insertions, 60 deletions
diff --git a/sources/shiboken6/generator/shiboken/overloaddata.cpp b/sources/shiboken6/generator/shiboken/overloaddata.cpp index 3be14dc9a..5cf3b3f0c 100644 --- a/sources/shiboken6/generator/shiboken/overloaddata.cpp +++ b/sources/shiboken6/generator/shiboken/overloaddata.cpp @@ -463,10 +463,6 @@ OverloadData::OverloadData(const AbstractMetaFunctionCList &overloads, // Sort the overload possibilities so that the overload decisor code goes for the most // important cases first, based on the topological order of the implicit conversions sortNextOverloads(); - - // Fix minArgs - if (minArgs() > maxArgs()) - m_headOverloadData->m_minArgs = maxArgs(); } OverloadData::OverloadData(OverloadData *headOverloadData, const AbstractMetaFunctionCPtr &func, @@ -483,13 +479,6 @@ void OverloadData::addOverload(const AbstractMetaFunctionCPtr &func) { int origNumArgs = func->arguments().size(); int removed = numberOfRemovedArguments(func); - int numArgs = origNumArgs - removed; - - if (numArgs > m_headOverloadData->m_maxArgs) - m_headOverloadData->m_maxArgs = numArgs; - - if (numArgs < m_headOverloadData->m_minArgs) - m_headOverloadData->m_minArgs = numArgs; for (int i = 0; m_headOverloadData->m_minArgs > 0 && i < origNumArgs; i++) { if (func->argumentRemoved(i + 1)) @@ -538,22 +527,19 @@ OverloadData *OverloadData::addOverloadData(const AbstractMetaFunctionCPtr &func return overloadData; } -QStringList OverloadData::returnTypes() const +bool OverloadData::hasNonVoidReturnType() const { - QSet<QString> retTypes; for (const auto &func : m_overloads) { - if (!func->typeReplaced(0).isEmpty()) - retTypes << func->typeReplaced(0); - else if (!func->argumentRemoved(0)) - retTypes << func->type().cppSignature(); + const QString typeReplaced = func->typeReplaced(0); + if (typeReplaced.isEmpty()) { + if (!func->argumentRemoved(0) && !func->type().isVoid()) + return true; + } else { + if (typeReplaced != u"void") + return true; + } } - return retTypes.values(); -} - -bool OverloadData::hasNonVoidReturnType() const -{ - QStringList retTypes = returnTypes(); - return !retTypes.contains(QLatin1String("void")) || retTypes.size() > 1; + return false; } bool OverloadData::hasVarargs() const @@ -566,15 +552,6 @@ bool OverloadData::hasVarargs() const return false; } -bool OverloadData::hasAllowThread() const -{ - for (const auto &func : m_overloads) { - if (func->allowThread()) - return true; - } - return false; -} - bool OverloadData::hasStaticFunction(const AbstractMetaFunctionCList &overloads) { for (const auto &func : overloads) { @@ -661,26 +638,6 @@ const AbstractMetaArgument *OverloadData::argument(const AbstractMetaFunctionCPt return &func->arguments().at(m_argPos + removed); } -OverloadDataList OverloadData::overloadDataOnPosition(OverloadData *overloadData, int argPos) const -{ - OverloadDataList overloadDataList; - if (overloadData->argPos() == argPos) { - overloadDataList.append(overloadData); - } else if (overloadData->argPos() < argPos) { - const OverloadDataList &data = overloadData->nextOverloadData(); - for (OverloadData *pd : data) - overloadDataList += overloadDataOnPosition(pd, argPos); - } - return overloadDataList; -} - -OverloadDataList OverloadData::overloadDataOnPosition(int argPos) const -{ - OverloadDataList overloadDataList; - overloadDataList += overloadDataOnPosition(m_headOverloadData, argPos); - return overloadDataList; -} - bool OverloadData::nextArgumentHasDefaultValue() const { for (OverloadData *overloadData : m_nextOverloadData) { diff --git a/sources/shiboken6/generator/shiboken/overloaddata.h b/sources/shiboken6/generator/shiboken/overloaddata.h index c4d7e6b51..ae7d91715 100644 --- a/sources/shiboken6/generator/shiboken/overloaddata.h +++ b/sources/shiboken6/generator/shiboken/overloaddata.h @@ -52,18 +52,12 @@ public: const AbstractMetaType &argType() const { return m_argType; } - /// Returns a string list containing all the possible return types (including void) for the current OverloadData. - QStringList returnTypes() const; - /// Returns true if any of the overloads for the current OverloadData has a return type different from void. bool hasNonVoidReturnType() const; /// Returns true if any of the overloads for the current OverloadData has a varargs argument. bool hasVarargs() const; - /// Returns true if any of the overloads for the current OverloadData allows threads when called. - bool hasAllowThread() const; - /// Returns true if any of the overloads for the current OverloadData is static. bool hasStaticFunction() const; @@ -146,7 +140,6 @@ private: bool sortByOverloadNumberModification(); int functionNumber(const AbstractMetaFunctionCPtr &func) const; - OverloadDataList overloadDataOnPosition(OverloadData *overloadData, int argPos) const; AbstractMetaType m_argType; QString m_argTypeReplaced; |