diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-10-02 11:00:39 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-10-04 13:44:52 +0200 |
commit | 6d4c76578f3228c76d36574fbd50698060a65268 (patch) | |
tree | 47a532a99419a71c4974c2faf0f357191d4fc2d4 /sources/shiboken2/generator | |
parent | 20b7a0a68f1360623ace93551ac68a71d4c078a0 (diff) |
shiboken/AbstractMetaArgument: Separate functions
Split out AbstractMetaArgument::hasOriginalDefaultValueExpression()
and restrict AbstractMetaArgument::hasDefaultValueExpression() to the
effective (removed/modified or original expression).
Use hasOriginalDefaultValueExpression() since the affected code is
only interested in whether the code has a native default expression.
Task-number: PYSIDE-1095
Change-Id: I043ae99c315a8a41295efc2c4a15cd5a6ce74293
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/shiboken2/generator')
-rw-r--r-- | sources/shiboken2/generator/generator.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sources/shiboken2/generator/generator.cpp b/sources/shiboken2/generator/generator.cpp index 6da9fd933..7c6e921c7 100644 --- a/sources/shiboken2/generator/generator.cpp +++ b/sources/shiboken2/generator/generator.cpp @@ -760,7 +760,7 @@ DefaultValue Generator::minimalConstructor(const AbstractMetaClass *metaClass) c bool simple = true; bool suitable = true; for (int i = 0, size = arguments.size(); - suitable && i < size && !arguments.at(i)->hasDefaultValueExpression(); ++i) { + suitable && i < size && !arguments.at(i)->hasOriginalDefaultValueExpression(); ++i) { const AbstractMetaArgument *arg = arguments.at(i); const TypeEntry *aType = arg->type()->typeEntry(); suitable &= aType != cType; @@ -777,11 +777,12 @@ DefaultValue Generator::minimalConstructor(const AbstractMetaClass *metaClass) c bool ok = true; for (int i =0, size = arguments.size(); ok && i < size; ++i) { const AbstractMetaArgument *arg = arguments.at(i); - if (arg->hasDefaultValueExpression()) { - if (arg->hasModifiedDefaultValueExpression()) - args << arg->defaultValueExpression(); // Spell out modified values + if (arg->hasModifiedDefaultValueExpression()) { + args << arg->defaultValueExpression(); // Spell out modified values break; } + if (arg->hasOriginalDefaultValueExpression()) + break; auto argValue = minimalConstructor(arg->type()); ok &= argValue.isValid(); args << argValue.constructorParameter(); |