From 0e073583621945b9216c436d07129a01696d3a6b Mon Sep 17 00:00:00 2001 From: "Natalia.Ukhorskaya" Date: Wed, 27 Jun 2012 17:13:35 +0400 Subject: [PATCH] Invokespecial instruction for invocation of private methods --- .../backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java index 9598653883b..405a2db49da 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -653,7 +653,7 @@ public class JetTypeMapper { invokeOpcode = isInterface ? (superCall ? Opcodes.INVOKESTATIC : Opcodes.INVOKEINTERFACE) - : (superCall ? Opcodes.INVOKESPECIAL : Opcodes.INVOKEVIRTUAL); + : (superCall || functionDescriptor.getVisibility() == Visibilities.PRIVATE ? Opcodes.INVOKESPECIAL : Opcodes.INVOKEVIRTUAL); if (isInterface && superCall) { descriptor = mapSignature(functionDescriptor, false, OwnerKind.TRAIT_IMPL); owner = JvmClassName.byInternalName(owner.getInternalName() + JvmAbi.TRAIT_IMPL_SUFFIX);