Add test for lookups to classifier members

Original commit: 3b21d391c5
This commit is contained in:
Zalim Bashorov
2015-08-20 16:22:26 +03:00
parent 60ce016ca5
commit 4032df4960
3 changed files with 101 additions and 0 deletions
@@ -35,6 +35,12 @@ public class LookupTrackerTestGenerated extends AbstractLookupTrackerTest {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/lookupTracker"), Pattern.compile("^([^\\.]+)$"), true);
}
@TestMetadata("classifierMembers")
public void testClassifierMembers() throws Exception {
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/lookupTracker/classifierMembers/");
doTest(fileName);
}
@TestMetadata("packageDeclarations")
public void testPackageDeclarations() throws Exception {
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/lookupTracker/packageDeclarations/");
@@ -0,0 +1 @@
package bar
@@ -0,0 +1,94 @@
package foo
import bar.*
/*p:foo*/class A {
val a = 1
var b = ""
val c: /*c:foo.A p:foo*/String
get() = /*c:foo.A p:foo p:bar c:foo.A.Companion*/b
var d: /*c:foo.A p:foo*/String = "ddd"
get() = /*c:foo.A p:foo p:bar c:foo.A.Companion*/$d
set(v) { /*c:foo.A p:foo p:bar c:foo.A.Companion*/$d = v }
fun foo() {
/*c:foo.A p:foo p:bar c:foo.A.Companion*/a
/*c:foo.A p:foo p:bar c:foo.A.Companion*/foo()
this./*c:foo.A*/a
this./*c:foo.A*/foo()
/*c:foo.A p:foo p:bar c:foo.A.Companion*/baz()
/*c:foo.A p:foo p:bar c:foo.A.Companion*/Companion./*c:foo.A.Companion*/a
/*c:foo.A p:foo p:bar c:foo.A.Companion*/O./*c:foo.A.O*/v = "OK"
}
class B {
val a = 1
companion object CO {
fun bar(a: /*c:foo.A.B.CO c:foo.A.B c:foo.A p:foo*/Int) {}
}
}
companion object {
val a = 1
fun baz() {}
}
object O {
var v = "vvv"
}
}
/*p:foo*/interface I {
var a: /*c:foo.I p:foo*/Int
fun foo()
}
/*p:foo*/object Obj : /*p:foo*/I {
override var a = 1
override fun foo() {}
val b = 1
fun bar(): /*c:foo.Obj p:foo*/I = null as /*c:foo.Obj p:foo*/I
}
/*p:foo*/enum class E {
X,
Y;
val a = 1
fun foo() {
/*c:foo.E p:foo p:bar*/a
/*c:foo.E p:foo p:bar*/Y./*c:foo.E*/a
/*c:foo.E p:foo p:bar*/foo()
/*c:foo.E p:foo p:bar*/X./*c:foo.E*/foo()
}
}
/*p:foo*/fun usages(i: /*p:foo*/I) {
/*p:foo p:bar*/A()./*c:foo.A*/a
/*p:foo p:bar*/A()./*c:foo.A*/b
/*p:foo p:bar*/A()./*c:foo.A*/c
/*p:foo p:bar*/A()./*c:foo.A*/d = "new value"
/*p:foo p:bar*/A()./*c:foo.A*/foo()
/*p:foo p:bar*/A./*c:foo.A*/B()./*c:foo.A.B*/a
/*p:foo p:bar*/A./*c:foo.A*/B./*c:foo.A.B c:foo.A.B.CO*/bar(1)
/*p:foo p:bar*/A./*c:foo.A*/B./*c:foo.A.B*/CO./*c:foo.A.B.CO*/bar(1)
/*p:foo p:bar*/A./*c:foo.A c:foo.A.Companion*/a
/*p:foo p:bar*/A./*c:foo.A c:foo.A.Companion*/baz()
/*p:foo p:bar*/A./*c:foo.A*/Companion./*c:foo.A.Companion*/baz()
/*p:foo p:bar*/A./*c:foo.A*/O./*c:foo.A.O*/v = "OK"
i./*c:foo.I*/a = 2
/*p:foo p:bar*/Obj./*c:foo.Obj*/a
/*p:foo p:bar*/Obj./*c:foo.Obj*/foo()
var ii: /*p:foo*/I = /*p:foo p:bar*/Obj
ii./*c:foo.I*/a
ii./*c:foo.I*/foo()
/*p:foo p:bar*/Obj./*c:foo.Obj*/b
val iii = /*p:foo p:bar*/Obj./*c:foo.Obj*/bar()
iii./*c:foo.I*/foo()
/*p:foo p:bar*/E./*c:foo.E*/X
/*p:foo p:bar*/E./*c:foo.E*/X./*c:foo.E*/a
/*p:foo p:bar*/E./*c:foo.E*/Y./*c:foo.E*/foo()
}