() / (()) conversion in curried generic input types

Here is another thread that might be relevant:

If was proposing making

func f<T>() -> T { /*...*/ }

sugar for:

func f<T>(_: Void = () ) -> T { /*...*/ }

During Swift 4.0 to 4.1 transition. It meant functions would have from 1 to n arguments, instead of 0 to n.

The argument for it was reducing source breakage resulting from the removal of tuple splat. I was in favor and didn't really understand what was the valid argument against it.

1 Like