I've recently started playing with Scala (2.8) and noticed the I can write the following code (in the Scala Interpreter):
scala> var x : Unit = 10
x : Unit = ()
It's not obvious what's going on there. I really didn't expect to see any implicit conversion to Unit.
See section "6.26.1 Value Conversions" in the Scala Language Specification version 2.8:
...
Value Discarding. If e
has some value type and the expected type is Unit, e
is converted
to the expected type by embedding it in the term { e; () }
.
...