-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Description
Minimized code
scala> class C(var a: Int)
// defined class C
scala> extension Ops on (c: C) {
| def foo: Int = c.a
| def foo_=(a: Int): Unit = c.a = a
| }
// defined object Ops
scala> val c = C(10)
val c: C = C@145e958f
scala> c.foo
val res0: Int = 10
scala> c.foo = 20
1 |c.foo = 20
|^^^^^^^^^^
|Reassignment to val foo
scala> c.foo_=(20)
scala>
Expectation
In Scala 2:
@ {
case class C(var a: Int)
implicit class Ops(val c: C) {
def foo: Int = c.a
def foo_=(a: Int): Unit = c.a = a
}
}
defined class C
defined class Ops
@ val c = new C(10)
c: C = C(10)
@ c.foo = 20
@ c
res3: C = C(20)
@