blob: 8b32e5b47d9b5ffbb887a8d28c0b391861a3e254 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// TODO: clarify meaning of final in traits
// In the new compiler, there's no final modifier after mixin for `meh`'s setter,
// whereas 2.12.0-M3 makes meh's trait setter final.
// NOTE: bytecode is identical, but the scalasignature is different
trait Foo { self: Meh =>
def bar(x: String) = x == "a"
private final val meh = bar("a")
}
abstract class Meh extends Foo
object Test {
def main(args: Array[String]): Unit = {
val setter = classOf[Meh].getDeclaredMethod("Foo$_setter_$Foo$$meh_$eq", java.lang.Boolean.TYPE)
val getter = classOf[Meh].getDeclaredMethod("Foo$$meh")
import java.lang.reflect.Modifier._
assert(isFinal(setter.getModifiers), setter)
assert(isFinal(getter.getModifiers), getter)
}
}
|