From 33a7d9aa77b2d6dd6a186371f6175291fb286531 Mon Sep 17 00:00:00 2001 From: Mikhail Gilmutdinov Date: Fri, 4 Dec 2015 20:00:11 +0300 Subject: [PATCH 1/2] Modified min and max for code uniformity --- stdlib/public/core/Algorithm.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/stdlib/public/core/Algorithm.swift b/stdlib/public/core/Algorithm.swift index 770971bec5bb9..257d539c72e1c 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 { @@ -85,14 +85,14 @@ public func max(x: T, _ y: T) -> T { @warn_unused_result public func max(x: T, _ y: T, _ z: T, _ rest: T...) -> T { var r = y - if y < x { + if r < x { r = x } if r < z { r = z } for t in rest { - if t >= r { + if r < t { r = t } } From d301ed6bd7161f1194223ffeafe97070f3ef212c Mon Sep 17 00:00:00 2001 From: Mikhail Gilmutdinov Date: Fri, 4 Dec 2015 22:02:06 +0300 Subject: [PATCH 2/2] max will now return the last maximum instance --- stdlib/public/core/Algorithm.swift | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/stdlib/public/core/Algorithm.swift b/stdlib/public/core/Algorithm.swift index 257d539c72e1c..38e463bb2fda5 100644 --- a/stdlib/public/core/Algorithm.swift +++ b/stdlib/public/core/Algorithm.swift @@ -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,15 +84,15 @@ 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 r < x { - r = x + var r = x + if y >= r { + r = y } - if r < z { + if z >= r { r = z } for t in rest { - if r < t { + if t >= r { r = t } }