File: t4047.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (34 lines) | stat: -rw-r--r-- 554 bytes parent folder | download | duplicates (4)
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
29
30
31
32
33
34
trait Foo[T] { val foo: T}

class A extends Foo[Unit]{
  lazy val foo = println("Unit: called A.foo")
}

class B extends Foo[Unit]{
  val foo = println("Unit: called B.foo")
}

trait Bar[T] { def foo: T}

class C extends Bar[Unit]{
  lazy val foo = println("Unit: called C.foo")
}

class D extends Bar[Unit]{
  def foo = println("Unit: called D.foo")
}

object Test extends App {
  val a: Foo[Unit] = new A
  a.foo
  a.foo
  val b: Foo[Unit] = new B
  b.foo
  b.foo
  val c: Bar[Unit] = new C
  c.foo
  c.foo
  val d: Bar[Unit] = new D
  d.foo
  d.foo
}