mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
fix bad loop IDEA-117644 ("Move initializer to constructor" intention breaks code)
This commit is contained in:
@@ -65,16 +65,12 @@ public class MoveInitializerToConstructorAction extends BaseMoveInitializerToMet
|
||||
@NotNull
|
||||
private static Collection<PsiMethod> removeChainedConstructors(@NotNull Collection<PsiMethod> constructors) {
|
||||
final List<PsiMethod> result = new ArrayList<PsiMethod>(constructors);
|
||||
|
||||
final Iterator<PsiMethod> iterator = result.iterator();
|
||||
//noinspection ForLoopThatDoesntUseLoopVariable
|
||||
for (PsiMethod constructor = iterator.next(); iterator.hasNext(); constructor = iterator.next()) {
|
||||
final List<PsiMethod> chained = JavaHighlightUtil.getChainedConstructors(constructor);
|
||||
if (chained != null) {
|
||||
for (Iterator<PsiMethod> iterator = result.iterator(); iterator.hasNext(); ) {
|
||||
final PsiMethod constructor = iterator.next();
|
||||
if (JavaHighlightUtil.getChainedConstructors(constructor) != null) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// "Move initializer to constructor" "true"
|
||||
class X {
|
||||
final String s;
|
||||
final String t;
|
||||
|
||||
X(String s) {
|
||||
this.s = s;
|
||||
t = "t";
|
||||
}
|
||||
X() {
|
||||
this("s");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// "Move initializer to constructor" "true"
|
||||
class X {
|
||||
final String s;
|
||||
final String t = <caret>"t";
|
||||
|
||||
X(String s) {
|
||||
this.s = s;
|
||||
}
|
||||
X() {
|
||||
this("s");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user