summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-11-01 21:16:49 +0000
committerMichael Williamson <mike@zwobble.org>2026-11-01 21:16:49 +0000
commit1390becc9814e78f94fa01299b1b04acadfbfe46 (patch)
tree9e8b1818b3e3a4e60a38026d994e30c4a9a7680e /src/main/java
parentc5fd3e34f18f0773d1283fc5ed06fb289053e162 (diff)
Check handling of non-type-level values
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java2
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/types/TypeSet.java7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java
index a7fe03f..d73c245 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java
@@ -642,7 +642,7 @@ public class TypeChecker {
// TODO: handle not a type-level value
if (!(type instanceof TypeLevelValueType(TypeLevelValue value))) {
- throw new UnexpectedTypeError(new TypeSet.MetaType(), type, source);
+ throw new UnexpectedTypeError(new TypeSet.TypeLevelValue(), type, source);
}
return value;
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/types/TypeSet.java b/src/main/java/org/zwobble/hobgoblin/compiler/types/TypeSet.java
index c3896d9..3a64b85 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/types/TypeSet.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/types/TypeSet.java
@@ -23,4 +23,11 @@ public sealed interface TypeSet {
return "type constructor";
}
}
+
+ record TypeLevelValue() implements TypeSet {
+ @Override
+ public String describe() {
+ return "type-level value";
+ }
+ }
}