diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java index 811160c7cd4..b8cbed99545 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java @@ -2051,7 +2051,8 @@ public class ExpressionCodegen extends KtVisitor impleme isDefaultAccessor(propertyDescriptor.getGetter()) && isDefaultAccessor(propertyDescriptor.getSetter())))) { fieldAccessorKind = JvmCodegenUtil.isDebuggerContext(context) ? AccessorKind.NORMAL : AccessorKind.IN_CLASS_COMPANION; } - else if ((syntheticBackingField && + else //noinspection ConstantConditions + if ((syntheticBackingField && context.getFirstCrossInlineOrNonInlineContext().getParentContext().getContextDescriptor() != containingDeclaration)) { fieldAccessorKind = AccessorKind.FIELD_FROM_LOCAL; } @@ -2077,17 +2078,16 @@ public class ExpressionCodegen extends KtVisitor impleme boolean skipPropertyAccessors; PropertyDescriptor originalPropertyDescriptor = DescriptorUtils.unwrapFakeOverride(propertyDescriptor); - boolean directAccessToGetter = couldUseDirectAccessToProperty(propertyDescriptor, true, isDelegatedProperty, context, - state.getShouldInlineConstVals()); - boolean directAccessToSetter = couldUseDirectAccessToProperty(propertyDescriptor, false, isDelegatedProperty, context, - state.getShouldInlineConstVals()); + boolean directAccessToGetter = + couldUseDirectAccessToProperty(propertyDescriptor, true, isDelegatedProperty, context, state.getShouldInlineConstVals()); + boolean directAccessToSetter = + couldUseDirectAccessToProperty(propertyDescriptor, false, isDelegatedProperty, context, state.getShouldInlineConstVals()); if (fieldAccessorKind == AccessorKind.LATEINIT_INTRINSIC) { skipPropertyAccessors = !isPrivateProperty || context.getClassOrPackageParentContext() == backingFieldContext; if (!skipPropertyAccessors) { - propertyDescriptor = (AccessorForPropertyBackingField) - backingFieldContext.getAccessor(propertyDescriptor, fieldAccessorKind, delegateType, superCallTarget); + propertyDescriptor = backingFieldContext.getAccessor(propertyDescriptor, fieldAccessorKind, delegateType, superCallTarget); } ownerDescriptor = propertyDescriptor; } @@ -2097,10 +2097,7 @@ public class ExpressionCodegen extends KtVisitor impleme (directAccessToGetter && (!propertyDescriptor.isVar() || directAccessToSetter)); if (!skipPropertyAccessors) { - //noinspection ConstantConditions - propertyDescriptor = (PropertyDescriptor) backingFieldContext.getAccessor( - propertyDescriptor, fieldAccessorKind, delegateType, superCallTarget - ); + propertyDescriptor = backingFieldContext.getAccessor(propertyDescriptor, fieldAccessorKind, delegateType, superCallTarget); assert propertyDescriptor instanceof AccessorForPropertyBackingField : "Unexpected accessor descriptor: " + propertyDescriptor; ownerDescriptor = propertyDescriptor;