diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetClsMethodImpl.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetClsMethodImpl.java index 606e1d7d133..6406bd8bc2b 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetClsMethodImpl.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JetClsMethodImpl.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.asJava; import com.intellij.psi.PsiElement; import com.intellij.psi.impl.compiled.ClsMethodImpl; import com.intellij.psi.impl.java.stubs.PsiMethodStub; +import com.intellij.psi.search.SearchScope; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.psi.JetDeclaration; @@ -59,4 +60,10 @@ public class JetClsMethodImpl extends ClsMethodImpl implements JetClsMethod { if (another instanceof JetClsMethod && getOrigin().equals(((JetClsMethod) another).getOrigin())) return true; return super.isEquivalentTo(another); } + + @NotNull + @Override + public SearchScope getUseScope() { + return origin.getUseScope(); + } } diff --git a/idea/testData/findUsages/findClassUsages/kotlinPrivateClassUsages.0.kt b/idea/testData/findUsages/findClassUsages/kotlinPrivateClassUsages.0.kt new file mode 100644 index 00000000000..b4ef7cdf64d --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinPrivateClassUsages.0.kt @@ -0,0 +1,16 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: usages, constructorUsages +package server; + +public open class Server() { + private class Foo { + + } + + open fun processRequest() = Foo() +} + +public class ServerEx(): Server() { + override fun processRequest() = Server.Foo() +} + diff --git a/idea/testData/findUsages/findClassUsages/kotlinPrivateClassUsages.1.kt b/idea/testData/findUsages/findClassUsages/kotlinPrivateClassUsages.1.kt new file mode 100644 index 00000000000..795e1d0f060 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinPrivateClassUsages.1.kt @@ -0,0 +1,8 @@ +import server.*; + +class Client { + public fun foo() { + println(Server.Foo()) + ServerEx().processRequest() + } +} diff --git a/idea/testData/findUsages/findClassUsages/kotlinPrivateClassUsages.results.txt b/idea/testData/findUsages/findClassUsages/kotlinPrivateClassUsages.results.txt new file mode 100644 index 00000000000..46d2eeb1888 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinPrivateClassUsages.results.txt @@ -0,0 +1,3 @@ +Instantiation (10: 33) open fun processRequest() = Foo() +Instantiation (14: 44) override fun processRequest() = Server.Foo() +Instantiation (5: 24) println(Server.Foo()) \ No newline at end of file diff --git a/idea/testData/findUsages/findMethodUsages/kotlinPrivateMethodUsages.0.kt b/idea/testData/findUsages/findMethodUsages/kotlinPrivateMethodUsages.0.kt new file mode 100644 index 00000000000..aa56a604366 --- /dev/null +++ b/idea/testData/findUsages/findMethodUsages/kotlinPrivateMethodUsages.0.kt @@ -0,0 +1,14 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetNamedFunction +// OPTIONS: usages +package server; + +public open class Server() { + private fun doProcessRequest() = "foo" + + open fun processRequest() = doProcessRequest() +} + +public class ServerEx(): Server() { + override fun processRequest() = "foo" + doProcessRequest() +} + diff --git a/idea/testData/findUsages/findMethodUsages/kotlinPrivateMethodUsages.1.kt b/idea/testData/findUsages/findMethodUsages/kotlinPrivateMethodUsages.1.kt new file mode 100644 index 00000000000..fe435b85569 --- /dev/null +++ b/idea/testData/findUsages/findMethodUsages/kotlinPrivateMethodUsages.1.kt @@ -0,0 +1,8 @@ +import server.*; + +class Client { + public fun foo() { + Server().doProcessRequest() + ServerEx().processRequest() + } +} diff --git a/idea/testData/findUsages/findMethodUsages/kotlinPrivateMethodUsages.results.txt b/idea/testData/findUsages/findMethodUsages/kotlinPrivateMethodUsages.results.txt new file mode 100644 index 00000000000..14fe2ba42d1 --- /dev/null +++ b/idea/testData/findUsages/findMethodUsages/kotlinPrivateMethodUsages.results.txt @@ -0,0 +1,3 @@ +Function call (12: 45) override fun processRequest() = "foo" + doProcessRequest() +Function call (5: 18) Server().doProcessRequest() +Function call (8: 33) open fun processRequest() = doProcessRequest() \ No newline at end of file diff --git a/idea/testData/findUsages/findObjectUsages/kotlinPrivateObjectUsages.0.kt b/idea/testData/findUsages/findObjectUsages/kotlinPrivateObjectUsages.0.kt new file mode 100644 index 00000000000..d377a2d8f82 --- /dev/null +++ b/idea/testData/findUsages/findObjectUsages/kotlinPrivateObjectUsages.0.kt @@ -0,0 +1,16 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetObjectDeclarationName +// OPTIONS: usages +package server; + +public open class Server() { + private object Foo { + + } + + open fun processRequest() = Foo +} + +public class ServerEx(): Server() { + override fun processRequest() = Foo +} + diff --git a/idea/testData/findUsages/findObjectUsages/kotlinPrivateObjectUsages.1.kt b/idea/testData/findUsages/findObjectUsages/kotlinPrivateObjectUsages.1.kt new file mode 100644 index 00000000000..613f1fa7c3f --- /dev/null +++ b/idea/testData/findUsages/findObjectUsages/kotlinPrivateObjectUsages.1.kt @@ -0,0 +1,8 @@ +import server.*; + +class Client { + public fun foo() { + println(Server().Foo) + ServerEx().processRequest() + } +} diff --git a/idea/testData/findUsages/findObjectUsages/kotlinPrivateObjectUsages.results.txt b/idea/testData/findUsages/findObjectUsages/kotlinPrivateObjectUsages.results.txt new file mode 100644 index 00000000000..7b40c012464 --- /dev/null +++ b/idea/testData/findUsages/findObjectUsages/kotlinPrivateObjectUsages.results.txt @@ -0,0 +1,3 @@ +Selector (5: 26) println(Server().Foo) +Value read (10: 33) open fun processRequest() = Foo +Value read (14: 37) override fun processRequest() = Foo diff --git a/idea/testData/findUsages/findPropertyUsages/kotlinPrivatePropertyUsages.0.kt b/idea/testData/findUsages/findPropertyUsages/kotlinPrivatePropertyUsages.0.kt new file mode 100644 index 00000000000..abadb880c09 --- /dev/null +++ b/idea/testData/findUsages/findPropertyUsages/kotlinPrivatePropertyUsages.0.kt @@ -0,0 +1,14 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetProperty +// OPTIONS: usages +package server; + +public open class Server() { + private val foo = "foo" + + open fun processRequest() = foo +} + +public class ServerEx(): Server() { + override fun processRequest() = "foo" + foo +} + diff --git a/idea/testData/findUsages/findPropertyUsages/kotlinPrivatePropertyUsages.1.kt b/idea/testData/findUsages/findPropertyUsages/kotlinPrivatePropertyUsages.1.kt new file mode 100644 index 00000000000..fc85e72876a --- /dev/null +++ b/idea/testData/findUsages/findPropertyUsages/kotlinPrivatePropertyUsages.1.kt @@ -0,0 +1,8 @@ +import server.*; + +class Client { + public fun foo() { + println(Server().foo) + ServerEx().processRequest() + } +} diff --git a/idea/testData/findUsages/findPropertyUsages/kotlinPrivatePropertyUsages.results.txt b/idea/testData/findUsages/findPropertyUsages/kotlinPrivatePropertyUsages.results.txt new file mode 100644 index 00000000000..b5573c54296 --- /dev/null +++ b/idea/testData/findUsages/findPropertyUsages/kotlinPrivatePropertyUsages.results.txt @@ -0,0 +1,3 @@ +Selector (5: 26) println(Server().foo) +Value read (12: 45) override fun processRequest() = "foo" + foo +Value read (8: 33) open fun processRequest() = foo diff --git a/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java b/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java index 9193b674834..d7c42cb3bce 100644 --- a/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java +++ b/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java @@ -163,6 +163,11 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest { doTest("idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.0.kt"); } + @TestMetadata("kotlinPrivateClassUsages.0.kt") + public void testKotlinPrivateClassUsages() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/kotlinPrivateClassUsages.0.kt"); + } + } @TestMetadata("idea/testData/findUsages/findMethodUsages") @@ -191,6 +196,11 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest { doTest("idea/testData/findUsages/findMethodUsages/kotlinOverloadAndExtensionUsages.0.kt"); } + @TestMetadata("kotlinPrivateMethodUsages.0.kt") + public void testKotlinPrivateMethodUsages() throws Exception { + doTest("idea/testData/findUsages/findMethodUsages/kotlinPrivateMethodUsages.0.kt"); + } + @TestMetadata("kotlinTopLevelMethodUsages.0.kt") public void testKotlinTopLevelMethodUsages() throws Exception { doTest("idea/testData/findUsages/findMethodUsages/kotlinTopLevelMethodUsages.0.kt"); @@ -214,6 +224,11 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest { doTest("idea/testData/findUsages/findObjectUsages/kotlinObjectUsages.0.kt"); } + @TestMetadata("kotlinPrivateObjectUsages.0.kt") + public void testKotlinPrivateObjectUsages() throws Exception { + doTest("idea/testData/findUsages/findObjectUsages/kotlinPrivateObjectUsages.0.kt"); + } + } @TestMetadata("idea/testData/findUsages/findPropertyUsages") @@ -227,6 +242,11 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest { doTest("idea/testData/findUsages/findPropertyUsages/javaPropertyUsages.0.kt"); } + @TestMetadata("kotlinPrivatePropertyUsages.0.kt") + public void testKotlinPrivatePropertyUsages() throws Exception { + doTest("idea/testData/findUsages/findPropertyUsages/kotlinPrivatePropertyUsages.0.kt"); + } + @TestMetadata("kotlinTopLevelPropertyUsages.0.kt") public void testKotlinTopLevelPropertyUsages() throws Exception { doTest("idea/testData/findUsages/findPropertyUsages/kotlinTopLevelPropertyUsages.0.kt");