mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
32 lines
517 B
Swift
32 lines
517 B
Swift
// RUN: %target-typecheck-verify-swift
|
|
|
|
protocol P {
|
|
func isEqual(_ other: P) -> Bool
|
|
}
|
|
|
|
struct A {
|
|
var value: P? = nil
|
|
}
|
|
|
|
struct B {
|
|
func foo() throws -> A {}
|
|
}
|
|
|
|
struct E {
|
|
func getB(_ flag: inout Bool) throws -> B {
|
|
return B()
|
|
}
|
|
}
|
|
|
|
func foo(arr: [E], other: P) -> Bool {
|
|
return arr.compactMap { i in
|
|
var flag = false
|
|
return try? i.getB(&flag)
|
|
}.compactMap { u -> P? in // Ok
|
|
guard let a = try? u.foo() else { return nil }
|
|
return a.value!
|
|
}.contains {
|
|
$0.isEqual(other)
|
|
}
|
|
}
|