diff options
author | Paul Phillips <paulp@improving.org> | 2011-08-24 17:11:55 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-08-24 17:11:55 +0000 |
commit | b9785280a7138a2bb52060faf94807aa0d07dec1 (patch) | |
tree | 870cc1930ac3d50cd07078260f58984224dd39a5 /test/files/run/t4680.scala | |
parent | 84fcf633d9ca507124806d64729cb8463bcebb69 (diff) | |
download | scala-b9785280a7138a2bb52060faf94807aa0d07dec1.tar.gz scala-b9785280a7138a2bb52060faf94807aa0d07dec1.tar.bz2 scala-b9785280a7138a2bb52060faf94807aa0d07dec1.zip |
Renamed tests named bugXXX to tXXX, no review.
Diffstat (limited to 'test/files/run/t4680.scala')
-rw-r--r-- | test/files/run/t4680.scala | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/files/run/t4680.scala b/test/files/run/t4680.scala new file mode 100644 index 0000000000..d5c8d0e7af --- /dev/null +++ b/test/files/run/t4680.scala @@ -0,0 +1,71 @@ +trait A extends DelayedInit { + print("-A ") + + def delayedInit(body: => Unit) = { + body + postConstructionCode + } + protected def postConstructionCode: Unit = { + print("\nA+ ") + } +} +trait B extends A { + print("-B ") + override protected def postConstructionCode: Unit = { + super.postConstructionCode + print("B+ ") + } +} + +trait C extends B { + print("-C ") + override protected def postConstructionCode: Unit = { + super.postConstructionCode + print("C+ ") + } +} + +class D() extends C { + print("-D ") + override protected def postConstructionCode: Unit = { + super.postConstructionCode + print("D+ ") + } +} +class E() extends D() { + println("-E") + override protected def postConstructionCode: Unit = { + super.postConstructionCode + println("E+") + } +} + + +object Test { + def p(msg: String) = println("\n\n// " + msg) + + def main(args: Array[String]) { + p("new C { }") + new C { } + p("new C { 5 }") + new C { 5 } + + p("new D()") + new D() + p("new D() { }") + new D() { } + p("new D() { val x = 5 }") + new D() { val x = 5 } + p("new { val x = 5 } with D()") + new { val x = 5 } with D() + + p("new E() { val x = 5 }") + new E() { val x = 5 } + p("new { val x = 5 } with E()") + new { val x = 5 } with E() + p("new { val x = 5 } with E() { }") + new { val x = 5 } with E() { } + p("new { val x = 5 } with E() { 5 }") + new { val x = 5 } with E() { 5 } + } +} |