Invokespecial instruction for invocation of private methods

This commit is contained in:
Natalia.Ukhorskaya
2012-06-27 17:13:35 +04:00
parent f283873988
commit 0e07358362
@@ -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);