aboutsummaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-04-20 16:01:25 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-04-23 11:57:04 +0000
commit55d871a8abfd9c29b96ecf7c011c3b3b9fd05d31 (patch)
treea0167c157612d6fc5b924dd3312febb285a0924e /sources
parentc1ec25c5325a50fe2b2000b35a425badab1cd75b (diff)
shiboken: Strip parameters of invalid type with a default value expression
For example for: void QWebEnginePage::findText(const QString &subString, FindFlags options = FindFlags(), const QWebEngineCallback<bool> &resultCallback = QWebEngineCallback<bool>()) the resultCallback will be removed and a binding for void QWebEnginePage::findText(const QString &subString, FindFlags options) generated. Task-number: PYSIDE-487 Change-Id: I6299d1735ad6c00e257daecb64d8f2f235140a98 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources')
-rw-r--r--sources/pyside2/tests/QtWebEngineWidgets/pyside-474-qtwebengineview.py4
-rw-r--r--sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp16
2 files changed, 15 insertions, 5 deletions
diff --git a/sources/pyside2/tests/QtWebEngineWidgets/pyside-474-qtwebengineview.py b/sources/pyside2/tests/QtWebEngineWidgets/pyside-474-qtwebengineview.py
index 6ea3aa95a..b4aef26d1 100644
--- a/sources/pyside2/tests/QtWebEngineWidgets/pyside-474-qtwebengineview.py
+++ b/sources/pyside2/tests/QtWebEngineWidgets/pyside-474-qtwebengineview.py
@@ -39,11 +39,7 @@ class MainTest(unittest.TestCase):
qApp = (QtWidgets.QApplication.instance() or
QtWidgets.QApplication([]))
view = QtWebEngineWidgets.QWebEngineView()
- with self.assertRaises(TypeError):
- view.findText(123)
view.findText("nothing")
- # we are testing only the existence of the function,
- # after it suddenly showed up.
if __name__ == '__main__':
unittest.main()
diff --git a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
index 739e32896..b862ba548 100644
--- a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
+++ b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
@@ -2088,6 +2088,20 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(FunctionModel
bool ok;
AbstractMetaType* metaType = translateType(arg->type(), &ok);
if (!ok) {
+ // If an invalid argument has a default value, simply remove it
+ if (arg->defaultValue()) {
+ if (!m_currentClass
+ || (m_currentClass->typeEntry()->codeGeneration()
+ & TypeEntry::GenerateTargetLang)) {
+ qCWarning(lcShiboken).noquote().nospace()
+ << "Stripping argument #" << (i + 1) << " of "
+ << originalQualifiedSignatureWithReturn
+ << " due to unmatched type \"" << arg->type().toString()
+ << "\" with default expression \""
+ << arg->defaultValueExpression() << "\".";
+ }
+ break;
+ }
Q_ASSERT(metaType == 0);
const QString reason = msgUnmatchedParameterType(arg, i);
qCWarning(lcShiboken).noquote().nospace()
@@ -2123,7 +2137,7 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(FunctionModel
metaFunction->setArguments(metaArguments);
// Find the correct default values
- for (int i = 0; i < arguments.size(); ++i) {
+ for (int i = 0, size = metaArguments.size(); i < size; ++i) {
ArgumentModelItem arg = arguments.at(i);
AbstractMetaArgument* metaArg = metaArguments.at(i);