Fix for KT-9855: java.lang.IllegalAccessError when using private package level operator method
#KT-9855 Fixed
This commit is contained in:
@@ -3156,7 +3156,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> 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);
|
||||
|
||||
+15
@@ -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")
|
||||
}
|
||||
+6
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user