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

Recursion depths errors

This warning category is spelled [recursion-depth-errors] by qmllint.

Maximum statement or expression depth exceeded

What happened?

A QML statement or expression was too deeply nested for the compiler. This usually only happens for generated code where statements or expressions can be very long, as the recursion limit is usually large enough for any sensible QML document.

Why is this bad?

The QML engine will not be able to run this code.

Example

import QtQuick

Item {
    function f() {
        let x = 1 + 1 + .... + 1 // maximum depth exceeded: add too many ones together
        return x
    }

    Item { Item { .... } } // maximum depth exceeded: too many nested Item's
}

To fix this warning, auto-generate smaller code pieces. Split deeply nested Components in multiple files or inline components, or split deeply nested expressions into multiple expressions:

import QtQuick

Item {
    function f() {
        let x = 1 + 1 + .... + 1 // first half of the split
        x += 1 + 1 + .... + 1 // second half of the split
        return x
    }

    component NestedItem : Item { Item {... }} // first half of the nested Item
    component DeeplyNestedItem: Item { ... NestedItem{} ... } // second half of the nested Items + NestedItem
    DeeplyNestedItem {}
}
Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded