Enumeración y mapeo con Scala 2.10
Estoy intentando portar mi aplicación a Scala 2.10.0-M2. Estoy viendo algunas mejoras agradables con mejores advertencias del compilador. Pero también recibí muchos errores, todos relacionados con mi mapeo deEnumeration.values
.
Te daré un ejemplo simple. Me gustaría tener una enumeración y luego crear previamente un grupo de objetos y construir un mapa que use valores de enumeración como claves y luego algunos objetos coincidentes como valores. Por ejemplo
object Phrase extends Enumeration {
type Phrase = Value
val PHRASE1 = Value("My phrase 1")
val PHRASE2 = Value("My phrase 2")
}
class Entity(text:String)
object Test {
val myMapWithPhrases = Phrase.values.map(p => (p -> new Entity(p.toString))).toMap
}
Ahora esto solía funcionar bien en Scala 2.8 y 2.9. Pero 2.10.0-M2 me da la siguiente advertencia:
[ERROR] common/Test.scala:21: error: diverging implicit expansion for type scala.collection.generic.CanBuildFrom[common.Phrase.ValueSet,(common.Phrase.Value, common.Entity),That]
[INFO] starting with method newCanBuildFrom in object SortedSet
[INFO] val myMapWithPhrases = Phrase.values.map(p => (p -> new Entity(p.toString))).toMap
^
¿Qué está causando esto y cómo lo arreglas?