Java: Avoid duplicates for shadowed members in completion list for arguments of reflection calls. Simplify building the list of method names with PsiClass.getVisibleSignatures() (IDEA-167250)

This commit is contained in:
Pavel Dolgov
2017-03-03 12:04:52 +03:00
parent 9f2db277e9
commit aedc783354
25 changed files with 213 additions and 29 deletions
@@ -23,4 +23,5 @@ class Test {
public int num;
public int num2;
int num1;
private int num0;
}
@@ -23,4 +23,5 @@ class Test {
public int num;
public int num2;
int num1;
private int num0;
}
@@ -23,6 +23,7 @@ class Test {
public void method(){}
public void method2(A a, B b){}
void method1(){}
private void method0(C c) {}
}
class A {}
@@ -23,6 +23,7 @@ class Test {
public void method(){}
public void method2(A a, B b){}
void method1(){}
private void method0(C c) {}
}
class A {}
@@ -7,9 +7,11 @@ class Main {
class Test extends Parent {
public int num;
int num3;
private int num5;
}
class Parent {
public int num2;
int num4;
private int num6;
}
@@ -7,9 +7,11 @@ class Main {
class Test extends Parent {
public int num;
int num3;
private int num5;
}
class Parent {
public int num2;
int num4;
private int num6;
}
@@ -7,9 +7,11 @@ class Main {
class Test extends Parent {
public void method(){}
void method3(){}
private void method5(){}
}
class Parent {
public void method2(){}
void method4(){}
private void method6(){}
}
@@ -7,9 +7,11 @@ class Main {
class Test extends Parent {
public void method(){}
void method3(){}
private void method5(){}
}
class Parent {
public void method2(){}
void method4(){}
private void method6(){}
}
@@ -7,9 +7,11 @@ class Main {
class Test extends Parent {
public int num;
void int num3;
private int num5;
}
class Parent {
public int num2;
int num4;
private int num6;
}
@@ -7,9 +7,11 @@ class Main {
class Test extends Parent {
public int num;
void int num3;
private int num5;
}
class Parent {
public int num2;
int num4;
private int num6;
}
@@ -7,9 +7,11 @@ class Main {
class Test extends Parent {
public void method(){}
void method3(){}
private void method5(){}
}
class Parent {
public void method2(){}
void method4(){}
private void method6(){}
}
@@ -7,9 +7,11 @@ class Main {
class Test extends Parent {
public void method(){}
void method3(){}
private void method5(){}
}
class Parent {
public void method2(){}
void method4(){}
private void method6(){}
}
@@ -0,0 +1,13 @@
class Main {
void foo() {
Test.class.getField("<caret>");
}
}
class Test extends Parent {
public int shadowed;
}
class Parent {
public int shadowed;
}
@@ -0,0 +1,13 @@
class Main {
void foo() {
Test.class.getField("shadowed");
}
}
class Test extends Parent {
public int shadowed;
}
class Parent {
public int shadowed;
}
@@ -0,0 +1,20 @@
class Main {
void foo() {
Test.class.getField("<caret>");
}
}
class Test extends Parent {
}
class Parent extends Grand {
public int shadowed;
}
class Grand extends GrandGrand {
public int shadowed;
}
class GrandGrand {
public int shadowed;
}
@@ -0,0 +1,20 @@
class Main {
void foo() {
Test.class.getField("shadowed");
}
}
class Test extends Parent {
}
class Parent extends Grand {
public int shadowed;
}
class Grand extends GrandGrand {
public int shadowed;
}
class GrandGrand {
public int shadowed;
}
@@ -0,0 +1,13 @@
class Main {
void foo() {
Test.class.getMethod("<caret>");
}
}
class Test extends Parent {
public static void overloaded(int n){}
}
class Parent {
public static void overloaded(String s){}
}
@@ -0,0 +1,13 @@
class Main {
void foo() {
Test.class.getMethod("overloaded", String.class);
}
}
class Test extends Parent {
public static void overloaded(int n){}
}
class Parent {
public static void overloaded(String s){}
}
@@ -0,0 +1,10 @@
class Main {
void foo() {
Test.class.getMethod("<caret>");
}
}
class Test {
public void overloaded(){}
public void overloaded(int n){}
}
@@ -0,0 +1,10 @@
class Main {
void foo() {
Test.class.getMethod("overloaded", int.class);
}
}
class Test {
public void overloaded(){}
public void overloaded(int n){}
}
@@ -0,0 +1,13 @@
class Main {
void foo() {
Test.class.getMethod("<caret>");
}
}
class Test extends Parent {
public static void shadowed(){}
}
class Parent {
public static void shadowed(){}
}
@@ -0,0 +1,13 @@
class Main {
void foo() {
Test.class.getMethod("shadowed");
}
}
class Test extends Parent {
public static void shadowed(){}
}
class Parent {
public static void shadowed(){}
}