diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java b/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java index 5e008afb4797..e2de5a55e0b3 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/folding/impl/JavaFoldingBuilderBase.java @@ -598,9 +598,15 @@ public abstract class JavaFoldingBuilderBase extends CustomFoldingBuilder implem Document document = method.getContainingFile().getViewProvider().getDocument(); PsiCodeBlock body = method.getBody(); - if (body == null || document == null) { + PsiIdentifier nameIdentifier = method.getNameIdentifier(); + if (body == null || document == null || nameIdentifier == null) { return false; } + if (document.getLineNumber(nameIdentifier.getTextRange().getStartOffset()) != + document.getLineNumber(method.getParameterList().getTextRange().getEndOffset())) { + return false; + } + PsiJavaToken lBrace = body.getLBrace(); PsiJavaToken rBrace = body.getRBrace(); PsiStatement[] statements = body.getStatements(); diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy index bf71e183d5e6..095de51543af 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy @@ -568,14 +568,20 @@ class Test { public void "test fold one-line methods"() { configure """class Foo { + @Override int someMethod() { return 0; } + int someOtherMethod( + int param) { + return 0; + } + }""" PsiClass fooClass = JavaPsiFacade.getInstance(project).findClass('Foo', GlobalSearchScope.allScope(project)) def regions = myFixture.editor.foldingModel.allFoldRegions.sort { it.startOffset } - assert regions.size() == 2 + assert regions.size() == 3 checkAccessorFolding(regions[0], regions[1], fooClass.methods[0]) }