Priority: P2: Important
Affects Version/s: 5.9.3, 5.15.2
As a consequence of
QTBUG-62243, QML singletons that import their own module trigger a cyclic dependency. While the cycle is "ignored" at load time due to the fix for QTBUG-64017, it is not ignored on the disk cache level and results in a constant case of "Checksum mismatch for cached version of mysingleton.qml".
Perhaps the fix involves the following step that when type-compiling such a singleton, the resulting byte code and data structures mut not depend on the singleton itself. This may disable certain compile-time optimizations and result in run-time lookups instead (not sure where yet if any) and require detecting the cycle correctly at the import cache level.
Edit: I thought this may be related to the circular dependency handling on the type loader level, but it doesn't look like it is. But there must be another way of triggering this though.
|For Gerrit Dashboard: QTBUG-66976|
|222749,2||Fix circular dependency handling for composite singletons||5.11||qt/qtdeclarative||Status: ABANDONED||-2||0|
|244747,2||QML TypeLoader: Sort composite singletons before recursing into them||5.12||qt/qtdeclarative||Status: MERGED||+2||0|
|246932,1||QML TypeLoader: Sort composite singletons before recursing into them||dev||qt/qtdeclarative||Status: ABANDONED||0||0|