> 
> Here's an idea in three points:
> 
> 1. Return to the Swift 2 definition of `private`.
> 2. Introduce `scoped` to limit the visibility to within the same type, 
> subtype, or extension.
> 3. Allow mixing the two.
> 
> So you have:
> 
>       private         // current file
>       private scoped  // current file, in the same type, subtype, or ext.
>       internal        // current module
>       internal scoped // current module, in the same type, subtype, or ext.
>       public          // external modules
>       public scoped   // maybe we want that one?
> 
> Since `internal` is implied, using `scoped` alone would be equivalent to 
> `internal scoped`.
> 
> Swift 3's private could be mapped to `private scoped` to achieve (almost) the 
> same results and thus preserve source compatibility.

Without wishing to offend, this seems to be creating a lot more keywords for 
people to try and get their heads around. I am a firm believer in KISS and 
would like to see the bare minimum of keywords for scopes, so as not to confuse 
the elderly, frail, young, inexperienced, etc ;-)

--
Joanna Carter
Carter Consulting

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

Reply via email to