K2 resolve: prefer derived class property to base class field

#KT-50082 Fixed
This commit is contained in:
Mikhail Glukhikh
2022-11-16 17:14:56 +01:00
committed by teamcity
parent 642bbd38ba
commit 59bafedd8a
15 changed files with 407 additions and 41 deletions
@@ -0,0 +1,28 @@
FILE: DerivedEnum.kt
public final enum class DerivedEnum : R|BaseJava|, R|kotlin/Enum<DerivedEnum>| {
private constructor(): R|DerivedEnum| {
super<R|kotlin/Enum<DerivedEnum>|>()
}
public final static enum entry x: R|DerivedEnum|
public final fun foo(): R|kotlin/Unit| {
R|/bar|(R|/DerivedEnum.x|)
R|/baz|(<Unresolved name: y>#)
R|/baz|(Q|BaseJava|.R|/BaseJava.y|)
}
public final static fun values(): R|kotlin/Array<DerivedEnum>| {
}
public final static fun valueOf(value: R|kotlin/String|): R|DerivedEnum| {
}
public final static val entries: R|kotlin/enums/EnumEntries<DerivedEnum>|
public get(): R|kotlin/enums/EnumEntries<DerivedEnum>|
}
public final fun bar(e: R|DerivedEnum|): R|kotlin/Unit| {
}
public final fun baz(s: R|kotlin/String|): R|kotlin/Unit| {
Q|DerivedEnum|.R|/DerivedEnum.x|
}
@@ -0,0 +1,24 @@
// FILE: BaseJava.java
public interface BaseJava {
String x = "";
String y = "";
}
// FILE: DerivedEnum.kt
enum class DerivedEnum : BaseJava {
x;
fun foo() {
bar(x)
baz(<!UNRESOLVED_REFERENCE!>y<!>)
baz(BaseJava.y)
}
}
fun bar(e: DerivedEnum) {}
fun baz(s: String) {
DerivedEnum.x
}