aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/i1790.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos/i1790.scala')
-rw-r--r--tests/pos/i1790.scala15
1 files changed, 15 insertions, 0 deletions
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
+}