Track lookups in JavaSyntheticPropertiesScope
Original commit: a5708c9c0d
This commit is contained in:
@@ -65,4 +65,10 @@ public class LookupTrackerTestGenerated extends AbstractLookupTrackerTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("syntheticProperties")
|
||||
public void testSyntheticProperties() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/lookupTracker/syntheticProperties/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ import bar.*
|
||||
/*c:foo.A*/foo()
|
||||
this./*c:foo.A*/a
|
||||
this./*c:foo.A*/foo()
|
||||
/*c:foo.A c:foo.A.Companion p:foo p:bar*/baz()
|
||||
/*c:foo.A c:foo.A.Companion p:foo p:bar c:foo.A(getBaz) c:foo.A(getBAZ)*/baz()
|
||||
/*c:foo.A c:foo.A.Companion p:foo p:bar*/Companion./*c:foo.A.Companion*/a
|
||||
/*c:foo.A c:foo.A.Companion p:foo p:bar*/O./*c:foo.A.O*/v = "OK"
|
||||
}
|
||||
|
||||
@@ -6,13 +6,13 @@ package foo.bar
|
||||
na /*c:foo.bar.A(equals)*/== a
|
||||
na /*c:foo.bar.A(equals)*/== null
|
||||
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo)*/> b
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo)*/< b
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo)*/>= b
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo)*/<= b
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo) c:foo.bar.A(getCompareTo) c:foo.bar.A(getCOMPARETo)*/> b
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo) c:foo.bar.A(getCompareTo) c:foo.bar.A(getCOMPARETo)*/< b
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo) c:foo.bar.A(getCompareTo) c:foo.bar.A(getCOMPARETo)*/>= b
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo) c:foo.bar.A(getCompareTo) c:foo.bar.A(getCOMPARETo)*/<= b
|
||||
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo)*/> c
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo)*/< c
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo)*/>= c
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo)*/<= c
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo) c:foo.bar.A(getCompareTo) c:foo.bar.A(getCOMPARETo)*/> c
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo) c:foo.bar.A(getCompareTo) c:foo.bar.A(getCOMPARETo)*/< c
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo) c:foo.bar.A(getCompareTo) c:foo.bar.A(getCOMPARETo)*/>= c
|
||||
a /*c:foo.bar.A(compareTo) p:foo.bar(compareTo) c:foo.bar.A(getCompareTo) c:foo.bar.A(getCOMPARETo)*/<= c
|
||||
}
|
||||
|
||||
@@ -20,11 +20,11 @@ import kotlin.reflect.KProperty
|
||||
}
|
||||
|
||||
|
||||
/*p:foo.bar*/val x1 by /*p:foo.bar c:foo.bar.D1(getValue) p:foo.bar(getValue) c:foo.bar.D1(get) c:foo.bar.D1(propertyDelegated) p:foo.bar(propertyDelegated)*/D1()
|
||||
/*p:foo.bar*/var y1 by /*p:foo.bar c:foo.bar.D1(getValue) p:foo.bar(getValue) c:foo.bar.D1(get) c:foo.bar.D1(setValue) p:foo.bar(setValue) c:foo.bar.D1(set) p:foo.bar(set) c:foo.bar.D1(propertyDelegated) p:foo.bar(propertyDelegated)*/D1()
|
||||
/*p:foo.bar*/val x1 by /*p:foo.bar c:foo.bar.D1(getValue) p:foo.bar(getValue) c:foo.bar.D1(getGetValue) c:foo.bar.D1(getGETValue) c:foo.bar.D1(get) c:foo.bar.D1(propertyDelegated) p:foo.bar(propertyDelegated) c:foo.bar.D1(getPropertyDelegated) c:foo.bar.D1(getPROPERTYDelegated)*/D1()
|
||||
/*p:foo.bar*/var y1 by /*p:foo.bar c:foo.bar.D1(getValue) p:foo.bar(getValue) c:foo.bar.D1(getGetValue) c:foo.bar.D1(getGETValue) c:foo.bar.D1(get) c:foo.bar.D1(setValue) p:foo.bar(setValue) c:foo.bar.D1(getSetValue) c:foo.bar.D1(getSETValue) c:foo.bar.D1(set) p:foo.bar(set) c:foo.bar.D1(propertyDelegated) p:foo.bar(propertyDelegated) c:foo.bar.D1(getPropertyDelegated) c:foo.bar.D1(getPROPERTYDelegated)*/D1()
|
||||
|
||||
/*p:foo.bar*/val x2 by /*p:foo.bar c:foo.bar.D2(getValue) p:foo.bar(getValue) c:foo.bar.D2(get) p:foo.bar(get) c:foo.bar.D2(propertyDelegated) p:foo.bar(propertyDelegated)*/D2()
|
||||
/*p:foo.bar*/var y2 by /*p:foo.bar c:foo.bar.D2(getValue) p:foo.bar(getValue) c:foo.bar.D2(get) p:foo.bar(get) c:foo.bar.D2(setValue) p:foo.bar(setValue) c:foo.bar.D2(set) c:foo.bar.D2(propertyDelegated) p:foo.bar(propertyDelegated)*/D2()
|
||||
/*p:foo.bar*/val x2 by /*p:foo.bar c:foo.bar.D2(getValue) p:foo.bar(getValue) c:foo.bar.D2(getGetValue) c:foo.bar.D2(getGETValue) c:foo.bar.D2(get) p:foo.bar(get) c:foo.bar.D2(propertyDelegated) p:foo.bar(propertyDelegated)*/D2()
|
||||
/*p:foo.bar*/var y2 by /*p:foo.bar c:foo.bar.D2(getValue) p:foo.bar(getValue) c:foo.bar.D2(getGetValue) c:foo.bar.D2(getGETValue) c:foo.bar.D2(get) p:foo.bar(get) c:foo.bar.D2(setValue) p:foo.bar(setValue) c:foo.bar.D2(getSetValue) c:foo.bar.D2(getSETValue) c:foo.bar.D2(set) c:foo.bar.D2(propertyDelegated) p:foo.bar(propertyDelegated)*/D2()
|
||||
|
||||
/*p:foo.bar*/val x3 by /*p:foo.bar c:foo.bar.D3(getValue) p:foo.bar(getValue) c:foo.bar.D3(get) p:foo.bar(get) c:foo.bar.D3(propertyDelegated)*/D3()
|
||||
/*p:foo.bar*/var y3 by /*p:foo.bar c:foo.bar.D3(getValue) p:foo.bar(getValue) c:foo.bar.D3(get) p:foo.bar(get) c:foo.bar.D3(setValue) p:foo.bar(setValue) c:foo.bar.D3(set) c:foo.bar.D3(propertyDelegated)*/D3()
|
||||
/*p:foo.bar*/val x3 by /*p:foo.bar c:foo.bar.D3(getValue) p:foo.bar(getValue) c:foo.bar.D3(getGetValue) c:foo.bar.D3(getGETValue) c:foo.bar.D3(get) p:foo.bar(get) c:foo.bar.D3(propertyDelegated)*/D3()
|
||||
/*p:foo.bar*/var y3 by /*p:foo.bar c:foo.bar.D3(getValue) p:foo.bar(getValue) c:foo.bar.D3(getGetValue) c:foo.bar.D3(getGETValue) c:foo.bar.D3(get) p:foo.bar(get) c:foo.bar.D3(setValue) p:foo.bar(setValue) c:foo.bar.D3(getSetValue) c:foo.bar.D3(getSETValue) c:foo.bar.D3(set) c:foo.bar.D3(propertyDelegated)*/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/*c:foo.bar.A(inc) p:foo.bar(inc)*/++
|
||||
/*c:foo.bar.A(inc) p:foo.bar(inc)*/++d
|
||||
d/*c:foo.bar.A(dec) p:foo.bar(dec)*/--
|
||||
/*c:foo.bar.A(dec) p:foo.bar(dec)*/--d
|
||||
d/*c:foo.bar.A(inc) p:foo.bar(inc) c:foo.bar.A(getInc) c:foo.bar.A(getINC)*/++
|
||||
/*c:foo.bar.A(inc) p:foo.bar(inc) c:foo.bar.A(getInc) c:foo.bar.A(getINC)*/++d
|
||||
d/*c:foo.bar.A(dec) p:foo.bar(dec) c:foo.bar.A(getDec) c:foo.bar.A(getDEC)*/--
|
||||
/*c:foo.bar.A(dec) p:foo.bar(dec) c:foo.bar.A(getDec) c:foo.bar.A(getDEC)*/--d
|
||||
|
||||
a /*c:foo.bar.A(plus) p:foo.bar(plus)*/+ b
|
||||
a /*c:foo.bar.A(minus) p:foo.bar(minus)*/- b
|
||||
/*c:foo.bar.A(not) p:foo.bar(not)*/!a
|
||||
a /*c:foo.bar.A(plus) p:foo.bar(plus) c:foo.bar.A(getPlus) c:foo.bar.A(getPLUS)*/+ b
|
||||
a /*c:foo.bar.A(minus) p:foo.bar(minus) c:foo.bar.A(getMinus) c:foo.bar.A(getMINUS)*/- b
|
||||
/*c:foo.bar.A(not) p:foo.bar(not) c:foo.bar.A(getNot) c:foo.bar.A(getNOT)*/!a
|
||||
|
||||
// for val
|
||||
a /*c:foo.bar.A(timesAssign) p:foo.bar(timesAssign)*/*= b
|
||||
a /*c:foo.bar.A(divAssign) p:foo.bar(divAssign)*//= b
|
||||
a /*c:foo.bar.A(timesAssign) p:foo.bar(timesAssign) c:foo.bar.A(getTimesAssign) c:foo.bar.A(getTIMESAssign)*/*= b
|
||||
a /*c:foo.bar.A(divAssign) p:foo.bar(divAssign) c:foo.bar.A(getDivAssign) c:foo.bar.A(getDIVAssign)*//= b
|
||||
|
||||
// for var
|
||||
d /*c:foo.bar.A(plusAssign) p:foo.bar(plusAssign) c:foo.bar.A(plus) p:foo.bar(plus)*/+= b
|
||||
d /*c:foo.bar.A(minusAssign) p:foo.bar(minusAssign) c:foo.bar.A(minus) p:foo.bar(minus)*/-= b
|
||||
d /*c:foo.bar.A(timesAssign) p:foo.bar(timesAssign) c:foo.bar.A(times) p:foo.bar(times)*/*= b
|
||||
d /*c:foo.bar.A(divAssign) p:foo.bar(divAssign) c:foo.bar.A(div) p:foo.bar(div)*//= b
|
||||
d /*c:foo.bar.A(plusAssign) p:foo.bar(plusAssign) c:foo.bar.A(getPlusAssign) c:foo.bar.A(getPLUSAssign) c:foo.bar.A(plus) p:foo.bar(plus) c:foo.bar.A(getPlus) c:foo.bar.A(getPLUS)*/+= b
|
||||
d /*c:foo.bar.A(minusAssign) p:foo.bar(minusAssign) c:foo.bar.A(getMinusAssign) c:foo.bar.A(getMINUSAssign) c:foo.bar.A(minus) p:foo.bar(minus) c:foo.bar.A(getMinus) c:foo.bar.A(getMINUS)*/-= b
|
||||
d /*c:foo.bar.A(timesAssign) p:foo.bar(timesAssign) c:foo.bar.A(getTimesAssign) c:foo.bar.A(getTIMESAssign) c:foo.bar.A(times) p:foo.bar(times) c:foo.bar.A(getTimes) c:foo.bar.A(getTIMES)*/*= b
|
||||
d /*c:foo.bar.A(divAssign) p:foo.bar(divAssign) c:foo.bar.A(getDivAssign) c:foo.bar.A(getDIVAssign) c:foo.bar.A(div) p:foo.bar(div) c:foo.bar.A(getDiv) c:foo.bar.A(getDIV)*//= 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?) {
|
||||
/*c:foo.bar.A(set) p:foo.bar(set)*/a[1] = /*c:foo.bar.A(get) p:foo.bar(get)*/a[2]
|
||||
/*c:foo.bar.A(set) p:foo.bar(set) c:foo.bar.A(getSet) c:foo.bar.A(getSET)*/a[1] = /*c:foo.bar.A(get) p:foo.bar(get) c:foo.bar.A(getGet) c:foo.bar.A(getGET)*/a[2]
|
||||
|
||||
b /*c:foo.bar.A(contains) p:foo.bar(contains)*/in a
|
||||
"s" /*c:foo.bar.A(contains) p:foo.bar(contains)*/!in a
|
||||
b /*c:foo.bar.A(contains) p:foo.bar(contains) c:foo.bar.A(getContains) c:foo.bar.A(getCONTAINS)*/in a
|
||||
"s" /*c:foo.bar.A(contains) p:foo.bar(contains) c:foo.bar.A(getContains) c:foo.bar.A(getCONTAINS)*/!in a
|
||||
|
||||
/*c:foo.bar.A(invoke) p:foo.bar(invoke)*/a()
|
||||
/*c:foo.bar.A(invoke) p:foo.bar(invoke)*/a(1)
|
||||
|
||||
val (/*c:foo.bar.A(component1) p:foo.bar(component1)*/h, /*c:foo.bar.A(component2) p:foo.bar(component2)*/t) = a;
|
||||
val (/*c:foo.bar.A(component1) p:foo.bar(component1) c:foo.bar.A(getComponent1)*/h, /*c:foo.bar.A(component2) p:foo.bar(component2) c:foo.bar.A(getComponent2)*/t) = a;
|
||||
|
||||
for ((/*c:foo.bar.A(component1) p:foo.bar(component1)*/f, /*c:foo.bar.A(component2) p:foo.bar(component2)*/s) in /*c:foo.bar.A(iterator) c:foo.bar.A(hasNext) p:foo.bar(hasNext) c:foo.bar.A(next)*/a);
|
||||
for ((/*c:foo.bar.A(component1) p:foo.bar(component1)*/f, /*c:foo.bar.A(component2) p:foo.bar(component2)*/s) in /*c:foo.bar.A(iterator) p:foo.bar(iterator) c:foo.bar.A(hasNext) p:foo.bar(hasNext) c:foo.bar.A(next)*/na);
|
||||
for ((/*c:foo.bar.A(component1) p:foo.bar(component1) c:foo.bar.A(getComponent1)*/f, /*c:foo.bar.A(component2) p:foo.bar(component2) c:foo.bar.A(getComponent2)*/s) in /*c:foo.bar.A(iterator) c:foo.bar.A(hasNext) p:foo.bar(hasNext) c:foo.bar.A(next)*/a);
|
||||
for ((/*c:foo.bar.A(component1) p:foo.bar(component1) c:foo.bar.A(getComponent1)*/f, /*c:foo.bar.A(component2) p:foo.bar(component2) c:foo.bar.A(getComponent2)*/s) in /*c:foo.bar.A(iterator) p:foo.bar(iterator) c:foo.bar.A(hasNext) p:foo.bar(hasNext) c:foo.bar.A(next)*/na);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,6 @@ import baz./*p:baz*/C
|
||||
}
|
||||
|
||||
/*p:foo*/fun /*p:foo*/MyClass.extFunc(p: /**p:foo p:bar*//*p:foo*/Array</*p:foo p:bar*/B>, e: /*p:foo*/MyEnum, c: /**???*/C): /*p:foo*/MyInterface {
|
||||
/*c:foo.MyClass p:foo p:bar*/b
|
||||
/*c:foo.MyClass p:foo p:bar c:foo.MyClass(getB)*/b
|
||||
return /*c:foo.MyClass p:foo p:bar*/MyClass()
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
public class JavaClass {
|
||||
public int getFoo() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public String getBar() {
|
||||
return "";
|
||||
}
|
||||
|
||||
public void setBar(String s) {
|
||||
}
|
||||
|
||||
public int getBazBaz() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public int getBAZBaz() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public void setBazBaz(int i) {
|
||||
}
|
||||
|
||||
public void setBoo(int i) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package foo
|
||||
|
||||
import /*p:<root>*/JavaClass
|
||||
|
||||
/*p:foo*/class KotlinClass : JavaClass() {
|
||||
override fun getFoo() = 2
|
||||
fun setFoo(i: /*c:foo.KotlinClass p:foo*/Int) {}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
Compiling files:
|
||||
src/KotlinClass.kt
|
||||
src/usages.kt
|
||||
End of files
|
||||
COMPILATION FAILED
|
||||
Unresolved reference: setFoo
|
||||
Val cannot be reassigned
|
||||
Unresolved reference: bazBaz
|
||||
Unresolved reference: bazBaz
|
||||
Unresolved reference: boo
|
||||
Unresolved reference: bazBaz
|
||||
Unresolved reference: bazBaz
|
||||
Unresolved reference: boo
|
||||
@@ -0,0 +1,30 @@
|
||||
package foo.bar
|
||||
|
||||
import /*p:<root>*/JavaClass
|
||||
import foo./*p:foo*/KotlinClass
|
||||
|
||||
/*p:foo.bar*/fun test() {
|
||||
val j = /*p:foo.bar*/JavaClass()
|
||||
val k = /*p:foo.bar*/KotlinClass()
|
||||
|
||||
j.getFoo()
|
||||
j./*p:foo.bar c:JavaClass(getSetFoo) c:JavaClass(getSETFoo)*/setFoo(2)
|
||||
j./*p:foo.bar c:JavaClass(getFoo) c:JavaClass(getFOO) c:JavaClass(setFoo)*/foo = 2
|
||||
j./*p:foo.bar c:JavaClass(getFoo) c:JavaClass(getFOO) c:JavaClass(setFoo)*/foo
|
||||
j./*p:foo.bar c:JavaClass(getBar) c:JavaClass(getBAR) c:JavaClass(setBar)*/bar
|
||||
j./*p:foo.bar c:JavaClass(getBar) c:JavaClass(getBAR) c:JavaClass(setBar)*/bar = ""
|
||||
j./*p:foo.bar c:JavaClass(getBazBaz) c:JavaClass(getBAZBaz)*/bazBaz
|
||||
j./*p:foo.bar c:JavaClass(getBazBaz) c:JavaClass(getBAZBaz)*/bazBaz = ""
|
||||
j.setBoo(2)
|
||||
j./*p:foo.bar c:JavaClass(getBoo) c:JavaClass(getBOO)*/boo = 2
|
||||
k./*c:foo.KotlinClass*/getFoo()
|
||||
k./*c:foo.KotlinClass*/setFoo(2)
|
||||
k./*c:foo.KotlinClass p:foo.bar c:foo.KotlinClass(getFoo) c:foo.KotlinClass(getFOO) c:foo.KotlinClass(setFoo)*/foo = 2
|
||||
k./*c:foo.KotlinClass p:foo.bar c:foo.KotlinClass(getFoo) c:foo.KotlinClass(getFOO) c:foo.KotlinClass(setFoo)*/foo
|
||||
k./*c:foo.KotlinClass p:foo.bar c:foo.KotlinClass(getBar) c:foo.KotlinClass(getBAR) c:foo.KotlinClass(setBar)*/bar
|
||||
k./*c:foo.KotlinClass p:foo.bar c:foo.KotlinClass(getBar) c:foo.KotlinClass(getBAR) c:foo.KotlinClass(setBar)*/bar = ""
|
||||
k./*c:foo.KotlinClass p:foo.bar c:foo.KotlinClass(getBazBaz) c:foo.KotlinClass(getBAZBaz)*/bazBaz
|
||||
k./*c:foo.KotlinClass p:foo.bar c:foo.KotlinClass(getBazBaz) c:foo.KotlinClass(getBAZBaz)*/bazBaz = ""
|
||||
k./*c:foo.KotlinClass*/setBoo(2)
|
||||
k./*c:foo.KotlinClass p:foo.bar c:foo.KotlinClass(getBoo) c:foo.KotlinClass(getBOO)*/boo = 2
|
||||
}
|
||||
Reference in New Issue
Block a user