Error diagnostic for private classes in inline functions; Fix for KT-7545: IllegalAccessError when accessing private nested class through inlined function from different package
#KT-7545 Fixed
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
package test
|
||||
|
||||
private class S public constructor() {
|
||||
class Z {
|
||||
fun a(): String {
|
||||
return "K"
|
||||
}
|
||||
}
|
||||
}
|
||||
// This function exposes S.Z which is a class nested into a private class S (package-private in the byte code)
|
||||
// It can be accessed outside the `test` package now that S.Z. is public in the byte code, but it may be changed later
|
||||
internal inline fun call(s: () -> String): String {
|
||||
return s() + test().a()
|
||||
}
|
||||
|
||||
private fun test(): S.Z {
|
||||
return S.Z()
|
||||
}
|
||||
Reference in New Issue
Block a user