Commit Graph

1820 Commits

Author SHA1 Message Date
microproofs
05b6b2a97d chore: rename some functions 2023-08-07 12:02:44 -04:00
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
49cc76cf77 chore: cargo fmt 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
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
Pi Lanningham
27c0f25606 Add a blueprint hash command
Similar to blueprint address and blueprint policy, this just prints the
hash of the validator; useful if you need the hash, and you don't want
to pipe the address to a bech32 decoder and juggle the hex.
2023-07-21 22:57:31 -04:00
rvcas
be7a441205 fix(uplc): pair type formatting closes #680 2023-07-19 13:49:05 -04:00
rvcas
97acd6d7bd chore: Release 2023-07-15 21:37:10 -04:00
rvcas
77a627817b chore: prepare changelog for release 2023-07-15 21:34:41 -04:00
rvcas
1b8e94fe32 feat: expect boolean sugar 2023-07-15 20:50:02 -04:00
rvcas
db3b5c74bb fix: todo and fail spans 2023-07-15 20:08:16 -04:00
rvcas
69fdee9f7e fix: trace expr 2023-07-15 20:08:16 -04:00
rvcas
2edfd33594 fix: some attempted adjustments 2023-07-15 20:08:16 -04:00
rvcas
252b760ca1 test: remove prefix on all format tests 2023-07-14 16:56:27 -04:00