[swift-evolution] Revisiting SE-0110

Vladimir.S svabox at gmail.com
Tue Jun 6 08:30:36 CDT 2017

On 06.06.2017 15:32, Gwendal Roué wrote:
>> Le 6 juin 2017 à 12:06, Vladimir.S <svabox at gmail.com <mailto:svabox at gmail.com>> a 
>> écrit :
>> On 06.06.2017 7:36, Gwendal Roué wrote:
>>> http://adcdownload.apple.com/WWDC_2017/Xcode_9_beta/Xcode_9_beta_Release_Notes.pdf
>>>> The migrator does not properly distinquish between single-tuple and 
>>>> multiple-argument function types as described in SE–0110, causing additional 
>>>> mismatched type errors with the closure types that are passed to Standard Library 
>>>> functions expecting tuple objects. (32431899)
>>>> Workaround: Manually fix the closure types to accept values of tuples instead of 
>>>> separate argument values.
>>>> When using $0 and $1 in a closure that is passed to a function expecting a 
>>>> closure with a single tuple argument, the compiler may error after migration with:
>>>> error: closure tuple parameter '(TYPE, TYPE)' does not support destructuring with 
>>>> implicit parameters
>>>> (32489893)
>>>> Workaround: Change $0 and $1 references to $0.0 and $0.1 respectively.
>>> Where are the firemen?
>> Could you help me to understand which of my question did you reply on with the 
>> above link and quotes? What are you trying to say? Thank you.
> Oh, just that the Xcode 9 beta release notes list not less than four (four!) known 
> issues related to SE-0110.
> On top of the already discussed regressions introduced by SE-0110, we now have a 
> painful migration.
> I wonder why we're still spilling blood, why the fire hasn't been extinguish yet. 
> Hence: where are the firemen?

I'm just trying to understand your opinion.
Let me know, what result do you *expect* for this Swift4 code given what SE-0066 
requires for function types:

func foo(x : (Int, Int))->() {}

print(type(of: foo))  // ??
print(foo is (_: Int, _: Int)->())  // ??


> Is there anybody responsible here? When will this endless discussion about 
> "revisiting SE-0110" will eventually end with a reasonable decision?
> When will the proposal process will be amended so that developers should be given a 
> voice, along with language layers, on swift evolution? Developers don't have the same 
> skills as language layers. Too many developers lack the poise and confidence to talk 
> about the future impact of a language modification. Too many language layers fail to 
> admit that some language modification do actual harm on written code after they have 
> invested a lot of time thinking about it. That's normal.
> And that's a recipe for things like SE-0110.
> What I've read here so far makes me think SE-0110 belongs to the "false good ideas", 
> as SE-0025 have been before. Along with SE-0025, maybe SE-0166, it has been deemed 
> "stable" much too early. Unfortunately, the swift evolution process only produces 
> stable amendments that are very painful to fix. I wish the core team would think 
> about it some day: aren't the quality of the language and its core libraries at stake?
> Gwendal

More information about the swift-evolution mailing list