// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
Compo1 := Rectangle {
// ><warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
property <int> a : aa();
// > <error{The binding for the property 'a' is part of a binding loop (cc.a -> cc.aa -> cc.a)}
pure callback aa() -> int;
function factorial(n: int) -> int {
// >error{The binding for the property 'factorial' is part of a binding loop (cc.factorial -> cc.factorial)}
return n == 0 ? 1 : factorial(n - 1) * n;
}
// <error{The binding for the property 'factorial' is part of a binding loop (cc.factorial -> cc.factorial)}
property <int> b;
public pure function bb() -> int { return b; }
// > <error{The binding for the property 'bb' is part of a binding loop (cc.b -> cc.bb -> cc.b)}
}
export App := Rectangle {
// ><warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
cc := Compo1 {
aa() => { return self.a; }
// >error{The binding for the property 'aa' is part of a binding loop (cc.a -> cc.aa -> cc.a)}
b: self.bb();
// <error{The binding for the property 'aa' is part of a binding loop (cc.a -> cc.aa -> cc.a)}
// > <^error{The binding for the property 'b' is part of a binding loop (cc.b -> cc.bb -> cc.b)}
}
}