[swift-evolution] [Review] SE-0035 Limiting inout capture to @noescape contexts
Trent Nadeau
tanadeau at gmail.com
Tue Feb 16 21:13:28 CST 2016
- What is your evaluation of the proposal?
- +1. This seems like a reasonable way to prevent an existing
problematic behavior in Swift.
- Is the problem being addressed significant enough to warrant a change
to Swift?
- Yes. If the problem is enough to make it into multiple foot-gun
lists, then I think it's significant enough.
- Does this proposal fit well with the feel and direction of Swift?
- Yes
- If you have you used other languages or libraries with a similar
feature, how do you feel that this proposal compares to those?
- N/A
- How much effort did you put into your review? A glance, a quick
reading, or an in-depth study?
- I followed the swift-evolution thread and read the proposal.
On Tue, Feb 16, 2016 at 9:56 PM, Howard Lovatt via swift-evolution <
swift-evolution at swift.org> wrote:
> +1 from me. I have been caught out :(
>
> I would go further and make all captured variables read only unless marked
> by inout, i.e.:
>
> func example(inout x: Int) {
> escape { _ = x } // OK, immutable capture
> noEscape { _ = x } // OK, immutable capture
> noEscape {[inout x] in _ = x } // OK, closure is @noescape
> escape {[inout x] in _ = x } // error: closure cannot implicitly
> capture an inout parameter unless @noescape
> }
>
>
> Which would make closures consistent with functions.
>
> Even though I would go further it is still a +1 for me for this proposal
> since it is a step in the right direction.
>
> -- Howard.
>
> On 17 February 2016 at 12:30, Chris Lattner via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>> Hello Swift community,
>>
>> The review of "Limiting inout capture to @noescape contexts" begins now
>> and runs through February 19th. The proposal is available here:
>>
>>
>> https://github.com/apple/swift-evolution/blob/master/proposals/0035-limit-inout-capture.md
>>
>> Reviews are an important part of the Swift evolution process. All reviews
>> should be sent to the swift-evolution mailing list at:
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> or, if you would like to keep your feedback private, directly to the
>> review manager.
>>
>>
>> What goes into a review?
>>
>> The goal of the review process is to improve the proposal under review
>> through constructive criticism and, eventually, determine the direction of
>> Swift. When writing your review, here are some questions you might want to
>> answer in your review:
>>
>> * What is your evaluation of the proposal?
>> * Is the problem being addressed significant enough to warrant a
>> change to Swift?
>> * Does this proposal fit well with the feel and direction of
>> Swift?
>> * If you have you used other languages or libraries with a
>> similar feature, how do you feel that this proposal compares to those?
>> * How much effort did you put into your review? A glance, a quick
>> reading, or an in-depth study?
>>
>> More information about the Swift evolution process is available at
>>
>> https://github.com/apple/swift-evolution/blob/master/process.md
>>
>> Thank you,
>>
>> -Chris Lattner
>> Review Manager
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
--
Trent Nadeau
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160216/3cd212b1/attachment.html>
More information about the swift-evolution
mailing list