Commit graph

1811 commits

Author SHA1 Message Date
Ayaz Hafiz
33d007a17b
Exercise both dispatch branches in test 2022-10-05 17:25:12 -05:00
Ayaz Hafiz
ed9f37a756
Add gen test for tag function dispatch 2022-10-05 17:25:12 -05:00
Ayaz Hafiz
06e5110aa5
Unification of multiple tag-functions 2022-10-05 17:25:11 -05:00
Ayaz Hafiz
61cf8e53e6
Have FunctionOrTagUnion include multiple possible tags 2022-10-05 17:24:52 -05:00
Ayaz
4f1d7fca9a
Merge pull request #4218 from roc-lang/rollup-10-05
Misc bugfixes 10-05
2022-10-05 14:52:11 -05:00
Ayaz
596f14d173
Merge pull request #4203 from roc-lang/shift-signature
Have `Num.shift*By` functions shift by a `U8`
2022-10-05 13:26:36 -05:00
Ayaz Hafiz
a842247aa6
Unused import 2022-10-05 13:09:10 -05:00
Ayaz Hafiz
f849bab6f1
Ignore large bit abs on wasm 2022-10-05 13:06:44 -05:00
Ayaz Hafiz
792afe5457
Remove TagDiscriminant low-level 2022-10-05 13:00:45 -05:00
Ayaz Hafiz
cb96a64259
Implement hashing tag discriminants in derivers, rather than using low-level
This makes it so we can decide the discriminant in the front-end. With
this, we can also now revert the `LowLevel::TagDiscriminant`
introductions.
2022-10-05 12:58:04 -05:00
Ayaz Hafiz
a308ebb38c
Optimize derived hash implementation for newtypes
When we have a newtype tag union, there is no reason to hash its
discriminant.
2022-10-05 12:19:35 -05:00
Ayaz Hafiz
2517695ce4
Fix deriving of hash ability for recursive tag unions 2022-10-05 12:01:02 -05:00
Brendan Hansknecht
ca92b5e8e8
Increase the inline threshold 2022-10-05 08:11:10 -07:00
Brendan Hansknecht
4ebe1b2bce
Avoid allocating a new list when calling List.sublist 2022-10-05 08:11:02 -07:00
Ayaz Hafiz
657346a057
Support Num.abs for non-64 bit integer types
Closes #4210
2022-10-05 08:39:45 -05:00
Ayaz Hafiz
df3b7cb1b4
Preserve comments before header
Closes #4212
2022-10-05 08:34:30 -05:00
Ayaz
02b02901bc
Update crates/compiler/test_gen/src/gen_abilities.rs
Signed-off-by: Ayaz <20735482+ayazhafiz@users.noreply.github.com>
2022-10-04 18:58:30 -05:00
Ayaz Hafiz
c7bd4e1c1c
Support upcasting bools to ints in the wasm backend 2022-10-04 18:55:45 -05:00
Ayaz Hafiz
725054b8f3
Add TODO recursive tag union hashing test 2022-10-04 18:17:35 -05:00
Ayaz Hafiz
5389cdd87f
Add gen test for newtype, byte union, unit tag union hash deriving 2022-10-04 18:11:41 -05:00
Ayaz Hafiz
41c9985c53
Support newtypes and unit tag union hash deriving 2022-10-04 18:11:37 -05:00
Ayaz Hafiz
251b3865d9
Implement tag union discriminant extraction for byte- and newtype-variants 2022-10-04 18:04:46 -05:00
Ayaz Hafiz
00ca8f2f80
Add gen test for deriving hash for heterogenous tags 2022-10-04 17:28:35 -05:00
Ayaz Hafiz
ff70832068
Derive hash for tag unions with a discriminant 2022-10-04 17:19:30 -05:00
Ayaz Hafiz
5eb00c4f94
Generate derive keys for tags 2022-10-04 16:23:24 -05:00
Ayaz Hafiz
fd54cdfdd1
Low-level to extract discriminant from a tag union 2022-10-04 16:17:05 -05:00
Ayaz Hafiz
7421485973
Remove clone 2022-10-04 15:37:03 -05:00
Ayaz Hafiz
5870de54ae
Add gen tests for record hash deriving 2022-10-04 15:29:20 -05:00
Ayaz Hafiz
46f111c6dd
Add hash deriving for records 2022-10-04 15:23:41 -05:00
Ayaz Hafiz
ad4d98be9c
Add derive key generation for record hashing 2022-10-04 14:42:00 -05:00
Ayaz Hafiz
fd421c005d
Refactor hash immediate tests 2022-10-04 14:40:53 -05:00
Ayaz Hafiz
6d7f664194
Add test for hashing list of lists 2022-10-04 14:40:21 -05:00
Ayaz Hafiz
c2c15d3ee1
Skip pending test on wasm 2022-10-04 14:39:55 -05:00
Ayaz Hafiz
29991654db
Make sure conversion of signed ints before shift applies to the shifted number 2022-10-04 14:23:53 -05:00
Ayaz Hafiz
085c73dffe
Clippy 2022-10-04 14:10:29 -05:00
Ayaz Hafiz
f2c30a699c
Remove stray dbg 2022-10-04 14:09:40 -05:00
Ayaz Hafiz
42ddcb70df
Add derive test for List of strings 2022-10-04 14:09:40 -05:00
Ayaz Hafiz
5b833e57b5
Support derivation of Hash for Str and List 2022-10-04 14:09:40 -05:00
Ayaz Hafiz
294244ae25
Make sure flex unifies with rigid-able vars correctly 2022-10-04 14:09:40 -05:00
Ayaz Hafiz
715d88510c
Add tests for immediates of the Hash ability 2022-10-04 14:09:40 -05:00
Ayaz Hafiz
8844cd256e
Make sure Num.minU128/Num.maxU128 is properly exposed 2022-10-04 14:09:40 -05:00
Ayaz Hafiz
427528e659
Add deriving of immediates for the Hash ability 2022-10-04 14:09:39 -05:00
Ayaz
a08b45263b
Merge branch 'main' into shift-signature
Signed-off-by: Ayaz <20735482+ayazhafiz@users.noreply.github.com>
2022-10-04 12:58:09 -05:00
Ayaz Hafiz
dea7661068
Have Num.shift*By functions shift by a U8
302305020
2022-10-04 12:28:33 -05:00
Ayaz Hafiz
f68cb3b0ed
Flip order of hash signature 2022-10-04 12:14:07 -05:00
Ayaz Hafiz
e9efc95425
Obligation checking for the Hash ability
This implements type-level checks that types can and cannot implement
the `Hash` ability.

Part of #4195
2022-10-04 10:51:14 -05:00
Ayaz Hafiz
ca4ee908f8
Avoid shadowing Hash in mono tests 2022-10-04 10:23:39 -05:00
Ayaz Hafiz
1c8ed27e58
Avoid Hash shadowing in abilities tests 2022-10-04 10:23:09 -05:00
Ayaz Hafiz
eadbc0912a
Update the compiler to be aware of Hash 2022-10-04 10:22:22 -05:00
Ayaz Hafiz
76510ec323
Add Hash.roc builtin module 2022-10-04 10:14:29 -05:00