diff --git a/core/src/main/java/com/google/googlejavaformat/java/java14/Java14InputAstVisitor.java b/core/src/main/java/com/google/googlejavaformat/java/java14/Java14InputAstVisitor.java index a9273ce7b..3517c3511 100644 --- a/core/src/main/java/com/google/googlejavaformat/java/java14/Java14InputAstVisitor.java +++ b/core/src/main/java/com/google/googlejavaformat/java/java14/Java14InputAstVisitor.java @@ -15,7 +15,6 @@ package com.google.googlejavaformat.java.java14; import static com.google.common.collect.ImmutableList.toImmutableList; -import static com.google.common.collect.MoreCollectors.toOptional; import com.google.common.base.Verify; import com.google.common.collect.ImmutableList; @@ -34,7 +33,6 @@ import com.sun.source.tree.YieldTree; import com.sun.tools.javac.code.Flags; import com.sun.tools.javac.tree.JCTree; -import com.sun.tools.javac.tree.JCTree.JCMethodDecl; import com.sun.tools.javac.tree.JCTree.JCVariableDecl; import com.sun.tools.javac.tree.TreeInfo; import java.util.List; @@ -141,10 +139,7 @@ public void visitRecordDeclaration(ClassTree node) { if (!node.getTypeParameters().isEmpty()) { typeParametersRest(node.getTypeParameters(), hasSuperInterfaceTypes ? plusFour : ZERO); } - ImmutableList parameters = - compactRecordConstructor(node) - .map(m -> ImmutableList.copyOf(m.getParameters())) - .orElseGet(() -> recordVariables(node)); + ImmutableList parameters = recordVariables(node); token("("); if (!parameters.isEmpty()) { // Break before args. @@ -183,14 +178,6 @@ public void visitRecordDeclaration(ClassTree node) { dropEmptyDeclarations(); } - private static Optional compactRecordConstructor(ClassTree node) { - return node.getMembers().stream() - .filter(JCMethodDecl.class::isInstance) - .map(JCMethodDecl.class::cast) - .filter(m -> (m.mods.flags & COMPACT_RECORD_CONSTRUCTOR) == COMPACT_RECORD_CONSTRUCTOR) - .collect(toOptional()); - } - private static ImmutableList recordVariables(ClassTree node) { return node.getMembers().stream() .filter(JCVariableDecl.class::isInstance) diff --git a/core/src/test/java/com/google/googlejavaformat/java/FormatterIntegrationTest.java b/core/src/test/java/com/google/googlejavaformat/java/FormatterIntegrationTest.java index 39f31e484..b6549f4a8 100644 --- a/core/src/test/java/com/google/googlejavaformat/java/FormatterIntegrationTest.java +++ b/core/src/test/java/com/google/googlejavaformat/java/FormatterIntegrationTest.java @@ -48,7 +48,7 @@ public class FormatterIntegrationTest { private static final ImmutableSet JAVA14_TESTS = - ImmutableSet.of("I477", "Records", "RSLs", "Var", "ExpressionSwitch"); + ImmutableSet.of("I477", "Records", "RSLs", "Var", "ExpressionSwitch", "I574"); private static final ImmutableSet JAVA16_TESTS = ImmutableSet.of("I588"); diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/I574.input b/core/src/test/resources/com/google/googlejavaformat/java/testdata/I574.input new file mode 100644 index 000000000..27d23d040 --- /dev/null +++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/I574.input @@ -0,0 +1,6 @@ +public record Record(@NotNull Object o) { + + public Record { + this.o = o; + } +} \ No newline at end of file diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/I574.output b/core/src/test/resources/com/google/googlejavaformat/java/testdata/I574.output new file mode 100644 index 000000000..b0deb2d10 --- /dev/null +++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/I574.output @@ -0,0 +1,6 @@ +public record Record(@NotNull Object o) { + + public Record { + this.o = o; + } +}