Skip to content

Unable to extend setter method with extension #9248

@Glavo

Description

@Glavo

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)

@

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions