A value class is defined to be only Java-compatible values: unit is not part of it, as opposed to isValueClass in definitions.
A value class is defined to be only Java-compatible values: unit is not part of it, as opposed to isValueClass in definitions. scala.Int is a value class, java.lang.Integer is not.
Kludge to provide a safe fix for #4560: If we generate a reference in an implementation class, we watch out for embedded This(.
Kludge to provide a safe fix for #4560: If we generate a reference in an implementation class, we watch out for embedded This(..) nodes that point to the interface. These must be wrong. We fix them by setting symbol and type to the enclosing implementation class instead.
The boxed type if it's a primitive; identity otherwise.