diff options
author | Martin Odersky <odersky@gmail.com> | 2015-06-19 16:15:04 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-06-19 16:15:04 +0200 |
commit | 25304a028e6d1426b14ead4a469c362b8536d893 (patch) | |
tree | 061bd796b2d65ad7b55df32ba34f57268e6c6b47 /tests/run/i659.scala | |
parent | bbc584f0ac3586ce4e4a92e58f74ad69a15f0ed5 (diff) | |
download | dotty-25304a028e6d1426b14ead4a469c362b8536d893.tar.gz dotty-25304a028e6d1426b14ead4a469c362b8536d893.tar.bz2 dotty-25304a028e6d1426b14ead4a469c362b8536d893.zip |
Add initializers for lambdalift proxy fields
If an inner class has proxy fields, we missed so far the assignment sfrom
the proxy parameters in the primary constructor of the class to the proxy
fields.
Test case tries several variations of this.
Diffstat (limited to 'tests/run/i659.scala')
-rw-r--r-- | tests/run/i659.scala | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/tests/run/i659.scala b/tests/run/i659.scala index 5f10f15e8..d1229515d 100644 --- a/tests/run/i659.scala +++ b/tests/run/i659.scala @@ -1,12 +1,26 @@ class Foo(val a: Int) { - //def foo = { {case x => x + a}: PartialFunction[Int, Int]} + def foo = { {case x => x + a}: PartialFunction[Int, Int]} class Bar { def result(x: Int) = x + a } def bar = new Bar } +class VFoo(val a: Int) extends AnyVal { + def foo = { {case x => x + a}: PartialFunction[Int, Int]} +} + object Test extends dotty.runtime.LegacyApp { - //val x = new Foo(1).foo.apply(2) - val y = new Foo(1).bar.result(2) - assert(y == 3, y) - //assert(x == 3, x) + + def Foo(a: Int) = { + class Bar { def result(x: Int) = x + a } + new Bar().result(2) + } + + val x1 = new Foo(1).bar.result(2) + assert(x1 == 3, s"x1 = $x1") + val x2 = Foo(1) + assert(x2 == 3, s"x2 = $x2") + val x3 = new Foo(1).foo.apply(2) + assert(x3 == 3, s"x3 = $x3") + val x4 = new VFoo(1).foo.apply(2) + assert(x4 == 3, s"x4 = $x4") } |