diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java b/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java index 567189f3a563..c39f35532d80 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/JavaSpacePropertyProcessor.java @@ -1480,9 +1480,12 @@ public class JavaSpacePropertyProcessor extends JavaElementVisitor { else if (myRole2 == ChildRole.REFERENCE_PARAMETER_LIST) { createSpaceInCode(mySettings.SPACE_BEFORE_TYPE_PARAMETER_LIST); } - else if (myRole2 == ChildRole.DOT){ + else if (myRole2 == ChildRole.DOT) { createSpaceInCode(false); } + else if (myType1 == JavaElementType.ANNOTATION) { + createSpaceInCode(true); + } } @Override diff --git a/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java b/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java index 566a436134bb..a5b34fc53a17 100644 --- a/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/formatter/java/JavaFormatterSpaceTest.java @@ -540,4 +540,18 @@ public class JavaFormatterSpaceTest extends AbstractJavaFormatterTest { getJavaSettings().SPACE_AROUND_TYPE_BOUNDS_IN_TYPE_PARAMETERS = false; doTextTest(before, "public class Foo {\n}"); } + + public void testInnerTypeAnnotations() { + doTextTest( + "class C<@TA(1)T> {\n" + + " L<@TA(2)A> f = (@TA(3) A) new @TA(4) A() {\n" + + " };\n" + + "}", + + "class C<@TA(1) T> {\n" + + " L<@TA(2) A> f = (@TA(3) A) new @TA(4) A() {\n" + + " };\n" + + "}" + ); + } }