aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/generator
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2019-10-02 11:00:39 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2019-10-04 13:44:52 +0200
commit6d4c76578f3228c76d36574fbd50698060a65268 (patch)
tree47a532a99419a71c4974c2faf0f357191d4fc2d4 /sources/shiboken2/generator
parent20b7a0a68f1360623ace93551ac68a71d4c078a0 (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.cpp9
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();