diff options
author | Aleksandar Prokopec <axel22@gmail.com> | 2012-04-02 13:16:09 +0200 |
---|---|---|
committer | Aleksandar Prokopec <axel22@gmail.com> | 2012-04-02 13:16:09 +0200 |
commit | de3bd754676fbed0b6c69ca3d676b72bc276e925 (patch) | |
tree | 1d18a7f8c193fda503d63d286ddcf561842d1091 /test/files/run/delay-good.scala | |
parent | c14766c1affe968788c77fea45ae042d71038472 (diff) | |
parent | f7535f72903f083b2444fb1d0b73363efa5482e9 (diff) | |
download | scala-de3bd754676fbed0b6c69ca3d676b72bc276e925.tar.gz scala-de3bd754676fbed0b6c69ca3d676b72bc276e925.tar.bz2 scala-de3bd754676fbed0b6c69ca3d676b72bc276e925.zip |
Merge branch 'master' into feature/collection-concurrent
Conflicts:
src/library/scala/collection/JavaConversions.scala
src/library/scala/collection/JavaConverters.scala
Add one test for concurrent map conversion.
Diffstat (limited to 'test/files/run/delay-good.scala')
-rw-r--r-- | test/files/run/delay-good.scala | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/test/files/run/delay-good.scala b/test/files/run/delay-good.scala new file mode 100644 index 0000000000..2e4487b92c --- /dev/null +++ b/test/files/run/delay-good.scala @@ -0,0 +1,77 @@ +trait A +{ + print("-A") + + def delayedInit(body: => Unit) = { + body + postConstructionCode + } + def postConstructionCode: Unit = { + print("\n A+") + } +} +trait B extends A { + print(" -B") + override def postConstructionCode: Unit = { + super.postConstructionCode + print(" B+") + } +} + +trait C extends B { + print(" -C") + override def postConstructionCode: Unit = { + super.postConstructionCode + print(" C+") + } +} + +class D() extends C { + print(" -D") + override def postConstructionCode: Unit = { + super.postConstructionCode + print(" D+") + } +} +class E() extends D() { + print(" -E") + override def postConstructionCode: Unit = { + super.postConstructionCode + print(" E+") + } +} + +object Test { + def p(msg: String) = println("\n\n// " + msg) + + def main(args: Array[String]) { + val f: A => Unit = _.postConstructionCode + + p("new C { }") + f(new C { }) + p("new C { 5 }") + f(new C { 5 }) + + p("new D()") + f(new D()) + p("new D() { }") + f(new D() { }) + + p("new D() { val x = 5 }") + f(new D() { val x = 5 }) + p("new { val x = 5 } with D()") + f(new { val x = 5 } with D()) + + p("new E() { val x = 5 }") + f(new E() { val x = 5 }) + p("new { val x = 5 } with E()") + f(new { val x = 5 } with E()) + + p("new { val x = 5 } with E() { }") + f(new { val x = 5 } with E() { }) + p("new { val x = 5 } with E() { 5 }") + f(new { val x = 5 } with E() { 5 }) + + println("") + } +} |