Sent from my iPad

> On Mar 4, 2017, at 10:09 AM, Rien <r...@balancingrock.nl> wrote:
> 
> 
>> On 04 Mar 2017, at 16:01, Matthew Johnson via swift-evolution 
>> <swift-evolution@swift.org> wrote:
>> 
>> I have updated this proposal with a few more refinements based on 
>> yesterday’s discussion.  You can find the final proposal on Github:
>> 
>> https://github.com/anandabits/swift-evolution/blob/scope-bounded-capabilities/proposals/NNNN-scope-bounded-capabilities.md.
>> 
>> Matthew
>> 
>>> On Mar 2, 2017, at 1:58 PM, Matthew Johnson via swift-evolution 
>>> <swift-evolution@swift.org> wrote:
>>> 
>>> ...
>>> The rules which make up the essential complexity in Swift's access control 
>>> system are:
>>> 
>>>    • The default scope for all capabilites a declaration offers is 
>>> module-wide (or submodule-wide in the future).
>>>    • The scope of a capability may be modified by an explicit access 
>>> modifier.
>>>    • The scope of an additional capability is implicitly bounded by the 
>>> scope of the basic capability.
>>>    • The scope of an additional capability may not be explicitly specified 
>>> as greater than that of the basic capability.
>>>    • If no scope is explicitly provided for the basic capability and an 
>>> additional capability is specified to be available outside the (sub)module 
>>> the basic capability is also given the same availability.
>>>    • The scope of a declaration (including all capabilities) may be bounded 
>>> by the declaration of ancestor.
> 
> Do you mean: IS bounded by?

No, not necessarily.  If the declaration is bounded to the module and all 
ancestors are public the ancestors don't bound really bound it.  I suppose you 
could say the ancestor still provides a bound that is just never reached.  I'm 
that sense, it depends on how you want to look at it.  :)

> 
> 
>>>    • The scope of a declaration may not be greater than the scope of the 
>>> capabilities necessary to use that declaration: if you can't see a 
>>> parameter type you can't call the function.
>>> Most of these rules already exist in Swift's access control system. There 
>>> is one change and one addition:
> 
> Overall I think the draft is pretty solid.
> Imo this would give Swift the best available access control system I know of 
> ;-)
> Thanks for your work on this!

I'm glad to hear you like it!  Thanks!  I'm hoping the core team is willing to 
review it for Swift 4 and feedback continues to be positive.  It feels like 
something that should be done in Swift 4 if we're going to do it.

> 
> Regards,
> Rien
> 
> Site: http://balancingrock.nl
> Blog: http://swiftrien.blogspot.com
> Github: http://github.com/Balancingrock
> Project: http://swiftfire.nl
> 
> 
> 
> 
> 

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to