diff --git a/stdlib/public/core/Algorithm.swift b/stdlib/public/core/Algorithm.swift index 770971bec5bb9..38e463bb2fda5 100644 --- a/stdlib/public/core/Algorithm.swift +++ b/stdlib/public/core/Algorithm.swift @@ -47,7 +47,7 @@ public func find< @warn_unused_result public func min(x: T, _ y: T) -> T { var r = x - if y < x { + if y < r { r = y } return r @@ -57,7 +57,7 @@ public func min(x: T, _ y: T) -> T { @warn_unused_result public func min(x: T, _ y: T, _ z: T, _ rest: T...) -> T { var r = x - if y < x { + if y < r { r = y } if z < r { @@ -74,9 +74,9 @@ public func min(x: T, _ y: T, _ z: T, _ rest: T...) -> T { /// Returns the greater of `x` and `y`. @warn_unused_result public func max(x: T, _ y: T) -> T { - var r = y - if y < x { - r = x + var r = x + if y >= r { + r = y } return r } @@ -84,11 +84,11 @@ public func max(x: T, _ y: T) -> T { /// Returns the greatest argument passed. @warn_unused_result public func max(x: T, _ y: T, _ z: T, _ rest: T...) -> T { - var r = y - if y < x { - r = x + var r = x + if y >= r { + r = y } - if r < z { + if z >= r { r = z } for t in rest {