qt5base-lts/tests/auto/tools
Milian Wolff 656d6f2a9b Support Q_GADGET QMetaObject super class hierarchies across templates
This patch fixes the QMetaObject::superClass hierarchy for Q_GADGETs
that inherit from a template which in turn inherits another Q_GADGET.
One common scenario where this is applied is for the CRTP. Without this
patch, moc would stop at the template and then sets the superClass
QMetaObject to a nullptr. For QObjects this works, since there moc knows
that every child must by definition inherit QObject. In order to support
this for Q_GADGETs too, we defer the judgment about the availability
of a staticMetaObject in the base class to compile time through the
existing QtPrivate::MetaObjectForType<Base>::value() helper.

[ChangeLog][QtCore][moc] Moc now correctly sets a non-null
QMetaObject::superClass for Q_GADGETs that inherit from a template which
inherits another Q_GADGET.

Change-Id: I103b5efd74ed24172dffce477ca2ed6d0f374d44
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2019-12-12 13:02:52 +01:00
..
moc Support Q_GADGET QMetaObject super class hierarchies across templates 2019-12-12 13:02:52 +01:00
qdbuscpp2xml remove unnecessary references to $$QMAKE_CFLAGS_DBUS 2016-10-04 20:21:28 +00:00
qdbusxml2cpp remove unnecessary references to $$QMAKE_CFLAGS_DBUS 2016-10-04 20:21:28 +00:00
qmake Make conflicting targets check less strict 2019-10-03 20:28:03 +02:00
qmakelib Migrate Windows system libs to external dependencies 2019-05-08 08:30:02 +00:00
rcc rcc: Add -d option to output a Makefile-syntax depfile 2019-06-29 02:26:23 +02:00
uic uic: Avoid use of Q_UNUSED in the generated code 2019-07-30 09:34:36 +02:00
tools.pro add test for the qmake library 2015-02-25 13:54:33 +00:00