Commit Graph

1696 Commits

Author SHA1 Message Date
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
rvcas
eafe3cdf75 test: fail with expr relates to #675 2023-07-14 13:09:55 -04:00
rvcas
621017bd93 chore: Release 2023-07-14 10:55:13 -04:00
rvcas
e7c1b28b52 feat: add ability to reference validators in tests closes #632 2023-07-12 18:29:03 -04:00
rvcas
13ee62c05c fix: don't break failing test defs for current users 2023-07-12 09:16:37 -04:00
rvcas
03e7d6e944 feat: update syntax for failing test to be more consistent 2023-07-12 09:16:37 -04:00
rvcas
1ab1ff9a1f feat: rename error to fail 2023-07-12 09:16:37 -04:00
rvcas
a36cc7d631 fix: cpu and mem in white terminals, cyan makes things stand out nicely closes #415 2023-07-11 18:50:27 -04:00
rvcas
914b8d4e74 fix: infer validator args as Data if Unbound closes #649 2023-07-11 13:51:17 -04:00
Cainã Costa
b80c41b4b7 chore: cargo fmt 2023-07-11 13:06:25 -04:00
Cainã Costa
14652abd4f fix: port last missing test
This test has been added after the first implementation, so we move it
to the new format :)
2023-07-11 13:06:25 -04:00
Cainã Costa
7f7a86765d feat: bring back formatting imdepotency test 2023-07-11 13:06:25 -04:00
Cainã Costa
c27ef8ad93 chore: refactor formatting tests
This changes the tests from normal assertions into snapshot tests, as
well as standardizing test names.
2023-07-11 13:06:25 -04:00
rvcas
01be548752 chore: update stdlib version in new command relates to #672 2023-07-10 07:36:31 -04:00
Pi Lanningham
723c347a1a Clippy
Clippy has a build failure locally, for some reason, so I have to use CICD to find these
2023-07-09 23:16:01 -04:00
Pi Lanningham
189150612c cargo fmt :| 2023-07-09 23:16:01 -04:00
Pi Lanningham
26a4c57805 Clippy cleanup 2023-07-09 23:16:01 -04:00
Pi Lanningham
c4690c6e00 Data parsing, tests 2023-07-09 23:16:01 -04:00
Pi Lanningham
6d9a95ef2d Add all but data parsing
Updates the parsing to the standard, *except* for Data, since that'll be more involved
2023-07-09 23:16:01 -04:00
Pi Lanningham
a48c45b737 Formatting 2023-07-09 23:16:01 -04:00
Pi Lanningham
ecff82659d Tweak pretty-printing
This pretty printing now (mostly) matches https://github.com/input-output-hk/plutus/issues/4751#issuecomment-1538377273; the only concern is whether the PlutusData stuff should be upstreamed to pallas, and whether pallas has a way to print BigInts easier
2023-07-09 23:16:01 -04:00
rvcas
94bf75dd1c chore: delete unreferenced snapshots 2023-07-06 21:00:13 -04:00
KtorZ
126f2ab004 Implement new formatter for 'int'.
This is used for constants and patterns, which can carry negative
   values.
2023-07-06 16:10:46 -04:00
KtorZ
78d34f7f76 Fix parsing of negative int patterns and constants
This was trickier than expected as the expression parser, and in particular the bin-op parser will interpret negative patterns as a continuation of a binary operation and eventually choke on the next right-arrow symbol. This is due to how we actually completely erase newlines once we're done with the lexer. The newline separating when clause is actually semantically important. In principle, we could only parse an expression until the next newline.

  Ideally, we would keep that newline in the list of token but it's difficult to figure out which newline to keep between two right arrows since a clause guard can be written over multiple lines. Though, since we know that this is only truly a problem for negative integers, we can use the same trick as for tuples and define a new 'NewLineMinus' token. That token CANNOT be part of a binop expression. That means it's impossible to write a binary operation with a minus over multiple lines, or more specifically, with the '-' symbol on a newline. This sounds like a fair limitation. What we get in exchange is less ambiguity when parsing patterns following expressions in when clause cases.

  Another more cumbersome option could be to preserve the first newline encountered after a 'right-arrow' symbol and before any parenthesis or curly brace is found (which would otherwise signal the beginning of a new block). That requires to traverse, at least partially, the list of tokens twice. This feels unnecessary for now and until we do face a similar issue with a binary operator.
2023-07-06 16:10:46 -04:00
KtorZ
346df47232 Refactor chain parser
The main goal is to make the parser more reusable to be used for when-clauses, instead of the expression parser. A side goal has been to make it more readable by moving the construction of some untyped expression as method on UntypedExpr. Doing so, I got rid of the extra temporary 'ParseArg' type and re-used the generic 'CallArg' instead by simply using an Option<UntypedExpr> as value to get the same semantic as 'ParseArg' (which would distinguish between plain call args and holes). Now the chained parser is in a bit more reusable state.
2023-07-06 16:10:46 -04:00