summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/EnumType.java2
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/SimpleNativeType.java2
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/SimpleType.java5
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/StructType.java2
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/SumType.java2
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java2
6 files changed, 10 insertions, 5 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/EnumType.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/EnumType.java
index bd50d2b..beea9ca 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/EnumType.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/EnumType.java
@@ -1,6 +1,6 @@
package org.zwobble.hobgoblin.compiler.types;
-public record EnumType(NamespaceName namespaceName, String name) implements Type {
+public record EnumType(NamespaceName namespaceName, String name) implements Type, SimpleType {
@Override
public String describe() {
return namespaceName.toString() + "." + name;
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/SimpleNativeType.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/SimpleNativeType.java
index cc6e3c8..7bf9dc1 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/SimpleNativeType.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/SimpleNativeType.java
@@ -1,6 +1,6 @@
package org.zwobble.hobgoblin.compiler.types;
-public record SimpleNativeType(NamespaceName namespaceName, String name) implements Type, ConstructibleType {
+public record SimpleNativeType(NamespaceName namespaceName, String name) implements Type, ConstructibleType, SimpleType {
public static SimpleNativeType builtin(String name) {
return new SimpleNativeType(NamespaceName.of(), name);
}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/SimpleType.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/SimpleType.java
new file mode 100644
index 0000000..2160802
--- /dev/null
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/SimpleType.java
@@ -0,0 +1,5 @@
+package org.zwobble.hobgoblin.compiler.types;
+
+public sealed interface SimpleType extends Type permits EnumType, SimpleNativeType, StructType, SumType {
+ NamespaceName namespaceName();
+}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/StructType.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/StructType.java
index a5b50ab..5012203 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/StructType.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/StructType.java
@@ -1,6 +1,6 @@
package org.zwobble.hobgoblin.compiler.types;
-public record StructType(NamespaceName namespaceName, String name) implements Type {
+public record StructType(NamespaceName namespaceName, String name) implements Type, SimpleType {
@Override
public String describe() {
return namespaceName.toString() + "." + name;
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/SumType.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/SumType.java
index 2517b6a..117277d 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/SumType.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/SumType.java
@@ -1,6 +1,6 @@
package org.zwobble.hobgoblin.compiler.types;
-public record SumType(NamespaceName namespaceName, String name) implements Type {
+public record SumType(NamespaceName namespaceName, String name) implements Type, SimpleType {
@Override
public String describe() {
return namespaceName.toString() + "." + name;
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 b82de7d..b483209 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/Type.java
@@ -1,5 +1,5 @@
package org.zwobble.hobgoblin.compiler.types;
-public sealed interface Type extends TypeLevelValue permits ConstructedNativeType, ConstructibleType, EnumType, SimpleNativeType, StructType, SumType, TypeLevelValueType, TypeParam {
+public sealed interface Type extends TypeLevelValue permits ConstructedNativeType, ConstructibleType, EnumType, SimpleNativeType, SimpleType, StructType, SumType, TypeLevelValueType, TypeParam {
String name();
}