[swift-evolution] Make non-void functions @warn_unused_result by default

Dave Abrahams dabrahams at apple.com
Thu Feb 25 09:49:01 CST 2016


on Wed Feb 24 2016, Haravikk <swift-evolution-AT-haravikk.me> wrote:

>> On 24 Feb 2016, at 23:44, Janosch Hildebrand <jnosh at jnosh.com> wrote:
>> 
>> Thanks for the encouragement everyone! I’ll start drafting over the weekend.
>> 
>> With regard to the inverted attribute, that is definitely open to discussion.
>
>> Other variants that had been mentioned previously include:
>> 
>> @suppress_unused_result - suggested by Adrian Kashivskyy
>> @allow_unused_result - suggested by Kevin Ballard
>> @ignoreresult - suggested by Brent Royal-Gordon
>> 
>> Also the aforementioned “Modernizing Attribute Case and Attribute
>> Argument Naming” proposal[1] will also play into this discussion as
>> well.
>> 
>> [1]
>> https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160215/010510.html
>> <https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160215/010510.html>
>> 
>> - Janosch
>
> While I like the brevity, I don’t think @ignoreresult is clear enough
> on what it does, @optional_result (or ideally @optionalResult if
> camel-case for attributes is accepted) is clearer I think if we want a
> shortened two-word form. Or there’s Sean’s @discardable_result
> alternative which is even clearer.
>
> Otherwise @allow_unused_result is the best of the three word options I
> think; @suppress_unused_result is a bit unclear as what you’re
> actually suppressing is the compiler warning, as in most cases a
> result will still be generated, it’s just not stored anywhere at the
> call site.

@discardable_result is nice.  I kinda wish it were an annotation on the result
type; then it could just be @discardable.

-- 
-Dave


More information about the swift-evolution mailing list