Scala Pickling и параметры типа
я используюСкала Пиклинг, автоматическая среда сериализации для Scala. Согласноавторские слайды, любой типT
можно мариновать, пока существует неявноеPickler[T]
в области. Здесь я предполагаю, что она имеет в видуscala.tools.nsc.io.Pickler
, Однако следующее не компилируется:
import scala.pickling._
import scala.pickling.binary._
import scala.tools.nsc.io.Pickler
object Foo {
def bar[T: Pickler](t: T) = t.pickle
}
Ошибка:
[error] exception during macro expansion:
[error] scala.ScalaReflectionException: type T is not a class
[error] at scala.reflect.api.Symbols$SymbolApi$class.asClass(Symbols.scala:323)
[error] at scala.reflect.internal.Symbols$SymbolContextApiImpl.asClass(Symbols.scala:73)
[error] at scala.pickling.PickleMacros$class.pickleInto(Macros.scala:381)
[error] at scala.pickling.Compat$$anon$17.pickleInto(Compat.scala:33)
[error] at scala.pickling.Compat$.PickleMacros_pickleInto(Compat.scala:34)
Я использую Scala 2.10.2 со скала-травлением 0.8-SNAPSHOT.
Это ошибка или ошибка пользователя?
РЕДАКТИРОВАТЬ 1: та же ошибка возникает с обоимиscala.pickling.SPickler
а такжеscala.pickling.DPickler
.
РЕДАКТИРОВАТЬ 2: похоже, это ошибка:https://github.com/scala/pickling/issues/31