Previously in Swift 2.2 I'm able to do:
extension _ArrayType where Generator.Element == Bool{
var allTrue : Bool{
return !self.contains(false)
}
}
which extends [Bool]
with .allTrue
. E.g.
[true, true, false].allTrue == false
But in Swift 3.0 I'm getting this error:
undeclared type
_ArrayType
So I tried switching it to Array
and using the new keyword Iterator
extension Array where Iterator.Element == Bool
var allTrue : Bool{
return !self.contains(false)
}
}
But I got a different error complaining that I'm forcing element to be non-generic
Same-type requirement makes generic parameter 'Element' non-generic
I've also tried the solutions in this 2 years old post but to no avail.
So how does one extend arrays of primitive types like Bool in Swift 3?