roc/crates/compiler/solve
Ayaz Hafiz ecab8fa25a
Make sure self-recursive checks only happen after typechecking
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
2022-10-17 09:59:32 -05:00
..
docs Add language to all fenced code blocks 2022-09-09 01:12:31 -06:00
src Apply lint suggestions 2022-10-14 13:56:01 -05:00
tests Make sure self-recursive checks only happen after typechecking 2022-10-17 09:59:32 -05:00
Cargo.toml Bump insta from 1.19.0 to 1.20.0 2022-09-26 07:14:24 +00:00