From e7b18faba4cc58107c947403b4909d4199278267 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Fri, 22 Sep 2017 11:28:50 +0200 Subject: [PATCH] Flip parameters correctly in Flip Comma intention (IDEA-179397) --- .../intellij/codeInsight/intention/impl/JavaFlipper.java | 7 +++---- .../codeInsight/intention/FlipCommaIntentionTest.java | 9 +++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/JavaFlipper.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/JavaFlipper.java index 2906f121f12f..8f61f6de2e9d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/JavaFlipper.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/JavaFlipper.java @@ -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(); diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/FlipCommaIntentionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/FlipCommaIntentionTest.java index 14c3fa9e1bd9..0b08788732d9 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/FlipCommaIntentionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/FlipCommaIntentionTest.java @@ -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" +