move instance method: resolve conflict local var/field in target class

IDEA-174017
This commit is contained in:
Anna Kozlova
2017-06-08 13:30:30 +03:00
parent 46c37550c0
commit e32734234d
4 changed files with 59 additions and 5 deletions

View File

@@ -0,0 +1,23 @@
import java.util.ArrayList;
import java.util.List;
class Data {
final List<Datum> datums;
Data(List<Datum> datums) {
this.datums = datums;
}
static class Datum { }
}
class DataUser {
public List<Data.Datum> fi<caret>lter(Data data) {
List<Data.Datum> datums = new ArrayList<>();
for (Data.Datum datum : data.datums) {
if (datum != null) datums.add(datum);
}
return datums;
}
}

View File

@@ -0,0 +1,24 @@
import java.util.ArrayList;
import java.util.List;
class Data {
final List<Datum> datums;
Data(List<Datum> datums) {
this.datums = datums;
}
public List<Datum> filter() {
List<Datum> datums = new ArrayList<>();
for (Datum datum : this.datums) {
if (datum != null) datums.add(datum);
}
return datums;
}
static class Datum { }
}
class DataUser {
}

View File

@@ -104,6 +104,10 @@ public class MoveInstanceMethodTest extends LightRefactoringTestCase {
doTest(true, 0);
}
public void testConflictingLocalVariableAndTargetClassField() throws Exception {
doTest(true, 0);
}
public void testMethodReference() throws Exception {
BaseRefactoringProcessor.ConflictsInTestsException.withIgnoredConflicts(() -> doTest(true, 0));
}