aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-11-09 14:18:55 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-11-14 13:04:26 +0000
commit93b54f123771c5b7da9880e9a2f372562893707f (patch)
tree73d215f70733d18928283bf89beb1b7e0d89aca3
parent9679c0e671a5331c75cd90f7a4a720f8433fd372 (diff)
shiboken: Generate static_cast for constructor parameters with space
unsigned long(0) does not work, use static_cast<unsigned long>(0). Fixes: PYSIDE-846 Change-Id: If41baebdf0b1228b658408e4c300872d17143e6f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--sources/shiboken2/generator/generator.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/sources/shiboken2/generator/generator.cpp b/sources/shiboken2/generator/generator.cpp
index 8b37b44e0..ec227bd83 100644
--- a/sources/shiboken2/generator/generator.cpp
+++ b/sources/shiboken2/generator/generator.cpp
@@ -124,8 +124,13 @@ QString DefaultValue::constructorParameter() const
return QLatin1String("#error");
case DefaultValue::Boolean:
return QLatin1String("false");
- case DefaultValue::CppScalar:
- return m_value + QLatin1String("(0)");
+ case DefaultValue::CppScalar: {
+ // PYSIDE-846: Use static_cast in case of "unsigned long" and similar
+ const QString cast = m_value.contains(QLatin1Char(' '))
+ ? QLatin1String("static_cast<") + m_value + QLatin1Char('>')
+ : m_value;
+ return cast + QLatin1String("(0)");
+ }
case DefaultValue::Custom:
case DefaultValue::Enum:
return m_value;