make FunctionCodegen skip method bodies we don't need, which avoids problems with inlining methods inside methods we don't need

KT-33604
This commit is contained in:
Kevin Bierhoff
2019-10-16 13:23:57 -07:00
committed by Alexey Tsvetkov
parent b10f47b50e
commit 0285b26e40
5 changed files with 25 additions and 17 deletions
@@ -452,7 +452,9 @@ public class FunctionCodegen {
boolean staticInCompanionObject
) {
OwnerKind contextKind = methodContext.getContextKind();
if (!state.getClassBuilderMode().generateBodies || isAbstractMethod(functionDescriptor, contextKind)) {
if (!state.getClassBuilderMode().generateBodies ||
isAbstractMethod(functionDescriptor, contextKind) ||
(state.getClassBuilderMode() == ClassBuilderMode.ABI && !InlineUtil.isInlineOrContainingInline(origin.getDescriptor()))) {
generateLocalVariableTable(
mv,
jvmSignature,