FILE: protobufExt.kt public abstract interface Ext|, T> : R|kotlin/Any| { } public abstract interface Message|> : R|kotlin/Any| { public abstract fun ext(e: R|Ext|): R|T| } public final class MyMessage : R|Message| { public constructor(): R|MyMessage| { super() } } public final class MyExt : R|Ext| { public constructor(): R|MyExt| { super() } } public final fun |, T> R|Message|.extF(e: R|Ext|): R|T| { ^extF this@R|/extF|.R|SubstitutionOverride|(R|/e|) } public final fun foo(m: R|MyMessage|, e: R|MyExt|): R|kotlin/Unit| { R|/m|.R|SubstitutionOverride|(R|/e|) R|/m|.R|/extF|(R|/e|) }