slint/internal/compiler/tests/syntax/basic/self_assign.slint
Leon Matthes 077d3b6972
Some checks are pending
autofix.ci / format_fix (push) Waiting to run
autofix.ci / lint_typecheck (push) Waiting to run
autofix.ci / ci (push) Blocked by required conditions
Add length to spans and diagnostics (#9703)
This allows diagnostics to cover not just a single character, but the
entire relevant code region.

ChangeLog: Diagnostics now indicate the range of the error/warning, not just the starting character
2025-12-03 17:56:01 +01:00

66 lines
2 KiB
Text

// 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
export SuperSimple := Rectangle {
// ><warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
TouchArea {
clicked => { root.x += 1phx; }
}
TouchArea {
clicked => { x += 1phx; }
}
TouchArea {
clicked => { 12 += 1; }
// > <error{Self assignment needs to be done on a property}
}
TouchArea {
clicked => { x += "string"; }
// > <error{Cannot convert string to length}
}
TouchArea {
clicked => { doesnotexist += 24; }
// > <error{Unknown unqualified identifier 'doesnotexist'}
}
TouchArea {
property <string> text;
clicked => { text *= 2; }
// > <error{the *= operation cannot be done on a string}
}
TouchArea {
property <string> text;
clicked => { text += 2; }
}
TouchArea {
property <string> text;
clicked => {
text /= "hello";
// > <error{the /= operation cannot be done on a string}
text *= 2;
// > <error{the *= operation cannot be done on a string}
text -= text;
// > <error{the -= operation cannot be done on a string}
}
}
TouchArea {
property <brush> color;
clicked => { color += color; }
// > <error{the += operation cannot be done on a brush}
}
TouchArea {
property <brush> color;
clicked => { color *= 3; }
// > <error{the *= operation cannot be done on a brush}
}
TouchArea {
clicked => { height /= height; }
// > <error{Cannot convert length to float. Divide by 1px to convert to a plain number}
}
}