[webkit-dev] Code Style: Opinion on returning void
Alex Christensen
achristensen at apple.com
Wed Feb 20 15:03:39 PST 2019
I like it mostly for its brevity, but I also think it would be strange that changing a return type from bool to void or vice versa would require touching all its call sites.
> On Feb 20, 2019, at 1:20 PM, Chris Dumez <cdumez at apple.com> wrote:
>
>>
>> On Feb 20, 2019, at 1:14 PM, Maciej Stachowiak <mjs at apple.com <mailto: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 <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 <mailto:webkit-dev at lists.webkit.org>
> https://lists.webkit.org/mailman/listinfo/webkit-dev <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/89e9022b/attachment.html>
More information about the webkit-dev
mailing list