mirror of
https://github.com/slint-ui/slint.git
synced 2025-09-28 12:54:45 +00:00

Some property need to be known at compile time. We already had checks that the binding is a compile time constant, but there was no check to prevent, say self.row = 42; which wouldn't work or could even cause panic or miscompilation of generated code Closes #4037
38 lines
1.2 KiB
Text
38 lines
1.2 KiB
Text
// Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.1 OR LicenseRef-Slint-commercial
|
|
|
|
Button1 := Rectangle {
|
|
property <bool> cond;
|
|
accessible-role: cond ? button : AccessibleRole.text;
|
|
// ^error{The `accessible-role` property must be a constant expression}
|
|
|
|
rr := Rectangle {
|
|
init => {
|
|
self.accessible-role = AccessibleRole.text;
|
|
// ^error{The property must be known at compile time and cannot be changed at runtime}
|
|
}
|
|
}
|
|
}
|
|
|
|
Button2 := Rectangle {
|
|
accessible-label: "the button";
|
|
// ^error{The `accessible-label` property can only be set in combination to `accessible-role`}
|
|
}
|
|
|
|
Button3 := Rectangle {
|
|
Rectangle {
|
|
accessible-role: text;
|
|
accessible-label: "the button";
|
|
}
|
|
}
|
|
|
|
export Test := Window {
|
|
|
|
Button1 { }
|
|
Button1 { accessible-description: "ok"; } // ok because Button1 has a role
|
|
Button2 { accessible-role: none; }
|
|
Button2 { }
|
|
Button3 {}
|
|
Button3 { accessible-description: "error";}
|
|
// ^error{The `accessible-description` property can only be set in combination to `accessible-role`}
|
|
}
|