aboutsummaryrefslogtreecommitdiff
path: root/src/scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-05-06 19:06:57 +0200
committerMartin Odersky <odersky@gmail.com>2016-05-23 16:11:45 +0200
commitbfe9faa637bce1fc499a33beb979ce9dcd35e983 (patch)
tree5de21c1dedabb974987ba663cbfb7b04d6802b45 /src/scala
parent7a264eee7c903295693ea14e075267dfceea8db9 (diff)
downloaddotty-bfe9faa637bce1fc499a33beb979ce9dcd35e983.tar.gz
dotty-bfe9faa637bce1fc499a33beb979ce9dcd35e983.tar.bz2
dotty-bfe9faa637bce1fc499a33beb979ce9dcd35e983.zip
Make Eq contravariant
(and add it to commit set).
Diffstat (limited to 'src/scala')
-rw-r--r--src/scala/Eq.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/scala/Eq.scala b/src/scala/Eq.scala
new file mode 100644
index 000000000..697ec4318
--- /dev/null
+++ b/src/scala/Eq.scala
@@ -0,0 +1,17 @@
+package scala
+
+/** A marker class indicating that values of kind `T` can be compared. */
+class Eq[-L, -R]
+
+/** Besides being a companion object, this object
+ * can also be used as a value that's compatible with
+ * any instance of `Eq`.
+ */
+object Eq extends Eq[Any, Any] {
+
+ /** An implicit that provides an `Eq` instance for all types `T`
+ * such that `T <: EqClass[T]`.
+ */
+ implicit def eqAny[L, R]: Eq[L, R] = Eq
+}
+