blob: a2e5844a999cd6e5d3cbccafc05f4537dc0b0714 [file] [log] [blame]
// RUN: not %target-swift-frontend %s -typecheck
// REQUIRES: asserts
public struct Foo<A, B, C> {}
public protocol P {
associatedtype PA
associatedtype PB = Never
associatedtype PC = Never
typealias Context = Foo<PA, PB, PC>
func f1(_ x: Context, _ y: PA)
func f2(_ x: Context, _ y: PB)
func f3(_ x: Context, _ y: PC)
func f4(_ x: Context)
}
public extension P {
public func f1(_ x: Context, _ y: PA) {
}
public func f2(_ x: Context, _ y: PB) {
}
public func f3(_ x: Context, _ y: PC) {
}
public func f4(_ x: Context) {
}
}
public struct S: P {
public typealias PA = String
public typealias PB = Int
public func f1(_ x: Context, _ y: PA) {
}
public func f2(_ x: Context, _ y: PB) {
}
}