// RUN: %target-typecheck-verify-swift -parse-stdlib import Swift infix operator < : ComparisonPrecedence precedencegroup ComparisonPrecedence { associativity: none higherThan: EqualityPrecedence } infix operator == : EqualityPrecedence infix operator != : EqualityPrecedence precedencegroup EqualityPrecedence { associativity: none higherThan: AssignmentPrecedence } precedencegroup AssignmentPrecedence { assignment: true } func testslice(_ s: Array) { for i in 0.. UnsafeMutableRawPointer @_silgen_name("c_free") func c_free(_ p: UnsafeMutableRawPointer) class Vector { var length : Int var capacity : Int var base : UnsafeMutablePointer! init() { length = 0 capacity = 0 base = nil } func push_back(_ elem: T) { if length == capacity { let newcapacity = capacity * 2 + 2 let size = Int(Builtin.sizeof(T.self)) let newbase = UnsafeMutablePointer(c_malloc(newcapacity * size) .bindMemory(to: T.self, capacity: newcapacity)) for i in 0.. T { length -= 1 return (base + length).move() } subscript (i : Int) -> T { get { if i >= length { Builtin.int_trap() } return (base + i).pointee } set { if i >= length { Builtin.int_trap() } (base + i).pointee = newValue } } deinit { base.deinitialize(count: length) c_free(base) } } protocol Comparable { static func <(lhs: Self, rhs: Self) -> Bool } func sort(_ array: inout [T]) { for i in 0..(_ array: [T], value: T) -> Int { var idx = 0 for elt in array { if (elt == value) { return idx } idx += 1 } return -1 } func findIf(_ array: [T], fn: (T) -> Bool) -> Int { var idx = 0 for elt in array { if (fn(elt)) { return idx } idx += 1 } return -1 } protocol Eq { static func ==(lhs: Self, rhs: Self) -> Bool static func !=(lhs: Self, rhs: Self) -> Bool }