From a66d25d17b254dd4fb41aefabb83bb7a1fde999a Mon Sep 17 00:00:00 2001 From: Knut Wannheden Date: Mon, 2 Oct 2023 15:08:36 +0200 Subject: [PATCH] Don't enforce LF before annotations on primary constructor --- .../kotlin/format/WrappingAndBracesVisitor.java | 5 +++++ .../kotlin/format/WrappingAndBracesTest.java | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/main/java/org/openrewrite/kotlin/format/WrappingAndBracesVisitor.java b/src/main/java/org/openrewrite/kotlin/format/WrappingAndBracesVisitor.java index 68945e949..651700813 100644 --- a/src/main/java/org/openrewrite/kotlin/format/WrappingAndBracesVisitor.java +++ b/src/main/java/org/openrewrite/kotlin/format/WrappingAndBracesVisitor.java @@ -22,6 +22,7 @@ import org.openrewrite.java.tree.*; import org.openrewrite.kotlin.KotlinIsoVisitor; import org.openrewrite.kotlin.marker.OmitBraces; +import org.openrewrite.kotlin.marker.PrimaryConstructor; import org.openrewrite.kotlin.style.WrappingAndBracesStyle; import java.util.List; @@ -97,6 +98,10 @@ public J.VariableDeclarations visitVariableDeclarations(J.VariableDeclarations m @Override public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration method, P p) { J.MethodDeclaration m = super.visitMethodDeclaration(method, p); + if (m.getMarkers().findFirst(PrimaryConstructor.class).isPresent()) { + return m; + } + m = m.withLeadingAnnotations(withNewlines(m.getLeadingAnnotations())); List modifiers = method.getModifiers(); diff --git a/src/test/java/org/openrewrite/kotlin/format/WrappingAndBracesTest.java b/src/test/java/org/openrewrite/kotlin/format/WrappingAndBracesTest.java index 2a5ed5001..93d8d2e4f 100644 --- a/src/test/java/org/openrewrite/kotlin/format/WrappingAndBracesTest.java +++ b/src/test/java/org/openrewrite/kotlin/format/WrappingAndBracesTest.java @@ -562,4 +562,15 @@ class Test {} ) ); } + + @Test + void primaryConstructorAnnotations() { + rewriteRun( + kotlin( + """ + class T @Suppress constructor() + """ + ) + ); + } }