diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2013-02-05 14:35:10 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-21 14:54:00 +0100 |
commit | 03b25125986f083a260b421abeed1f1d088d27b3 (patch) | |
tree | 307f0e248f006cbc9dc7f85abf900ee886f4a769 /tests/auto/corelib/kernel/qmetatype | |
parent | 8fd1330029eafc3f9496febd1ac2597e786ba324 (diff) |
Fix QMetaType of const references
This fixes QMetaType detection of const reference arguments in signals
while connecting using the new syntax and Qt::QueuedConnection
const references should have the same QMetaType as non references.
That means we need to remove the const reference while getting the
QMetaType.
Change-Id: I9b2688da7fb9ae985aec0d8fa62a1165357ffe71
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Diffstat (limited to 'tests/auto/corelib/kernel/qmetatype')
-rw-r--r-- | tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp index 7f7486ef4b..9a75bad549 100644 --- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp +++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp @@ -110,6 +110,7 @@ private slots: void saveAndLoadCustom(); void metaObject(); void constexprMetaTypeIds(); + void constRefs(); }; struct Foo { int i; }; @@ -1762,6 +1763,17 @@ void tst_QMetaType::constexprMetaTypeIds() #endif } +void tst_QMetaType::constRefs() +{ + QCOMPARE(::qMetaTypeId<const int &>(), ::qMetaTypeId<int>()); + QCOMPARE(::qMetaTypeId<const QString &>(), ::qMetaTypeId<QString>()); + QCOMPARE(::qMetaTypeId<const CustomMovable &>(), ::qMetaTypeId<CustomMovable>()); + QCOMPARE(::qMetaTypeId<const QList<CustomMovable> &>(), ::qMetaTypeId<QList<CustomMovable> >()); +#if defined(Q_COMPILER_CONSTEXPR) + Q_STATIC_ASSERT(::qMetaTypeId<const int &>() == ::qMetaTypeId<int>()); +#endif +} + // Compile-time test, it should be possible to register function pointer types class Undefined; |