diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-05-29 16:58:06 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-05-29 16:58:06 +0100 |
| commit | ec184c5b7baccdc77a3dab790709838256546d21 (patch) | |
| tree | e48d3af3041d42711f29455a421648eefb13639a /src/main/java/org | |
| parent | 44d29e7fec1d3b7e81cebf7c5274d9a053727bc1 (diff) | |
Add body to Java interfaces
Diffstat (limited to 'src/main/java/org')
3 files changed, 9 insertions, 0 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 0c4b8b8..8f6bd48 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 @@ -142,6 +142,7 @@ public class JavaTypesGenerator implements Generator { sumDefinition.variants().stream() .map(variant -> generateTypeRef(variant.type(), context)) .toList(), + List.of(), JavaCustomArea.type(generateTypeRef(sumDefinition.type(), context), "body"), sumDefinition.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 3e1a266..3cf58ce 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 @@ -171,6 +171,13 @@ public class JavaWriter implements AutoCloseable { this.writer.write("{"); this.writer.indent(); + + for (var bodyDeclaration: interfaceDeclaration.body()) { + writer.newLine(); + writeClassBodyDeclaration(bodyDeclaration); + writer.newLine(); + } + this.writer.newLine(); this.writeCustomArea(interfaceDeclaration.customArea()); this.writer.dedent(); diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclaration.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclaration.java index c1c0fc5..d0bd0a1 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclaration.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclaration.java @@ -7,6 +7,7 @@ import java.util.List; public record JavaInterfaceDeclaration( String name, List<JavaTypeRef> permitsTypes, + List<JavaClassBodyDeclaration> body, JavaCustomArea customArea, DocComment docComment ) implements JavaTypeDeclaration { |
