考虑到以下类别:
import scala.reflect.api.Universe
trait OuterSpike2 {
val universe: Universe
type Type = universe.Type
case class TypeView(
self: Type,
comment: Option[String] = None
) {
lazy val baseTypes: List[TypeView] = {
self match {
case v: Type with scala.reflect.internal.Types#Type =>
case _ =>
}
???
}
}
}
在编译时,它给出了以下警告:
[Warn] /home/peng/git/shapesafe/graph-commons/src/main/scala/com/tribbloids/graph/commons/issues/OuterSpike2.scala:24: abstract type pattern OuterSpike2.this.universe.Type (the underlying of OuterSpike2.this.Type) is unchecked since it is eliminated by erasure
这个问题比泛型集合类中的匹配更困难(包含一个classtag可以很容易地解决这个问题,请参阅如何在scala上绕过类型擦除?或者,为什么不能获取集合的类型参数?)。在本例中,类型“type”依赖于this.universe的路径,对于该路径,没有容易表示的类标记。那么我应该如何指示编译器从另一个Angular 看呢?
暂无答案!
目前还没有任何答案,快来回答吧!