Flip parameters correctly in Flip Comma intention (IDEA-179397)

This commit is contained in:
Bas Leijdekkers
2017-09-22 13:44:36 +02:00
parent 5e81bd7f1d
commit e7b18faba4
2 changed files with 12 additions and 4 deletions
@@ -16,10 +16,7 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.openapi.editor.actions.FlipCommaIntention;
import com.intellij.psi.JavaTokenType;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiIdentifier;
import com.intellij.psi.PsiVariable;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiUtil;
/**
@@ -30,6 +27,8 @@ public class JavaFlipper implements FlipCommaIntention.Flipper {
@Override
public boolean flip(PsiElement left, PsiElement right) {
if (left instanceof PsiVariable && right instanceof PsiVariable) {
if (left instanceof PsiParameter || right instanceof PsiParameter) return false;
// flips multiple variables in a single declaration
final PsiVariable leftVariable = (PsiVariable)left;
final PsiVariable rightVariable = (PsiVariable)right;
final PsiIdentifier leftIdentifier = leftVariable.getNameIdentifier();
@@ -23,6 +23,15 @@ import com.siyeh.ipp.IPPTestCase;
*/
public class FlipCommaIntentionTest extends IPPTestCase {
public void testFlipParameters() {
doTest("class C {" +
" void foo(int a,/*_Flip ','*/ String b) {}" +
"}",
"class C {" +
" void foo(String b, int a) {}" +
"}");
}
public void testMultipleFieldsSingleDeclaration() {
doTest("class C {\n" +
" int a,/*_Flip ','*/ b;\n" +