slint/internal/compiler/tests/syntax/analysis/binding_loop_layout4.slint
Olivier Goffart ee672d65f5 Fix panic when the binding loop is caused by accessing the same component twice
The component properties might be accessed through different paths so we
may still reach a case where we have to borrow something that is already
borrowed
2023-01-24 18:01:30 +01:00

39 lines
1.6 KiB
Text

// Copyright © SixtyFPS GmbH <info@slint-ui.com>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-commercial
component Foo {
// ^error{The binding for the property 'layoutinfo-h' is part of a binding loop}
// ^^error{The binding for the property 'layoutinfo-h' is part of a binding loop}
HorizontalLayout {
// ^error{The binding for the property 'layout-cache' is part of a binding loop}
// ^^error{The binding for the property 'width' is part of a binding loop}
// ^^^error{The binding for the property 'width' is part of a binding loop}
// ^^^^error{The binding for the property 'layoutinfo-h' is part of a binding loop}
// ^^^^^error{The binding for the property 'layout-cache' is part of a binding loop}
// ^^^^^^error{The binding for the property 'width' is part of a binding loop}
// ^^^^^^^error{The binding for the property 'width' is part of a binding loop}
// ^^^^^^^^error{The binding for the property 'layoutinfo-h' is part of a binding loop}
Text {
text: "hello";
font_size: self.width / 2.5;
// ^error{The binding for the property 'font-size' is part of a binding loop}
// ^^error{The binding for the property 'font-size' is part of a binding loop}
}
}
}
component Bar {
HorizontalLayout {
// ^error{The binding for the property 'layout-cache' is part of a binding loop}
// ^^error{The binding for the property 'width' is part of a binding loop}
// ^^^error{The binding for the property 'width' is part of a binding loop}
Foo {}
Foo {}
}
}
export component Apps inherits Window {
Bar {}
}