Hi there,

While I also feel it's kind of odd to have Void defined as the empty tuple with 
the latest changes like SE-0110, I also see issues with your proposal.

For example, your change will cause ambiguity when calling generic functions 
and functions that contain all the arguments but the generic one:

func foo<T>(_ a: T) {}
func foo() {}

foo() // are we calling foo() or foo<Void>()

> On 12 Jun 2017, at 10:48, Jérémie Girault via swift-evolution 
> <[email protected]> wrote:
> 
> Hi here,
> 
> As I tested swift4 in xcode9b1 I noticed a lot of regressions about tuples 
> usage.
> 
> After documenting myself about the changes which happened, I thought that 
> they could be improved. Instead of fighting these propositions (which make 
> sense), I wanted create a few proposal which would improve these recent 
> changes with a few simple rules.
> 
> My propositions are based on the recent decisions and in the continuation of 
> SE-0110. The first one is about Void.
> Void is historically defined as the type of the empty tuple. The reason of 
> this is that arguments were initially considered as tuple. If this is no more 
> the case, then it’s no more a reason to keep Void as an empty tuple.
> 
> I think that by having a few rules around tuples of cardinality 0 and 1 and 
> also arguments list, we could greatly improve source compatibility and keep a 
> lot of what makes swift great when using functional style and generics.
> 
> I drafted a proposal that would allow more source compatibility and type 
> consistency and would enjoy discussing it with you, in order to improve it : 
> 
> https://github.com/jeremiegirault/swift-evolution/blob/master/proposals/NNNN-flatten-void.md
> 
> Let me know what you think about it,
> 
> —
> very short reply expected - vsre.info
> Jérémie Girault
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to