summaryrefslogtreecommitdiff
path: root/src/library/scala/Either.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2012-04-12 18:56:20 -0700
committerMartin Odersky <odersky@gmail.com>2012-04-12 18:56:20 -0700
commita7a1e3a1959f26c9b44b40b328ef217b4ebdbaba (patch)
tree62e2b8b9149e9b62621591c1bfc1b6ffb0170c53 /src/library/scala/Either.scala
parent6061a22fcd3480e18e60254ad06c8a46b2f1ce53 (diff)
downloadscala-a7a1e3a1959f26c9b44b40b328ef217b4ebdbaba.tar.gz
scala-a7a1e3a1959f26c9b44b40b328ef217b4ebdbaba.tar.bz2
scala-a7a1e3a1959f26c9b44b40b328ef217b4ebdbaba.zip
Various improvements to SIP 18 diagnostics. Made scala library and compiler feature clean.
Diffstat (limited to 'src/library/scala/Either.scala')
-rw-r--r--src/library/scala/Either.scala17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/library/scala/Either.scala b/src/library/scala/Either.scala
index e454cdf5ec..a5e1dc7fe7 100644
--- a/src/library/scala/Either.scala
+++ b/src/library/scala/Either.scala
@@ -10,6 +10,8 @@
package scala
+import language.implicitConversions
+
/** Represents a value of one of two possible types (a disjoint union.)
* Instances of Either are either an instance of [[scala.Left]] or [[scala.Right]].
*
@@ -201,12 +203,6 @@ final case class Right[+A, +B](b: B) extends Either[A, B] {
}
object Either {
- class MergeableEither[A](x: Either[A, A]) {
- def merge: A = x match {
- case Left(a) => a
- case Right(a) => a
- }
- }
/**
* Allows use of a ``merge`` method to extract values from Either instances
@@ -219,7 +215,14 @@ object Either {
* r.merge: Seq[Int] // Vector(1)
* }}}
*/
- implicit def either2mergeable[A](x: Either[A, A]): MergeableEither[A] = new MergeableEither(x)
+ implicit class MergeableEither[A](x: Either[A, A]) {
+ def merge: A = x match {
+ case Left(a) => a
+ case Right(a) => a
+ }
+ }
+ @deprecated("use MergeableEither instead", "2.10")
+ def either2mergeable[A](x: Either[A, A]): MergeableEither[A] = new MergeableEither(x)
/**
* Projects an `Either` into a `Left`.