2017-06-06 3 views
2

Subtractableの型パラメータの境界を形質に準拠していない、私はこのコードの奇妙なコンパイルの問題が生じています:型引数は、Scalaの2.12にアップグレードした後

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

それは、この例外がスローされます。

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

値のうちの1つを 'Set'と他の' Map'を持っていますか? –

+0

2.12にアップデートする前に、そのコードは何を達成しましたか? –

+0

はい、1番目がセット、2番目がマップです –

答えて

2

これはバグのようです。アナログがない場合はbug trackerに投稿することができます。

回避策として、マップに値を追加してみてください。

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()) 
関連する問題