Есть 3 разных класса, ограниченных вселенной: TypeTag
, TypeRef
и Type
. Зачем нужны все 3? Если у меня есть только Type
, как мне преобразовать его в TypeTag
или TypeRef
?
Например. Я получил общий супертип через функцию API отражения Scala:
val at = ...some TypeTag...
val bt = ...some TypeTag...
val tpe = ScalaReflection.universe.lub(List(at.tpe, bt.tpe))
ScalaReflection.universe.(tpe)
Как преобразовать его в TypeTag
или TypeRef
?