From 35cb01217ee769aea84f1071497979fd3a99e4d6 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Mon, 2 Nov 2015 23:26:03 +0300 Subject: [PATCH] Add tests for lookups to enum static scope and to companion object scope Original commit: 04fed203e4df84f4bdbad7e0d91a755234350192 --- .../kotlin/jps/build/AbstractLookupTrackerTest.kt | 3 ++- .../lookupTracker/classifierMembers/init-build.log | 11 +++++++++++ .../lookupTracker/classifierMembers/usages.kt | 9 +++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/init-build.log diff --git a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt index 649c9e544e4..1730b0be18d 100644 --- a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt +++ b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt @@ -26,6 +26,7 @@ import java.io.File import java.util.* private val DECLARATION_KEYWORDS = listOf("interface", "class", "enum class", "object", "fun", "val", "var") +private val DECLARATION_STARTS_WITH = DECLARATION_KEYWORDS.map { it + " " } abstract class AbstractLookupTrackerTest : AbstractIncrementalJpsTest( allowNoFilesWithSuffixInTestData = true, @@ -74,7 +75,7 @@ abstract class AbstractLookupTrackerTest : AbstractIncrementalJpsTest( when { rest.startsWith(it.name) || // same name rest.startsWith("$" + it.name) || // backing field - DECLARATION_KEYWORDS.any { w -> rest.startsWith(w) } // it's declaration + DECLARATION_STARTS_WITH.any { rest.startsWith(it) } // it's declaration -> "" else -> "(" + it.name + ")" } diff --git a/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/init-build.log b/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/init-build.log new file mode 100644 index 00000000000..3aacbd6c97e --- /dev/null +++ b/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/init-build.log @@ -0,0 +1,11 @@ +Compiling files: +src/bar.kt +src/constraints.kt +src/foo.kt +src/usages.kt +End of files +COMPILATION FAILED +Unresolved reference: vala +Unresolved reference: vara +Unresolved reference: foo +Unresolved reference: bar diff --git a/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt b/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt index 7194c76f3f6..91c0eb2f084 100644 --- a/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt +++ b/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt @@ -18,6 +18,9 @@ import bar.* /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/A./*c:foo.A c:foo.A.Companion*/Companion./*c:foo.A.Companion*/baz() /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/A./*c:foo.A*/O /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/A./*c:foo.A c:foo.A.Companion*/O./*c:foo.A.O*/v = "OK" + /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/A./*c:foo.A c:foo.A.Companion p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io c:foo.A.Companion(getVala) c:foo.A.Companion(getVALA)*/vala + /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/A./*c:foo.A c:foo.A.Companion p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io c:foo.A.Companion(getVara) c:foo.A.Companion(getVARA)*/vara() + i./*c:foo.I*/a = 2 /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/Obj./*c:foo.Obj*/a /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/Obj./*c:foo.Obj*/foo() @@ -27,9 +30,15 @@ import bar.* /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/Obj./*c:foo.Obj*/b val iii = /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/Obj./*c:foo.Obj*/bar() iii./*c:foo.I*/foo() + /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/X /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/X./*c:foo.E*/a /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/Y./*c:foo.E*/foo() + /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/values + /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/values() + /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/valueOf("") + /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/foo + /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/bar() } /*p:foo*/fun classifiers(