From d3f906a1a20cc8566a7d51c7b15a6a3a080017ba Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Tue, 19 Nov 2019 20:39:09 +0300 Subject: [PATCH] Minor: extract method & reformat to improve readability --- .../jetbrains/kotlin/codegen/FunctionCodegen.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java index 4f434fec3d8..1bd6dba4a4a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java @@ -452,9 +452,10 @@ public class FunctionCodegen { boolean staticInCompanionObject ) { OwnerKind contextKind = methodContext.getContextKind(); - if (!state.getClassBuilderMode().generateBodies || - isAbstractMethod(functionDescriptor, contextKind) || - (state.getClassBuilderMode() == ClassBuilderMode.ABI && origin.getDescriptor() != null && !InlineUtil.isInlineOrContainingInline(origin.getDescriptor()))) { + if (!state.getClassBuilderMode().generateBodies + || isAbstractMethod(functionDescriptor, contextKind) + || shouldSkipMethodBodyInAbiMode(state.getClassBuilderMode(), origin) + ) { generateLocalVariableTable( mv, jvmSignature, @@ -488,6 +489,13 @@ public class FunctionCodegen { endVisit(mv, null, origin.getElement()); } + private static boolean shouldSkipMethodBodyInAbiMode(@NotNull ClassBuilderMode classBuilderMode, @NotNull JvmDeclarationOrigin origin) { + if (classBuilderMode != ClassBuilderMode.ABI) return false; + + DeclarationDescriptor descriptor = origin.getDescriptor(); + return descriptor != null && !InlineUtil.isInlineOrContainingInline(descriptor); + } + public static void generateParameterAnnotations( @NotNull FunctionDescriptor functionDescriptor, @NotNull MethodVisitor mv,