SE-0025: Scoped Access Level, next steps


(Anton Zhilin) #1

My take at it:

access(global)
access(module) // default
access(file)
access(scope)

Very uniform. Argument to `access` is visibility scope.


(Ilya Belenkiy) #2

These names are very uniform, and the context is immediately clear, but
they are very long. The 2 most commonly used (and spelled out) would be
access(global) and access(scope), public and private are much shorter and
are well established terms of art.

···

On Tue, Mar 15, 2016 at 8:54 AM Антон Жилин <swift-evolution@swift.org> wrote:

My take at it:

access(global)
access(module) // default
access(file)
access(scope)

Very uniform. Argument to `access` is visibility scope.
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution


(Anton Zhilin) #3

I have to agree with you. Still "module" needs to be somewhere in the new
access level for internal, and if possible, "file" in private.

···

2016-03-15 16:07 GMT+03:00 Ilya Belenkiy <ilya.belenkiy@gmail.com>:

These names are very uniform, and the context is immediately clear, but
they are very long. The 2 most commonly used (and spelled out) would be
access(global) and access(scope), public and private are much shorter and
are well established terms of art.
On Tue, Mar 15, 2016 at 8:54 AM Антон Жилин <swift-evolution@swift.org> > wrote:

My take at it:

access(global)
access(module) // default
access(file)
access(scope)

Very uniform. Argument to `access` is visibility scope.
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution


#4

These names are very uniform, and the context is immediately clear, but they are very long. The 2 most commonly used (and spelled out) would be access(global) and access(scope), public and private are much shorter and are well established terms of art.

An option which goes against Swift being as explicit as possible is to support abbreviated scope, in addition to the full name:

access(g)
access(m)
access(f)
access(s)

For the last one, it may be easier if it was access(local) and access(l).

On first encounter, these gmfl may be a bit puzzling, but they should be no harder to remember than the rwx of Unix file accessibility.

Dany

···

Le 15 mars 2016 à 09:07, Ilya Belenkiy via swift-evolution <swift-evolution@swift.org> a écrit :

On Tue, Mar 15, 2016 at 8:54 AM Антон Жилин <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
My take at it:

access(global)
access(module) // default
access(file)
access(scope)

Very uniform. Argument to `access` is visibility scope


(Jean-Daniel) #5

Even knowing about what we are talking about, I got a hard time understanding what each option means.
Using single letter name is utterly confusing and unreadable.

···

Le 19 mars 2016 à 15:35, Dany St-Amant via swift-evolution <swift-evolution@swift.org> a écrit :

Le 15 mars 2016 à 09:07, Ilya Belenkiy via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> a écrit :

These names are very uniform, and the context is immediately clear, but they are very long. The 2 most commonly used (and spelled out) would be access(global) and access(scope), public and private are much shorter and are well established terms of art.

An option which goes against Swift being as explicit as possible is to support abbreviated scope, in addition to the full name:

access(g)
access(m)
access(f)
access(s)