aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-12-14 22:21:51 +0100
committerMartin Odersky <odersky@gmail.com>2016-12-14 23:27:05 +0100
commit9bf58090c704a59d8735874c565200758bcea666 (patch)
tree705c77dc8cea85ecf0203ea710957542541c4bb5 /tests
parentba06bf06721f1a8de7d68d22ad7eba27fff90c43 (diff)
downloaddotty-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')
-rw-r--r--tests/pos/i1540.scala4
-rw-r--r--tests/pos/i1540b.scala4
-rw-r--r--tests/pos/i1790.scala15
-rw-r--r--tests/pos/pos_valueclasses/optmatch.scala2
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)