summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-05-17 10:08:19 +0100
committerMichael Williamson <mike@zwobble.org>2026-05-17 10:08:19 +0100
commit679f041d110605e7797795cd42ae6914193b9d88 (patch)
tree54c877ad414740863fea302ae3aa3d5dc2f6a0f5 /src/main/java
parent23985cff89b03270d429aedd1a7b5ccb0ec66073 (diff)
Add body to Java record node
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java1
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java13
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclaration.java1
3 files changed, 14 insertions, 1 deletions
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<JavaRecordComponent> components,
List<JavaTypeRef> implementsTypes,
+ List<JavaClassBodyDeclaration> body,
DocComment docComment
) implements JavaTypeDeclaration {
}