Use of return_if_fail () in an async function results in C code with void returned in a boolean function

Example code

async void print_string (string message) {
    return_if_fail (message != null);
    stdout.printf (message);
}

void main() {
    var loop = new MainLoop();
    print_string.begin("Hello", (obj, res) => {
            print_string.end(res);
            loop.quit();
        });
    loop.run();
}

Extract of resulting C code:

static gboolean
print_string_co (PrintStringData* _data_)
{
    ...

    g_return_if_fail (_data_->message != NULL);
    
    ...

    return FALSE;
}

This was found due to this issue: https://github.com/elementary/files/issues/1341

Assignee Loading
Time tracking Loading