diff options
author | Martin Odersky <odersky@gmail.com> | 2016-08-17 13:42:28 +0200 |
---|---|---|
committer | Guillaume Martres <smarter@ubuntu.com> | 2016-08-17 15:37:14 -0700 |
commit | 5f598e8094c1dba3c6cf302383088f4f00626222 (patch) | |
tree | b1df5e4a688b46265e8be112978569f3470be48a /tests/pos/tcpoly_infer_ticket474.scala | |
parent | 83adc75d50e319d1d2c3e2d88b69ee4393bd3525 (diff) | |
download | dotty-5f598e8094c1dba3c6cf302383088f4f00626222.tar.gz dotty-5f598e8094c1dba3c6cf302383088f4f00626222.tar.bz2 dotty-5f598e8094c1dba3c6cf302383088f4f00626222.zip |
Add clause for HKApply in TypeAssigner#avoid
Diffstat (limited to 'tests/pos/tcpoly_infer_ticket474.scala')
-rw-r--r-- | tests/pos/tcpoly_infer_ticket474.scala | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/pos/tcpoly_infer_ticket474.scala b/tests/pos/tcpoly_infer_ticket474.scala new file mode 100644 index 000000000..9012deb2b --- /dev/null +++ b/tests/pos/tcpoly_infer_ticket474.scala @@ -0,0 +1,27 @@ +trait Builder[C[_], T] { + def +=(x: T): Unit + def finalise: C[T] +} + +trait Buildable[C[_]] { + def builder[T]: Builder[C,T] +} + +object Test { + + implicit object buildableList extends Buildable[List] { + def builder[T] = new Builder[List,T] { + val buf = new scala.collection.mutable.ListBuffer[T] + def +=(x: T) = buf += x + def finalise = buf.toList + } + } + + def foo[C[_],T](x: T)(implicit b: Buildable[C]): C[T] = { + val builder = b.builder[T] + builder += x + builder.finalise + } + + val l: List[Int] = foo(8) +} |