trait LowPriorityOrderingImplicits {
/** This would conflict with all the nice implicit Orderings
* available, but thanks to the magic of prioritized implicits
* via subclassing we can make `Ordered[A] => Ordering[A]` only
* turn up if nothing else works. Since `Ordered[A]` extends
* `Comparable[A]` anyway, we can throw in some Java interop too.
*/
implicit def ordered[A <% Comparable[A]]: Ordering[A] = new Ordering[A] {
def compare(x: A, y: A): Int = x compareTo y
}
implicit def comparatorToOrdering[A](implicit cmp: Comparator[A]): Ordering[A] = new Ordering[A] {
def compare(x: A, y: A) = cmp.compare(x, y)
}
}
там, две неявные функции (упорядоченные [A] и comparatorToOrdering [A]) все возвращают Заказ [A], он должен конфликтовать, но зачем дозировать его там?Есть ли конфликты с неявным значением в Ordering [A] в исходном коде scala?
Посмотрите на их подписи: для начала требуется «Сравнительный [A]», а второй требует «Компаратор [A]». Это разные неявные поиски. – pedrofurla
может быть связано: https://stackoverflow.com/questions/36388954/inferring-type-of-generic-implicit-parameter-from-return-type/40609565 –