Commit Graph

2007 Commits

Author SHA1 Message Date
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
Cainã Costa
6768a26e5e chore: reduce dependencies to build aiken
We don't need the whole of openssl to build, only the headers. It will
still be installed because we need it to run.
2023-07-24 10:24:37 -04:00
Cainã Costa
ce03576a52 chore: update aiken version on nix recipe 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
1d1403816a chore: add stats to readme 2023-07-18 19:28:07 -04:00
rvcas
2253e29d42 chore: commit acceptance test plutus files 2023-07-17 17:34:00 -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
d009358266 chore: update changelog 2023-07-15 20:08:16 -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
dbb6d302bd chore: update changelog 2023-07-14 10:54:55 -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
0b65c20e31 chore: update changelog 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