aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/docparser.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-09-05 10:48:26 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-09-05 16:00:13 +0200
commit4727e8890aa20346872f405a1993f33fd343af31 (patch)
treeb9f19277b6b6b8ec7c3027139f8b2f3e3ea76bcf /sources/shiboken6/ApiExtractor/docparser.cpp
parentb1bd0cceddb44e41e26018bb40ec110abb8bddf1 (diff)
shiboken6: Split the document modifications in ComplexTypeEntry
Split into function modifications (with signature) with a new accessor and let the old accessor return the class modifications only. Add a helper function DocParser::getDocModifications() to retrieve the modifications. Task-number: PYSIDE-2025 Change-Id: I1f8b3eb0cfa4b121910329cd76b0a67559d76fca Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken6/ApiExtractor/docparser.cpp')
-rw-r--r--sources/shiboken6/ApiExtractor/docparser.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/sources/shiboken6/ApiExtractor/docparser.cpp b/sources/shiboken6/ApiExtractor/docparser.cpp
index ea3828a43..9d90d5fb2 100644
--- a/sources/shiboken6/ApiExtractor/docparser.cpp
+++ b/sources/shiboken6/ApiExtractor/docparser.cpp
@@ -9,7 +9,7 @@
#include "messages.h"
#include "modifications.h"
#include "reporthandler.h"
-#include "typesystem.h"
+#include "complextypeentry.h"
#include "xmlutils.h"
#include <QtCore/QBuffer>
@@ -84,6 +84,22 @@ bool DocParser::skipForQuery(const AbstractMetaFunctionCPtr &func)
usesRValueReference);
}
+DocModificationList DocParser::getDocModifications(const AbstractMetaClass* cppClass,
+ const AbstractMetaFunctionCPtr &func)
+{
+ auto *te = cppClass->typeEntry();
+ if (func.isNull())
+ return te->docModifications();
+
+ DocModificationList result = te->functionDocModifications();
+ const QString minimalSignature = func->minimalSignature();
+ const auto filter = [&minimalSignature](const DocModification &mod) {
+ return mod.signature() != minimalSignature;
+ };
+ result.erase(std::remove_if(result.begin(), result.end(), filter), result.end());
+ return result;
+}
+
AbstractMetaFunctionCList DocParser::documentableFunctions(const AbstractMetaClass *metaClass)
{
auto result = metaClass->functionsInTargetLang();