aboutsummaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-12-09 09:10:25 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-12-10 17:46:21 +0000
commit7649d2cd0405939b7ac917666c0b034fe6c7d83a (patch)
tree8bff08c6c9153be765ef52bf57eee1f647bb2e62 /sources
parentede91060ff2f8282b2462ef33799405e4ab9f60a (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')
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetafunction.cpp9
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetafunction.h1
-rw-r--r--sources/shiboken6/ApiExtractor/docparser.cpp2
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.cpp2
-rw-r--r--sources/shiboken6/generator/shiboken/shibokengenerator.cpp6
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;