summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/transform/PostErasure.scala
blob: f0c7d0f05038e8fc97d289d529e354b5d4c48a5d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package scala.reflect
package internal
package transform

trait PostErasure {
  val global: SymbolTable
  import global._
  import definitions._

  object elimErasedValueType extends TypeMap {
    def apply(tp: Type) = tp match {
      case ConstantType(Constant(tp: Type)) => ConstantType(Constant(apply(tp)))
      case ErasedValueType(_, underlying)   => underlying
      case _                                => mapOver(tp)
    }
  }

  def transformInfo(sym: Symbol, tp: Type) = elimErasedValueType(tp)
}