- Qt 6.11
- Qt Qml
- Qt Qml Tooling
- qmllint
- QML Lint Warning and Errors
- Inheritance cycle
- Qt 6.11.2 Reference Documentation

Incompatible type ◦ Invalid qmllint directives

# 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{}
     }

Incompatible type ◦ Invalid qmllint directives