From 2ee483f92b3aa41d58a127a197a84782e8f0815f Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Mon, 6 Aug 2018 07:53:44 +0300 Subject: [PATCH] Do not generate bodies for functions from `Any` for light classes #KT-25894 Fixed --- .../codegen/FunctionsFromAnyGeneratorImpl.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionsFromAnyGeneratorImpl.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionsFromAnyGeneratorImpl.java index 52ea3a5b352..cb6b5950c83 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionsFromAnyGeneratorImpl.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionsFromAnyGeneratorImpl.java @@ -82,6 +82,12 @@ public class FunctionsFromAnyGeneratorImpl extends FunctionsFromAnyGenerator { } mv.visitAnnotation(Type.getDescriptor(NotNull.class), false); + + if (!generationState.getClassBuilderMode().generateBodies) { + FunctionCodegen.endVisit(mv, "toString", getDeclaration()); + return; + } + InstructionAdapter iv = new InstructionAdapter(mv); mv.visitCode(); @@ -139,6 +145,11 @@ public class FunctionsFromAnyGeneratorImpl extends FunctionsFromAnyGenerator { return; } + if (!generationState.getClassBuilderMode().generateBodies) { + FunctionCodegen.endVisit(mv, "hashCode", getDeclaration()); + return; + } + InstructionAdapter iv = new InstructionAdapter(mv); mv.visitCode(); @@ -201,6 +212,12 @@ public class FunctionsFromAnyGeneratorImpl extends FunctionsFromAnyGenerator { } mv.visitParameterAnnotation(isErasedInlineClassKind ? 1 : 0, Type.getDescriptor(Nullable.class), false); + + if (!generationState.getClassBuilderMode().generateBodies) { + FunctionCodegen.endVisit(mv, "equals", getDeclaration()); + return; + } + InstructionAdapter iv = new InstructionAdapter(mv); mv.visitCode();