summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedTypeLevelExpressionNode.java2
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java9
2 files changed, 8 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedTypeLevelExpressionNode.java b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedTypeLevelExpressionNode.java
index b5dbd5d..532d8de 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedTypeLevelExpressionNode.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedTypeLevelExpressionNode.java
@@ -10,6 +10,8 @@ public sealed interface UntypedTypeLevelExpressionNode permits org.zwobble.hobgo
// Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedTypeLevelExpressionNode.Builder body
}
+ public org.zwobble.hobgoblin.compiler.sources.Source source();
+
// Custom area start: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedTypeLevelExpressionNode body
// Custom area end: org.zwobble.hobgoblin.compiler.ast.untyped.UntypedTypeLevelExpressionNode body
}
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 5003e3a..c291aaf 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java
@@ -258,7 +258,7 @@ public class TypeChecker {
);
}
- private static TypedTypeLevelExpressionNode<Type> typeCheckMetaType(
+ static TypedTypeLevelExpressionNode<Type> typeCheckMetaType(
UntypedTypeLevelExpressionNode untyped,
TypeCheckerNamespaceContext context
) {
@@ -266,8 +266,11 @@ public class TypeChecker {
if (typed.value() instanceof Type) {
return (TypedTypeLevelExpressionNode<Type>) typed;
} else {
- // TODO: better error
- throw new RuntimeException("not a metatype");
+ throw new UnexpectedTypeError(
+ new TypeSet.MetaType(),
+ new TypeLevelValueType(typed.value()),
+ untyped.source()
+ );
}
}