diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-09-05 10:48:26 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-09-05 16:00:13 +0200 |
| commit | 4727e8890aa20346872f405a1993f33fd343af31 (patch) | |
| tree | b9f19277b6b6b8ec7c3027139f8b2f3e3ea76bcf /sources/shiboken6/ApiExtractor/docparser.cpp | |
| parent | b1bd0cceddb44e41e26018bb40ec110abb8bddf1 (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.cpp | 18 |
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(); |
