slint/sixtyfps_compiler/tests/syntax/analysis/binding_loop_issue_772.60
Olivier Goffart a8bc254dd3 Fixes loop detection involving sub components and two ways binding
The original binding analysis code was considering that all the sub components
were inlined. But when this is not the case, we need to re-analyze each
sub component within their parent.

We also need to take care of reverse aliases

Will cause a .60 compile time binding loop error instead of a
runtime recursion panic in code like issue #772
2022-01-17 19:48:37 +01:00

19 lines
604 B
Text

// Copyright © SixtyFPS GmbH <info@sixtyfps.io>
// SPDX-License-Identifier: (GPL-3.0-only OR LicenseRef-SixtyFPS-commercial)
Alias := Rectangle {
property <int> viewport_width ;
property <int> ps_width <=> viewport_width;
}
Foo := Rectangle {
property <int> base-prop: alias.viewport_width;
// ^error{The binding for the property 'base-prop' is part of a binding loop}
alias := Alias { ps_width: base-prop; }
// ^error{The binding for the property 'ps-width' is part of a binding loop}
Text {
text: base-prop;
}
}