aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/generator/shiboken/cppgenerator.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-10-13 15:52:37 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-10-14 16:14:55 +0200
commit78d929b957bfe200806602e1e1dfedd7e044cb20 (patch)
treeeb41651dc86132df4c261921814975efe38ed451 /sources/shiboken6/generator/shiboken/cppgenerator.cpp
parent1948a1b6f9a3547ba9fba9b8c525eb6e1c6b4f13 (diff)
Add an option to disable implicit conversions
Add option and extract a helper to return the list of implicit conversions depending on it. [ChangeLog][shiboken6] An option to disable implicit conversions has been added. Pick-to: 6.2 Task-number: PYSIDE-1669 Change-Id: Iaefbbf272a6c033bac10635f48057dd69fc83549 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken6/generator/shiboken/cppgenerator.cpp')
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.cpp27
1 files changed, 6 insertions, 21 deletions
diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.cpp b/sources/shiboken6/generator/shiboken/cppgenerator.cpp
index a479ba8fa..b7d826d3d 100644
--- a/sources/shiboken6/generator/shiboken/cppgenerator.cpp
+++ b/sources/shiboken6/generator/shiboken/cppgenerator.cpp
@@ -1548,17 +1548,9 @@ return result;)";
s << '\n';
// User provided implicit conversions.
- CustomConversion *customConversion = metaClass->typeEntry()->customConversion();
-
+ auto *typeEntry = metaClass->typeEntry();
// Implicit conversions.
- AbstractMetaFunctionCList implicitConvs;
- if (!customConversion || !customConversion->replaceOriginalTargetToNativeConversions()) {
- const auto &allImplicitConvs = api().implicitConversions(metaClass->typeEntry());
- for (const auto &func : allImplicitConvs) {
- if (!func->isUserAdded())
- implicitConvs << func;
- }
- }
+ const AbstractMetaFunctionCList implicitConvs = implicitConversions(typeEntry);
if (!implicitConvs.isEmpty())
s << "// Implicit conversions.\n";
@@ -1624,7 +1616,7 @@ return result;)";
writePythonToCppConversionFunctions(s, sourceType, targetType, typeCheck, toCppConv, toCppPreConv);
}
- writeCustomConverterFunctions(s, customConversion);
+ writeCustomConverterFunctions(s, typeEntry->customConversion());
}
void CppGenerator::writeCustomConverterFunctions(TextStream &s,
@@ -1730,17 +1722,10 @@ void CppGenerator::writeConverterRegister(TextStream &s, const AbstractMetaClass
writeAddPythonToCppConversion(s, QLatin1String("converter"), toCpp, isConv);
// User provided implicit conversions.
- CustomConversion *customConversion = metaClass->typeEntry()->customConversion();
+ auto *typeEntry = metaClass->typeEntry();
// Add implicit conversions.
- AbstractMetaFunctionCList implicitConvs;
- if (!customConversion || !customConversion->replaceOriginalTargetToNativeConversions()) {
- const auto &allImplicitConvs = api().implicitConversions(metaClass->typeEntry());
- for (const auto &func : allImplicitConvs) {
- if (!func->isUserAdded())
- implicitConvs << func;
- }
- }
+ const AbstractMetaFunctionCList implicitConvs = implicitConversions(typeEntry);
if (!implicitConvs.isEmpty())
s << "// Add implicit conversions to type converter.\n";
@@ -1764,7 +1749,7 @@ void CppGenerator::writeConverterRegister(TextStream &s, const AbstractMetaClass
writeAddPythonToCppConversion(s, QLatin1String("converter"), toCpp, isConv);
}
- writeCustomConverterRegister(s, customConversion, QLatin1String("converter"));
+ writeCustomConverterRegister(s, typeEntry->customConversion(), u"converter"_qs);
}
void CppGenerator::writeCustomConverterRegister(TextStream &s, const CustomConversion *customConversion,