scala/scala — pull request #1540 by odersky (2012-10-30 19:14:51+00:00)
Title: Fixes SI-6500 by making erasure more regular.

With the introduction of value classes, erasure uses specialErasure where a value class C with underlying type T is unboxed to an ErasedValueType. ErasedValue types are eliminated one phase later, in post-erasure. This was done everywhere, except in the parameter types of bridge methods. That was a mistake, because that way bridge methods could not do the boxing/unboxing logic triggered by ErasedValueTypes.

Note: there is one remaining use of erasure (not specialErasure) in Erasure.scala. I put in a comment why that is OK.

Review by @paulp @adriaanm