From 044c79e110a2d65dd186a89030b72f53cb9804cb Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 6 Jul 2026 21:08:19 +0100 Subject: Add name() to Type --- .../org/zwobble/hobgoblin/compiler/types/ConstructedNativeType.java | 5 +++++ src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java | 1 + .../org/zwobble/hobgoblin/compiler/types/TypeLevelValueType.java | 5 +++++ 3 files changed, 11 insertions(+) (limited to 'src/main') 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 @@ -7,6 +7,11 @@ public record ConstructedNativeType( TypeConstructor constructor, List args ) implements Type { + @Override + public String name() { + return constructor.genericType().name(); + } + @Override public String describe() { var argsString = args().stream() 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 @@ -1,6 +1,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() + "]"; -- cgit v1.2.3