slint/internal/compiler/tests/syntax/lookup/callback_alias3.slint
Olivier Goffart 92e5cef55f
Deprecate alias to global callback and error out when setting such callback
Also properly error out when the number of arguments to a callback alias
is not correct

Fixes #7806
2025-03-24 15:17:20 +01:00

38 lines
1.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
Sub := Rectangle {
callback compute(int) -> int;
callback compute_alias <=> compute;
}
export Xxx := Rectangle {
foo := Rectangle {
callback hello(int) -> int;
}
callback colr <=> foo.background;
// ^error{Binding to callback 'colr' must bind to another callback}
property propr <=> foo.hello;
// ^error{Could not infer type of property 'propr'}
callback loop1 <=> loop2;
callback loop3 <=> loop1;
// ^error{Unknown unqualified identifier 'loop1'}
// ^^error{Binding to callback 'loop3' must bind to another callback}
callback loop2 <=> loop3;
Sub {
compute_alias(a, b, c) => {
// ^error{'compute-alias' only has 1 arguments, but 3 were provided}
debug(b);
// ^error{Unknown unqualified identifier 'b'}
return "hello";
// ^error{Cannot convert string to int}
}
callback x <=> compute_alias;
// ^error{Cannot declare callback 'x' when a property with the same name exists}
}
}