aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-01 07:59:26 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-01 07:59:26 +0200
commit2ec2127b9f4bcd62975b175e77cd0502580d9de7 (patch)
treea63b666c1289604311338ecf59d9ea91c353a3c6 /sources/shiboken2/generator/shiboken2/shibokengenerator.cpp
parent0f922f604297a2022527f04a696da121396ddc0a (diff)
parent26e4ba3639bac57b0481bd6bb3964b1afa340ab9 (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Diffstat (limited to 'sources/shiboken2/generator/shiboken2/shibokengenerator.cpp')
-rw-r--r--sources/shiboken2/generator/shiboken2/shibokengenerator.cpp32
1 files changed, 13 insertions, 19 deletions
diff --git a/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp b/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp
index 1f91609bd..a6a175999 100644
--- a/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp
+++ b/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp
@@ -334,20 +334,6 @@ bool ShibokenGenerator::shouldWriteVirtualMethodNative(const AbstractMetaFunctio
&& (func->attributes() & AbstractMetaAttributes::FinalCppMethod) == 0);
}
-void ShibokenGenerator::lookForEnumsInClassesNotToBeGenerated(AbstractMetaEnumList &enumList, const AbstractMetaClass *metaClass)
-{
- Q_ASSERT(metaClass);
- // if a scope is not to be generated, collect its enums into the parent scope
- if (!NamespaceTypeEntry::isVisibleScope(metaClass->typeEntry())) {
- for (AbstractMetaEnum *metaEnum : metaClass->enums()) {
- if (!metaEnum->isPrivate() && metaEnum->typeEntry()->generateCode()
- && !enumList.contains(metaEnum)) {
- enumList.append(metaEnum);
- }
- }
- }
-}
-
QString ShibokenGenerator::wrapperName(const AbstractMetaClass *metaClass) const
{
Q_ASSERT(shouldGenerateCppWrapper(metaClass));
@@ -2471,14 +2457,21 @@ static bool isGroupable(const AbstractMetaFunction *func)
return true;
}
-ShibokenGenerator::FunctionGroups ShibokenGenerator::getGlobalFunctionGroups() const
+static void insertIntoFunctionGroups(const AbstractMetaFunctionList &lst,
+ ShibokenGenerator::FunctionGroups *results)
{
- const AbstractMetaFunctionList &lst = globalFunctions();
- FunctionGroups results;
for (AbstractMetaFunction *func : lst) {
if (isGroupable(func))
- results[func->name()].append(func);
+ (*results)[func->name()].append(func);
}
+}
+
+ShibokenGenerator::FunctionGroups ShibokenGenerator::getGlobalFunctionGroups() const
+{
+ FunctionGroups results;
+ insertIntoFunctionGroups(globalFunctions(), &results);
+ for (auto nsp : invisibleTopNamespaces())
+ insertIntoFunctionGroups(nsp->functions(), &results);
return results;
}
@@ -2502,7 +2495,8 @@ ShibokenGenerator::FunctionGroups ShibokenGenerator::getFunctionGroups(const Abs
ShibokenGenerator::FunctionGroups ShibokenGenerator::getFunctionGroupsImpl(const AbstractMetaClass *scope)
{
- const AbstractMetaFunctionList &lst = scope->functions();
+ AbstractMetaFunctionList lst = scope->functions();
+ scope->getFunctionsFromInvisibleNamespacesToBeGenerated(&lst);
FunctionGroups results;
for (AbstractMetaFunction *func : lst) {