K2 IC: fix member lookup recording

The previous code recorded only class name, instead of fqname,
as a scope of lookup.

#KT-65943 fixed
#KTIJ-24828 fixed
related to #KT-56197
This commit is contained in:
Ilya Chernikov
2024-02-21 16:33:18 +01:00
committed by Space Team
parent f38dc3999c
commit 5b62558798
35 changed files with 269 additions and 208 deletions
@@ -7,20 +7,20 @@ import bar.*
var b = ""
val c: /*p:bar p:foo*/String
get() = /*p:A p:foo.A p:kotlin(String)*/b
get() = /*p:foo.A p:kotlin(String)*/b
var d: /*p:bar p:foo*/String = "ddd"
get() = field
set(v) { field = v }
fun foo() {
/*p:A p:foo.A p:kotlin(Int)*/a
/*p:A p:foo.A p:kotlin(Unit)*/foo()
/*p:A(a) p:foo.A(a) p:kotlin(Int)*/this.a
/*p:A(foo) p:foo.A(foo) p:kotlin(Unit)*/this.foo()
/*p:A.Companion p:bar p:foo p:foo.A p:foo.A.Companion p:kotlin(Unit)*/baz()
/*p:A.Companion(a) p:bar p:foo p:foo.A p:foo.A(a) p:foo.A.Companion p:foo.A.Companion(a) p:kotlin(Int)*/Companion.a
/*p:A.O(v) p:bar p:foo p:foo.A p:foo.A.Companion p:foo.A.O(v) p:kotlin(String)*/O.v = "OK"
/*p:foo.A p:kotlin(Int)*/a
/*p:foo.A p:kotlin(Unit)*/foo()
/*p:foo.A(a) p:kotlin(Int)*/this.a
/*p:foo.A(foo) p:kotlin(Unit)*/this.foo()
/*p:bar p:foo p:foo.A p:foo.A.Companion p:kotlin(Unit)*/baz()
/*p:bar p:foo p:foo.A p:foo.A(a) p:foo.A.Companion p:foo.A.Companion(a) p:kotlin(Int)*/Companion.a
/*p:bar p:foo p:foo.A p:foo.A.Companion p:foo.A.O(v) p:kotlin(String)*/O.v = "OK"
}
class B {
@@ -63,9 +63,9 @@ import bar.*
val a = 1
fun foo() {
/*p:E p:foo.E p:kotlin(Int)*/a
/*p:E(a) p:bar p:foo p:foo.E p:foo.E(a) p:kotlin(Int) p:kotlin.Enum p:kotlin.Enum.Companion*/Y.a
/*p:E p:foo.E p:kotlin(Unit)*/foo()
/*p:E(foo) p:bar p:foo p:foo.E p:foo.E(foo) p:kotlin(Unit) p:kotlin.Enum p:kotlin.Enum.Companion*/X.foo()
/*p:foo.E p:kotlin(Int)*/a
/*p:bar p:foo p:foo.E p:foo.E(a) p:kotlin(Int) p:kotlin.Enum p:kotlin.Enum.Companion*/Y.a
/*p:foo.E p:kotlin(Unit)*/foo()
/*p:bar p:foo p:foo.E p:foo.E(foo) p:kotlin(Unit) p:kotlin.Enum p:kotlin.Enum.Companion*/X.foo()
}
}
@@ -3,35 +3,35 @@ package foo
import bar.*
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
/*p:A(a) p:foo p:foo.A(a) p:kotlin(Int)*/A().a
/*p:A(b) p:foo p:foo.A(b) p:kotlin(String)*/A().b
/*p:A(c) p:foo p:foo.A(c) p:kotlin(String)*/A().c
/*p:A(d) p:foo p:foo.A(d) p:kotlin(String)*/A().d = "new value"
/*p:A(foo) p:foo p:foo.A(foo) p:kotlin(Unit)*/A().foo()
/*p:A.B(a) p:foo p:foo(B) p:foo.A.B(a) p:kotlin(Int)*/A.B().a
/*p:A.B.CO(bar) p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.bar(1)
/*p:A.B.CO(bar) p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.CO.bar(1)
/*p:foo p:foo.A(a) p:kotlin(Int)*/A().a
/*p:foo p:foo.A(b) p:kotlin(String)*/A().b
/*p:foo p:foo.A(c) p:kotlin(String)*/A().c
/*p:foo p:foo.A(d) p:kotlin(String)*/A().d = "new value"
/*p:foo p:foo.A(foo) p:kotlin(Unit)*/A().foo()
/*p:foo p:foo(B) p:foo.A.B(a) p:kotlin(Int)*/A.B().a
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.bar(1)
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.CO.bar(1)
/*p:foo*/A
/*p:A.Companion(a) p:foo p:foo.A(a) p:foo.A.Companion(a) p:kotlin(Int)*/A.a
/*p:A.Companion(baz) p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.baz()
/*p:foo p:foo.A(a) p:foo.A.Companion(a) p:kotlin(Int)*/A.a
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.baz()
/*p:foo*/A.Companion
/*p:A.Companion(baz) p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.Companion.baz()
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.Companion.baz()
/*p:foo*/A.O
/*p:A.O(v) p:foo p:foo.A.O(v) p:kotlin(String)*/A.O.v = "OK"
/*p:foo p:foo.A.O(v) p:kotlin(String)*/A.O.v = "OK"
/*p:I(a) p:foo.I(a) p:kotlin(Int)*/i.a = 2
/*p:Obj(a) p:foo p:foo.Obj(a) p:kotlin(Int)*/Obj.a
/*p:Obj(foo) p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo) p:kotlin(Unit)*/Obj.foo()
/*p:foo.I(a) p:kotlin(Int)*/i.a = 2
/*p:foo p:foo.Obj(a) p:kotlin(Int)*/Obj.a
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo) p:kotlin(Unit)*/Obj.foo()
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
/*p:I(a) p:foo.I(a) p:kotlin(Int)*/ii.a
/*p:I(foo) p:foo.I(foo) p:kotlin(Unit)*/ii.foo()
/*p:Obj(b) p:foo p:foo.Obj(b) p:kotlin(Int)*/Obj.b
val iii = /*p:Obj(bar) p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
/*p:I(foo) p:foo.I(foo) p:kotlin(Unit)*/iii.foo()
/*p:foo.I(a) p:kotlin(Int)*/ii.a
/*p:foo.I(foo) p:kotlin(Unit)*/ii.foo()
/*p:foo p:foo.Obj(b) p:kotlin(Int)*/Obj.b
val iii = /*p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
/*p:foo.I(foo) p:kotlin(Unit)*/iii.foo()
/*p:bar p:foo*/E.X
/*p:E(a) p:bar p:foo p:foo.E(a) p:kotlin(Int)*/E.X.a
/*p:E(foo) p:bar p:foo p:foo.E(foo) p:kotlin(Unit)*/E.Y.foo()
/*p:bar p:foo p:foo.E(a) p:kotlin(Int)*/E.X.a
/*p:bar p:foo p:foo.E(foo) p:kotlin(Unit)*/E.Y.foo()
/*p:bar p:foo p:kotlin(Array)*/E.values()
/*p:bar p:foo*/E.valueOf("")
}
@@ -3,37 +3,37 @@ package foo
import bar.*
/*p:foo*/fun usages(i: /*p:bar p:foo*/I) {
/*p:A(a) p:foo p:foo.A(a) p:kotlin(Int)*/A().a
/*p:A(b) p:foo p:foo.A(b) p:kotlin(String)*/A().b
/*p:A(c) p:foo p:foo.A(c) p:kotlin(String)*/A().c
/*p:A(d) p:foo p:foo.A(d) p:kotlin(String)*/A().d = "new value"
/*p:A(foo) p:foo p:foo.A(foo) p:kotlin(Unit)*/A().foo()
/*p:A.B(a) p:foo p:foo(B) p:foo.A.B(a) p:kotlin(Int)*/A.B().a
/*p:A.B.CO(bar) p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.bar(1)
/*p:A.B.CO(bar) p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.CO.bar(1)
/*p:foo p:foo.A(a) p:kotlin(Int)*/A().a
/*p:foo p:foo.A(b) p:kotlin(String)*/A().b
/*p:foo p:foo.A(c) p:kotlin(String)*/A().c
/*p:foo p:foo.A(d) p:kotlin(String)*/A().d = "new value"
/*p:foo p:foo.A(foo) p:kotlin(Unit)*/A().foo()
/*p:foo p:foo(B) p:foo.A.B(a) p:kotlin(Int)*/A.B().a
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.bar(1)
/*p:bar(bar) p:foo p:foo(bar) p:foo.A.B.CO(bar) p:kotlin(Unit)*/A.B.CO.bar(1)
/*p:foo*/A
/*p:A.Companion(a) p:foo p:foo.A(a) p:foo.A.Companion(a) p:kotlin(Int)*/A.a
/*p:A.Companion(baz) p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.baz()
/*p:foo p:foo.A(a) p:foo.A.Companion(a) p:kotlin(Int)*/A.a
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.baz()
/*p:foo*/A.Companion
/*p:A.Companion(baz) p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.Companion.baz()
/*p:bar(baz) p:foo p:foo(baz) p:foo.A(baz) p:foo.A.Companion(baz) p:kotlin(Unit)*/A.Companion.baz()
/*p:foo*/A.O
/*p:A.O(v) p:foo p:foo.A.O(v) p:kotlin(String)*/A.O.v = "OK"
/*p:foo p:foo.A.O(v) p:kotlin(String)*/A.O.v = "OK"
/*p:bar(vala) p:foo p:foo(vala) p:foo.A(vala) p:foo.A.Companion(vala)*/A.vala
/*p:bar(vara) p:foo p:foo(vara) p:foo.A(vara) p:foo.A.Companion(vara)*/A.vara()
/*p:I(a) p:foo.I(a) p:kotlin(Int)*/i.a = 2
/*p:Obj(a) p:foo p:foo.Obj(a) p:kotlin(Int)*/Obj.a
/*p:Obj(foo) p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo) p:kotlin(Unit)*/Obj.foo()
/*p:foo.I(a) p:kotlin(Int)*/i.a = 2
/*p:foo p:foo.Obj(a) p:kotlin(Int)*/Obj.a
/*p:bar(foo) p:foo p:foo(foo) p:foo.Obj(foo) p:kotlin(Unit)*/Obj.foo()
var ii: /*p:bar p:foo*/I = /*p:foo*/Obj
/*p:I(a) p:foo.I(a) p:kotlin(Int)*/ii.a
/*p:I(foo) p:foo.I(foo) p:kotlin(Unit)*/ii.foo()
/*p:Obj(b) p:foo p:foo.Obj(b) p:kotlin(Int)*/Obj.b
val iii = /*p:Obj(bar) p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
/*p:I(foo) p:foo.I(foo) p:kotlin(Unit)*/iii.foo()
/*p:foo.I(a) p:kotlin(Int)*/ii.a
/*p:foo.I(foo) p:kotlin(Unit)*/ii.foo()
/*p:foo p:foo.Obj(b) p:kotlin(Int)*/Obj.b
val iii = /*p:bar(bar) p:foo p:foo(I) p:foo(bar) p:foo.Obj(bar)*/Obj.bar()
/*p:foo.I(foo) p:kotlin(Unit)*/iii.foo()
/*p:bar p:foo*/E.X
/*p:E(a) p:bar p:foo p:foo.E(a) p:kotlin(Int)*/E.X.a
/*p:E(foo) p:bar p:foo p:foo.E(foo) p:kotlin(Unit)*/E.Y.foo()
/*p:bar p:foo p:foo.E(a) p:kotlin(Int)*/E.X.a
/*p:bar p:foo p:foo.E(foo) p:kotlin(Unit)*/E.Y.foo()
/*p:bar p:foo p:kotlin(Array)*/E.values()
/*p:bar p:foo*/E.valueOf("")
/*p:bar p:bar(foo) p:foo p:foo(foo)*/E.foo