summaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriter.java5
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeArg.java7
2 files changed, 12 insertions, 0 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 1d14b29..52c2db1 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
@@ -426,10 +426,15 @@ public class JavaWriter implements AutoCloseable {
case JavaTypeArg.Invariant invariant -> {
writeTypeRef(invariant.type(), writer);
}
+
case JavaTypeArg.SuperType superType -> {
writer.write("? super ");
writeTypeRef(superType.type(), writer);
}
+
+ case JavaTypeArg.Wildcard wildcard -> {
+ writer.write("?");
+ }
}
}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeArg.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeArg.java
index 8253275..6e520a2 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeArg.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeArg.java
@@ -14,4 +14,11 @@ public sealed interface JavaTypeArg {
record SuperType(JavaTypeRef type) implements JavaTypeArg {
}
+
+ static JavaTypeArg wildcard() {
+ return new Wildcard();
+ }
+
+ record Wildcard() implements JavaTypeArg {
+ }
}