[FIR] Make overriding generic callables independent of TP bounds order

This commit is contained in:
simon.ogorodnik
2020-06-01 21:34:43 +03:00
parent 2287435740
commit ab02381a83
7 changed files with 167 additions and 33 deletions
@@ -0,0 +1,32 @@
FILE: main.kt
public abstract interface KI1 : R|kotlin/Any| {
}
public abstract interface KI2 : R|kotlin/Any| {
}
public abstract interface KI12 : R|KI1|, R|KI2| {
}
public open class KBase : R|kotlin/Any| {
public constructor(): R|KBase| {
super<R|kotlin/Any|>()
}
public open fun <P : R|KI1|, R|KI2|> foo(): R|kotlin/Unit| {
}
}
public final class KDerived : R|KBase| {
public constructor(): R|KDerived| {
super<R|KBase|>()
}
public final override fun <P : R|KI2|, R|KI1|> foo(): R|kotlin/Unit| {
}
}
public final fun callJava(derived: R|Test.Derived|, derivedRaw: R|Test.DerivedRaw|, v: R|Test.I123|): R|kotlin/Unit| {
R|<local>/derived|.R|/Test.Derived.foo|<R|ft<Test.I123, Test.I123?>!|>(R|<local>/v|)
R|<local>/derivedRaw|.R|/Test.DerivedRaw.foo|(R|<local>/v|)
}
public final fun callKotlin(derived: R|KDerived|): R|kotlin/Unit| {
R|<local>/derived|.R|/KDerived.foo|<R|KI12|>()
}