mirror of
https://github.com/roc-lang/roc.git
synced 2025-12-09 18:57:13 +00:00
Programs like
```
after : ({} -> a), ({} -> b) -> ({} -> b)
fx = after (\{} -> {}) \{} -> if Bool.true then fx {} else {}
```
are legal because they always decay to functions, even if they may not
look like functions syntactically. Rather than using a syntactic check
to check for illegally-recursive functions, we should only perform such
checks after we know the types of values.
Closes #4291
|
||
|---|---|---|
| .. | ||
| helpers | ||
| solve_expr.rs | ||