From bd01b827469deb6eb3f82112a369ee9529e040d0 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 12 Jul 2012 20:26:44 +0200 Subject: [PATCH] don't generate redundant checkcast --- .../org/jetbrains/jet/codegen/ImplementationBodyCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index b680ca3d3c0..660f1783391 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -846,7 +846,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { String fdescriptor = functionOriginal.getDescriptor().replace("(","(" + type.getDescriptor()); Type type1 = typeMapper.mapType(((ClassDescriptor) fun.getContainingDeclaration()).getDefaultType(), MapTypeMode.TRAIT_IMPL); iv.invokestatic(type1.getInternalName(), function.getName(), fdescriptor); - if (function.getReturnType().getSort() == Type.OBJECT) { + if (function.getReturnType().getSort() == Type.OBJECT && !function.getReturnType().equals(functionOriginal.getReturnType())) { iv.checkcast(function.getReturnType()); } iv.areturn(function.getReturnType());