> On Mar 21, 2017, at 6:43 PM, Jose Cheyo Jimenez <ch...@masters3d.com> wrote: > >> >> On Mar 21, 2017, at 1:10 AM, Charlie Monroe via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> >> >>> On Mar 21, 2017, at 8:26 AM, Slava Pestov <spes...@apple.com >>> <mailto:spes...@apple.com>> wrote: >>> >>>> >>>> On Mar 20, 2017, at 11:07 PM, Charlie Monroe via swift-evolution >>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >>>> >>>> -1 on this as well for similar reasons. Places where I use fileprivate >>>> (aside from what was automatically migrated by Xcode) can be counted on >>>> fingers of one or two hands. >>>> >>>> I feel that this proposal is reverting something without offering an >>>> alternative solution. >>> >>> In what situations do you use Swift 3 private where fileprivate is not an >>> acceptable replacement? >> >> In my usage, I very rarely use fileprivate. To back this with numbers, a >> recent project I developed (i.e. without Xcode's automatic migration of >> private -> fileprivate; about 6KLOC) has 2 uses of "fileprivate" and 160 >> uses of "privateā. > > Do you have a way to tell how much of the private is effectible fileprivate? > (top level private usage)
Yes, 19 cases (out of those 160). Mostly for private classes or identifiers/constants. In another project (a framework I use in all my projects): private (total): 335 top-level private: 65 (out of those 335) fileprivate: 41 And I know about a place or two that's not properly written and if I refactored it properly, I'd get rid of another 20 fileprivates. In my experience (for me - please don't take it as if I am judging anyone - not at all), the use of fileprivate indicates either improper public API (and by public I mean even internal - exposed out of the file); or that there could be other mechanisms for handling this (protected scope for subclasses/enclosing types). > > > >> >> This is definitely a personal opinion, but I tend to limit access to members >> as much as possible to discourage/prevent their usage out of the scope they >> are intended for and to better design API that should be used out of the >> scope (public/internal). I feel this is a good thing for newcomers to a >> codebase (and myself coming back to a codebase after a year or two) as >> Xcode's autocompletion won't offer members that are not supposed to be >> called out of the scope (scope-private). >> >> As I've mentioned this during the discussion, I feel that current state of >> things encourages huge files (1000+ lines of code) as you can't define >> "protected" level access and migrate some of the code that implements e.g. >> accessibility to a different file without potentially exposing internal >> details to the rest of the module (if the extension in the other file needs >> access to private details, which is often the case). >> >> I feel that if there should be a change to the access levels, it should >> address this as well. The current solution based on reverting the original >> proposal only unnecessarily exposes implementational details to the rest of >> the file - at least in my codebase. >> >>> >>> Slava >>> >>>> >>>>> On Mar 21, 2017, at 3:33 AM, Greg Parker via swift-evolution >>>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >>>>> >>>>> >>>>>> On Mar 20, 2017, at 4:54 PM, Douglas Gregor <dgre...@apple.com >>>>>> <mailto:dgre...@apple.com>> wrote: >>>>>> >>>>>> Hello Swift community, >>>>>> >>>>>> The review of SE-0159 "Fix Private Access Levels" begins now and runs >>>>>> through March 27, 2017. The proposal is available here: >>>>>> >>>>>> https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md >>>>>> >>>>>> <https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md> >>>>> -1. I yield the remainder of my time to Drew Crawford who satisfactorily >>>>> explained my concerns. >>>>> >>>>> >>>>> -- >>>>> Greg Parker gpar...@apple.com <mailto:gpar...@apple.com> Runtime >>>>> Wrangler >>>>> >>>>> >>>>> _______________________________________________ >>>>> swift-evolution mailing list >>>>> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >>>>> https://lists.swift.org/mailman/listinfo/swift-evolution >>>>> <https://lists.swift.org/mailman/listinfo/swift-evolution> >>>> >>>> _______________________________________________ >>>> swift-evolution mailing list >>>> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >>>> https://lists.swift.org/mailman/listinfo/swift-evolution >>>> <https://lists.swift.org/mailman/listinfo/swift-evolution> >> _______________________________________________ >> swift-evolution mailing list >> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >> https://lists.swift.org/mailman/listinfo/swift-evolution >> <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution