@@ -14,8 +14,7 @@ package scala
1414package math
1515
1616import java .util .Comparator
17- import scala .annotation .unchecked .uncheckedOverride
18- import scala .language .{higherKinds , implicitConversions }
17+ import scala .language .{implicitConversions , higherKinds }
1918
2019/** Ordering is a trait whose instances each represent a strategy for sorting
2120 * instances of a type.
@@ -104,10 +103,10 @@ trait Ordering[T] extends Comparator[T] with PartialOrdering[T] with Serializabl
104103 override def equiv (x : T , y : T ): Boolean = compare(x, y) == 0
105104
106105 /** Return `x` if `x` >= `y`, otherwise `y`. */
107- @ uncheckedOverride def max [ U <: T ] (x : U , y : U ): U = if (gteq(x, y)) x else y
106+ def max (x : T , y : T ): T = if (gteq(x, y)) x else y
108107
109108 /** Return `x` if `x` <= `y`, otherwise `y`. */
110- @ uncheckedOverride def min [ U <: T ] (x : U , y : U ): U = if (lteq(x, y)) x else y
109+ def min (x : T , y : T ): T = if (lteq(x, y)) x else y
111110
112111 /** Return the opposite ordering of this one. */
113112 override def reverse : Ordering [T ] = new Ordering .Reverse [T ](this )
@@ -176,8 +175,8 @@ object Ordering extends LowPriorityOrderingImplicits {
176175 override def lt (x : T , y : T ): Boolean = outer.lt(y, x)
177176 override def gt (x : T , y : T ): Boolean = outer.gt(y, x)
178177 override def equiv (x : T , y : T ): Boolean = outer.equiv(y, x)
179- override def max [ U <: T ] (x : U , y : U ): U = outer.min(x, y)
180- override def min [ U <: T ] (x : U , y : U ): U = outer.max(x, y)
178+ override def max (x : T , y : T ): T = outer.min(x, y)
179+ override def min (x : T , y : T ): T = outer.max(x, y)
181180
182181 override def equals (obj : scala.Any ): Boolean = obj match {
183182 case that : AnyRef if this eq that => true
@@ -302,8 +301,8 @@ object Ordering extends LowPriorityOrderingImplicits {
302301 override def lt (x : Float , y : Float ): Boolean = x < y
303302 override def gt (x : Float , y : Float ): Boolean = x > y
304303 override def equiv (x : Float , y : Float ): Boolean = x == y
305- override def max [ U <: Float ] (x : U , y : U ): U = math.max(x, y). asInstanceOf [ U ]
306- override def min [ U <: Float ] (x : U , y : U ): U = math.min(x, y). asInstanceOf [ U ]
304+ override def max (x : Float , y : Float ): Float = math.max(x, y)
305+ override def min (x : Float , y : Float ): Float = math.min(x, y)
307306 }
308307 implicit object Float extends FloatOrdering
309308
@@ -315,8 +314,8 @@ object Ordering extends LowPriorityOrderingImplicits {
315314 override def lt (x : Double , y : Double ): Boolean = x < y
316315 override def gt (x : Double , y : Double ): Boolean = x > y
317316 override def equiv (x : Double , y : Double ): Boolean = x == y
318- override def max [ U <: Double ] (x : U , y : U ): U = math.max(x, y). asInstanceOf [ U ]
319- override def min [ U <: Double ] (x : U , y : U ): U = math.min(x, y). asInstanceOf [ U ]
317+ override def max (x : Double , y : Double ): Double = math.max(x, y)
318+ override def min (x : Double , y : Double ): Double = math.min(x, y)
320319 }
321320 implicit object Double extends DoubleOrdering
322321
0 commit comments