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:
Michael Bogdanov
2016-02-02 13:56:02 +03:00
parent 71c2a6e792
commit d1db404959
19 changed files with 200 additions and 12 deletions
@@ -0,0 +1,25 @@
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE
private class S public constructor() {
fun a() {
}
}
internal inline fun x(s: S, z: () -> Unit) {
z()
<!PRIVATE_CLASS_MEMBER_FROM_INLINE!>S<!>()
s.<!PRIVATE_CLASS_MEMBER_FROM_INLINE!>a<!>()
test()
}
private inline fun x2(s: S, z: () -> Unit) {
z()
S()
s.a()
test()
}
private fun test(): S {
return S()
}