diff options
Diffstat (limited to 'test/pending/pos/t5685.scala')
-rw-r--r-- | test/pending/pos/t5685.scala | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/pending/pos/t5685.scala b/test/pending/pos/t5685.scala new file mode 100644 index 0000000000..9ac42a174e --- /dev/null +++ b/test/pending/pos/t5685.scala @@ -0,0 +1,23 @@ +trait X[A] { + def x: A +} + +trait XPrint[A] extends X[A] { + abstract override def x: A = { + val a = super.x + println(a) + a + } +} + +trait F[A, B] { outer => + def apply(xv: X[A]): X[B] + + def andThen[C](f: F[B, C]): F[A, C] = new F[A, C] { + def apply(xv: X[A]): X[C] = f(new XX(xv) with XPrint[B]) + } + + class XX(xv: X[A]) extends X[B] { + def x = outer(xv).x + } +} |