From e7a1b2ea7220fe59095d732c8b8595b3802b2a16 Mon Sep 17 00:00:00 2001 From: Alex Tkachman Date: Sat, 28 Jan 2012 02:47:04 +0300 Subject: [PATCH] fix for broken tests --- .../jetbrains/jet/codegen/ImplementationBodyCodegen.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 87b337ef923..a7f0f9e682a 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -308,7 +308,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { //noinspection AssignmentToForLoopParameter reg += argType.getSize(); } - if(original.getVisibility() == Visibility.PRIVATE) + if(original.getVisibility() == Visibility.PRIVATE && original.getModality() == Modality.FINAL) iv.putfield(typeMapper.getOwner(original, OwnerKind.IMPLEMENTATION), original.getName(), originalMethod.getArgumentTypes()[0].getDescriptor()); else iv.invokespecial(typeMapper.getOwner(original, OwnerKind.IMPLEMENTATION), originalMethod.getName(), originalMethod.getDescriptor()); @@ -879,7 +879,9 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { if(propertyDescriptor.getOutType().isNullable()) type = JetTypeMapper.boxType(type); codegen.gen(initializer, type); - codegen.intermediateValueForProperty(propertyDescriptor, false, null).store(iv); + // @todo write directly to the field. Fix test excloset.jet::test6 + String owner = typeMapper.getOwner(propertyDescriptor, OwnerKind.IMPLEMENTATION); + StackValue.property(propertyDescriptor.getName(), owner, typeMapper.mapType(propertyDescriptor.getOutType()), false, false, false, null, null).store(iv); } }