EA-38866 - AIOOBE: ParameterCanBeLocalInspection$ConvertParameterToLocalQuickFix.applyChanges

This commit is contained in:
Anna Kozlova
2012-09-10 18:47:49 +04:00
parent 61f80166a6
commit b2d6e4266f
3 changed files with 30 additions and 3 deletions
@@ -159,13 +159,16 @@ public class ParameterCanBeLocalInspection extends BaseJavaLocalInspectionTool {
final PsiMethod method = (PsiMethod)scope;
final PsiParameter[] parameters = method.getParameterList().getParameters();
final ParameterInfoImpl[] info = new ParameterInfoImpl[parameters.length - 1];
final List<ParameterInfoImpl> info = new ArrayList<ParameterInfoImpl>();
for (int i = 0; i < parameters.length; i++) {
PsiParameter psiParameter = parameters[i];
if (psiParameter == parameter) continue;
info[i] = new ParameterInfoImpl(i, psiParameter.getName(), psiParameter.getType());
info.add(new ParameterInfoImpl(i, psiParameter.getName(), psiParameter.getType()));
}
final ChangeSignatureProcessor cp = new ChangeSignatureProcessor(project, method, false, VisibilityUtil.getVisibilityModifier(method.getModifierList()), method.getName(), method.getReturnType(), info){
final ParameterInfoImpl[] newParams = info.toArray(new ParameterInfoImpl[info.size()]);
final String visibilityModifier = VisibilityUtil.getVisibilityModifier(method.getModifierList());
final ChangeSignatureProcessor cp = new ChangeSignatureProcessor(project, method, false, visibilityModifier,
method.getName(), method.getReturnType(), newParams) {
@Override
protected void performRefactoring(UsageInfo[] usages) {
final PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(project);
@@ -0,0 +1,12 @@
// "Convert to local variable" "true"
class Temp {
void foo(int k) {
int x = 5;
System.out.println(x);
}
void bar() {
foo(42);
}
}
@@ -0,0 +1,12 @@
// "Convert to local variable" "true"
class Temp {
void foo(int <caret>x, int k) {
x = 5;
System.out.println(x);
}
void bar() {
foo(2, 42);
}
}