// IGNORE_BACKEND: JVM inline fun < reified TService : Service, reified TEvent : Event> event( noinline handler: suspend (TEvent) -> Unit ) { val serviceKlass = TService::class val eventKlass = TEvent::class } interface Service< Self : Service, in TEvent : Event > interface Event> class SomeService : Service { class SomeEvent : Event } fun box(): String { event { someEvent: SomeService.SomeEvent -> } // REIFIED_TYPE_FORBIDDEN_SUBSTITUTION return "OK" }