summaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-05-03 11:24:39 +0100
committerMichael Williamson <mike@zwobble.org>2026-05-03 11:24:39 +0100
commit19d9169d58ce2f2581073fd0af6e6439604f591c (patch)
treee1a63375cef7c76862e30359c5d51e912bc563d6 /src/main/java/org
parentf0a8f1b93c12506f40903093f90a70d2a8a99f4f (diff)
Add tests for writing Java interface declarations
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java18
1 files changed, 10 insertions, 8 deletions
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();