diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/InterfaceImplBodyCodegen.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/InterfaceImplBodyCodegen.kt index 3b96ea55b0f..d9624ffd991 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/InterfaceImplBodyCodegen.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/InterfaceImplBodyCodegen.kt @@ -72,21 +72,17 @@ class InterfaceImplBodyCodegen( // If implementation is a default interface method (JVM 8 only) if (implementation.isDefinitelyNotDefaultImplsMethod()) continue - // We create a copy of the function with kind = DECLARATION so that FunctionCodegen will generate its body - val copy = memberDescriptor.copy(memberDescriptor.containingDeclaration, Modality.OPEN, memberDescriptor.visibility, - CallableMemberDescriptor.Kind.DECLARATION, true) - if (memberDescriptor is FunctionDescriptor) { - generateDelegationToSuperDefaultImpls(copy as FunctionDescriptor, implementation as FunctionDescriptor) + generateDelegationToSuperDefaultImpls(memberDescriptor, implementation as FunctionDescriptor) } else if (memberDescriptor is PropertyDescriptor) { implementation as PropertyDescriptor - val getter = (copy as PropertyDescriptor).getter + val getter = memberDescriptor.getter val implGetter = implementation.getter if (getter != null && implGetter != null) { generateDelegationToSuperDefaultImpls(getter, implGetter) } - val setter = copy.setter + val setter = memberDescriptor.setter val implSetter = implementation.setter if (setter != null && implSetter != null) { generateDelegationToSuperDefaultImpls(setter, implSetter)