Files
swift-mirror/test/SILOptimizer/Inputs/opaque_conformance.swift
Slava Pestov a5579d1cff AST: Plug a hole in access control checking
A protocol extension of a private protocol can define internal
or public members. We should not be able to find these members
from another file or module if an internal or public type
conforms to the protocol.

Fixes <rdar://problem/21380336>.
2018-04-05 23:24:48 -07:00

14 lines
332 B
Swift

public protocol PublicProtocol {
func publicRequirement()
}
private protocol PrivateProtocol : PublicProtocol {}
public struct Conformer : PrivateProtocol {}
extension PrivateProtocol {
// This implementation is opaque to callers, since we can
// only find it via a private protocol.
public func publicRequirement() {}
}