Files
swift-mirror/test/decl/protocol/issue-51275.swift

66 lines
1.5 KiB
Swift

// RUN: %target-typecheck-verify-swift
// https://github.com/apple/swift/issues/51275
// A number of related problems with unqualified lookup of associated
// type names.
// #1
public protocol PA {
associatedtype F
}
public protocol PDA : PA {
}
public protocol PrB {
associatedtype F
}
extension PDA where Self : PrB {
public init(first: F?) {
fatalError()
}
}
// #2
public protocol S { associatedtype F }
public protocol AM : S {}
public protocol AL { associatedtype F }
extension AM where Self : AL {
public init(first: F?) { fatalError() }
}
// #3
public protocol S2 { associatedtype F }
public protocol A2 : S2 {}
public protocol Z2 { associatedtype F }
extension A2 where Self : Z2 {
public init(first: F?) { fatalError() }
}
// #4
public protocol BM { associatedtype F }
public protocol C : BM {}
public protocol BL { associatedtype F }
extension C where Self : BL { public init(first: F?) { fatalError() } }
// #5
public protocol AZ { associatedtype F }
public protocol ZA : AZ {}
public protocol AA { associatedtype F }
extension ZA where Self : AA { public init(first: F?) { fatalError() } }
// #6
public protocol AZ2 { associatedtype F }
public protocol ZA2 : AZ2 {}
public protocol ZZ2 { associatedtype F }
extension ZA2 where Self : ZZ2 { public init(first: F?) { fatalError() } }
// #7
public protocol ZA3 { associatedtype F }
public protocol AZ3 : ZA3 {}
public protocol ZZ3 { associatedtype F }
extension AZ3 where Self : ZZ3 { public init(first: F?) { fatalError() } }