diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-08-12 14:21:55 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-08-12 21:19:57 +0200 |
commit | f905f6850a13dad7fb94cd59391ff863782061b1 (patch) | |
tree | c2af02dd852c62b9464adb72ffea0bed0a6af57a /sources/shiboken2/generator/shiboken2/shibokengenerator.cpp | |
parent | 3cc4de133f74554ddc50296385ac0ec7fd98c6d6 (diff) | |
parent | 970a8c4ab770ef190b88e4c83d3199040820e676 (diff) |
Merge "Merge remote-tracking branch 'origin/5.14' into dev"
Diffstat (limited to 'sources/shiboken2/generator/shiboken2/shibokengenerator.cpp')
-rw-r--r-- | sources/shiboken2/generator/shiboken2/shibokengenerator.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp b/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp index 8e27777d6..e41c91716 100644 --- a/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp @@ -149,6 +149,8 @@ ShibokenGenerator::ShibokenGenerator() const char CHECKTYPE_REGEX[] = R"(%CHECKTYPE\[([^\[]*)\]\()"; const char ISCONVERTIBLE_REGEX[] = R"(%ISCONVERTIBLE\[([^\[]*)\]\()"; const char CONVERTTOPYTHON_REGEX[] = R"(%CONVERTTOPYTHON\[([^\[]*)\]\()"; + // Capture a '*' leading the variable name into the target + // so that "*valuePtr = %CONVERTTOCPP..." works as expected. const char CONVERTTOCPP_REGEX[] = R"((\*?%?[a-zA-Z_][\w\.]*(?:\[[^\[^<^>]+\])*)(?:\s+)=(?:\s+)%CONVERTTOCPP\[([^\[]*)\]\()"; m_typeSystemConvRegEx[TypeSystemCheckFunction] = QRegularExpression(QLatin1String(CHECKTYPE_REGEX)); @@ -2044,10 +2046,9 @@ void ShibokenGenerator::replaceConverterTypeSystemVariable(TypeSystemConverterVa varType = miniNormalizer(varType); QString varName = list.at(1).trimmed(); if (!varType.isEmpty()) { - if (varType != conversionType->cppSignature()) { - qFatal("Types of receiver variable ('%s') and %%CONVERTTOCPP type system variable ('%s') differ.", - qPrintable(varType), qPrintable(conversionType->cppSignature())); - } + const QString conversionSignature = conversionType->cppSignature(); + if (varType != conversionSignature) + qFatal("%s", qPrintable(msgConversionTypesDiffer(varType, conversionSignature))); c << getFullTypeName(conversionType) << ' ' << varName; writeMinimalConstructorExpression(c, conversionType); c << ';' << endl; |