K2 UAST: lookup properties in the containing class, not companion object

...because properties in the companion object are materialized
in the containing class.

^KTIJ-27684 fixed
This commit is contained in:
Jinseong Jeon
2023-11-19 00:28:05 -08:00
committed by teamcity
parent 10c9b81c79
commit e5095a60ba
17 changed files with 319 additions and 10 deletions
@@ -0,0 +1,35 @@
// MODULE: lib
// FILE: some/Dependency.kt
package some
interface Flag<T>
class Dependency {
companion object {
@JvmField val JVM_FIELD_FLAG: Flag<*> = TODO()
@JvmStatic val JVM_STATIC_FLAG: Flag<*> = TODO()
val VAL_FLAG: Flag<*> = TODO()
var varFlag: Flag<*> = TODO()
}
}
val DEPENDENCY_TOP_LEVEL_VAL_FLAG: Flag<*> = TODO()
// MODULE: app
// DEPENDENCY: lib Binary
// FILE: main.kt
package some
private fun consumeFlag(p: Flag<*>) {
println(p)
}
fun test() {
consumeFlag(Dependency.JVM_FIELD_FLAG)
consumeFlag(Dependency.JVM_STATIC_FLAG)
consumeFlag(Dependency.VAL_<caret>FLAG)
consumeFlag(Dependency.varFlag)
consumeFlag(DEPENDENCY_TOP_LEVEL_VAL_FLAG)
}
@@ -0,0 +1,2 @@
Resolved to:
PsiField:VAL_FLAG
@@ -0,0 +1,35 @@
// MODULE: lib
// FILE: some/Dependency.kt
package some
interface Flag<T>
class Dependency {
companion object {
@JvmField val JVM_FIELD_FLAG: Flag<*> = TODO()
@JvmStatic val JVM_STATIC_FLAG: Flag<*> = TODO()
val VAL_FLAG: Flag<*> = TODO()
var varFlag: Flag<*> = TODO()
}
}
val DEPENDENCY_TOP_LEVEL_VAL_FLAG: Flag<*> = TODO()
// MODULE: app
// DEPENDENCY: lib Binary
// FILE: main.kt
package some
private fun consumeFlag(p: Flag<*>) {
println(p)
}
fun test() {
consumeFlag(Dependency.JVM_<caret>FIELD_FLAG)
consumeFlag(Dependency.JVM_STATIC_FLAG)
consumeFlag(Dependency.VAL_FLAG)
consumeFlag(Dependency.varFlag)
consumeFlag(DEPENDENCY_TOP_LEVEL_VAL_FLAG)
}
@@ -0,0 +1,2 @@
Resolved to:
PsiField:JVM_FIELD_FLAG
@@ -0,0 +1,35 @@
// MODULE: lib
// FILE: some/Dependency.kt
package some
interface Flag<T>
class Dependency {
companion object {
@JvmField val JVM_FIELD_FLAG: Flag<*> = TODO()
@JvmStatic val JVM_STATIC_FLAG: Flag<*> = TODO()
val VAL_FLAG: Flag<*> = TODO()
var varFlag: Flag<*> = TODO()
}
}
val DEPENDENCY_TOP_LEVEL_VAL_FLAG: Flag<*> = TODO()
// MODULE: app
// DEPENDENCY: lib Binary
// FILE: main.kt
package some
private fun consumeFlag(p: Flag<*>) {
println(p)
}
fun test() {
consumeFlag(Dependency.JVM_FIELD_FLAG)
consumeFlag(Dependency.JVM_<caret>STATIC_FLAG)
consumeFlag(Dependency.VAL_FLAG)
consumeFlag(Dependency.varFlag)
consumeFlag(DEPENDENCY_TOP_LEVEL_VAL_FLAG)
}
@@ -0,0 +1,2 @@
Resolved to:
PsiField:JVM_STATIC_FLAG
@@ -0,0 +1,35 @@
// MODULE: lib
// FILE: some/Dependency.kt
package some
interface Flag<T>
class Dependency {
companion object Named {
@JvmField val JVM_FIELD_FLAG: Flag<*> = TODO()
@JvmStatic val JVM_STATIC_FLAG: Flag<*> = TODO()
val VAL_FLAG: Flag<*> = TODO()
var varFlag: Flag<*> = TODO()
}
}
val DEPENDENCY_TOP_LEVEL_VAL_FLAG: Flag<*> = TODO()
// MODULE: app
// DEPENDENCY: lib Binary
// FILE: main.kt
package some
private fun consumeFlag(p: Flag<*>) {
println(p)
}
fun test() {
consumeFlag(Dependency.JVM_FIELD_FLAG)
consumeFlag(Dependency.JVM_STATIC_FLAG)
consumeFlag(Dependency.VAL_<caret>FLAG)
consumeFlag(Dependency.varFlag)
consumeFlag(DEPENDENCY_TOP_LEVEL_VAL_FLAG)
}
@@ -0,0 +1,2 @@
Resolved to:
PsiField:VAL_FLAG
@@ -0,0 +1,35 @@
// MODULE: lib
// FILE: some/Dependency.kt
package some
interface Flag<T>
class Dependency {
companion object Named {
@JvmField val JVM_FIELD_FLAG: Flag<*> = TODO()
@JvmStatic val JVM_STATIC_FLAG: Flag<*> = TODO()
val VAL_FLAG: Flag<*> = TODO()
var varFlag: Flag<*> = TODO()
}
}
val DEPENDENCY_TOP_LEVEL_VAL_FLAG: Flag<*> = TODO()
// MODULE: app
// DEPENDENCY: lib Binary
// FILE: main.kt
package some
private fun consumeFlag(p: Flag<*>) {
println(p)
}
fun test() {
consumeFlag(Dependency.JVM_<caret>FIELD_FLAG)
consumeFlag(Dependency.JVM_STATIC_FLAG)
consumeFlag(Dependency.VAL_FLAG)
consumeFlag(Dependency.varFlag)
consumeFlag(DEPENDENCY_TOP_LEVEL_VAL_FLAG)
}
@@ -0,0 +1,2 @@
Resolved to:
PsiField:JVM_FIELD_FLAG
@@ -0,0 +1,35 @@
// MODULE: lib
// FILE: some/Dependency.kt
package some
interface Flag<T>
class Dependency {
companion object Named {
@JvmField val JVM_FIELD_FLAG: Flag<*> = TODO()
@JvmStatic val JVM_STATIC_FLAG: Flag<*> = TODO()
val VAL_FLAG: Flag<*> = TODO()
var varFlag: Flag<*> = TODO()
}
}
val DEPENDENCY_TOP_LEVEL_VAL_FLAG: Flag<*> = TODO()
// MODULE: app
// DEPENDENCY: lib Binary
// FILE: main.kt
package some
private fun consumeFlag(p: Flag<*>) {
println(p)
}
fun test() {
consumeFlag(Dependency.JVM_FIELD_FLAG)
consumeFlag(Dependency.JVM_<caret>STATIC_FLAG)
consumeFlag(Dependency.VAL_FLAG)
consumeFlag(Dependency.varFlag)
consumeFlag(DEPENDENCY_TOP_LEVEL_VAL_FLAG)
}
@@ -0,0 +1,2 @@
Resolved to:
PsiField:JVM_STATIC_FLAG
@@ -0,0 +1,26 @@
// MODULE: lib
// FILE: some/DependencyObject.kt
package some
interface Flag<T>
object DependencyObject {
val VAL_FLAG: Flag<*> = TODO()
var varFlag: Flag<*> = TODO()
}
// MODULE: app
// DEPENDENCY: lib Binary
// FILE: main.kt
package some
private fun consumeFlag(p: Flag<*>) {
println(p)
}
fun test() {
consumeFlag(DependencyObject.VAL_FLAG)
consumeFlag(DependencyObject.var<caret>Flag)
}
@@ -0,0 +1,2 @@
Resolved to:
PsiField:varFlag