aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-10-29 22:00:55 +0000
committerMichael Williamson <mike@zwobble.org>2023-10-29 22:00:55 +0000
commit4297d6392513ef161bd8636f37d8461ebcc3f94a (patch)
tree6a6ac82bf9a1d68f021443aa474502ea98f1f638 /src/main/java
parente38dd0cd24e76e91918273b08a6e9ede9d542e93 (diff)
Throw appropriate error when param type cannot be inferred
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
index 9e37666c..38c4639d 100644
--- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
+++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
@@ -681,8 +681,7 @@ public class TypeChecker {
paramNode.type()
.map(x -> x.value())
.or(() -> paramHint)
- // TODO: handle no explicit type nor hint
- .orElseThrow(),
+ .orElseThrow(() -> new FunctionSignatureMissingParamTypeError(paramNode.source())),
paramNode.source()
);
positionalParams.add(param);
@@ -703,7 +702,7 @@ public class TypeChecker {
namedParam.type()
.map(x -> x.value())
.or(() -> paramHint)
- .orElseThrow(),
+ .orElseThrow(() -> new FunctionSignatureMissingParamTypeError(namedParam.source())),
namedParam.source()
));
}