FIR: Support proper implicit return type computation for local classes

This commit is contained in:
Denis Zharkov
2020-03-20 16:43:16 +03:00
parent 94193c91a0
commit cdd7e41891
14 changed files with 377 additions and 38 deletions
@@ -5,11 +5,8 @@ FILE: localImplicitBodies.kt
super<R|kotlin/Any|>()
}
public final fun sss(): <ERROR TYPE REF: Cannot calculate return type during full-body resolution (local class/object?): public final fun abc(): <implicit> {
^abc IntegerLiteral(1)
}
> {
^sss R?C|/anonymous.abc|()
public final fun sss(): R|kotlin/Int| {
^sss this@R|/anonymous|.R|/anonymous.abc|()
}
public final fun abc(): R|kotlin/Int| {
@@ -18,8 +15,5 @@ FILE: localImplicitBodies.kt
}
lval g: <ERROR TYPE REF: Cannot calculate return type during full-body resolution (local class/object?): public final fun abc(): <implicit> {
^abc IntegerLiteral(1)
}
> = R|<local>/x|.R?C|/anonymous.sss|()
lval g: R|kotlin/Int| = R|<local>/x|.R|/anonymous.sss|()
}
@@ -45,7 +45,7 @@ FILE: O.kt
super<R|kotlin/Any|>()
}
public final val zz: R|kotlin/Boolean| = R|<local>/z|
public final val zz: R|kotlin/Boolean| = this@R|/O.Derived.Some|.R|/O.Derived.Some.z|
public get(): R|kotlin/Boolean|
}