move member: clear qualifier in annotation inside class (IDEA-190911)

This commit is contained in:
Anna Kozlova
2018-05-02 09:55:56 +03:00
parent fd8c31880e
commit 214bc18ccb
4 changed files with 21 additions and 1 deletions

View File

@@ -46,7 +46,7 @@ public class RefactoringHierarchyUtil {
while (parent != null) {
//noinspection SuspiciousMethodCalls
if (membersToMove.contains(parent)) return true;
if (parent instanceof PsiModifierList) return false; //see IDEADEV-12448
if (parent instanceof PsiModifierList && (targetClass == null || targetClass.getModifierList() == parent)) return false; //see IDEADEV-12448
if (parent instanceof PsiClass && targetClass != null) {
if (targetClass.equals(parent)) return true;
if (includeSubclasses && ((PsiClass) parent).isInheritor(targetClass, true)) return true;

View File

@@ -0,0 +1,8 @@
class A {
}
class B {
public static final String FOO = "foo";
@SuppressWarnings(FOO)
String myFoo;
}

View File

@@ -0,0 +1,8 @@
class A {
public static final String FOO = "foo";
}
class B {
@SuppressWarnings(A.FOO)
String myFoo;
}

View File

@@ -217,6 +217,10 @@ public class MoveMembersTest extends MultiFileTestCase {
doTest("A", "B", 0);
}
public void testClearQualifierInsideInnerAnnotation() {
doTest("A", "B", 0);
}
public void testFromNestedToOuterMethodRef() {
final LanguageLevelProjectExtension projectExtension = LanguageLevelProjectExtension.getInstance(getProject());
final LanguageLevel oldLevel = projectExtension.getLanguageLevel();