inference
Собственно кейс:
val map = HashMap<String, HashSet<String>>()
val someMapKeys = HashSet<String>()
someMapKeys.flatMapTo(HashSet()) { map[it] ?: HashSet() } // HashSet<Any?>
Однако вот такие варианты уже выводят тип правильно:
val map = HashMap<String, HashSet<String>>()
val someMapKeys = HashSet<String>()
someMapKeys.flatMapTo(HashSet()) {
val iterable = map[it] ?: HashSet()
iterable
} // HashSet<String>
val map = HashMap<String, HashSet<String>>()
val someMapKeys = HashSet<String>()
someMapKeys.flatMapTo(HashSet<String>()) { map[it] ?: HashSet() } // HashSet<String>
val map = HashMap<String, HashSet<String>>()
val someMapKeys = HashSet<String>()
someMapKeys.flatMapTo(HashSet()) { map[it].orEmpty() } // HashSet<String>
Интересно почему так происходит
А почему вы считаете, что в первом варианте HashSet<Any?> выводится?
Обсуждают сегодня