rsc
rsc copied to clipboard
Don't ascribe type refinements in case of overrides with different modifier
Given:
trait AC {
def foo: Int
}
def ac = new AC {
override val foo: Int = 0
}
Obtained:
def ac: AC { val foo: Int } = new AC {
override val foo: Int = 0
}
Expected:
def ac: AC = new AC {
override val foo: Int = 0
}
This happens when overriding a def with val. Should figure out how this works in the context of lazy vals as well.