// RUN: %target-swift-frontend -emit-ir %s // https://github.com/apple/swift/issues/58100 public struct Observable {} public protocol BaseVariant: CaseIterable, Equatable {} public protocol FeatureGate { associatedtype Variant: BaseVariant } public enum FeatureVariantState: Equatable {} public protocol BaseGatingProvider { func exposeFeatureVariantState(for featureGate: G) -> Observable> } public struct UserFeatureGate: FeatureGate {} public protocol UserGatingProvider: BaseGatingProvider { func exposeFeatureVariantState(for featureGate: UserFeatureGate) -> Observable> }