FIR: add proper receiver check for protected visibility #KT-48378 Fixed

This commit is contained in:
Mikhail Glukhikh
2021-08-24 12:30:53 +03:00
committed by TeamCityServer
parent 1c1b9547c1
commit 08e498f1f2
16 changed files with 140 additions and 30 deletions
@@ -0,0 +1,19 @@
FILE: User.kt
public final class User : R|BaseClass| {
public constructor(): R|test/User| {
super<R|BaseClass|>()
}
public final fun foo(tree: R|BaseClass|): R|kotlin/Unit| {
lval ui: R|ft<kotlin/String, kotlin/String?>| = R|<local>/tree|.<HIDDEN: /BaseClass.ui is invisible>#
}
public final fun bar(): R|kotlin/Unit| {
lval ui: R|ft<kotlin/String, kotlin/String?>| = this@R|test/User|.R|/BaseClass.ui|
}
public final fun baz(): R|kotlin/Unit| {
lval ui: R|ft<kotlin/String, kotlin/String?>| = this@R|test/User|.R|/BaseClass.ui|
}
}
@@ -0,0 +1,23 @@
// FILE: BaseClass.java
public class BaseClass {
protected String ui = "";
}
// FILE: User.kt
package test
class User : BaseClass() {
fun foo(tree: BaseClass) {
val ui = tree.<!INVISIBLE_REFERENCE!>ui<!>
}
fun bar() {
val ui = ui
}
fun baz() {
val ui = this.ui
}
}