Bug 339980: [move method] Move method adds enum name to case statements
Test cases
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test43/in/A.java b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test43/in/A.java
new file mode 100644
index 0000000..6fcbd27
--- /dev/null
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test43/in/A.java
@@ -0,0 +1,23 @@
+package p;
+
+public class A {
+ B someField;
+
+ enum MyEnum {
+ FOO, BAR
+ }
+
+ void someMethod(MyEnum fooBar) {
+ switch (fooBar) {
+ case FOO:
+ System.out.println("foo");
+ break;
+ case BAR:
+ System.out.println("bar");
+ }
+ }
+}
+
+class B {
+
+}
\ No newline at end of file
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test43/out/A.java b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test43/out/A.java
new file mode 100644
index 0000000..347c5bf
--- /dev/null
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test43/out/A.java
@@ -0,0 +1,23 @@
+package p;
+
+public class A {
+ B someField;
+
+ enum MyEnum {
+ FOO, BAR;
+
+ void someMethod() {
+ switch (this) {
+ case FOO:
+ System.out.println("foo");
+ break;
+ case BAR:
+ System.out.println("bar");
+ }
+ }
+ }
+}
+
+class B {
+
+}
\ No newline at end of file
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/in/A.java b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/in/A.java
new file mode 100644
index 0000000..e704ee1
--- /dev/null
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/in/A.java
@@ -0,0 +1,21 @@
+package p;
+
+public class A {
+ B someField;
+ static int a;
+ String b;
+
+ void someMethod(MyEnum fooBar) {
+ switch (fooBar) {
+ case FOO:
+ System.out.println(a);
+ break;
+ case BAR:
+ System.out.println(b);
+ }
+ }
+}
+
+class B {
+
+}
\ No newline at end of file
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/in/MyEnum.java b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/in/MyEnum.java
new file mode 100644
index 0000000..5f38e65
--- /dev/null
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/in/MyEnum.java
@@ -0,0 +1,5 @@
+package p;
+
+enum MyEnum {
+ FOO, BAR
+}
\ No newline at end of file
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/out/A.java b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/out/A.java
new file mode 100644
index 0000000..06daca1
--- /dev/null
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/out/A.java
@@ -0,0 +1,11 @@
+package p;
+
+public class A {
+ B someField;
+ static int a;
+ String b;
+}
+
+class B {
+
+}
\ No newline at end of file
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/out/MyEnum.java b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/out/MyEnum.java
new file mode 100644
index 0000000..490d2ad
--- /dev/null
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test44/out/MyEnum.java
@@ -0,0 +1,15 @@
+package p;
+
+enum MyEnum {
+ FOO, BAR;
+
+ void someMethod(A a) {
+ switch (this) {
+ case FOO:
+ System.out.println(A.a);
+ break;
+ case BAR:
+ System.out.println(a.b);
+ }
+ }
+}
\ No newline at end of file
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test45/in/A.java b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test45/in/A.java
new file mode 100644
index 0000000..165a77b
--- /dev/null
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test45/in/A.java
@@ -0,0 +1,24 @@
+package p;
+
+public class A extends B{
+ B someField;
+ static int a;
+ String b;
+
+ void someMethod(MyEnum fooBar) {
+ switch (fooBar) {
+ case FOO:
+ System.out.println(a);
+ break;
+ case BAR:
+ System.out.println(b);
+ System.out.println(someField);
+ }
+ }
+}
+
+class B {
+ enum MyEnum {
+ FOO, BAR
+ }
+}
\ No newline at end of file
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test45/out/A.java b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test45/out/A.java
new file mode 100644
index 0000000..1f2f9b9
--- /dev/null
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/MoveInstanceMethod/canMove/test45/out/A.java
@@ -0,0 +1,24 @@
+package p;
+
+public class A extends B{
+ B someField;
+ static int a;
+ String b;
+}
+
+class B {
+ enum MyEnum {
+ FOO, BAR;
+
+ void someMethod(A a) {
+ switch (this) {
+ case FOO:
+ System.out.println(A.a);
+ break;
+ case BAR:
+ System.out.println(a.b);
+ System.out.println(a.someField);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests.java
index ad2d8e7..523d563 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests.java
@@ -445,6 +445,21 @@
helper1(new String[] { "p.A", "p.B", "p.Outer" }, "p.A", 6, 17, 6, 20, PARAMETER, "b", true, true);
}
+ // Test problem with enum (bug 339980)
+ public void test43() throws Exception {
+ helper1(new String[] { "p.A" }, "p.A", 10, 10, 10, 20, PARAMETER, "fooBar", true, true);
+ }
+
+ // Test problem with enum (bug 339980)
+ public void test44() throws Exception {
+ helper1(new String[] { "p.A", "p.MyEnum" }, "p.A", 8, 10, 8, 20, PARAMETER, "fooBar", true, true);
+ }
+
+ // Test problem with enum (bug 339980)
+ public void test45() throws Exception {
+ helper1(new String[] { "p.A" }, "p.A", 8, 10, 8, 20, PARAMETER, "fooBar", true, true);
+ }
+
// Move mA1 to field fB, do not inline delegator
public void test3() throws Exception {
helper1(new String[] { "p1.A", "p2.B", "p3.C"}, "p1.A", 9, 17, 9, 20, FIELD, "fB", false, false);