sixtyfps-compilerlib 0.1.2

Internal SixtyFPS compiler library
Documentation
/* LICENSE BEGIN
    This file is part of the SixtyFPS Project -- https://sixtyfps.io
    Copyright (c) 2021 Olivier Goffart <olivier.goffart@sixtyfps.io>
    Copyright (c) 2021 Simon Hausmann <simon.hausmann@sixtyfps.io>

    SPDX-License-Identifier: GPL-3.0-only
    This file is also available under commercial licensing terms.
    Please contact info@sixtyfps.io for more information.
LICENSE END */

SubElements := Rectangle {
    callback foobar;

    callback callback_with_arg(int, string);

    callback invalid_arg(InvalidType);
//                       ^error{Unknown type 'InvalidType'}

    TouchArea {
        clicked => { foobar() }
    }

    TouchArea {
        clicked: 45;
//      ^error{'clicked' is a callback. Use `=>` to connect}
        x => {}
//      ^error{'x' is not a callback in TouchArea}
    }

    TouchArea {
        clicked => { foobar() }
        clicked => { foobar() }
//      ^error{Duplicated callback}
    }

    does_not_exist => {
//  ^error{'does-not-exist' is not a callback in Rectangle}
        root.does_not_exist();
    }

    foobar() => { foobar() }
    callback_with_arg(a, b, c, d) => { }
//  ^error{'callback-with-arg' only has 2 arguments, but 4 were provided}

}