W3cubDocs

/Qt 6.9

Inheritance cycle

This warning category is spelled [inheritance-cycle] by qmllint.

Component is part of an inheritance cycle

What happened?

A component inherited directly or indirectly from itself.

Usually, Components can inherit properties, methods, signals and enums from other components.

If a component inherits itself directly or indirectly through another base component, then it forms an inheritance cycle. The warning indicates that the current component is inside an inheritance cycle, see Example.

Why is this bad?

Components with inheritance cycles will not be created at runtime: they will be null instead.

Example

import QtQuick

Item {
    component Cycle: Cycle {} // not ok: directly inherits from itself
    component C: C2 {}        // not ok: indirectly inherits from itself
    component C2: C{}
}

To fix this warning, break up the inheritance cycle:

import QtQuick

Item {
    component Cycle: Item {}  // ok: does not inherit from itself
    component C: C2 {}        // ok: does not indirectly inherits from itself anymore
    component C2: Cycle{}
}

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.9/qmllint-warnings-and-errors-inheritance-cycle.html