From 510f9833512173798008198c86d86d1f10a24e15 Mon Sep 17 00:00:00 2001 From: Iulian Dragos Date: Mon, 2 Jul 2007 13:39:23 +0000 Subject: Fixed bug 1194, overriding lazy values. --- test/files/run/lazy-override.check | 3 +++ test/files/run/lazy-override.scala | 29 +++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 test/files/run/lazy-override.check create mode 100644 test/files/run/lazy-override.scala (limited to 'test/files') diff --git a/test/files/run/lazy-override.check b/test/files/run/lazy-override.check new file mode 100644 index 0000000000..225a9b120d --- /dev/null +++ b/test/files/run/lazy-override.check @@ -0,0 +1,3 @@ +/*A.x*/a.x=2 +/*A.x*//*B.y*/b.x=/*B.x*/3 +b.z=/*B.z/3 diff --git a/test/files/run/lazy-override.scala b/test/files/run/lazy-override.scala new file mode 100644 index 0000000000..0b72f60f03 --- /dev/null +++ b/test/files/run/lazy-override.scala @@ -0,0 +1,29 @@ +class A { + val x: Int = { print("/*A.x*/"); 2 } + lazy val y: Int = { print("/*A.y*/"); 2 } + lazy val z: Int = { print("/*A.z*/"); 2 } +} + +class B extends A { + // lazy overrides strict val + override lazy val x: Int = { print("/*B.x*/"); 3 } + // strict val overrides lazy + override val y: Int = { print("/*B.y*/"); 3 } + // lazy overrides lazy + override lazy val z: Int = { print("/*B.z/"); 3 } +} + + + + +object Test extends Application { + val a = new A + print("a.x=") + println(a.x) + + val b = new B + print("b.x=") + println(b.x) + print("b.z=") + println(b.z) +} -- cgit v1.2.3