Скала выводит наименьшую верхнюю границу - PullRequest
2 голосов
/ 11 октября 2019

Скала 2.12. Следующий код

val mapBuilder = Map.newBuilder[String, String]
val setBuilder = Set.newBuilder[String]

List(Option("")).foreach {
  case Some(_) => mapBuilder += "" -> ""
  case None => setBuilder += ""
}

не компилируется - компилятору не удается вывести наименьшую верхнюю границу двух компоновщиков (U in foreach[U](f: A => U)):

type arguments [String,Iterable[java.io.Serializable] with String => Any with scala.collection.generic.Subtractable[String,Equals]] do not conform to trait Subtractable's type parameter bounds [A,+Repr <: scala.collection.generic.Subtractable[A,Repr]]

. foreach с Any решает проблему:

List(Option("")).foreach[Any] {
...

Это ожидаемое поведение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...