aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/modifications.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-09-30 11:15:21 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-09-30 15:22:16 +0200
commit50d0c3c94ff66c104de269f09c08109eb9d0eb3a (patch)
treeff37a79ed5b6c353181e435ef309fb5f06d7251a /sources/shiboken6/ApiExtractor/modifications.cpp
parenta4ee46632e19d9031dab36ac33bf78c3a8e7d35b (diff)
shiboken6: Match function modifications by unresolved signature as well
Store the unresolved signature from the code model as an additional field in AbstractMetaFunction. Add a function modificationSignatures() to return a list of signatures to be matched against the modifications. [ChangeLog][shiboken6] The signatures for function modifications now also allow for specifying unresolved types. Change-Id: I258c4ff2ddf87542098568ee01ca4f444afd05ce Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken6/ApiExtractor/modifications.cpp')
-rw-r--r--sources/shiboken6/ApiExtractor/modifications.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/sources/shiboken6/ApiExtractor/modifications.cpp b/sources/shiboken6/ApiExtractor/modifications.cpp
index b0b5881fb..5cc8b00f4 100644
--- a/sources/shiboken6/ApiExtractor/modifications.cpp
+++ b/sources/shiboken6/ApiExtractor/modifications.cpp
@@ -579,11 +579,16 @@ void FunctionModification::setAllowThread(FunctionModification::AllowThread allo
d->m_allowThread = allow;
}
-bool FunctionModification::matches(const QString &functionSignature) const
+bool FunctionModification::matches(const QStringList &functionSignatures) const
{
- return d->m_signature.isEmpty()
- ? d->m_signaturePattern.match(functionSignature).hasMatch()
- : d->m_signature == functionSignature;
+ if (!d->m_signature.isEmpty())
+ return functionSignatures.contains(d->m_signature);
+
+ for (const auto &s : functionSignatures) {
+ if (d->m_signaturePattern.match(s).hasMatch())
+ return true;
+ }
+ return false;
}
bool FunctionModification::setSignature(const QString &s, QString *errorMessage)