I have been trying:
class Foo(bar: Int)
vs:
class Foo(private val bar: Int)
and they seem to behave the same although I couldn't find anywhere saying that (bar:
Int)
expands to (private val bar: Int)
so my question is, are these
identical/similar?
On a side note, I have been trying to use -Xprint:typer
on these code pieces and they
produce the same code except for an extra line in the second one. How do I
read that extra line?
..
class Foo extends scala.AnyRef {
<paramaccessor> private[this] val bar: Int = _;
def <init>(bar: Int): this.Foo = {
Foo.super.<init>();
()
}
}
..
..
class Foo extends scala.AnyRef {
<paramaccessor> private[this] val bar: Int = _;
<stable> <accessor> <paramaccessor> private def bar: Int = Foo.this.bar;
def <init>(bar: Int): this.Foo = {
Foo.super.<init>();
()
}
}
..