Commit graph

6636 commits

Author SHA1 Message Date
Ayaz Hafiz
0dfdcf5523
Get rid of some dead deriving code
My favorite kind of dead code elimination
2022-07-16 12:28:39 -04:00
Folkert de Vries
dc74803c18
Merge pull request #3523 from rtfeldman/more-encoding-deriving
More encoding deriving
2022-07-16 11:37:37 +02:00
Brian Carroll
dae8eccb70
Fix a comment in Str.roc 2022-07-16 08:26:19 +01:00
Folkert de Vries
98dbd236fb
Merge pull request #3546 from rtfeldman/syntactic-ability-specializations
Parse and format "has-abilities" clauses in opaque types
2022-07-16 02:06:00 +02:00
Ayaz Hafiz
be9944a7e1
Improve indent of has-abilities clauses 2022-07-15 11:59:03 -04:00
Ayaz Hafiz
dc3f8db6b8
Stray dbg 2022-07-15 11:46:32 -04:00
Ayaz Hafiz
3c65fbcf35
Format has clauses with impls 2022-07-15 11:45:53 -04:00
Ayaz Hafiz
85cbab0193
Add fmt test for empty has abilities block 2022-07-15 11:17:21 -04:00
Ayaz Hafiz
4d54e2ee3c
Add test for empty impl block parse 2022-07-15 11:15:44 -04:00
Ayaz Hafiz
ecaccdaac3
Update parse tests 2022-07-15 11:15:01 -04:00
Ayaz Hafiz
3ada644544
Format impls blocks 2022-07-15 11:14:49 -04:00
Ayaz Hafiz
85599e3a9a
Parse impl blocks in abilities 2022-07-15 11:06:44 -04:00
Ayaz Hafiz
eb2012dcad
Typos 2022-07-15 10:39:10 -04:00
Ayaz Hafiz
a5a80d2d17
Test immediate encoding derivers 2022-07-15 10:39:09 -04:00
Ayaz Hafiz
946004a82f
Support immediate derivers for numbers 2022-07-15 10:39:09 -04:00
Ayaz Hafiz
2e20441157
Num * can't be derived for encoding, but concrete numbers can be 2022-07-15 10:39:09 -04:00
Ayaz Hafiz
7b23077265
Treat numbers as ad-hoc types for the purpose of checking ability obligations 2022-07-15 10:39:09 -04:00
Ayaz Hafiz
568e8d9475
Remove explicit string deriving code in favor of immediate 2022-07-15 10:39:09 -04:00
Ayaz Hafiz
9a66e936a8
Switch String deriving to be an immediate deriver 2022-07-15 10:39:08 -04:00
Ayaz Hafiz
c98ba441cf
Properly handle immediate derivations 2022-07-15 10:38:11 -04:00
Ayaz Hafiz
e91247a64d
Store ability member lambda sets in storage subs 2022-07-15 10:38:11 -04:00
Ayaz Hafiz
52d3f9721f
Add function to extract ability member's lambda sets at regions 2022-07-15 10:38:11 -04:00
Ayaz Hafiz
759134885b
Explain pushing/popping types on region labelling stack 2022-07-15 10:38:10 -04:00
Folkert de Vries
460b822caa
Merge pull request #3501 from rtfeldman/derive-tag-union-encoding-gen
Derive tag union encoding gen
2022-07-15 15:57:41 +02:00
Folkert
b9ebd4fa27 Merge remote-tracking branch 'origin/trunk' into pretty-expect-output 2022-07-15 09:12:04 +02:00
Ayaz Hafiz
5d70a8dbe1
Even more dead code 2022-07-14 16:16:30 -04:00
Ayaz Hafiz
51fd7711e7
Remove dead code 2022-07-14 16:16:30 -04:00
Ayaz Hafiz
6611cce22c
Prefer keeping recursion var when merging tag union payloads 2022-07-14 16:16:30 -04:00
Ayaz Hafiz
7433cc5c95
Generate alias type size for ZATs 2022-07-14 16:16:25 -04:00
Ayaz Hafiz
3c4a55f4c1
Fix layout of ZATs when they end up with a closure argument 2022-07-14 16:16:17 -04:00
Folkert
b6224a3806
ugly hack to make the docs build 2022-07-14 22:15:19 +02:00
Ayaz Hafiz
70c77596a3
Apply unnecessary lambda set arg correction 2022-07-14 12:38:53 -04:00
Ayaz Hafiz
e2326efd0b
Include real_var when checking occurs
The real_var can have occurs that aren't represented by the type
variables, especially in the presence of recursive checks.
2022-07-14 12:26:34 -04:00
Ayaz Hafiz
20c2c308fa
Include ZATs in host exposed aliases 2022-07-14 12:26:11 -04:00
Ayaz Hafiz
161c2101a7
Properly link lambda set variables in host exposed aliases 2022-07-14 12:20:39 -04:00
Folkert de Vries
1b1b63aad0
Merge branch 'trunk' into assoc-list-dict 2022-07-14 16:47:50 +02:00
Ayaz Hafiz
d4d073d8c6
Rename Derived to HasAbility 2022-07-14 10:38:37 -04:00
Richard Feldman
897c6b17df
cargo fmt 2022-07-14 10:22:40 -04:00
Ayaz Hafiz
0946a7816a
Rename has_derived to has_abilities 2022-07-14 09:58:18 -04:00
Ayaz Hafiz
3f7c91f988
Where there's clippy, there's no way 2022-07-14 09:24:08 -04:00
Ayaz Hafiz
94ab904b6f
Fix compile errors 2022-07-14 09:02:37 -04:00
Ayaz Hafiz
02526b6dc2
Mark deriving test for encoding tags as complete 2022-07-14 08:49:46 -04:00
Ayaz Hafiz
b1867a97d2
Unignore test 2022-07-14 08:49:46 -04:00
Ayaz Hafiz
276bb173a0
Add gen tests for derived tag encoders 2022-07-14 08:49:46 -04:00
Ayaz Hafiz
2ca86c84dc
Gen derived tag encoders with multiple payloads 2022-07-14 08:49:46 -04:00
Ayaz Hafiz
ad5d6a4f84
Copy patterns 2022-07-14 08:49:45 -04:00
Ayaz Hafiz
1cf1e114be
Derive tag union encoders 2022-07-14 08:49:45 -04:00
Ayaz Hafiz
9aa3cb8d33
Use Derived_synth for synthesizing implementations, and Derived_gen for codegen 2022-07-14 08:49:45 -04:00
Ayaz Hafiz
8311fb553f
Update mono tests 2022-07-14 08:49:45 -04:00
Ayaz Hafiz
a23604cd07
Compact lambda sets with structural derived ability impls 2022-07-14 08:49:45 -04:00