summaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
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() + "]";
}