summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-06-15 16:08:54 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-06-16 13:22:34 +0000
commit7cc34193d2adc6fa418d511beadf4af90831e71c (patch)
tree52fc839b25e782a0926cd0eb141a1fe1b25be44b
parent12aef17cfae74c82d1cadd8485b2c7e5f12fd442 (diff)
dumpcpp: Do not generate constructors with C#-only classes
Add a hard-coded exclusion list. Fixes: QTBUG-100332 Change-Id: I009e202349e5f1fae13bc481e998fb494d7f997c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 1c55f40705ad60113941691d0d5490bea99227f4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--tools/dumpcpp/main.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/dumpcpp/main.cpp b/tools/dumpcpp/main.cpp
index f028705..58e58ef 100644
--- a/tools/dumpcpp/main.cpp
+++ b/tools/dumpcpp/main.cpp
@@ -190,6 +190,12 @@ static void formatConstructorBody(QTextStream &out, const QByteArray &nameSpace,
out << '}' << Qt::endl << Qt::endl;
}
+// Hash of C# only types.
+static const QSet<QByteArray> cSharpTypes = {
+ "ICloneable", "ICollection", "IDisposable", "IEnumerable",
+ "IList", "ISerializable", "_Attribute"
+};
+
void generateClassDecl(QTextStream &out, const QMetaObject *mo,
const QByteArray &className, const QByteArray &nameSpace,
ObjectCategories category)
@@ -220,6 +226,11 @@ void generateClassDecl(QTextStream &out, const QMetaObject *mo,
continue;
QByteArray iface_class = info.value();
+ if (cSharpTypes.contains(iface_class)) {
+ qWarning("Skipping constructor %s(%s *) (C#-only type).",
+ className.constData(), iface_class.constData());
+ continue;
+ }
out << " " << className << '(' << iface_class << " *iface)" << Qt::endl;