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

struct Str := { foo: Rectangle }
//                   ^error{'Rectangle' is not a valid type}

Comp := Rectangle {
    property <Rectangle> r;
//            ^error{'Rectangle' is not a valid type}

    property <[Rectangle]> ls;
//             ^error{'Rectangle' is not a valid type}
    property <{foo: Rectangle}> st;
//                  ^error{'Rectangle' is not a valid type}

    callback cb1(Rectangle);
//               ^error{'Rectangle' is not a valid type}
    callback cb2() -> Rectangle;
//                    ^error{'Rectangle' is not a valid type}
}

export Foo := Rectangle {
    xx := Rectangle { }
    Comp {
        r: xx;
//      ^error{Unknown property}
//         ^^error{Cannot take reference of an element}
    }
}
