diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-12-09 09:10:25 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2020-12-10 17:46:21 +0000 |
commit | 7649d2cd0405939b7ac917666c0b034fe6c7d83a (patch) | |
tree | 8bff08c6c9153be765ef52bf57eee1f647bb2e62 /sources | |
parent | ede91060ff2f8282b2462ef33799405e4ab9f60a (diff) |
shiboken6: Fold MetaFunction::isCastOperator() into isConversionOperator()
They are basically the same thing. The complicated regular
expression in isConversionOperator() apparently dates
back to the old C++ parser; with clang's canonical
function names, a check for startsWith("operator ")
is sufficient.
Change-Id: Ife948695619d36904d124e204bc91490704fd4bf
Reviewed-by: Christian Tismer <tismer@stackless.com>
(cherry picked from commit 0b1fe169232252c506104003a09f0e5c01085909)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'sources')
5 files changed, 7 insertions, 13 deletions
diff --git a/sources/shiboken6/ApiExtractor/abstractmetafunction.cpp b/sources/shiboken6/ApiExtractor/abstractmetafunction.cpp index 7b05d3207..f9e5dcaf4 100644 --- a/sources/shiboken6/ApiExtractor/abstractmetafunction.cpp +++ b/sources/shiboken6/ApiExtractor/abstractmetafunction.cpp @@ -873,9 +873,7 @@ bool AbstractMetaFunction::hasSignatureModifications() const bool AbstractMetaFunction::isConversionOperator(const QString &funcName) { - static const QRegularExpression opRegEx(QStringLiteral("^operator(?:\\s+(?:const|volatile))?\\s+(\\w+\\s*)&?$")); - Q_ASSERT(opRegEx.isValid()); - return opRegEx.match(funcName).hasMatch(); + return funcName.startsWith(QLatin1String("operator ")); } ExceptionSpecification AbstractMetaFunction::exceptionSpecification() const @@ -960,11 +958,6 @@ bool AbstractMetaFunction::isOperatorOverload() const return isOperatorOverload(originalName()); } -bool AbstractMetaFunction::isCastOperator() const -{ - return originalName().startsWith(QLatin1String("operator ")); -} - bool AbstractMetaFunction::isArithmeticOperator() const { if (!isOperatorOverload()) diff --git a/sources/shiboken6/ApiExtractor/abstractmetafunction.h b/sources/shiboken6/ApiExtractor/abstractmetafunction.h index 30a3dbae7..9c33c93a4 100644 --- a/sources/shiboken6/ApiExtractor/abstractmetafunction.h +++ b/sources/shiboken6/ApiExtractor/abstractmetafunction.h @@ -133,7 +133,6 @@ public: static bool isOperatorOverload(const QString& funcName); bool isOperatorOverload() const; - bool isCastOperator() const; bool isArithmeticOperator() const; bool isBitwiseOperator() const; diff --git a/sources/shiboken6/ApiExtractor/docparser.cpp b/sources/shiboken6/ApiExtractor/docparser.cpp index d2f8a5234..d50a823fa 100644 --- a/sources/shiboken6/ApiExtractor/docparser.cpp +++ b/sources/shiboken6/ApiExtractor/docparser.cpp @@ -80,7 +80,7 @@ bool DocParser::skipForQuery(const AbstractMetaFunctionCPtr &func) || (func->attributes() & AbstractMetaAttributes::AddedMethod) != 0 || func->isModifiedRemoved() || func->declaringClass() != func->ownerClass() - || func->isCastOperator()) { + || func->isConversionOperator()) { return true; } switch (func->functionType()) { diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.cpp b/sources/shiboken6/generator/shiboken/cppgenerator.cpp index d398eecfc..e03aa6feb 100644 --- a/sources/shiboken6/generator/shiboken/cppgenerator.cpp +++ b/sources/shiboken6/generator/shiboken/cppgenerator.cpp @@ -496,7 +496,7 @@ void CppGenerator::generateClass(TextStream &s, const GeneratorContext &classCon for (const auto &func : it.value()) { if (!func->isAssignmentOperator() && !func->usesRValueReferences() - && !func->isCastOperator() + && !func->isConversionOperator() && !func->isModifiedRemoved() && (!func->isPrivate() || func->functionType() == AbstractMetaFunction::EmptyFunction) && func->ownerClass() == func->implementingClass() diff --git a/sources/shiboken6/generator/shiboken/shibokengenerator.cpp b/sources/shiboken6/generator/shiboken/shibokengenerator.cpp index 20f219e5d..9a7a3f12b 100644 --- a/sources/shiboken6/generator/shiboken/shibokengenerator.cpp +++ b/sources/shiboken6/generator/shiboken/shibokengenerator.cpp @@ -2098,7 +2098,8 @@ bool ShibokenGenerator::classNeedsGetattroFunctionImpl(const AbstractMetaClass * for (auto it = functionGroup.cbegin(), end = functionGroup.cend(); it != end; ++it) { AbstractMetaFunctionCList overloads; for (const auto &func : qAsConst(it.value())) { - if (func->isAssignmentOperator() || func->isCastOperator() || func->isModifiedRemoved() + if (func->isAssignmentOperator() || func->isConversionOperator() + || func->isModifiedRemoved() || func->isPrivate() || func->ownerClass() != func->implementingClass() || func->isConstructor() || func->isOperatorOverload()) continue; @@ -2120,7 +2121,8 @@ AbstractMetaFunctionCList ShibokenGenerator::getMethodsWithBothStaticAndNonStati for (auto it = functionGroups.cbegin(), end = functionGroups.cend(); it != end; ++it) { AbstractMetaFunctionCList overloads; for (const auto &func : qAsConst(it.value())) { - if (func->isAssignmentOperator() || func->isCastOperator() || func->isModifiedRemoved() + if (func->isAssignmentOperator() || func->isConversionOperator() + || func->isModifiedRemoved() || func->isPrivate() || func->ownerClass() != func->implementingClass() || func->isConstructor() || func->isOperatorOverload()) continue; |