// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial

export Xxx := Rectangle {
    callback plop(string, color, int);
    callback plop2(string, 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;
}
