From af250865af2dbbec9ca001b812eab4da40b8478a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivo=20=C5=A0m=C3=ADd?= Date: Wed, 31 Jan 2018 16:42:43 +0300 Subject: [PATCH] move enum to inner: don't add static modifier (IDEA-185872) --- .../moveClassesOrPackages/JavaMoveClassToInnerHandler.java | 2 +- .../moveClassToInner/innerEnum/after/pack1/Class1.java | 6 ++++++ .../moveClassToInner/innerEnum/after/pack2/empty.txt | 0 .../moveClassToInner/innerEnum/before/pack1/Class1.java | 4 ++++ .../moveClassToInner/innerEnum/before/pack2/AEnum.java | 5 +++++ .../moveClassToInner/innerEnum/before/pack2/empty.txt | 0 .../com/intellij/java/refactoring/MoveClassToInnerTest.java | 4 ++++ 7 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/refactoring/moveClassToInner/innerEnum/after/pack1/Class1.java create mode 100644 java/java-tests/testData/refactoring/moveClassToInner/innerEnum/after/pack2/empty.txt create mode 100644 java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack1/Class1.java create mode 100644 java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack2/AEnum.java create mode 100644 java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack2/empty.txt diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassToInnerHandler.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassToInnerHandler.java index 452b3d7cc03d..5a3a68512ff6 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassToInnerHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassToInnerHandler.java @@ -49,7 +49,7 @@ public class JavaMoveClassToInnerHandler implements MoveClassToInnerHandler { if (targetClass.isInterface()) { PsiUtil.setModifierProperty(newClass, PsiModifier.PACKAGE_LOCAL, true); } - else { + else if (!newClass.isEnum()) { PsiUtil.setModifierProperty(newClass, PsiModifier.STATIC, true); } return (PsiClass)ChangeContextUtil.decodeContextInfo(newClass, null, null); diff --git a/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/after/pack1/Class1.java b/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/after/pack1/Class1.java new file mode 100644 index 000000000000..7fca2bc6e73a --- /dev/null +++ b/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/after/pack1/Class1.java @@ -0,0 +1,6 @@ +package pack1; + +public class Class1 { + public enum AEnum { + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/after/pack2/empty.txt b/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/after/pack2/empty.txt new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack1/Class1.java b/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack1/Class1.java new file mode 100644 index 000000000000..231fe0676ab2 --- /dev/null +++ b/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack1/Class1.java @@ -0,0 +1,4 @@ +package pack1; + +public class Class1 { +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack2/AEnum.java b/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack2/AEnum.java new file mode 100644 index 000000000000..58fc5bdeedcb --- /dev/null +++ b/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack2/AEnum.java @@ -0,0 +1,5 @@ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package pack2; + +public enum AEnum { +} diff --git a/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack2/empty.txt b/java/java-tests/testData/refactoring/moveClassToInner/innerEnum/before/pack2/empty.txt new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/MoveClassToInnerTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/MoveClassToInnerTest.java index 30c0accb9575..d3fefef4565f 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/MoveClassToInnerTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/MoveClassToInnerTest.java @@ -52,6 +52,10 @@ public class MoveClassToInnerTest extends RefactoringTestCase { doTest(new String[] { "pack1.Class1" }, "pack2.A"); } + public void testInnerEnum() throws Exception { + doTest(new String[] { "pack2.AEnum" }, "pack1.Class1"); + } + public void testInnerInsideMoved() throws Exception { doTest(new String[] { "pack1.Class1" }, "pack2.A"); }