模式匹配时的虚线类型失败

时间:2012-09-25 11:03:23

标签: scala code-generation pattern-matching

我已经看到这些情况正常(注意 scala.Int 而不是 Int ):

def f(l: List[scala.Int]): List[scala.Int] = l
val l: List[scala.Int] = List[scala.Int]()

但在以下示例中使用整个路径失败:

def f[T: TypeTag](l: List[T]): Int = {
  l match {
    case li: List[scala.Int] if typeOf[T] <:< typeOf[scala.Int] => li(0)
    case _ => 0
  }
}

是否可以在保留 scala.Int 的同时逃避这种情况?问题是我需要自动生成此代码,并且我希望避免使用 import redefinitions

0 个答案:

没有答案