Fix purity check for focus() on custom component

Do the purity check before doing the transformation of the `focus()`
function, so the source location of the error is the most accurate

Fixes #6979
This commit is contained in:
Olivier Goffart 2024-12-03 13:14:12 +01:00
parent ae087629e9
commit 461beb80cd
3 changed files with 18 additions and 1 deletions

View file

@ -0,0 +1,16 @@
// 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
component SubElement {
forward_focus: input;
input := TextInput { }
}
export component TestCase {
pure callback focus_input2();
focus_input2 => {
input2.focus();
// ^error{Call of impure function}
}
input2 := SubElement { }
}