Fixed bug in fix for KT 3492: Bug in bytecode generation for labeled super call from inner class & Property generation refactoring
This commit is contained in:
@@ -1734,6 +1734,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
JvmClassName owner;
|
||||
CallableMethod callableMethod = callableGetter != null ? callableGetter : callableSetter;
|
||||
|
||||
propertyDescriptor = unwrapFakeOverride(propertyDescriptor);
|
||||
if (callableMethod == null) {
|
||||
owner = typeMapper.getOwner(propertyDescriptor, contextKind(), isInsideModule);
|
||||
}
|
||||
@@ -1741,7 +1742,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
owner = callableMethod.getOwner();
|
||||
}
|
||||
|
||||
return StackValue.property(propertyDescriptor, owner, asmType(unwrapFakeOverride(propertyDescriptor).getOriginal().getType()),
|
||||
return StackValue.property(propertyDescriptor, owner, asmType(propertyDescriptor.getOriginal().getType()),
|
||||
isStatic, callableGetter, callableSetter, state);
|
||||
}
|
||||
|
||||
|
||||
@@ -889,7 +889,7 @@ public abstract class StackValue {
|
||||
}
|
||||
else {
|
||||
Method method = getter.getSignature().getAsmMethod();
|
||||
v.visitMethodInsn(getter.getInvokeOpcode(), methodOwner.getInternalName(), method.getName(), method.getDescriptor());
|
||||
v.visitMethodInsn(getter.getInvokeOpcode(), getter.getOwner().getInternalName(), method.getName(), method.getDescriptor());
|
||||
}
|
||||
coerceTo(type, v);
|
||||
}
|
||||
@@ -902,7 +902,7 @@ public abstract class StackValue {
|
||||
this.type.getDescriptor()); }
|
||||
else {
|
||||
Method method = setter.getSignature().getAsmMethod();
|
||||
v.visitMethodInsn(setter.getInvokeOpcode(), methodOwner.getInternalName(), method.getName(), method.getDescriptor());
|
||||
v.visitMethodInsn(setter.getInvokeOpcode(), setter.getOwner().getInternalName(), method.getName(), method.getDescriptor());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user