aboutsummaryrefslogtreecommitdiff
path: root/tests/disabled/pos/hk-named.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/disabled/pos/hk-named.scala')
-rw-r--r--tests/disabled/pos/hk-named.scala58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/disabled/pos/hk-named.scala b/tests/disabled/pos/hk-named.scala
new file mode 100644
index 000000000..5f2cb6c74
--- /dev/null
+++ b/tests/disabled/pos/hk-named.scala
@@ -0,0 +1,58 @@
+import language.higherKinds
+
+object hk0 {
+
+ trait Lambda[type Elem]
+
+ abstract class Functor[F <: Lambda] {
+ def map[A, B](f: A => B): F[Elem = A] => F[Elem = B]
+ }
+
+ object test1 {
+ class ListT[T] extends Lambda[T]
+
+ val ml: Functor[ListT] = ???
+ val mx = ml
+ var xs: ListT[Int] = ???
+ var ys: ListT { type Elem = Int } = xs
+ xs = ys
+ val mm: (Int => Boolean) => ListT[Int] => ListT[Boolean] = mx.map[Int, Boolean]
+ val mm2: (Int => Boolean) => ListT[Int] => ListT[Boolean] = mx.map
+ }
+}
+
+
+object higherKinded {
+
+ type Untyped = Null
+
+ class Tree[type -Attr >: Untyped] {
+ type ThisType <: Tree
+ def withString(s: String): ThisType[Attr = String] = withString(s)
+ }
+/*
+ class Ident[-Attr >: Untyped] extends Tree[Attr] {
+ type ThisType = Ident
+ }
+
+ val id = new Ident[Integer]
+
+ val y = id.withString("abc")
+
+ val z: Ident[String] = y
+
+ val zz: tpd.Tree = y
+
+ abstract class Instance[T >: Untyped] {g
+ type Tree = higherKinded.Tree[T]
+ }
+
+ object tpd extends Instance[String]
+
+ def transform(tree: Tree[String]) = {
+ val tree1 = tree.withString("")
+ tree1: Tree[String]
+ }
+*/
+}
+