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
@@ -6,13 +6,13 @@ package foo.bar
na == a
na == null
/*p:A(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a > b
/*p:A(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a < b
/*p:A(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a >= b
/*p:A(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a <= b
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a > b
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a < b
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a >= b
/*p:foo.bar.A(compareTo) p:kotlin(Int)*/a <= b
/*p:A(compareTo) p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a > c
/*p:A(compareTo) p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a < c
/*p:A(compareTo) p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a >= c
/*p:A(compareTo) p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a <= c
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a > c
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a < c
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a >= c
/*p:foo.bar(compareTo) p:foo.bar.A(compareTo) p:kotlin(Int)*/a <= c
}
@@ -20,11 +20,11 @@ package foo.bar
}
/*p:foo.bar*/val x1 by /*p:D1(getValue) p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(provideDelegate)*/D1()
/*p:foo.bar*/var y1 by /*p:D1(getValue) p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar(setValue) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:foo.bar.D1(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(provideDelegate) p:kotlin.reflect(setValue)*/D1()
/*p:foo.bar*/val x1 by /*p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(provideDelegate)*/D1()
/*p:foo.bar*/var y1 by /*p:foo.bar p:foo.bar(D2) p:foo.bar(provideDelegate) p:foo.bar(setValue) p:foo.bar.D1(getValue) p:foo.bar.D1(provideDelegate) p:foo.bar.D1(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(provideDelegate) p:kotlin.reflect(setValue)*/D1()
/*p:foo.bar*/val x2 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
/*p:foo.bar*/var y2 by /*p:D2(setValue) p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:foo.bar.D2(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
/*p:foo.bar*/var y2 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar(provideDelegate) p:foo.bar.D2(getValue) p:foo.bar.D2(provideDelegate) p:foo.bar.D2(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue) p:kotlin.reflect(provideDelegate)*/D2()
/*p:foo.bar*/val x3 by /*p:D3(provideDelegate) p:foo.bar p:foo.bar(getValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue)*/D3()
/*p:foo.bar*/var y3 by /*p:D2(setValue) p:D3(provideDelegate) p:foo.bar p:foo.bar(getValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:foo.bar.D3(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue)*/D3()
/*p:foo.bar*/val x3 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:kotlin(Int) p:kotlin.reflect p:kotlin.reflect(KProperty0) p:kotlin.reflect(getValue)*/D3()
/*p:foo.bar*/var y3 by /*p:foo.bar p:foo.bar(getValue) p:foo.bar.D2(setValue) p:foo.bar.D3(getValue) p:foo.bar.D3(provideDelegate) p:foo.bar.D3(setValue) p:kotlin(Int) p:kotlin(Unit) p:kotlin.reflect p:kotlin.reflect(KMutableProperty0) p:kotlin.reflect(getValue)*/D3()
@@ -3,22 +3,22 @@ package foo.bar
/*p:foo.bar*/fun testOperators(a: /*p:foo.bar*/A, b: /*p:foo.bar*/Int) {
var d = a
d/*p:A(inc) p:foo.bar(A) p:foo.bar.A(inc)*/++
/*p:A(inc) p:foo.bar(A) p:foo.bar.A(inc)*/++d
d/*p:foo.bar(A) p:foo.bar.A(inc)*/++
/*p:foo.bar(A) p:foo.bar.A(inc)*/++d
d/*p:foo.bar(A) p:foo.bar(dec) p:foo.bar.A(dec)*/--
/*p:foo.bar(A) p:foo.bar(dec) p:foo.bar.A(dec)*/--d
/*p:A(plus) p:foo.bar(A) p:foo.bar.A(plus)*/a + b
/*p:foo.bar(A) p:foo.bar.A(plus)*/a + b
/*p:foo.bar(A) p:foo.bar(minus) p:foo.bar.A(minus)*/a - b
/*p:foo.bar(not) p:foo.bar.A(not) p:kotlin(Unit)*/!a
// for val
/*p:A(timesAssign) p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign) p:kotlin(Unit)*/a *= b
/*p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign) p:kotlin(Unit)*/a *= b
/*p:foo.bar(div) p:foo.bar(divAssign) p:foo.bar.A(div) p:foo.bar.A(divAssign) p:kotlin(Unit)*/a /= b
// for var
/*p:A(plus) p:foo.bar(A) p:foo.bar(plusAssign) p:foo.bar.A(plus) p:foo.bar.A(plusAssign)*/d += b
/*p:foo.bar(A) p:foo.bar(plusAssign) p:foo.bar.A(plus) p:foo.bar.A(plusAssign)*/d += b
/*p:foo.bar(A) p:foo.bar(minus) p:foo.bar(minusAssign) p:foo.bar.A(minus) p:foo.bar.A(minusAssign)*/d -= b
/*p:A(timesAssign) p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign) p:kotlin(Unit)*/d *= b
/*p:foo.bar(times) p:foo.bar.A(times) p:foo.bar.A(timesAssign) p:kotlin(Unit)*/d *= b
/*p:foo.bar(div) p:foo.bar(divAssign) p:foo.bar.A(div) p:foo.bar.A(divAssign) p:kotlin(Unit)*/d /= b
}
@@ -1,16 +1,16 @@
package foo.bar
/*p:foo.bar*/fun testOther(a: /*p:foo.bar*/A, b: /*p:foo.bar*/Int, c: /*p:foo.bar*/Any, na: /*p:foo.bar*/A?) {
/*p:foo.bar(set) p:foo.bar.A(set) p:kotlin(Unit)*/a[1] = /*p:A(get) p:foo.bar.A(get) p:kotlin(Int)*/a[2]
/*p:foo.bar(set) p:foo.bar.A(set) p:kotlin(Unit)*/a[1] = /*p:foo.bar.A(get) p:kotlin(Int)*/a[2]
/*p:A(contains) p:foo.bar.A(contains) p:kotlin(Boolean)*/b in a
/*p:A(contains) p:Boolean(not) p:foo.bar(contains) p:foo.bar.A(contains) p:kotlin(Boolean) p:kotlin.Boolean(not)*/"s" !in a
/*p:foo.bar.A(contains) p:kotlin(Boolean)*/b in a
/*p:foo.bar(contains) p:foo.bar.A(contains) p:kotlin(Boolean) p:kotlin.Boolean(not)*/"s" !in a
/*p:A(invoke) p:foo.bar(A) p:foo.bar.A(invoke) p:kotlin(Unit)*/a()
/*p:A(invoke) p:foo.bar p:foo.bar(A) p:foo.bar(invoke) p:foo.bar.A(invoke) p:kotlin(Unit)*/a(1)
/*p:foo.bar(A) p:foo.bar.A(invoke) p:kotlin(Unit)*/a()
/*p:foo.bar p:foo.bar(A) p:foo.bar(invoke) p:foo.bar.A(invoke) p:kotlin(Unit)*/a(1)
val (/*p:A(component1) p:foo.bar(A) p:foo.bar.A(component1)*/h, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/t) = a;
val (/*p:foo.bar(A) p:foo.bar.A(component1)*/h, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/t) = a;
for ((/*p:A(component1) p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:A(iterator) p:A(next) p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next) p:kotlin(Boolean)*/a);
for ((/*p:A(component1) p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:A(iterator) p:A(next) p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar(iterator) p:foo.bar.A(hasNext) p:foo.bar.A(next) p:foo.bar.A?(iterator) p:kotlin(Boolean)*/na);
for ((/*p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next) p:kotlin(Boolean)*/a);
for ((/*p:foo.bar(A) p:foo.bar.A(component1)*/f, /*p:foo.bar(A) p:foo.bar(component2) p:foo.bar.A(component2)*/s) in /*p:foo.bar(A) p:foo.bar(hasNext) p:foo.bar(iterator) p:foo.bar.A(hasNext) p:foo.bar.A(iterator) p:foo.bar.A(next) p:foo.bar.A?(iterator) p:kotlin(Boolean)*/na);
}