summaryrefslogtreecommitdiff
path: root/test/files/run
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/run')
-rw-r--r--test/files/run/t4047.check5
-rw-r--r--test/files/run/t4047.scala34
2 files changed, 39 insertions, 0 deletions
diff --git a/test/files/run/t4047.check b/test/files/run/t4047.check
new file mode 100644
index 0000000000..2a942a70e0
--- /dev/null
+++ b/test/files/run/t4047.check
@@ -0,0 +1,5 @@
+Unit: called A.foo
+Unit: called B.foo
+Unit: called C.foo
+Unit: called D.foo
+Unit: called D.foo
diff --git a/test/files/run/t4047.scala b/test/files/run/t4047.scala
new file mode 100644
index 0000000000..cd42a8b4df
--- /dev/null
+++ b/test/files/run/t4047.scala
@@ -0,0 +1,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 Application {
+ 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
+}