blob: 84a76f4fe3ae1618dd8f3815a45c02020799f468 [file] [log] [blame]
// RUN: not %target-swift-frontend %s -typecheck
public protocol OptionalProtocol {
associatedtype Wrapped
var optional: Wrapped? { get }
}
extension Optional: OptionalProtocol {
public var optional: Wrapped? {
return self
}
}
public extension Sequence where Element: OptionalProtocol {
func skipNil() -> [Element.Wrapped] {
return self
.compactMap { $0.optional }
}
}
class A {}
class A1: A {}
class A2: A {}
class A3: A {}
final class V {
init() {
([
self.a1, self.a2, self.a3
] as [A])
.skipNil()
.forEach { self.f($0) }
}
func f(_ a: A) {}
private let a1 = A1()
private let a2 = A2()
private let a3 = A3()
}