From 19d9169d58ce2f2581073fd0af6e6439604f591c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 3 May 2026 11:24:39 +0100 Subject: Add tests for writing Java interface declarations --- .../compiler/output/lang/java/JavaWriter.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/main') 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 664c322..59de6b7 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 @@ -27,7 +27,7 @@ public class JavaWriter implements AutoCloseable { writeTypeDeclaration(compilationUnit.typeDeclaration()); } - private void writeTypeDeclaration(JavaTypeDeclaration typeDeclaration) throws IOException { + void writeTypeDeclaration(JavaTypeDeclaration typeDeclaration) throws IOException { switch (typeDeclaration) { case JavaInterfaceDeclaration interfaceDeclaration -> { writeInterfaceDeclaration(interfaceDeclaration); @@ -44,13 +44,15 @@ public class JavaWriter implements AutoCloseable { this.writer.write(interfaceDeclaration.name()); this.writer.write(" "); - writer.write("permits "); - writeWithSeparator( - interfaceDeclaration.permitsTypes(), - this::writeTypeRef, - () -> writer.write(", ") - ); - writer.write(" "); + if (!interfaceDeclaration.permitsTypes().isEmpty()) { + writer.write("permits "); + writeWithSeparator( + interfaceDeclaration.permitsTypes(), + this::writeTypeRef, + () -> writer.write(", ") + ); + writer.write(" "); + } this.writer.write("{"); this.writer.newLine(); -- cgit v1.2.3