aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/hk-infer.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-08-22 16:18:49 +0200
committerMartin Odersky <odersky@gmail.com>2016-08-26 11:13:16 +0200
commitd84805299a42cb8d2c756aff5a117af24dbeaaf4 (patch)
tree924136f2161289e25bd1ecad388e88b13be248fc /tests/pos/hk-infer.scala
parent8f5bd779903d5c9f29bc3750391ffacbf3cf869e (diff)
downloaddotty-d84805299a42cb8d2c756aff5a117af24dbeaaf4.tar.gz
dotty-d84805299a42cb8d2c756aff5a117af24dbeaaf4.tar.bz2
dotty-d84805299a42cb8d2c756aff5a117af24dbeaaf4.zip
Recategorize tests
Passing tests from pending/pos go in pos. Some others go in diabled/not-testable. These are tests that require a compilation order which we cannot yet do with our unit testing framework. Compiling them alltogether (as is now doen in junit) does not work either for them because they contain a duplicate class.
Diffstat (limited to 'tests/pos/hk-infer.scala')
-rw-r--r--tests/pos/hk-infer.scala37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/pos/hk-infer.scala b/tests/pos/hk-infer.scala
new file mode 100644
index 000000000..c23a9d151
--- /dev/null
+++ b/tests/pos/hk-infer.scala
@@ -0,0 +1,37 @@
+object Basis {
+ final case class X[T](t: T)
+ val x = Seq(X(32))
+ val y = Seq(X(true))
+ val x1 = Seq(X("asdf"))
+ val x2 = Seq(X('d'))
+}
+import Basis._
+
+object DoesWork {
+ // Doesn'tWork
+ // def f1 = x ++ y ++ x1 ++ x2
+
+ def f2 = List(x, y, x1, x2).flatten
+}
+
+// Testing the not giving of explicit Booper[M] arguments.
+object ShouldWorkHK {
+ class Booper[M[_]](xs: Seq[M[_]]) extends collection.generic.SeqForwarder[M[_]] {
+ def underlying = xs
+ def BOOP(ys: Seq[M[_]]) = new Booper(xs ++ ys)
+ }
+ implicit def mkBoop[M[_]](xs: Seq[M[_]]): ShouldWorkHK.Booper[M] = new Booper(xs)
+
+ def f1 = x BOOP y BOOP x1 BOOP x2
+}
+
+object DoesWorkHK {
+ class Booper[M[_]](xs: Seq[M[_]]) extends collection.generic.SeqForwarder[M[_]] {
+ def underlying = xs
+ def BOOP(ys: Seq[M[_]]) = new Booper[M](xs ++ ys)
+ }
+ implicit def mkBoop[M[_]](xs: Seq[M[_]]): DoesWorkHK.Booper[M] = new Booper[M](xs)
+
+ def f1 = x BOOP y BOOP x1 BOOP x2
+}
+