diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ConvertToNestedIfIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ConvertToNestedIfIntention.java index 6a1e5c24e426..3c6d1643f195 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ConvertToNestedIfIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ConvertToNestedIfIntention.java @@ -56,10 +56,16 @@ public class ConvertToNestedIfIntention extends Intention { final PsiElementFactory elementFactory = JavaPsiFacade.getInstance(project).getElementFactory(); final PsiBlockStatement blockStatement = (PsiBlockStatement)elementFactory.createStatementFromText("{" + newStatementText + "}", returnStatement); final PsiElement parent = returnStatement.getParent(); - for (PsiStatement st : blockStatement.getCodeBlock().getStatements()) { - CodeStyleManager.getInstance(project).reformat(parent.addBefore(st, returnStatement)); + if (parent instanceof PsiCodeBlock) { + for (PsiStatement st : blockStatement.getCodeBlock().getStatements()) { + CodeStyleManager.getInstance(project).reformat(parent.addBefore(st, returnStatement)); + } + PsiReplacementUtil.replaceStatement(returnStatement, "return false;", tracker); + } + else { + blockStatement.getCodeBlock().add(elementFactory.createStatementFromText("return false;", returnStatement)); + tracker.replaceAndRestoreComments(returnStatement, blockStatement); } - PsiReplacementUtil.replaceStatement(returnStatement, "return false;", tracker); } private static StringBuilder buildIf(@Nullable PsiExpression expression, diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/trivialif/convert_to_nested_if/NoBraces.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/trivialif/convert_to_nested_if/NoBraces.java new file mode 100644 index 000000000000..0dfbce12a833 --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/trivialif/convert_to_nested_if/NoBraces.java @@ -0,0 +1,9 @@ +package com.siyeh.ipp.trivialif.convert_to_nested_if; + +public class X { + + boolean m(boolean a, boolean b, boolean c) { + if (a) return b || c;//c1 + return false;//c2 + } +} diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/trivialif/convert_to_nested_if/NoBraces_after.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/trivialif/convert_to_nested_if/NoBraces_after.java new file mode 100644 index 000000000000..d5a4cf86cf14 --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/trivialif/convert_to_nested_if/NoBraces_after.java @@ -0,0 +1,14 @@ +package com.siyeh.ipp.trivialif.convert_to_nested_if; + +public class X { + + boolean m(boolean a, boolean b, boolean c) { + //c1 + if (a) { + if (b) return true; + if (c) return true; + return false; + } + return false;//c2 + } +} diff --git a/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/trivialif/ConvertToNestedIfIntentionTest.java b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/trivialif/ConvertToNestedIfIntentionTest.java index 1515c61030f3..53158ebd727b 100644 --- a/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/trivialif/ConvertToNestedIfIntentionTest.java +++ b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/trivialif/ConvertToNestedIfIntentionTest.java @@ -22,6 +22,7 @@ public class ConvertToNestedIfIntentionTest extends IPPTestCase { public void testNested() { doTest(); } public void testStaircase() { doTest(); } + public void testNoBraces() { doTest(); } public void testStaircaseWithParenthesis() { doTest(); } public void testStaircaseWithOrInside() { doTest(); } public void testOrStaircaseInside() { doTest(); }