File: tcpoly_overriding.scala

package info (click to toggle)
scala 2.9.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 67,208 kB
  • sloc: java: 27,488; xml: 4,412; python: 2,297; sh: 734; makefile: 16; ansic: 6
file content (16 lines) | stat: -rw-r--r-- 609 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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))
}