// FIR_IDENTICAL // FULL_JDK // WITH_STDLIB // !DIAGNOSTICS: -UNUSED_PARAMETER -CAST_NEVER_SUCCEEDS -UNUSED_VARIABLE // FILE: Simple.java import java.util.*; import java.util.function.Supplier; public class Simple> { public Simple(Map backingMap, Supplier innerCollectionCreator) { // TODO } public final void add(K key, V value) { //TODO } public static class ListSimple extends Simple, List> { public ListSimple(Map> backingMap, Supplier> innerCollectionCreator) { super(backingMap, innerCollectionCreator); } } } // FILE: main.kt import java.util.* fun , B: Simple> Iterable.groupByTo(destination: B, keySelector: (V) -> K) = null as B enum class Format { Foo, Bar } class Instance(val format: Format) fun main(x: List) { val doesntWork = x.groupByTo( Simple.ListSimple(EnumMap>(Format::class.java), ::LinkedList) ) { it.format } // Internal Error occurred while analyzing this expression }