package org.example interface SomeTrait {} interface KotlinProcessor { fun execute(callback: KotlinCallback?); } interface KotlinCallback { fun on(t : T); } public class Test(name : String) : KotlinProcessor { public override fun execute(callback: KotlinCallback?) { if(callback != null) { class InlineTrait : SomeTrait {} var inlineTrait = InlineTrait() callback.on(inlineTrait) } } } fun box() : String { var f = "fail" Test("OK").execute(object : KotlinCallback { override fun on(t: SomeTrait) { f = "OK" } }) return f }