@@ -152,8 +152,19 @@ trait ScalaGenOrderingOps extends ScalaGenBase {
152
152
case OrderingGT (a,b) => emitValDef(sym, src " $a > $b" )
153
153
case OrderingGTEQ (a,b) => emitValDef(sym, src " $a >= $b" )
154
154
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)
157
168
case c@ OrderingCompare (a,b) => c.mev match {
158
169
case m if m == Manifest .Int => emitValDef(sym, " java.lang.Integer.compare(" + quote(a)+ " ," + quote(b)+ " )" )
159
170
case m if m == Manifest .Long => emitValDef(sym, " java.lang.Long.compare(" + quote(a)+ " ," + quote(b)+ " )" )
0 commit comments