[swift-evolution] Disambiguate Return Type With Void

Vladimir.S svabox at gmail.com
Tue Apr 26 07:26:08 CDT 2016


Interesting suggestion, but IMO this will produce a question about new 
naming conversion in Swift 3.0 (noun/verb, -ing/-ed, etc) because using 
your suggestion we could want to use:

array.sort(..) // mutating
let array2 = array.sort(..) // non-mutating, instead of array.sorted()

Also, technically we can assign a value to Void function(yes, compiler 
warning will be produced, but just warning, not error):

var something = array.sort(..) // mutating,currently this is valid code
// something  == ()


On 26.04.2016 13:56, Andrew Bennett via swift-evolution wrote:
> Hey,
>
> I thought I would post another message to this thread because I think it
> was missed when I first sent it (I made the mistake of sending it at 1am
> San Francisco time, I'm in Australia).
>
> I appreciate any feedback :)
>
> Thanks,
> Andrew
>
> On Mon, Mar 28, 2016 at 7:21 PM, Andrew Bennett <cacoyi at gmail.com
> <mailto:cacoyi at gmail.com>> wrote:
>
>     Swift can resolve functions based on the return type. However, when the
>     result is unused a single function often can't be resolved without
>     explicitly specifying the type.
>
>     |func example() { ... } func example() -> Int { ... } example() as Void
>     example() as Int |
>
>     This proposal disambiguates some cases:
>
>       * Preferring functions with a |*Void*| return type when the result
>         *is* discarded.
>       * Preferring functions with a *non-|Void|* type when the result *is
>         not* discarded.
>
>     These example will be unambiguous:
>
>     |example() // will prefer a `Void` function let x = example() // will
>     prefer a non-`Void` function|
>
>     You can read the full latest version of the proposal here:
>
>     https://github.com/therealbnut/swift-evolution/blob/andrew-disambiguate-return-type/proposals/0000-disambiguate-return-type.md
>
>     This is the original version
>     <https://github.com/therealbnut/swift-evolution/blob/59d0f0b9bdabcfd675f36824232a8efa4a5f9152/proposals/0000-disambiguate-return-type.md> of
>     the proposal.
>
>
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>


More information about the swift-evolution mailing list