[webkit-dev] Code Style: Opinion on returning void

Chris Dumez cdumez at apple.com
Wed Feb 20 13:20:25 PST 2019


> On Feb 20, 2019, at 1:14 PM, Maciej Stachowiak <mjs at apple.com> wrote:
> 
> 
> It seems like `return foo();` where foo() is a void function can always be replaced with `foo(); return;` for greater clarity at the cost of one extra line break. For people who prefer the one-line style, can you say why you don’t like the other way?

We do not allow more than one statement per line so it would be:
foo();
return;

Also, since we favor early returns in WebKit, things like:
If (!nok)
    return completionHandler(Failed);

Would become:
If (!nok) {
    completionHandler(Failed);
    return;
}

It is not a big deal but I personally prefer the most concise version. Especially, it is not uncommon to have multiple early returns.
I think more concise is better and I personally do not see a readability issue here. It does not really matter what the completion handler is returning.

> 
>  - Maciej
> 
>> On Feb 20, 2019, at 10:33 AM, Simon Fraser <simon.fraser at apple.com <mailto:simon.fraser at apple.com>> wrote:
>> 
>> I find it mind bending. It makes me wonder if the author made a coding error.
>> 
>> Simon
>> 
>>> On Feb 20, 2019, at 7:48 AM, Daniel Bates <dbates at webkit.org <mailto:dbates at webkit.org>> wrote:
>>> 
>>> Thanks for the opinion!
>>> 
>>> Dan
>>> 
>>> On Feb 20, 2019, at 7:26 AM, Saam Barati <sbarati at apple.com <mailto:sbarati at apple.com>> wrote:
>>> 
>>>> I prefer it as well.
>>>> 
>>>> - Saam
>>>> 
>>>> On Feb 20, 2019, at 6:58 AM, Chris Dumez <cdumez at apple.com <mailto:cdumez at apple.com>> wrote:
>>>> 
>>>>> I also prefer allowed returning void. 
>>>>> 
>>>>> Chris Dumez
>>>>> 
>>>>> On Feb 19, 2019, at 10:35 PM, Daniel Bates <dbates at webkit.org <mailto:dbates at webkit.org>> wrote:
>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Feb 19, 2019, at 9:42 PM, Ryosuke Niwa <rniwa at webkit.org <mailto:rniwa at webkit.org>> wrote:
>>>>>> 
>>>>>>> On Tue, Feb 19, 2019 at 8:59 PM Daniel Bates <dbates at webkit.org <mailto:dbates at webkit.org>> wrote:
>>>>>>> > On Feb 7, 2019, at 12:47 PM, Daniel Bates <dbates at webkit.org <mailto:dbates at webkit.org>> wrote:
>>>>>>> >
>>>>>>> > Hi all,
>>>>>>> >
>>>>>>> > Something bothers me about code like:
>>>>>>> >
>>>>>>> > void f();
>>>>>>> > void g()
>>>>>>> > {
>>>>>>> >     if (...)
>>>>>>> >         return f();
>>>>>>> >     return f();
>>>>>>> > }
>>>>>>> >
>>>>>>> > I prefer:
>>>>>>> >
>>>>>>> > void g()
>>>>>>> > {
>>>>>>> >     if (...) {
>>>>>>> >         f();
>>>>>>> >         return
>>>>>>> >     }
>>>>>>> >     f();
>>>>>>> > }
>>>>>>> >
>>>>>>> Based on the responses it seems there is sufficient leaning to codify
>>>>>>> the latter style.
>>>>>>> 
>>>>>>> I don't think there is a sufficient consensus as far as I can tell. Geoff
>>>>>> 
>>>>>> I didn't get this from Geoff's remark. Geoff wrote:
>>>>>> 
>>>>>> ***“return f()” when f returns void is a bit mind bending.***
>>>>>> Don't want to put words in Geoff's mouth. So, Geoff can you please confirm: for the former style, for the latter style, no strong opinion.
>>>>>> 
>>>>>>> and Alex both expressed preferences for being able to return void,
>>>>>> 
>>>>>> I got this from Alex's message
>>>>>> 
>>>>>>> and Saam pointed out that there is a lot of existing code which does this.
>>>>>> 
>>>>>> I did not get this. He wrote emphasis mine:
>>>>>> 
>>>>>> I've definitely done this in JSC. ***I don't think it's super common***, but I've also seen code in JSC not written by me that also does this.
>>>>>> 
>>>>>>> Zalan also said he does this in his layout code.
>>>>>> 
>>>>>> I did not get this, quoting, emphasis mine:
>>>>>> 
>>>>>> I use this idiom too in the layout code. I guess I just prefer a more
>>>>>> compact code.
>>>>>> ***(I don't feel too strongly about it though)***
>>>>>> 
>>>>>> By the way, you even acknowledged that "WebKit ... tend[s] to have a separate return.". So, I inferred you were okay with it. But from this email I am no longer sure what your position is. Please state it clearly.
>>>>>> 
>>>>>>> - R. Niwa
>>>>>>> 
>>>>>> _______________________________________________
>>>>>> webkit-dev mailing list
>>>>>> webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
>>>>>> https://lists.webkit.org/mailman/listinfo/webkit-dev <https://lists.webkit.org/mailman/listinfo/webkit-dev>
>>>>> _______________________________________________
>>>>> webkit-dev mailing list
>>>>> webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
>>>>> https://lists.webkit.org/mailman/listinfo/webkit-dev <https://lists.webkit.org/mailman/listinfo/webkit-dev>
>>> _______________________________________________
>>> webkit-dev mailing list
>>> webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
>>> https://lists.webkit.org/mailman/listinfo/webkit-dev <https://lists.webkit.org/mailman/listinfo/webkit-dev>
>> 
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
> 
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20190220/c7633231/attachment.html>


More information about the webkit-dev mailing list