diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index 77bb68e218..3be6a2099c 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -2547,9 +2547,9 @@ constexpr const QMetaTypeInterface *qTryMetaTypeInterfaceForType() using Ty = typename MetatypeDecay::type; using Tz = qRemovePointerLike_t; - if constexpr (std::is_void_v) { + if constexpr (std::is_void_v) { // early out to avoid expanding the rest of the templates - return &QMetaTypeInterfaceWrapper::metaType; + return &QMetaTypeInterfaceWrapper::metaType; } else if constexpr (ForceComplete::value) { checkTypeIsSuitableForMetaType(); return &QMetaTypeInterfaceWrapper::metaType; diff --git a/tests/auto/tools/moc/allmocs_baseline_in.json b/tests/auto/tools/moc/allmocs_baseline_in.json index d362f94c7b..e1c6a5d7d8 100644 --- a/tests/auto/tools/moc/allmocs_baseline_in.json +++ b/tests/auto/tools/moc/allmocs_baseline_in.json @@ -1671,6 +1671,78 @@ "className": "TestPointeeCanBeIncomplete", "object": true, "qualifiedClassName": "TestPointeeCanBeIncomplete", + "slots": [ + { + "access": "public", + "arguments": [ + { + "type": "QPointer" + } + ], + "name": "setProp1", + "returnType": "void" + }, + { + "access": "public", + "arguments": [ + { + "type": "QSharedPointer" + } + ], + "name": "setProp2", + "returnType": "void" + }, + { + "access": "public", + "arguments": [ + { + "type": "QWeakPointer" + } + ], + "name": "setProp3", + "returnType": "void" + }, + { + "access": "public", + "arguments": [ + { + "type": "FwdClass*" + } + ], + "name": "setProp4", + "returnType": "void" + }, + { + "access": "public", + "arguments": [ + { + "type": "const FwdClass*" + } + ], + "name": "setProp5", + "returnType": "void" + }, + { + "access": "public", + "arguments": [ + { + "type": "void*" + } + ], + "name": "setProp6", + "returnType": "void" + }, + { + "access": "public", + "arguments": [ + { + "type": "const void*" + } + ], + "name": "setProp7", + "returnType": "void" + } + ], "superClasses": [ { "access": "public", diff --git a/tests/auto/tools/moc/pointery_to_incomplete.h b/tests/auto/tools/moc/pointery_to_incomplete.h index 38dea13340..46cd04d763 100644 --- a/tests/auto/tools/moc/pointery_to_incomplete.h +++ b/tests/auto/tools/moc/pointery_to_incomplete.h @@ -14,10 +14,14 @@ class FwdClass; class TestPointeeCanBeIncomplete : public QObject { Q_OBJECT -public: +public slots: void setProp1(QPointer) {} void setProp2(QSharedPointer) {} void setProp3(const QWeakPointer &) {} + void setProp4(FwdClass *) {} + void setProp5(const FwdClass *) {} + void setProp6(void *) {} + void setProp7(const void *) {} }; #endif // POINTERY_TO_INCOMPLETE_H