blob: ae35eef54778203ff236ff05c91d9628fab6ca71 [file] [log] [blame]
// RUN: not %target-swift-frontend %s -typecheck
enum SortOrder {
case ascending
case equal
case descending
}
struct SortedArray<Element> {
var contents = [Element]()
let compare: (Element, Element) -> SortOrder
init(_ comparator: @escaping (Element, Element) -> SortOrder) {
compare = comparator
}
mutating func add(_ element: Element) {
}
}
extension SortedArray where Element: Comparable {
init() {
compare = { a, b in
if a < b { return .ascending }
else if a > b { return .descending }
else { return .equal }
}
}
init<S: Sequence>(_ sequence: S) where S.Iterator.Element == Element {
self.init()
for element in sequence {
add(element)
}
}
}
extension SortedArray: Sequence {
typealias Iterator = IndexingIterator
}