Use classes to increase search pattern for static declarations

Static common names like 'INSTANCE', 'create' can give many irrelevant
references in the project.

#KT-17000 Fixed
#KT-14974 Fixed
This commit is contained in:
Nikolay Krasko
2017-04-29 15:51:17 +03:00
parent 7ee58be515
commit 2d51d72708
11 changed files with 180 additions and 22 deletions
@@ -1,11 +1,23 @@
// PSI_ELEMENT: com.intellij.psi.PsiMethod
// OPTIONS: usages
public class JavaClass {
public class JavaClassInvoke {
public void <caret>invoke() {
}
public static class OtherJavaClass extends JavaClass {
public static JavaClassInvoke INSTANCE = new JavaClassInvoke();
public static class Other extends JavaClassInvoke {}
public static class AnotherOther extends Other {}
public static class JavaOther {
public void invoke() {
}
public static JavaOther INSTANCE = new JavaOther();
}
public static class OtherJavaClass extends JavaClassInvoke {
public static OtherJavaClass OJC = new OtherJavaClass();
}
}
@@ -1,8 +1,14 @@
fun f(c: JavaClass) {
fun f(c: JavaClassInvoke) {
c()
}
fun foo(o: JavaClass.OtherJavaClass) {
fun foo(o: JavaClassInvoke.OtherJavaClass) {
o()
JavaClass.OtherJavaClass.OJC()
}
JavaClassInvoke.OtherJavaClass.OJC()
}
fun foo() {
JavaClassInvoke.INSTANCE()
JavaClassInvoke.AnotherOther.INSTANCE()
JavaClassInvoke.JavaOther.INSTANCE()
}
@@ -1,8 +1,18 @@
Resolved INSTANCE()
Resolved INSTANCE()
Resolved INSTANCE()
Resolved INSTANCE()
Resolved OJC()
Resolved c()
Resolved o()
Searched references to JavaClass
Searched references to JavaClass.OtherJavaClass
Searched references to JavaClass.OtherJavaClass.OJC in non-Java files
Searched references to parameter c of f(c: JavaClass) in non-Java files
Searched references to parameter o of foo(o: JavaClass.OtherJavaClass) in non-Java files
Searched references to JavaClassInvoke
Searched references to JavaClassInvoke.AnotherOther
Searched references to JavaClassInvoke.Other
Searched references to JavaClassInvoke.OtherJavaClass
Searched references to parameter c of f(c: JavaClassInvoke) in non-Java files
Searched references to parameter o of foo(o: JavaClassInvoke.OtherJavaClass) in non-Java files
Searched references to static member in non-Java files by request AnotherOther.INSTANCE
Searched references to static member in non-Java files by request JavaClassInvoke.INSTANCE
Searched references to static member in non-Java files by request Other.INSTANCE
Searched references to static member in non-Java files by request OtherJavaClass.INSTANCE
Searched references to static member in non-Java files by request OtherJavaClass.OJC
@@ -1,3 +1,5 @@
Implicit 'invoke' 11 JavaClassInvoke.INSTANCE()
Implicit 'invoke' 12 JavaClassInvoke.AnotherOther.INSTANCE()
Implicit 'invoke' 2 c()
Implicit 'invoke' 6 o()
Implicit 'invoke' 7 JavaClass.OtherJavaClass.OJC()
Implicit 'invoke' 7 JavaClassInvoke.OtherJavaClass.OJC()
@@ -0,0 +1,11 @@
// PSI_ELEMENT: com.intellij.psi.PsiMethod
// OPTIONS: usages
public class JavaClassWI {
public void <caret>invoke() {
}
public static JavaClassWI INSTANCE = new JavaClass();
public static class Other extends JavaClassWI {}
}
@@ -0,0 +1,5 @@
import JavaClassWI.Other.INSTANCE
fun foo() {
INSTANCE()
}
@@ -0,0 +1,6 @@
Resolved INSTANCE()
Searched imported static member PsiField:INSTANCE in [JetFile: javaInvokeWithStaticImport.0.kt]
Searched references to JavaClassWI
Searched references to JavaClassWI.Other
Searched references to static member in non-Java files by request JavaClassWI.INSTANCE
Searched references to static member in non-Java files by request Other.INSTANCE
@@ -0,0 +1 @@
Implicit 'invoke' 4 INSTANCE()