typecheck: validate simple function returns

This commit is contained in:
Hermes Agent
2026-09-08 19:31:29 +00:00
parent c44db0bb16
commit 8fe57974c6
9 changed files with 51 additions and 6 deletions
+11
View File
@@ -162,6 +162,17 @@ Function square only accepts 1 argument, but this call gives 2. Remove the extra
Function squre is not known yet. Check the function name or add TEACH squre before calling it.
```
Simple functions can also declare a return type. `claro typecheck` checks each `RETURN` expression against it:
```claro
TEACH square amount RETURNS NUMBER
CHECK TYPE amount IS NUMBER
RETURN amount
END
```
Returning text from this function reports: `Type mismatch for return from square: expected NUMBER, but this value looks like TEXT.`
The unknown-function diagnostic is validated for both modern `DO squre 4` and compatibility `CALL squre WITH 4` calls. Compatibility calls that leave `WITH` empty, such as `CALL greet WITH`, now count as zero arguments, so learners get the same missing-argument guidance as `DO greet` instead of the checker treating the blank as an argument.
For functions with more than one checked parameter, Claro reports each mismatched argument with the parameter name: