// Copyright © SixtyFPS GmbH // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 global Glob := { // ^warning{':=' to declare a global is deprecated. Remove the ':='} property len: 45px * 5; // ^error{Cannot convert between logical and physical length in a global component, because the scale factor is not known} property logic_len: 45phx * 5; // ^error{Cannot convert between logical and physical length in a global component, because the scale factor is not known} property ratio: allowed / 1phx; // ^error{Cannot convert between logical and physical length in a global component, because the scale factor is not known} property converted_rem: 2rem; // ^error{Cannot convert between rem and logical length in a global component, because the default font size is not known} property should_work: 45px / 8px + (4rem / 2rem); property allowed: 45px * 5; property rem_allowed: 42rem; } export X := Rectangle { // ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info} t := Text { x: "hello"; // ^error{Cannot convert string to length} text: 45; } Text { x: t.text; // ^error{Cannot convert string to length} y: 42; // ^error{Cannot convert float to length. Use an unit, or multiply by 1px to convert explicitly} text: x; // ^error{Cannot convert length to string. Divide by 1px to convert to a plain number} property foo: y; // ^error{Cannot convert length to int. Divide by 1px to convert to a plain number} property bar: foo; // ^error{Cannot convert int to duration. Use an unit, or multiply by 1ms to convert explicitly} } Rectangle { background: "blue"; // ^error{Cannot convert string to brush} property no_matching_parent: 50%; // ^error{Automatic conversion from percentage to length is only possible for the following properties: width, height, preferred-width, preferred-height} } property <{a: string, b: int}> object1: { a: "123", typo: 42}; // ^error{Cannot convert { a: string,typo: float,} to { a: string,b: int,}} property <[{a: [int]}]> ccc: [{a: []}, {}, {a: ["123"]}, {a: [123]}]; // (FIXME: error location) (FIXME: duplicated) // ^error{Cannot convert string to int} // ^^error{Cannot convert string to int} property arr1: []; // ^error{Cannot convert [void] to int} property <{a: int}> arr2: {a: []}; // ^error{Cannot convert [void] to int} property arr3: false ? [] : 45; //(FIXME: error not ideal) // ^error{Cannot convert void to int} // ^^error{Cannot convert float to [void]} property to-float: "foobar".to-float; // ^error{Member function must be called. Did you forgot the '()'?} }