From 679f041d110605e7797795cd42ae6914193b9d88 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 17 May 2026 10:08:19 +0100 Subject: Add body to Java record node --- .../output/generators/javatypes/JavaTypesGenerator.java | 1 + .../hobgoblin/compiler/output/lang/java/JavaWriter.java | 13 ++++++++++++- .../output/lang/java/ast/JavaRecordDeclaration.java | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src/main/java') diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java index 062fc9b..1798ad3 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java @@ -95,6 +95,7 @@ public class JavaTypesGenerator implements Generator { )) .toList(), javaClassToImplementsType.getOrDefault(structDefinition.name(), List.of()), + List.of(), structDefinition.docComment() ) ); diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java index adf231d..9d74d7d 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java @@ -145,8 +145,19 @@ public class JavaWriter implements AutoCloseable { } this.writer.write("{"); - this.writer.newLine(); + this.writer.indent(); + + writeWithSeparator( + recordDeclaration.body(), + bodyDeclaration -> { + writer.newLine(); + writeClassBodyDeclaration(bodyDeclaration); + }, + () -> writer.newLine() + ); + this.writer.dedent(); + this.writer.newLine(); this.writer.write("}"); } diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclaration.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclaration.java index 4d7e033..0805a46 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclaration.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclaration.java @@ -8,6 +8,7 @@ public record JavaRecordDeclaration( String name, List components, List implementsTypes, + List body, DocComment docComment ) implements JavaTypeDeclaration { } -- cgit v1.2.3