mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
ensure sort order as chooser preserves user's selection order
(EA-47464 - AIOOBE: DelegateWithDefaultParamValueIntentionAction.generateMethodPrototype)
This commit is contained in:
+13
-3
@@ -43,6 +43,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
|
||||
/**
|
||||
@@ -91,9 +92,18 @@ public class DelegateWithDefaultParamValueIntentionAction extends PsiElementBase
|
||||
prototype.getModifierList().setModifierProperty(PsiModifier.DEFAULT, true);
|
||||
}
|
||||
|
||||
for (int i = params.length - 1; i >= 0; i--) {
|
||||
PsiParameter param = params[i];
|
||||
final int parameterIndex = method.getParameterList().getParameterIndex(param);
|
||||
final PsiParameterList parameterList = method.getParameterList();
|
||||
Arrays.sort(params, new Comparator<PsiParameter>() {
|
||||
@Override
|
||||
public int compare(PsiParameter p1, PsiParameter p2) {
|
||||
final int parameterIndex1 = parameterList.getParameterIndex(p1);
|
||||
final int parameterIndex2 = parameterList.getParameterIndex(p2);
|
||||
return parameterIndex1 > parameterIndex2 ? -1 : 1;
|
||||
}
|
||||
});
|
||||
|
||||
for (PsiParameter param : params) {
|
||||
final int parameterIndex = parameterList.getParameterIndex(param);
|
||||
prototype.getParameterList().getParameters()[parameterIndex].delete();
|
||||
}
|
||||
return prototype;
|
||||
|
||||
Reference in New Issue
Block a user