2017-06-06 6 views
2

Nach dem Upgrade auf Scala 2.12, ich habe eine Frage seltsame Zusammenstellung dieses Codes habe trait:Typ Argumente nicht entsprechen Subtractable den Typ Parametergrenzen

val c = Map("a" -> Set[Map[String, String]](), "b" -> Map[String, String]()) 

Es wirft diese Ausnahme:

Error:(19, 7) type arguments [?,Iterable[Equals] with String with scala.collection.immutable.Map[String,String] => Any with scala.collection.generic.Subtractable[_ >: String with scala.collection.immutable.Map[String,String] <: Object, Iterable[Equals] with String with scala.collection.immutable.Map[String,String] => Any with scala.collection.generic.Subtractable[_ >: String with scala.collection.immutable.Map[String,String] <: Object, Iterable[Equals] with String with scala.collection.immutable.Map[String,String] => Any with scala.collection.generic.Subtractable[_ >: String with scala.collection.immutable.Map[String,String] <: Object, Equals]]{def seq: Iterable[Equals] with String with scala.collection.immutable.Map[String,String] => Any with scala.collection.generic.Subtractable[_ >: String with scala.collection.immutable.Map[String,String] <: Object, Equals]}]{def seq: Iterable[Equals] with String with scala.collection.immutable.Map[String,String] => Any with scala.collection.generic.Subtractable[_ >: String with scala.collection.immutable.Map[String,String] <: Object, Iterable[Equals] with String with scala.collection.immutable.Map[String,String] => Any with scala.collection.generic.Subtractable[_ >: String with scala.collection.immutable.Map[String,String] <: Object, Equals]]{def seq: Iterable[Equals] with String with scala.collection.immutable.Map[String,String] => Any with scala.collection.generic.Subtractable[_ >: String with scala.collection.immutable.Map[String,String] <: Object, Equals]}}] do not conform to trait Subtractable's type parameter bounds [A,+Repr <: scala.collection.generic.Subtractable[A,Repr]] 
+0

Haben Sie vor, einen der Werte ein 'Set' und das andere' Map' zu haben? –

+0

Und was hat dieser Code erreicht, bevor er auf 2.12 aktualisiert wurde? –

+0

Ja, das erste ist ein Set und das zweite ist eine Map –

Antwort

2

Es sieht aus wie ein Fehler. Sie könnten es in bug tracker veröffentlichen, wenn Analog nicht vorhanden ist.

Als Workaround versuchen Sie, Werte an die Karte anzuhängen.

scala> val c = Map.empty[String,Iterable[Any]] + ("a" -> Set[Map[String, String]]()) + ("b" -> Map[S 
tring, String]()) 
c: scala.collection.immutable.Map[String,Iterable[Any]] = Map(a -> Set(), b -> Map()) 
Verwandte Themen