Honestly, given that the detailed implementation is core team-approved, I
wonder if it ought to be just one of those rare pre-accepted proposals
instead. It may not be ABI impacting, but as a bugfix for a Swift 3
proposal there's a good argument it should go out in 3.x. My two cents
anyway.
On Mon, Oct 17, 2016 at 07:16 Austin Zheng <austinzheng@gmail.com> wrote:
It seems like that link should be added to the 'frequently proposed
changes' page on the repo. I'll prepare a PR.
Austin
On Oct 16, 2016, at 4:09 PM, Xiaodi Wu via swift-evolution < > swift-evolution@swift.org> wrote:
Welcome to the list! It seems the community and core team are in agreement
about your point. As mentioned previously, the core team has laid out a
two-step roadmap to restoring argument labels:
[swift-evolution] [Update + Commentary] SE-0111: Remove type system significance of function argument labels
Hope that helps!
On Mon, Oct 17, 2016 at 06:35 Grant Kemp via swift-evolution < > swift-evolution@swift.org> wrote:
Hi all
A South African in London here and I have decided to make the jump to
trying to help Swift develop.
I was an android and web developer and swift converted me to iOS
programming which has become something that I love. I have built several
apps on iOS and on macOS using it and thoroughly enjoyed it.
One think has made me fall a little out of love with swift 3 was
the removal of completion handler argument labels which has created:
1. Less maintainable code for teams
2. Less readable and thus more error prone code
3. Slower code to write as now I have to regularly scroll to the top of
the method to find out what the parameters should be .
4. Seems to be at odds with other parts of the api which favours labels.
I have found quite a lot of support from others via my stack overflow
question here:
ios - Xcode 8 :function types cannot have argument label breaking my build - Stack Overflow
Here is my suggestion:
Currently the Swift 3 version does not allow arguments in the
completionhandler method, which is confusing and not very readable.
func myMethod(_ completionhandler:(_ downloadedValue:String,_
isActive:Bool, _ error:NSError)-> Void) {
//<<After doing some async method such as downloading from an API
>>
completionhandler(myString, true, myError)
}
// INSTEAD: ideally the argument labels should be added optionally to
be called in the completion method such as below and using a Tuple-like
syntax to indicate that the method should have the labels
func myMethod(_ completionhandler:( downloadedValue:String, isActive:
Bool, error:NSError)-> Void) {
//<<After doing some async method such as downloading from an API
>>
completionhandler(dowloadedValue:myString, isActive:true,
error:myError)
}
Thanks for the help ( and any feedback on my idea above )
Thanks for the epic work you are doing !
--
Sent from my mobile
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution
--