[swift-evolution] [Draft] open and public protocols
Adrian Zubarev
adrian.zubarev at devandartist.com
Sun Feb 19 10:39:47 CST 2017
Still not what I was asking about.
Module A contains a single open protocol: open protocol P { func foo() }
Module B contains a single open class that conforms to P:
open class B : P {
/* what is the default access modifier here? */ func foo()
}
--
Adrian Zubarev
Sent with Airmail
Am 19. Februar 2017 um 17:35:04, Matthew Johnson (matthew at anandabits.com) schrieb:
Sent from my iPhone
On Feb 19, 2017, at 10:28 AM, Adrian Zubarev <adrian.zubarev at devandartist.com> wrote:
I really feel I’m blind, I cannot find it. Is the access modifier of open protocol *members* on open/public classes public by default, or open?
If open, can we downgrade it to public in an open class?
I didn't specifically address members of open classes but did address open classes. This proposal does not have any impact of the visibility of members of open classes that conform to a public (nonopen) protocol, including the default.
--
Adrian Zubarev
Sent with Airmail
Am 19. Februar 2017 um 17:16:59, Matthew Johnson (matthew at anandabits.com) schrieb:
Sent from my iPhone
On Feb 19, 2017, at 10:11 AM, Adrian Zubarev <adrian.zubarev at devandartist.com> wrote:
@Matthew: Have you considered what happens with the access modifier of an open protocol when an open/public class conforms to it?
Yes I covered this in the detailed design section of the proposal.
// Module A
open protocol A {
func foo()
}
// Module B
open class B : A {
(open or public) func foo() {}
// If `open`, can we downgrade to `public`?
// The other way around seems straightforward
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170219/f34a5c36/attachment.html>
More information about the swift-evolution
mailing list