And now I find, what I consider to be, a very peculiar anomaly in method
visibility.
private class PrivateBaseClass
{
internal func internalFunc() { }
public func publicFunc() { }
open func openFunc() { }
}
private class PrivateDerivedClass : PrivateBaseClass
{
fileprivate override func internalFunc() { }
fileprivate override func publicFunc() { }
fileprivate override func openFunc() { }
}
internal class InternalDerivedFromPrivateClass : PrivateBaseClass { } // error
: Class cannot be declared internal because its superclass is fileprivate
Can somebody please explain why I can declare internal, public and open members
on a private class, and even override them in a derived private class, all
without even a compiler warning, when, as soon as I try to extend the
visibility of a private class, I am told that I cannot so do.
I mean, it is blatantly obvious why you would not want higher visibility
members in a limited visibility class, so why doesn't the compiler simply state
that all members cannot have a visibility higher than the declaring class?
--
Joanna Carter
Carter Consulting
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution