Java: Reworked introducing the parameters in duplicate fragments to support repeated argument values (IDEA-201024)

This commit is contained in:
Pavel Dolgov
2018-10-23 15:49:40 +03:00
parent badb73e1d5
commit 3dd5d7513f
10 changed files with 180 additions and 40 deletions
@@ -0,0 +1,14 @@
class C {
void foo(String s, StringBuilder b) {
b.append("repeated");
b.append("repeated");
b.append("repeated");
<selection>
b.append("a");
b.append("a");
b.append("a");
</selection>
b.append("d");
}
}
@@ -0,0 +1,16 @@
class C {
void foo(String s, StringBuilder b) {
newMethod(b, "repeated");
newMethod(b, "a");
b.append("d");
}
private void newMethod(StringBuilder b, String a) {
b.append(a);
b.append(a);
b.append(a);
}
}
@@ -0,0 +1,14 @@
class C {
void foo(String s, StringBuilder b) {
b.append("repeated");
b.append(s);
b.append("repeated");
<selection>
b.append("a");
b.append("b");
b.append("c");
</selection>
b.append("d");
}
}
@@ -0,0 +1,16 @@
class C {
void foo(String s, StringBuilder b) {
newMethod(b, "repeated", s, "repeated");
newMethod(b, "a", "b", "c");
b.append("d");
}
private void newMethod(StringBuilder b, String a, String b2, String c) {
b.append(a);
b.append(b2);
b.append(c);
}
}
@@ -0,0 +1,16 @@
class C {
void foo(String s, StringBuilder b) {
b.append("repeated");
b.append("repeated");
b.append(s);
b.append("repeated");
<selection>
b.append("a");
b.append("b");
b.append("b");
b.append("c");
</selection>
b.append("d");
}
}
@@ -0,0 +1,17 @@
class C {
void foo(String s, StringBuilder b) {
newMethod(b, "repeated", "repeated", s, "repeated");
newMethod(b, "a", "b", "b", "c");
b.append("d");
}
private void newMethod(StringBuilder b, String a, String b2, String b3, String c) {
b.append(a);
b.append(b2);
b.append(b3);
b.append(c);
}
}