From dd1ac5bb6ba4f5585701a9acfc656d9ae3a77952 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 11 Sep 2017 12:37:40 +0300 Subject: [PATCH] Add a set of tests for internal callables find usages Related to KT-19811 --- .../enumFunctionUsages.0.kt | 25 ++++ .../enumFunctionUsages.results.txt | 3 + .../kotlinMethodUsages.0.kt | 12 ++ .../kotlinMethodUsages.1.kt | 8 + .../kotlinMethodUsages.results.txt | 2 + .../kotlinMultiRefInImport.0.kt | 17 +++ .../kotlinMultiRefInImport.1.kt | 11 ++ .../kotlinMultiRefInImport.results.txt | 2 + .../kotlinOverloadAndExtensionUsages.0.kt | 45 ++++++ .../kotlinOverloadAndExtensionUsages.1.kt | 13 ++ ...tlinOverloadAndExtensionUsages.results.txt | 7 + .../kotlinTopLevelMethodUsages.0.kt | 6 + .../kotlinTopLevelMethodUsages.1.kt | 12 ++ .../kotlinTopLevelMethodUsages.results.txt | 3 + .../kotlinTraitImplThroughDelegate.0.kt | 11 ++ ...kotlinTraitImplThroughDelegate.results.txt | 1 + .../usagesOfBaseForFunction.0.kt | 16 ++ .../usagesOfBaseForFunction.results.txt | 1 + .../constructorCall.0.kt | 7 + .../constructorCall.results.txt | 2 + .../primaryConstructorByRef.0.kt | 17 +++ .../primaryConstructorByRef.results.txt | 4 + .../kotlinClassObjectPropertyUsage.0.kt | 11 ++ ...kotlinClassObjectPropertyUsage.results.txt | 1 + .../kotlinMultiRefInImport.0.kt | 11 ++ .../kotlinMultiRefInImport.1.kt | 10 ++ .../kotlinMultiRefInImport.results.txt | 2 + .../kotlinPropertyUsages.0.kt | 19 +++ .../kotlinPropertyUsages.1.kt | 13 ++ .../kotlinPropertyUsages.results.txt | 6 + .../kotlinTopLevelPropertyUsages.0.kt | 6 + .../kotlinTopLevelPropertyUsages.1.kt | 10 ++ .../kotlinTopLevelPropertyUsages.results.txt | 3 + .../constructorCall.0.kt | 9 ++ .../constructorCall.results.txt | 2 + .../defaultSecondaryConstructor.0.kt | 29 ++++ .../defaultSecondaryConstructor.results.txt | 5 + .../secondaryConstructor.0.kt | 25 ++++ .../secondaryConstructor.results.txt | 4 + .../findUsages/FindUsagesTestGenerated.java | 141 ++++++++++++++++++ 40 files changed, 532 insertions(+) create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.1.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.1.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.1.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.1.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/constructorCall.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/constructorCall.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/primaryConstructorByRef.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/primaryConstructorByRef.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.1.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.1.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.1.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/constructorCall.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/constructorCall.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.results.txt create mode 100644 idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.0.kt create mode 100644 idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.results.txt diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.0.kt new file mode 100644 index 00000000000..5df70d53ae6 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.0.kt @@ -0,0 +1,25 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction +// OPTIONS: usages +enum class E { + O + A { + init { + foo(1) + } + + override fun foo(n: Int): Int = n + 1 + } + B { + init { + foo(1) + } + + override fun foo(n: Int): Int = n + 2 + } + + init { + foo(1) + } + + internal open fun foo(n: Int): Int = n +} diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.results.txt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.results.txt new file mode 100644 index 00000000000..43b1bb60ff3 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.results.txt @@ -0,0 +1,3 @@ +Function call 14 foo(1) +Function call 21 foo(1) +Function call 7 foo(1) diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.0.kt new file mode 100644 index 00000000000..4c10a6d58d1 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.0.kt @@ -0,0 +1,12 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction +// OPTIONS: usages +package server + +public open class Server() { + internal open fun processRequest() = "foo" +} + +public class ServerEx(): Server() { + override fun processRequest() = "foofoo" +} + diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.1.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.1.kt new file mode 100644 index 00000000000..17b7c749d69 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.1.kt @@ -0,0 +1,8 @@ +import server.*; + +class Client { + public fun foo() { + Server().processRequest() + ServerEx().processRequest() + } +} diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.results.txt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.results.txt new file mode 100644 index 00000000000..89645268347 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.results.txt @@ -0,0 +1,2 @@ +Function call 5 Server().processRequest() +Function call 6 ServerEx().processRequest() diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.0.kt new file mode 100644 index 00000000000..42c9328e59c --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.0.kt @@ -0,0 +1,17 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction +// OPTIONS: usages +package server + +internal fun foo() { + +} + +fun Int.foo() { + +} + +fun foo(n: Int) { + +} + +val foo: Int diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.1.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.1.kt new file mode 100644 index 00000000000..5751e65ec54 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.1.kt @@ -0,0 +1,11 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction +// OPTIONS: usages +package client + +import server.foo + +fun test() { + foo() + foo(1) + val t = foo +} diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.results.txt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.results.txt new file mode 100644 index 00000000000..4a1d3c7bbe9 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.results.txt @@ -0,0 +1,2 @@ +Function call 8 foo() +Usage in import 5 import server.foo diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.0.kt new file mode 100644 index 00000000000..d62f5084a30 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.0.kt @@ -0,0 +1,45 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction +// OPTIONS: overloadUsages +interface X { +} + +fun X.foo(a: Number, b: Number) { + println("$a$b") +} + +fun bar(x: X) { + x.foo(1, 2) +} + +open class A: X { + internal open fun foo(t: T) { + println(t) + } + + open fun foo(t: T, tt: T) { + println(t) + } +} + +fun A.foo(t: T, x: String) { + foo(t) + println(x) +} + +fun bar(a: A) { + a.foo(1, "") +} + +fun B.foo(s: String, n: Number) { + fun A.foo(t: T, x: String) { + foo(t) + println(x) + } + + foo(s) + println(n) +} + +fun bar(b: B) { + b.foo("", 0) +} diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.1.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.1.kt new file mode 100644 index 00000000000..ed54142f76a --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.1.kt @@ -0,0 +1,13 @@ +open class B: A() { + override fun foo(t: String) { + super.foo(t) + } + + open fun baz(a: A) { + foo("", 0) + } + + open fun baz(a: A) { + a.foo(0, "") + } +} \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.results.txt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.results.txt new file mode 100644 index 00000000000..ee51ac2ceb0 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.results.txt @@ -0,0 +1,7 @@ +[kotlinOverloadAndExtensionUsages.0.kt] Function call 11 x.foo(1, 2) +[kotlinOverloadAndExtensionUsages.0.kt] Function call 25 foo(t) +[kotlinOverloadAndExtensionUsages.0.kt] Function call 30 a.foo(1, "") +[kotlinOverloadAndExtensionUsages.0.kt] Function call 35 foo(t) +[kotlinOverloadAndExtensionUsages.0.kt] Function call 39 foo(s) +[kotlinOverloadAndExtensionUsages.1.kt] Function call 11 a.foo(0, "") +[kotlinOverloadAndExtensionUsages.1.kt] Function call 3 super.foo(t) diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt new file mode 100644 index 00000000000..a5b6636d19e --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt @@ -0,0 +1,6 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction +// OPTIONS: usages +package server + +internal fun processRequest() = "foo" + diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.1.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.1.kt new file mode 100644 index 00000000000..9bd981a0c77 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.1.kt @@ -0,0 +1,12 @@ +package client + +import server.processRequest + +class Client { + val methodRef = ::processRequest() + + fun doProcessRequest() { + println("Process...") + processRequest() + } +} \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.results.txt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.results.txt new file mode 100644 index 00000000000..34dfbd53de4 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.results.txt @@ -0,0 +1,3 @@ +Callable reference 6 val methodRef = ::processRequest() +Function call 10 processRequest() +Usage in import 3 import server.processRequest \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt new file mode 100644 index 00000000000..45e276c6396 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt @@ -0,0 +1,11 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction +// OPTIONS: usages, skipImports +package server + +interface TraitWithImpl { + internal fun foo() = 1 +} + +public class TraitWithDelegatedWithImpl(f: TraitWithImpl): TraitWithImpl by f + +fun test(twdwi: TraitWithDelegatedWithImpl) = twdwi.foo() \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt new file mode 100644 index 00000000000..e2e8d26e09c --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.results.txt @@ -0,0 +1 @@ +Function call 11 fun test(twdwi: TraitWithDelegatedWithImpl) = twdwi.foo() \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.0.kt new file mode 100644 index 00000000000..dbc42b91218 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.0.kt @@ -0,0 +1,16 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction +// OPTIONS: usages, skipImports + +interface A { + internal fun foo() +} + +class B: A { + override fun foo() {} // Find usages gives no results +} + +fun main(a: A) { + a.foo() +} + +// for KT-3769 Find usages gives no result for overrides diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.results.txt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.results.txt new file mode 100644 index 00000000000..379e6946133 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.results.txt @@ -0,0 +1 @@ +Function call 13 a.foo() diff --git a/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/constructorCall.0.kt b/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/constructorCall.0.kt new file mode 100644 index 00000000000..86229e90179 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/constructorCall.0.kt @@ -0,0 +1,7 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass +// OPTIONS: usages, constructorUsages +fun test() { + val kk: KK = KK() +} + +class KK internal constructor() \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/constructorCall.results.txt b/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/constructorCall.results.txt new file mode 100644 index 00000000000..9f5b7376392 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/constructorCall.results.txt @@ -0,0 +1,2 @@ +Local variable declaration 4 val kk: KK = KK() +New instance creation 4 val kk: KK = KK() \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/primaryConstructorByRef.0.kt b/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/primaryConstructorByRef.0.kt new file mode 100644 index 00000000000..0dc0c48e043 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/primaryConstructorByRef.0.kt @@ -0,0 +1,17 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtPrimaryConstructor +// OPTIONS: usages +// FIND_BY_REF +open class A internal constructor(n: Int) { + constructor(): this(1) +} + +class B: A { + constructor(n: Int): super(n) +} + +class C(): A(1) + +fun test() { + A() + A(1) +} \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/primaryConstructorByRef.results.txt b/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/primaryConstructorByRef.results.txt new file mode 100644 index 00000000000..2451f940e3d --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/primaryConstructorByRef.results.txt @@ -0,0 +1,4 @@ +New instance creation 16 A(1) +Supertype 12 class C(): A(1) +Unclassified usage 5 constructor(): this(1) +Unclassified usage 9 constructor(n: Int): super(n) diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt new file mode 100644 index 00000000000..e8a9ed8d699 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt @@ -0,0 +1,11 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty +// OPTIONS: usages +package server + +interface Some { + companion object { + internal const val XX = 1 + } +} + +val a = Some.XX \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.results.txt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.results.txt new file mode 100644 index 00000000000..a8dae6dc2fa --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.results.txt @@ -0,0 +1 @@ +Value read 11 val a = Some.XX \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.0.kt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.0.kt new file mode 100644 index 00000000000..7e967c34165 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.0.kt @@ -0,0 +1,11 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty +// OPTIONS: usages +package server + +fun foo() { + +} + +internal val foo: Int = 1 + +val Int.foo: Int = 2 diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.1.kt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.1.kt new file mode 100644 index 00000000000..c03d022751e --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.1.kt @@ -0,0 +1,10 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty +// OPTIONS: usages +package client + +import server.foo + +fun test() { + foo() + val t = 1.foo + foo +} diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.results.txt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.results.txt new file mode 100644 index 00000000000..f1c07777d29 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.results.txt @@ -0,0 +1,2 @@ +Usage in import 5 import server.foo +Value read 9 val t = 1.foo + foo diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.0.kt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.0.kt new file mode 100644 index 00000000000..17a2b5a0ce1 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.0.kt @@ -0,0 +1,19 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty +// OPTIONS: usages +package server + +open class A { + internal open var foo: T +} + +open class B: A() { + open var foo: String + get() { + println("get") + return super.foo + } + set(value: String) { + println("set:" + value) + super.foo = value + } +} diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.1.kt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.1.kt new file mode 100644 index 00000000000..e468d09d3f0 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.1.kt @@ -0,0 +1,13 @@ +import server.*; + +class Client { + public fun foo() { + val a = A() + a.foo = "a" + println("a.foo = ${a.foo}") + + val b = B() + b.foo = "b" + println("b.foo = ${b.foo}") + } +} diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.results.txt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.results.txt new file mode 100644 index 00000000000..6cfee77e94a --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.results.txt @@ -0,0 +1,6 @@ +[kotlinPropertyUsages.0.kt] Value read 13 return super.foo +[kotlinPropertyUsages.0.kt] Value write 17 super.foo = value +[kotlinPropertyUsages.1.kt] Value read 11 println("b.foo = ${b.foo}") +[kotlinPropertyUsages.1.kt] Value read 7 println("a.foo = ${a.foo}") +[kotlinPropertyUsages.1.kt] Value write 10 b.foo = "b" +[kotlinPropertyUsages.1.kt] Value write 6 a.foo = "a" diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.0.kt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.0.kt new file mode 100644 index 00000000000..50552e2bf47 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.0.kt @@ -0,0 +1,6 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtProperty +// OPTIONS: usages +package server + +internal var foo: String = "foo" + diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.1.kt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.1.kt new file mode 100644 index 00000000000..4d9a435b595 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.1.kt @@ -0,0 +1,10 @@ +package client + +import server.foo + +class Client { + fun fooBar() { + println("foo = ${server.foo}") + println("length: ${server.foo.length()}") + } +} \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.results.txt b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.results.txt new file mode 100644 index 00000000000..b0567f36df9 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.results.txt @@ -0,0 +1,3 @@ +Receiver 8 println("length: ${server.foo.length()}") +Usage in import 3 import server.foo +Value read 7 println("foo = ${server.foo}") \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/constructorCall.0.kt b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/constructorCall.0.kt new file mode 100644 index 00000000000..2df9f8587d1 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/constructorCall.0.kt @@ -0,0 +1,9 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass +// OPTIONS: usages, constructorUsages +fun test() { + val kk: KK = KK() +} + +class KK { + internal constructor() +} \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/constructorCall.results.txt b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/constructorCall.results.txt new file mode 100644 index 00000000000..9f5b7376392 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/constructorCall.results.txt @@ -0,0 +1,2 @@ +Local variable declaration 4 val kk: KK = KK() +New instance creation 4 val kk: KK = KK() \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt new file mode 100644 index 00000000000..8bfb37bbcfd --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt @@ -0,0 +1,29 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtSecondaryConstructor +// OPTIONS: usages +open class B { + internal constructor() { + + } + + constructor(a: Int): this() { + + } +} + +class A : B { + constructor(a: Int) : super() { + + } + + constructor() { + + } +} + +class C : B() { + +} + +fun test() { + B() +} \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.results.txt b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.results.txt new file mode 100644 index 00000000000..398797bc346 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.results.txt @@ -0,0 +1,5 @@ +New instance creation 28 B() +Supertype 23 class C : B() { +Unclassified usage 14 constructor(a: Int) : super() { +Unclassified usage 18 constructor() { +Unclassified usage 8 constructor(a: Int): this() { \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.0.kt b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.0.kt new file mode 100644 index 00000000000..267750e8f31 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.0.kt @@ -0,0 +1,25 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtSecondaryConstructor +// OPTIONS: usages +open class B { + constructor(): this("") { + + } + + internal constructor(s: String) { + + } +} + +open class A : B { + constructor(a: Int) : super("") { + + } +} + +class C: B("") { + +} + +fun test() { + B("") +} \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.results.txt b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.results.txt new file mode 100644 index 00000000000..97204827fe2 --- /dev/null +++ b/idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.results.txt @@ -0,0 +1,4 @@ +New instance creation 24 B("") +Supertype 19 class C: B("") { +Unclassified usage 14 constructor(a: Int) : super("") { +Unclassified usage 4 constructor(): this("") { \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java b/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java index cf32e472dab..5f91c35bac8 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java @@ -1334,6 +1334,147 @@ public class FindUsagesTestGenerated extends AbstractFindUsagesTest { } } + @TestMetadata("idea/testData/findUsages/kotlin/internal") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Internal extends AbstractFindUsagesTest { + public void testAllFilesPresentInInternal() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/findUsages/kotlin/internal"), Pattern.compile("^(.+)\\.0\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("idea/testData/findUsages/kotlin/internal/findFunctionUsages") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class FindFunctionUsages extends AbstractFindUsagesTest { + public void testAllFilesPresentInFindFunctionUsages() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/findUsages/kotlin/internal/findFunctionUsages"), Pattern.compile("^(.+)\\.0\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("enumFunctionUsages.0.kt") + public void testEnumFunctionUsages() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findFunctionUsages/enumFunctionUsages.0.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinMethodUsages.0.kt") + public void testKotlinMethodUsages() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMethodUsages.0.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinMultiRefInImport.0.kt") + public void testKotlinMultiRefInImport() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinMultiRefInImport.0.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinOverloadAndExtensionUsages.0.kt") + public void testKotlinOverloadAndExtensionUsages() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinOverloadAndExtensionUsages.0.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinTopLevelMethodUsages.0.kt") + public void testKotlinTopLevelMethodUsages() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTopLevelMethodUsages.0.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinTraitImplThroughDelegate.0.kt") + public void testKotlinTraitImplThroughDelegate() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt"); + doTest(fileName); + } + + @TestMetadata("usagesOfBaseForFunction.0.kt") + public void testUsagesOfBaseForFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findFunctionUsages/usagesOfBaseForFunction.0.kt"); + doTest(fileName); + } + } + + @TestMetadata("idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class FindPrimaryConstructorUsages extends AbstractFindUsagesTest { + public void testAllFilesPresentInFindPrimaryConstructorUsages() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages"), Pattern.compile("^(.+)\\.0\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("constructorCall.0.kt") + public void testConstructorCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/constructorCall.0.kt"); + doTest(fileName); + } + + @TestMetadata("primaryConstructorByRef.0.kt") + public void testPrimaryConstructorByRef() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findPrimaryConstructorUsages/primaryConstructorByRef.0.kt"); + doTest(fileName); + } + } + + @TestMetadata("idea/testData/findUsages/kotlin/internal/findPropertyUsages") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class FindPropertyUsages extends AbstractFindUsagesTest { + public void testAllFilesPresentInFindPropertyUsages() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/findUsages/kotlin/internal/findPropertyUsages"), Pattern.compile("^(.+)\\.0\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("kotlinClassObjectPropertyUsage.0.kt") + public void testKotlinClassObjectPropertyUsage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinClassObjectPropertyUsage.0.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinMultiRefInImport.0.kt") + public void testKotlinMultiRefInImport() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinMultiRefInImport.0.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinPropertyUsages.0.kt") + public void testKotlinPropertyUsages() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinPropertyUsages.0.kt"); + doTest(fileName); + } + + @TestMetadata("kotlinTopLevelPropertyUsages.0.kt") + public void testKotlinTopLevelPropertyUsages() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findPropertyUsages/kotlinTopLevelPropertyUsages.0.kt"); + doTest(fileName); + } + } + + @TestMetadata("idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class FindSecondaryConstructorUsages extends AbstractFindUsagesTest { + public void testAllFilesPresentInFindSecondaryConstructorUsages() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages"), Pattern.compile("^(.+)\\.0\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("constructorCall.0.kt") + public void testConstructorCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/constructorCall.0.kt"); + doTest(fileName); + } + + @TestMetadata("defaultSecondaryConstructor.0.kt") + public void testDefaultSecondaryConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/defaultSecondaryConstructor.0.kt"); + doTest(fileName); + } + + @TestMetadata("secondaryConstructor.0.kt") + public void testSecondaryConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/internal/findSecondaryConstructorUsages/secondaryConstructor.0.kt"); + doTest(fileName); + } + } + } + @TestMetadata("idea/testData/findUsages/kotlin/propertyFiles") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)