diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-10-13 15:52:37 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-10-14 16:14:55 +0200 |
commit | 78d929b957bfe200806602e1e1dfedd7e044cb20 (patch) | |
tree | eb41651dc86132df4c261921814975efe38ed451 /sources/shiboken6/generator/shiboken/cppgenerator.cpp | |
parent | 1948a1b6f9a3547ba9fba9b8c525eb6e1c6b4f13 (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.cpp | 27 |
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, |