roc/crates/compiler/can
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
..
src Make sure self-recursive checks only happen after typechecking 2022-10-17 09:59:32 -05:00
tests s/rtfeldman/roc-lang/g in links to GitHub repos 2022-08-12 15:24:09 -04:00
Cargo.toml Use roc_serialize in serializing abilities store, and add tests 2022-10-11 09:41:47 -05:00