summaryrefslogblamecommitdiff
path: root/test/files/run/tcpoly_overriding.scala
blob: 86ba89f5305c39dd40920b02c39d1d4a36a38d35 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13












                                                                                                     
                         
                               
 
abstract class A[t[x]] {
  def b: t[Int]
}

class B extends A[List] {
    // underlying functionality being tested is overriding, but bugs manifest itself during erasure
    // erasure should generate two methods: one that returns an Object (to implement the method in A)
    // one that is as close as possible to the original method and thus returns a List
    // the problem only manifests itself here -- but it's really a problem with overriding
    // the link between this method and the method in A isn't seen
  def b: List[Int] = List(1)
}

object Test extends App {
  Console.println((new B).b(0))
}