I realise the general opinion here seems to be that we don't want any more 
changes to the access modifiers and I can understand why, but please take a 
look at the use case below:

"fileprivate" is needed for certain things like Equatable since the equatable 
function might need to know about private properties in a class. Lets say I 
have two structs:

struct A {
...
}

struct B {
...
}

Both are rather big so I declare each in a separate file (File A, File B), but 
I need to implement an equals function between these two structs that need 
access to private properties in both structs. This leaves me with two options:

a) Move the two structs into one file and use fileprivate and implement the 
equals function here. The result is one long messy file.
b) Move the two files into a separate module and use "internal" for the 
variables I need acces to. This feels like overkill and struct A/B might have 
dependencies that make this inconvenient.

Am I missing a more optimal solution here? 

My point is there are legit use cases of fileprivate there might lead to one 
really big file, with several classes. Having a folderprivate access level 
would be one possible solution to this.

> On 8 Dec 2016, at 13.22, Rien via swift-evolution <[email protected]> 
> wrote:
> 
> Will discprivate be next? and then systemprivate? </facetious>
> 
> -1
> 
> Regards,
> Rien
> 
> Site: http://balancingrock.nl
> Blog: http://swiftrien.blogspot.com
> Github: http://github.com/Swiftrien
> Project: http://swiftfire.nl
> 
> 
> 
> 
>> On 08 Dec 2016, at 12:27, Adrian Zubarev via swift-evolution 
>> <[email protected]> wrote:
>> 
>> Personal statement: –1
>> 
>> 
>> 
>> 
>> -- 
>> Adrian Zubarev
>> Sent with Airmail
>> 
>> Am 8. Dezember 2016 um 12:26:17, Aron Lindberg ([email protected]) schrieb:
>> 
>>> I think this is a great idea!
>>> 
>>> I would prefer calling it folderprivate tho.
>>> 
>>>> On 8 Dec 2016, at 08.29, Adrian Zubarev via swift-evolution 
>>>> <[email protected]> wrote:
>>>> 
>>>> Whoops I meant directoryprivate not dictionaryprivate. I’m probably still 
>>>> sleepy. 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> Adrian Zubarev
>>>> Sent with Airmail
>>>> 
>>>> Am 8. Dezember 2016 um 08:18:24, Adrian Zubarev 
>>>> ([email protected]) schrieb:
>>>> 
>>>>> You haven’t seen this in the list because no one requested 
>>>>> dictionaryprivate yet. :D
>>>>> 
>>>>> @core-team: See what you have done with >>file<<private thing. 
>>>>> typerprivate, typepublic all these requests for new access modifiers. 
>>>>> 
>>>>> Instead of just going with
>>>>> 
>>>>> private
>>>>> private(file)
>>>>> 
>>>>> // for new one    
>>>>> private(type)
>>>>> 
>>>>> I know there would be some people that would forget about (file/type) and 
>>>>> write only private everywhere, which is probably the main reason why we 
>>>>> have fileprivate now.
>>>>> 
>>>>> Anyways let’s be a little more constructive here.
>>>>> 
>>>>> Hi Jim, regarding your request, it feels like this is something that 
>>>>> falls into the topic of submodules. :) Correct me if I’m wrong here.
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Adrian Zubarev
>>>>> Sent with Airmail
>>>>> 
>>>>> Am 8. Dezember 2016 um 07:50:07, Jim Malak via swift-evolution 
>>>>> ([email protected]) schrieb:
>>>>> 
>>>>>> My apologies up front if I am going about this incorrectly. I have been 
>>>>>> exploring extensions in Swift 3 both as a part of protocol-oriented 
>>>>>> programming and as a way to encapsulate related code to improve 
>>>>>> readability and maintainablity of otherwise more complex classes I have 
>>>>>> designed. I am able to encapsulate methods and calculated properties in 
>>>>>> extensions and restrict their use to the object type I am extending as 
>>>>>> long as everything is in one file via fileprivate. 
>>>>>> 
>>>>>> I would like to be able to have my class or structure file in a 
>>>>>> directory that contains my associated extensions  (also in separate 
>>>>>> files) and be able to restrict the access  of appropriate properties and 
>>>>>>  methods to that common directory. This would allow the same level 
>>>>>> encapsulation as fileprivate with the benifit of being able to organize 
>>>>>> code into sepereate files based on function.
>>>>>> 
>>>>>> I did not see this in the commonly rejected list but am unsure if this 
>>>>>> is something that is out of scope for 4.0. Is this something I can write 
>>>>>> up a proposal for? Is there some other approach that I missed that I 
>>>>>> should be using instead?
>>>>>> 
>>>>>> Kind regards,
>>>>>> Jim Malak
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> swift-evolution mailing list
>>>>>> [email protected]
>>>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>>> 
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> [email protected]
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to