From 4032df49605656b9dee553d6ed79f016bd6a1b56 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Thu, 20 Aug 2015 16:22:26 +0300 Subject: [PATCH] Add test for lookups to classifier members Original commit: 3b21d391c5c01c2b753bd777e5cc6e9d5af7137a --- .../jps/build/LookupTrackerTestGenerated.java | 6 ++ .../lookupTracker/classifierMembers/bar.kt | 1 + .../lookupTracker/classifierMembers/foo.kt | 94 +++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/bar.kt create mode 100644 jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt diff --git a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/LookupTrackerTestGenerated.java b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/LookupTrackerTestGenerated.java index 401d4211141..4b1bd5a3648 100644 --- a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/LookupTrackerTestGenerated.java +++ b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/LookupTrackerTestGenerated.java @@ -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/"); diff --git a/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/bar.kt b/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/bar.kt new file mode 100644 index 00000000000..ddac0faf273 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/bar.kt @@ -0,0 +1 @@ +package bar diff --git a/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt b/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt new file mode 100644 index 00000000000..d05d4009476 --- /dev/null +++ b/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt @@ -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() +}