slint/internal/compiler/tests/syntax/lookup/signal_arg.slint
Olivier Goffart 3a59950751 Experimental support for named callback parameters
And use that in the lsp/ui implementation instead of comments.

This is only a parser support for now, the name is otherwise unused.
Hence I rather keep that experimental.
2024-08-19 14:10:01 +02:00

35 lines
1.4 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 Xxx := Rectangle {
callback plop(string, color, int);
callback plop2(string, some-name: color, int);
property <color> glop_col;
property <string> blah: "yo";
plop2(x, blah, hello) => {
background = blah;
x = 42 + hello;
// ^error{Assignment needs to be done on a property}
width = x;
// ^error{Cannot convert string to length}
plop("hallo", #fff, 42);
plop("hallo", #fff,);
// ^error{The callback or function expects 3 arguments, but 2 are provided}
plop("hallo", #fff, 42, true);
// ^error{The callback or function expects 3 arguments, but 4 are provided}
plop(42, 42, 42);
// ^error{Cannot convert float to color}
hello(45, fff);
// ^error{The expression is not a function}
// ^^error{Unknown unqualified identifier 'fff'}
(plop)("45", #fff, 42);
// ^error{'plop' must be called. Did you forgot the '\(\)'\?}
(root.plop)("45", #fff, 42);
// ^error{'root.plop' must be called. Did you forgot the '\(\)'\?}
(root.plop)("45", #fff, "45");
// ^error{'root.plop' must be called. Did you forgot the '\(\)'\?}
// ^^error{Cannot convert string to int}
}
x: 12phx;
}