diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/singlereturn/ReturnReplacementContext.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/singlereturn/ReturnReplacementContext.java index 13090024acd3..30f6dab7b723 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/singlereturn/ReturnReplacementContext.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/singlereturn/ReturnReplacementContext.java @@ -232,6 +232,9 @@ class ReturnReplacementContext { PsiElement rBrace = block.getRBrace(); int endPos = rBrace == null ? children.length : ArrayUtil.lastIndexOf(children, rBrace); assert endPos >= pos; + if (pos + 1 < children.length && children[pos + 1] instanceof PsiWhiteSpace) { + pos++; + } return Arrays.copyOfRange(children, pos + 1, endPos); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/convertToSingleReturn/afterBlankLine.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/convertToSingleReturn/afterBlankLine.java new file mode 100644 index 000000000000..52ed960fbb47 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/convertToSingleReturn/afterBlankLine.java @@ -0,0 +1,16 @@ +// "Transform body to single exit-point form" "true" +class Test { + String test(String s) { + String result = null; + try { + Integer.parseInt(s); + } catch (NumberFormatException ex) { + result = "Cannot parse number"; + } + if (result == null) { + result = "Ok"; + } + + return result; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/convertToSingleReturn/beforeBlankLine.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/convertToSingleReturn/beforeBlankLine.java new file mode 100644 index 000000000000..c8cddfe5bf21 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/convertToSingleReturn/beforeBlankLine.java @@ -0,0 +1,13 @@ +// "Transform body to single exit-point form" "true" +class Test { + String test(String s) { + try { + Integer.parseInt(s); + } + catch (NumberFormatException ex) { + return "Cannot parse number"; + } + + return "Ok"; + } +} \ No newline at end of file