diff options
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; |