diff options
author | Martin Odersky <odersky@gmail.com> | 2016-12-14 22:21:51 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-12-14 23:27:05 +0100 |
commit | 9bf58090c704a59d8735874c565200758bcea666 (patch) | |
tree | 705c77dc8cea85ecf0203ea710957542541c4bb5 /tests/pos | |
parent | ba06bf06721f1a8de7d68d22ad7eba27fff90c43 (diff) | |
download | dotty-9bf58090c704a59d8735874c565200758bcea666.tar.gz dotty-9bf58090c704a59d8735874c565200758bcea666.tar.bz2 dotty-9bf58090c704a59d8735874c565200758bcea666.zip |
Change by-name pattern matching.
New implementation following the scheme outlined in #1790.
Diffstat (limited to 'tests/pos')
-rw-r--r-- | tests/pos/i1540.scala | 4 | ||||
-rw-r--r-- | tests/pos/i1540b.scala | 4 | ||||
-rw-r--r-- | tests/pos/i1790.scala | 15 | ||||
-rw-r--r-- | tests/pos/pos_valueclasses/optmatch.scala | 2 |
4 files changed, 20 insertions, 5 deletions
diff --git a/tests/pos/i1540.scala b/tests/pos/i1540.scala index 7aa24f459..0fdfea235 100644 --- a/tests/pos/i1540.scala +++ b/tests/pos/i1540.scala @@ -1,6 +1,6 @@ class Casey1(val a: Int) { - def isDefined: Boolean = true - def isDefined(x: Int): Boolean = ??? + def isEmpty: Boolean = false + def isEmpty(x: Int): Boolean = ??? def get: Int = a def get(x: Int): String = ??? } diff --git a/tests/pos/i1540b.scala b/tests/pos/i1540b.scala index 2b4c5408e..f4408b0c7 100644 --- a/tests/pos/i1540b.scala +++ b/tests/pos/i1540b.scala @@ -1,6 +1,6 @@ class Casey1[T](val a: T) { - def isDefined: Boolean = true - def isDefined(x: T): Boolean = ??? + def isEmpty: Boolean = false + def isEmpty(x: T): Boolean = ??? def get: T = a def get(x: T): String = ??? } diff --git a/tests/pos/i1790.scala b/tests/pos/i1790.scala new file mode 100644 index 000000000..7535255f9 --- /dev/null +++ b/tests/pos/i1790.scala @@ -0,0 +1,15 @@ +import scala.util.control.NonFatal + +class Try[+T] { + def transform[U](s: T => Try[U], f: Throwable => Try[U]): Try[U] = + try this match { + case Success(v) => s(v) + case Failure(e) => f(e) + } catch { + case NonFatal(e) => Failure(e) + } +} +final case class Success[+T](value: T) extends Try[T] +final case class Failure[+T](exception: Throwable) extends Try[T] { + def get: T = throw exception +} diff --git a/tests/pos/pos_valueclasses/optmatch.scala b/tests/pos/pos_valueclasses/optmatch.scala index a7995a455..ff1a17906 100644 --- a/tests/pos/pos_valueclasses/optmatch.scala +++ b/tests/pos/pos_valueclasses/optmatch.scala @@ -7,7 +7,7 @@ package optmatch class NonZeroLong(val value: Long) extends AnyVal { def get: Long = value - def isDefined: Boolean = get != 0l + def isEmpty: Boolean = get == 0l } object NonZeroLong { def unapply(value: Long): NonZeroLong = new NonZeroLong(value) |