swift-foundation
swift-foundation copied to clipboard
PredicateExpressions.Equal requires Equatable conformance for comparing an optional value with "nil"
Hello!
This case is broken out from the discussion in https://github.com/apple/swift-foundation/issues/476#issuecomment-2200614509.
Creating a predicate like:
struct Foo {
struct Bar {
let value = 0
}
let bar: Bar?
}
let predicate = #Predicate<Foo> { $0.bar == nil }
Will result in this build error:
Referencing static method 'build_Equal(lhs:rhs:)' on 'Optional' requires that 'Foo.Bar' conform to 'Equatable'
Making Foo.Bar
conform to Equatable
fixes this, but shouldn't be necessary. In regular Swift code an optional is always comparable with nil
.
The same applies to PredicateExpressions.NotEqual
, etc.