> On Mar 3, 2017, at 1:26 PM, Adrian Zubarev <adrian.zuba...@devandartist.com> 
> wrote:
> 
> Can you check this translation, and maybe based on it’s (possible) mistakes 
> provide better examples in the next proposal draft on how one should think 
> with the new pure access model.
> 
> open class A {
>      
>     open internal(set) var abc: Int = 42
> 
>     public static func foo() {}
> 
>     open class func bar() {}
> }
> 
> access(inherit, everywhere) class A {
>      
>     access(override, everywhere) access(set, submodule) var abc: Int = 42
This is correct, although it’s worth noting that the `internal(set)` or 
`access(set, submodule)` is unnecessary.  You’re just re-stating the default 
availability of the setter.

> 
>     // implicit 'call'
>     access(everywhere) access(override, nowhere) access(type) func foo() {}
> 
>     access(override, everywhere) access(type) func bar() {}
> }

As I noted in my previous reply we’re not going to replace `static` and `class` 
with this model.  Access control is not the appropriate place to distinguish 
type vs instance members.

> 
> 
> 
> -- 
> Adrian Zubarev
> Sent with Airmail
> 
> Am 3. März 2017 um 20:12:28, Adrian Zubarev (adrian.zuba...@devandartist.com 
> <mailto:adrian.zuba...@devandartist.com>) schrieb:
> 
>> If I understand the model correctly, then classes structs and enums will 
>> have an addition capability for their members.
>> 
>> static = access(type) access(override, nowhere)
>> 
>> class = access(type) access(override, everywhere)
>> 
>> You could combine type into one parameterized access, and make the 
>> capability instance the default one, so it will be either or but we don’t 
>> have to write instance explicitly like we don’t need it with get.
>> 
>> 
>> 
>> -- 
>> Adrian Zubarev
>> Sent with Airmail
>> 
>> Am 3. März 2017 um 19:36:31, Adrian Zubarev (adrian.zuba...@devandartist.com 
>> <mailto:adrian.zuba...@devandartist.com>) schrieb:
>> 
>>> I actually found the source, and it’s even an official one. :)
>>> 
>>> https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/doc/uid/TP40014097-CH34-ID483
>>>  
>>> <https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/doc/uid/TP40014097-CH34-ID483>
>>> NOTE
>>> 
>>> In a class declaration, the static keyword has the same effect as marking 
>>> the declaration with both the class and final declaration modifiers.
>>> It’s overlapping but you might be able to adjust the behavior to cover that 
>>> in your model as well ;)
>>> 
>>> 
>>> 
>>> -- 
>>> Adrian Zubarev
>>> Sent with Airmail
>>> 
>>> Am 3. März 2017 um 18:14:42, Matthew Johnson (matt...@anandabits.com 
>>> <mailto:matt...@anandabits.com>) schrieb:
>>> 
>>>> It would be really helpful if you can find a reference to this somewhere.  
>>>> If it’s possible to define static in terms of this system also that would 
>>>> be pretty cool.
>>> 
>> 
> 

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

Reply via email to