@@ -152,8 +152,19 @@ trait ScalaGenOrderingOps extends ScalaGenBase {
152152 case OrderingGT (a,b) => emitValDef(sym, src " $a > $b" )
153153 case OrderingGTEQ (a,b) => emitValDef(sym, src " $a >= $b" )
154154 case OrderingEquiv (a,b) => emitValDef(sym, src " $a equiv $b" )
155- case OrderingMax (a,b) => emitValDef(sym, src " $a max $b" )
156- case OrderingMin (a,b) => emitValDef(sym, src " $a min $b" )
155+ // "$a max $b" is wrong for Strings because it tries to use `StringLike.max(Ordering)`
156+ case c@ OrderingMax (a,b) =>
157+ val rhs = if (c.mev == manifest[String ])
158+ src " scala.math.Ordering.String.max( $a, $b) "
159+ else
160+ src " $a max $b"
161+ emitValDef(sym, rhs)
162+ case c@ OrderingMin (a,b) =>
163+ val rhs = if (c.mev == manifest[String ])
164+ src " scala.math.Ordering.String.min( $a, $b) "
165+ else
166+ src " $a min $b"
167+ emitValDef(sym, rhs)
157168 case c@ OrderingCompare (a,b) => c.mev match {
158169 case m if m == Manifest .Int => emitValDef(sym, " java.lang.Integer.compare(" + quote(a)+ " ," + quote(b)+ " )" )
159170 case m if m == Manifest .Long => emitValDef(sym, " java.lang.Long.compare(" + quote(a)+ " ," + quote(b)+ " )" )
0 commit comments