summaryrefslogtreecommitdiff
path: root/test/files/neg/t3481.scala
blob: f4b781ee37bd3add7084a759e5b5ad8c04447f53 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
object t3481 {
  object ex1 {
    trait A[T] { type B = T }
    def f[T <: A[_]](a: T#B) = 1
    f[A[Int]]("hello")
  }

  object ex2 {
    trait A { type T; def m(t: T) = t.toString }
    class B[T2] extends A { type T = T2 }
    def f[T <: B[_]](a: T#T, b: T) = b.m(a)
    f("Hello", new B[Int])
  }

  object ex3 {
    class B[T] { type T2 = T; def m(t: T2) = t.toString }
    val b: B[_] = new B[Int]
    b.m("Hello")
  }

  object ex4 {
    abstract class B[T] { type T2 = T; def m(t: T2): Any }
    object Test {
      val b: B[_] = sys.error("")
      b.m("Hello")
    }
  }
}