microproofs
c025073056
fix: List clauses were destructuring the next element unnecessarily
...
feat: finish nested constructor clauses
2023-08-07 12:02:44 -04:00
microproofs
f6e163d16d
feat: start on nested clauses
...
chore: remove then field from list clause guard and clause guard
2023-08-07 12:02:44 -04:00
microproofs
5bcc425f0f
feat: changed air expressions clause guard
...
and list clause guard to air statements
2023-08-07 12:02:44 -04:00
microproofs
023be88bf6
chore: another checkpoint
...
fix: guard clause to properly check condition
2023-08-07 12:02:44 -04:00
microproofs
f94c8213b6
checkpoint
2023-08-07 12:02:44 -04:00
microproofs
0854d71836
chore: another checkpoint and renamed ClauseProperties fields
2023-08-07 12:02:44 -04:00
microproofs
d731757123
feat: start on clauses in when conditions
...
**checkpoint**
2023-08-07 12:02:44 -04:00
microproofs
96959011e9
feat: finish up build. just have helper methods
...
feat: Create an air and AirTree iterator.
This allows us to iterate forwards or backwards over the tree as a vec.
chore: moved around some functions
2023-08-07 12:02:44 -04:00
microproofs
ba3265054c
chore: move tree to gen_uplc2 and create a duplicate air file without scope
2023-08-07 12:02:44 -04:00
microproofs
7cee9a4d15
chore: move assignment_air_tree and expect_type to gen_uplc
...
feat: add is_primitive check to types
2023-08-07 12:02:44 -04:00
microproofs
cd726b561e
feat: add removal of discard lets
...
chore: Name change for AirTree sequence
feat: finish up assignment constructor and list for airtree builder
2023-08-07 12:02:44 -04:00
microproofs
59362e3d8c
feat: almost done assignment have tuple and constr left
...
feat: modified the AirTree structure to have statements, sequences, and expressions
feat: changed the hoist_over function to be universal
2023-08-07 12:02:44 -04:00
microproofs
65bb7e48e2
feat: start on build assignment
...
feat: implement assignment hoisting
2023-08-07 12:02:44 -04:00
microproofs
c359bd35d7
feat: update tree to allow for let hoisting
...
feat: start on build for when expressions
feat: add builder methods for AirTree
2023-08-07 12:02:44 -04:00
microproofs
83ade9335f
feat: implement most of airtree build
2023-08-07 12:02:44 -04:00
microproofs
5e097d42ba
feat: add AirTree types and builder functions
2023-08-07 12:02:44 -04:00
Olof Blomqvist
d25bb9ae60
format
2023-08-04 14:56:16 -04:00
Olof Blomqvist
4e4a477ff1
meh
2023-08-04 14:56:16 -04:00
Olof Blomqvist
17eef195a9
fix diagnostics and formatting on windows vscode
2023-08-04 14:56:16 -04:00
rvcas
266b6bbb7d
fix(exhaustiveness): for constructor use correct name because import aliases
2023-08-03 16:28:47 -04:00
rvcas
60ac8ab591
fix(exhaustiveness): adjust helper method to get contructors properly
2023-08-03 16:14:42 -04:00
KtorZ
675b737898
Check exhaustiveness behavior on pattern guards.
2023-08-02 10:40:59 +02:00
KtorZ
4f7f39292d
Fix subtle bug in pattern rendering
...
When rendering missing or redundant patterns, linked-list would
wrongly suggest the last nil constructor as a pattern on non-empty
list.
For example, before this commit, the exhaustivness checker would yield:
```
[(_, True), []]
```
as a suggestion, for being the result of being a list pattern with a
single argument being `(_, True) :: Nil`. Blindly following the
compiler suggestion here would cause a type unification error (since
`[]` doesn't unify with a 2-tuple).
Indeed, we mustn't render the Nil constructor when rendering non-empty
lists! So the correct suggestion should be:
```
[(_, True)]
```
2023-08-02 10:31:35 +02:00
KtorZ
00b255e960
Remove now-dead code.
2023-08-02 09:22:21 +02:00
rvcas
f3cab94ae1
test(check): a bunch of tests for the new exhaustiveness stuff
2023-08-01 21:13:50 -04:00
rvcas
75e18d485d
fix: redundant might be wildcard which doesn't match technically
2023-08-01 21:13:50 -04:00
rvcas
a6b230aad4
fix: exhaustiveness on types from other modules
2023-08-01 21:13:50 -04:00
rvcas
7e531d0da1
fix: wrong var for name in UnknownModule error
2023-08-01 21:13:50 -04:00
rvcas
b6ac39f322
feat(exhaustiveness): show both clauses in redundant error
2023-08-01 21:13:50 -04:00
rvcas
ef2fc57ca9
feat(exhaustiveness): check tuple patterns
2023-08-01 21:13:50 -04:00
rvcas
f1100e901d
feat(exhaustiveness): pretty print missing patterns
2023-08-01 21:13:50 -04:00
rvcas
de2791fe82
feat(tipo): add new error for redundant clauses
2023-08-01 21:13:50 -04:00
rvcas
0061bcf78d
feat: add support for list patterns
2023-08-01 21:13:50 -04:00
rvcas
e8a71cd63b
chore: rename usefulness module
2023-08-01 21:13:50 -04:00
rvcas
03efb46e6f
feat(exhaustiveness): algorithm U borrowed from elm
2023-08-01 21:13:50 -04:00
microproofs
55887d3a45
fix: decode should always print to textual
2023-08-01 00:47:29 -04:00
Cainã Costa
622b0d51b0
chore: update flake
2023-07-27 10:23:10 -04:00
Cainã Costa
acbbcc7f72
chore[nix]: remove unused cargoBuildFlags
...
We are overriding the buildPhase, so no need to have that anymore.
2023-07-27 10:23:10 -04:00
Cainã Costa
529749f204
feat[nix]: add cargo-insta
...
It was not packaged before on nixpkgs, it is now, so let's use it.
2023-07-27 10:23:10 -04:00
Cainã Costa
a1d7a29482
chore: remove unused deno dependency
2023-07-27 10:23:10 -04:00
Cainã Costa
c4810e7035
fix: use pure mkShell for devShell
...
For some reason, having mkShell with the interface they used makes the
environment not consistent. This changes fixes it.
2023-07-27 10:23:10 -04:00
Cainã Costa
49cc76cf77
chore: cargo fmt
2023-07-25 14:00:29 -04:00
Cainã Costa
a0f0c20f03
feat: add completions to generated nix package
2023-07-25 14:00:29 -04:00
Cainã Costa
2cecb099d7
feat: add a generator for shell completions
2023-07-25 14:00:29 -04:00
Cainã Costa
eac27eff41
feat: add nix overlay
...
This allows for easier usage of aiken on both NixOS and home-manager
setups, without having to add them to the main nixos repository.
2023-07-25 00:30:36 -04:00
rvcas
152e847e26
chore: no longer need this env var
2023-07-24 10:30:02 -04:00
Cainã Costa
d19a39239d
fix: fix clippy error
2023-07-24 10:24:37 -04:00
Cainã Costa
079afa0d8c
feat: infer crate version from Cargo.toml
...
We should never have to update flake.nix on release ever again!
2023-07-24 10:24:37 -04:00
Cainã Costa
36cf09ab26
feat: use correct package when building
2023-07-24 10:24:37 -04:00
Cainã Costa
00e9dc3583
chore: add metadata to nix recipe
2023-07-24 10:24:37 -04:00