Learn what Felgo offers to help your business succeed. Start your free evaluation today! Felgo for Your Business

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{}
}
Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded