[swift-evolution] SE-0025: Scoped Access Level, next steps

Patrick Pijnappel patrickpijnappel at gmail.com
Tue Mar 15 00:22:56 CDT 2016


>
> I like Shawn's proposal:



var foo: Int { private(file) set }


> In fact it's probably more sensible than the current private(set) IMO.


For example, we already use

var foo: Int { mutating get { ... } }

and not

mutating(get) var foo: Int { get { ... } }

On Tue, Mar 15, 2016 at 4:13 PM, Patrick Pijnappel <
patrickpijnappel at gmail.com> wrote:

> I like Shawn's proposal:
>
> var foo: Int { private(file) set }
>
> In fact it's probably more sensible than the current private(set) IMO.
>
>
> While I like private(get: file, set: module) idea, I think it just gets
> too inconsistent with private(set: public) and private(set: private) (?!)
>
> On Tue, Mar 15, 2016 at 3:39 PM, Jonathan Hull via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>> *On Mar 14, 2016, at 8:36 PM, Patrick Pijnappel via swift-evolution <swift-evolution at swift.org <https://lists.swift.org/mailman/listinfo/swift-evolution>> wrote:*
>>
>> The only question is (as Sean mentioned) how this combines with the syntax
>> for setter access level, e.g. the current private(set). Options:
>> - Unnamed 2nd argument, giving private(file), private(file, set),
>> private(set).
>> - Named 2nd argument, giving e.g. private(file), private(file, accessor:
>> set), private(accessor: set). Less ambiguity but longer.
>> - Not using multiple arguments, but that'd probably break consistency with
>> the other unification efforts going on to make everything look like
>> function calls.
>>
>> What about the following 3 forms?
>>
>> private(file) //both setter and getter have file scope
>> private(set: file) //setter has file scope.  Equivalent to current
>> “private(set)"
>> private(get: module, set: file) //getter has module scope & setter has
>> file scope
>>
>> It is a bit weird, but we should probably also allow “public" in that
>> last form: private(get: public, set: module)
>>
>> Thanks,
>> Jon
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160315/7649b52c/attachment.html>


More information about the swift-evolution mailing list