pub fn main() {

    return;
    return ();
    return as ();
    return return as ();
    return return return;

    return if true {
        ()
    } else {
        ()
    };

    loop {
        return break as ();
    }

    return enum; //~ ERROR expected one of `;`, `}`, or an operator, found keyword `enum`
}
