7

Scala's Manifests are a way to get around some type erasure problems due to the JVM's lack of reified generics.

They are discussed in several other questions; here are a few:

One of the comments mentions that “This feature is experimental, and there are cases in which it doesn't work. Still, it can go a long way.” (Daniel Sobral)

What are the cases where the Manifest approach breaks down and why?

Community
  • 1
  • 1
Jean-Philippe Pellet
  • 59,296
  • 21
  • 173
  • 234

2 Answers2

8

The most important case should be open Tickets in the Scala teams bug tracking system. I found the following:

I believe the general idea is, that Manifests will be part of the planned/upcomming Scala reflection library and apart from using them in the context of Arrays is "on your own risk" ( see ).

Alexander Battisti
  • 2,178
  • 2
  • 19
  • 24
3

One more:

    scala> class C;
    defined class C

    scala> trait T;
    defined trait T

    scala> manifest[C] <:< manifest[C with T]
    res0: Boolean = true

I've not even reported it since, according to this, manifests are deprecated in 2.10 so they are not fixing bugs with them.

jsalvata
  • 2,155
  • 15
  • 32