diff --git a/open-java-format/src/main/java/com/palantir/javaformat/java/JavaInputAstVisitor.java b/open-java-format/src/main/java/com/palantir/javaformat/java/JavaInputAstVisitor.java index 0fd3569d8..e17ac664d 100644 --- a/open-java-format/src/main/java/com/palantir/javaformat/java/JavaInputAstVisitor.java +++ b/open-java-format/src/main/java/com/palantir/javaformat/java/JavaInputAstVisitor.java @@ -2669,18 +2669,29 @@ private void visitToDeclare( Optional trailing, Optional annotationBreakForRecords) { sync(node); + Optional typeWithDims; + Tree type; + if (node.getType() != null) { + TypeWithDims extractedDims = DimensionHelpers.extractDims(node.getType(), SortedDims.YES); + typeWithDims = Optional.of(extractedDims); + type = extractedDims.node; + } else { + // "var" and an untyped lambda parameter have no type tree + typeWithDims = Optional.empty(); + type = null; + } declareOne( kind, annotationsDirection, Optional.of(node.getModifiers()), - node.getType(), + type, node.getName(), "", equals, initializer, trailing, /* receiverExpression= */ Optional.empty(), - /* typeWithDims= */ Optional.empty(), + typeWithDims, annotationBreakForRecords); } diff --git a/open-java-format/src/test/resources/com/palantir/javaformat/java/testdata/I374.input b/open-java-format/src/test/resources/com/palantir/javaformat/java/testdata/I374.input new file mode 100644 index 000000000..a36919e4d --- /dev/null +++ b/open-java-format/src/test/resources/com/palantir/javaformat/java/testdata/I374.input @@ -0,0 +1,9 @@ +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) +@interface MyTypeAnno {} + +public class GjfFailure { + void m(int a @MyTypeAnno []) {} +} diff --git a/open-java-format/src/test/resources/com/palantir/javaformat/java/testdata/I374.output b/open-java-format/src/test/resources/com/palantir/javaformat/java/testdata/I374.output new file mode 100644 index 000000000..50a731dc6 --- /dev/null +++ b/open-java-format/src/test/resources/com/palantir/javaformat/java/testdata/I374.output @@ -0,0 +1,9 @@ +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) +@interface MyTypeAnno {} + +public class GjfFailure { + void m(int a @MyTypeAnno []) {} +}