fixed bug 472962: [formatter] Missing whitespace after >, ] in annotation type declaration
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java
index 45d659f..8ad978a 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java
@@ -11089,4 +11089,18 @@
"}";
formatSource(source);
}
+/**
+ * @bug 472962: [formatter] Missing whitespace after >, ] in annotation type declaration
+ * @test test that there is whitespace before element identifiers
+ * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=472962"
+ */
+public void testBug472962() {
+ String source =
+ "public @interface A {\r\n" +
+ " String[] strings();\r\n" +
+ "\r\n" +
+ " Class<String> stringClasses();\r\n" +
+ "}";
+ formatSource(source);
+}
}
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/SpacePreparator.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/SpacePreparator.java
index 4acb9e6..d457503 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/SpacePreparator.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/SpacePreparator.java
@@ -422,6 +422,7 @@
@Override
public boolean visit(AnnotationTypeMemberDeclaration node) {
+ handleToken(node.getName(), TokenNameIdentifier, true, false);
handleToken(node.getName(), TokenNameLPAREN,
this.options.insert_space_before_opening_paren_in_annotation_type_member_declaration, false);
handleEmptyParens(node.getName(),
@@ -922,7 +923,7 @@
private void handleToken(ASTNode node, int tokenType, boolean spaceBefore, boolean spaceAfter) {
if (spaceBefore || spaceAfter) {
- Token token = this.tm.get(this.tm.findIndex(node.getStartPosition(), tokenType, true));
+ Token token = this.tm.firstTokenIn(node, tokenType);
handleToken(token, spaceBefore, spaceAfter);
}
}