diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java index 18b50822bca..a48aaa08d37 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java @@ -3156,7 +3156,7 @@ public class ExpressionCodegen extends KtVisitor impleme private StackValue generateAugmentedAssignment(KtBinaryExpression expression) { ResolvedCall resolvedCall = CallUtilKt.getResolvedCallWithAssert(expression, bindingContext); - FunctionDescriptor descriptor = (FunctionDescriptor) resolvedCall.getResultingDescriptor(); + FunctionDescriptor descriptor = accessibleFunctionDescriptor(resolvedCall); Callable callable = resolveToCallable(descriptor, false, resolvedCall); KtExpression lhs = expression.getLeft(); Type lhsType = expressionType(lhs); diff --git a/compiler/testData/codegen/box/private/kt9855.kt b/compiler/testData/codegen/box/private/kt9855.kt new file mode 100644 index 00000000000..03e1658e1a5 --- /dev/null +++ b/compiler/testData/codegen/box/private/kt9855.kt @@ -0,0 +1,15 @@ +class MyString(var content : String) + +object Greeter { + fun sayHello(name : String): String { + var result = MyString(name) + result += "K" + return result.content + } +} + +private operator fun MyString.plus(suffix: String) : MyString = MyString("${this.content}$suffix") + +fun box(): String { + return Greeter.sayHello("O") +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxCodegenTestGenerated.java index 567a8c01032..f080547b390 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -6435,6 +6435,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/private/arrayConvention.kt"); doTest(fileName); } + + @TestMetadata("kt9855.kt") + public void testKt9855() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/private/kt9855.kt"); + doTest(fileName); + } } @TestMetadata("compiler/testData/codegen/box/privateConstructors")