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


component BadOne {
    function focus() {
//           ^error{Cannot override 'focus'}
    }

    TextInput {
        function focus() {
//               ^error{Cannot override 'focus'}
        }
    }
}

component SecondBadOne {
    forward-focus: ti;
    function focus() {
//           ^error{Cannot override 'focus'}        
    }
    ti := TextInput {}
}

export X := Rectangle {
    edit := TextInput { }
    TouchArea {
        clicked => {
            (edit.focus)();
//           ^error{'edit.focus' must be called. Did you forgot the '\(\)'\?}
            edit.focus;
//          ^error{'edit.focus' must be called. Did you forgot the '\(\)'\?}
        }
    }
    x: edit.focus;
//     ^error{Cannot convert function\(element ref\) -> void to length}
//     ^^error{'edit.focus' must be called. Did you forgot the '\(\)'\?}
//          ^^^warning{Call of impure function}

    BadOne {}
    SecondBadOne {}
}
