diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2020-03-31 08:48:56 +0200 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2020-06-02 22:42:15 +0200 |
commit | 47c6466d0acc6d8d733b4fdbaf980a60bbfc93ef (patch) | |
tree | 31aad5a433def4b15fbfca44d5be1e0f94f3fcfd /tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp | |
parent | 649d834443326bfef6ad296cd53819121b8d1a17 (diff) |
QMetaType: create metatype for void
Create a QMetaTypeInterface for void. This allows us differentiate
QMetaType::Unknown from QMetaType::Void. In addition, this will enable
the usage of QMetaMethod::metaReturnType in QMetaMethod::returnType,
and will facilitate using metaReturnType in declarative, which needs to
distinguish between Unknown and Void.
Change-Id: I83296b49587f3deb7ec73e25a33f0d8c98cf8da0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp')
-rw-r--r-- | tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp index f144aad7e4..d036be55c6 100644 --- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp +++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp @@ -127,6 +127,7 @@ private slots: void operatorEq_data(); void operatorEq(); void typesWithInaccessibleDTors(); + void voidIsNotUnknown(); }; struct BaseGenericType @@ -1339,7 +1340,7 @@ void tst_QMetaType::isRegistered_data() QTest::addColumn<bool>("registered"); // predefined/custom types - QTest::newRow("QMetaType::Void") << int(QMetaType::Void) << false; + QTest::newRow("QMetaType::Void") << int(QMetaType::Void) << true; QTest::newRow("QMetaType::Int") << int(QMetaType::Int) << true; int dummyTypeId = qRegisterMetaType<IsRegisteredDummyType>("IsRegisteredDummyType"); @@ -2548,7 +2549,7 @@ void tst_QMetaType::operatorEq_data() QTest::newRow("String") << QMetaType(QMetaType::QString) << QMetaType::fromType<const QString &>() << true; QTest::newRow("void1") << QMetaType(QMetaType::UnknownType) << QMetaType::fromType<void>() - << true; + << false; QTest::newRow("void2") << QMetaType::fromType<const void>() << QMetaType::fromType<void>() << true; QTest::newRow("vec1") << QMetaType::fromType<QVector<const int *>>() @@ -2590,6 +2591,14 @@ void tst_QMetaType::typesWithInaccessibleDTors() Q_UNUSED(QMetaType::fromType<WithDeletedDtor>()); } +void tst_QMetaType::voidIsNotUnknown() +{ + QMetaType voidType = QMetaType::fromType<void>(); + QMetaType voidType2 = QMetaType(QMetaType::Void); + QCOMPARE(voidType, voidType2); + QVERIFY(voidType != QMetaType(QMetaType::UnknownType)); +} + // Compile-time test, it should be possible to register function pointer types class Undefined; |