// TARGET_BACKEND: JVM // FULL_JDK // WITH_RUNTIME import java.lang.reflect.Type interface ComponentContainer interface PlatformSpecificExtension> interface ComponentDescriptor abstract class PlatformExtensionsClashResolver>( val applicableTo: Class ) class ClashResolutionDescriptor>( container: ComponentContainer, private val resolver: PlatformExtensionsClashResolver, private val clashedComponents: List ) private val registrationMap = hashMapOf() fun resolveClashesIfAny(container: ComponentContainer, clashResolvers: List>) { for (resolver in clashResolvers) { val clashedComponents = registrationMap[resolver.applicableTo] as? Collection ?: continue val substituteDescriptor = ClashResolutionDescriptor(container, resolver, clashedComponents.toList()) } }