summaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-07-06 21:08:19 +0100
committerMichael Williamson <mike@zwobble.org>2026-07-06 21:08:19 +0100
commit044c79e110a2d65dd186a89030b72f53cb9804cb (patch)
tree5c05354ed7a3e837eac93fa2a3b82b00fd8c4cf7 /src/main/java/org/zwobble
parent494f3e6c9d3abbba55b2ee5ba4845652f00796c5 (diff)
Add name() to Type
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/ConstructedNativeType.java5
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java1
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/TypeLevelValueType.java5
3 files changed, 11 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/ConstructedNativeType.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/ConstructedNativeType.java
index e7de654..0f8051a 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/ConstructedNativeType.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/ConstructedNativeType.java
@@ -8,6 +8,11 @@ public record ConstructedNativeType(
List<Type> args
) implements Type {
@Override
+ public String name() {
+ return constructor.genericType().name();
+ }
+
+ @Override
public String describe() {
var argsString = args().stream()
.map(arg -> arg.describe())
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java
index 4989821..b82de7d 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java
@@ -1,4 +1,5 @@
package org.zwobble.hobgoblin.compiler.types;
public sealed interface Type extends TypeLevelValue permits ConstructedNativeType, ConstructibleType, EnumType, SimpleNativeType, StructType, SumType, TypeLevelValueType, TypeParam {
+ String name();
}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/TypeLevelValueType.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/TypeLevelValueType.java
index b885c25..f2a2e47 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/TypeLevelValueType.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/TypeLevelValueType.java
@@ -2,6 +2,11 @@ package org.zwobble.hobgoblin.compiler.types;
public record TypeLevelValueType(TypeLevelValue value) implements Type {
@Override
+ public String name() {
+ return "TypeLevelValue";
+ }
+
+ @Override
public String describe() {
return "TypeLevelValue[" + value.describe() + "]";
}