diff options
Diffstat (limited to 'src/compiler/scala/reflect/internal/transform/Erasure.scala')
-rw-r--r-- | src/compiler/scala/reflect/internal/transform/Erasure.scala | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/compiler/scala/reflect/internal/transform/Erasure.scala b/src/compiler/scala/reflect/internal/transform/Erasure.scala index 2cf171aad3..e87de8db80 100644 --- a/src/compiler/scala/reflect/internal/transform/Erasure.scala +++ b/src/compiler/scala/reflect/internal/transform/Erasure.scala @@ -74,7 +74,7 @@ trait Erasure { def eraseNormalClassRef(pre: Type, clazz: Symbol): Type = typeRef(apply(rebindInnerClass(pre, clazz)), clazz, List()) // #2585 - protected def eraseInlineClassRef(clazz: Symbol): Type = + protected def eraseDerivedValueClassRef(clazz: Symbol): Type = scalaErasure(underlyingOfValueClass(clazz)) def apply(tp: Type): Type = tp match { @@ -90,7 +90,7 @@ trait Erasure { else if (sym == AnyClass || sym == AnyValClass || sym == SingletonClass || sym == NotNullClass) erasedTypeRef(ObjectClass) else if (sym == UnitClass) erasedTypeRef(BoxedUnitClass) else if (sym.isRefinementClass) apply(mergeParents(tp.parents)) - else if (sym.isInlineClass) eraseInlineClassRef(sym) + else if (sym.isDerivedValueClass) eraseDerivedValueClassRef(sym) else if (sym.isClass) eraseNormalClassRef(pre, sym) else apply(sym.info) // alias type or abstract type case PolyType(tparams, restpe) => @@ -119,7 +119,7 @@ trait Erasure { } def applyInArray(tp: Type): Type = tp match { - case TypeRef(pre, sym, args) if (sym.isInlineClass) => eraseNormalClassRef(pre, sym) + case TypeRef(pre, sym, args) if (sym.isDerivedValueClass) => eraseNormalClassRef(pre, sym) case _ => apply(tp) } } @@ -159,13 +159,13 @@ trait Erasure { else javaErasure /** This is used as the Scala erasure during the erasure phase itself - * It differs from normal erasure in that value classes are erased to ErasedInlineTypes which + * It differs from normal erasure in that value classes are erased to ErasedValueTypes which * are then later converted to the underlying parameter type in phase posterasure. */ def specialErasure(sym: Symbol)(tp: Type): Type = if (sym != NoSymbol && sym.enclClass.isJavaDefined) erasure(sym)(tp) - else if (sym.isTerm && sym.owner.isInlineClass) + else if (sym.isTerm && sym.owner.isDerivedValueClass) specialErasureAvoiding(sym.owner, tp) else if (sym.isValue && sym.owner.isMethodWithExtension) specialErasureAvoiding(sym.owner.owner, tp) @@ -222,11 +222,11 @@ trait Erasure { object scalaErasure extends ScalaErasureMap /** This is used as the Scala erasure during the erasure phase itself - * It differs from normal erasure in that value classes are erased to ErasedInlineTypes which + * It differs from normal erasure in that value classes are erased to ErasedValueTypes which * are then later converted to the underlying parameter type in phase posterasure. */ object specialScalaErasure extends ScalaErasureMap { - override def eraseInlineClassRef(clazz: Symbol): Type = ErasedInlineType(clazz) + override def eraseDerivedValueClassRef(clazz: Symbol): Type = ErasedValueType(clazz) } object javaErasure extends JavaErasureMap |