Ayaz Hafiz
ca4ee908f8
Avoid shadowing Hash in mono tests
2022-10-04 10:23:39 -05:00
Ayaz Hafiz
fda485431f
Update mono test
2022-09-21 13:41:20 -05:00
Ayaz Hafiz
2037ad22fd
Update encode mono test
2022-09-21 13:40:50 -05:00
Ayaz
211c297230
Merge pull request #4041 from KilianVounckx/opaque-bool
...
Opaque bool
2022-09-21 11:15:41 -05:00
kilianv
9717747a54
Update tests
...
not all tests pass yet. Will look at them with Ayaz.
2022-09-20 14:42:03 -05:00
Ayaz Hafiz
2f7020aa31
Eliminate voided branches only after resolving their bodies' specializations
2022-09-20 08:35:10 -05:00
Ayaz Hafiz
f41936d5e5
Unwrap layouts containing void layouts as newtypes
...
Addresses the attempt to do so in https://github.com/roc-lang/roc/pull/3465
Co-authored-by: Folkert <folkert@folkertdev.nl>
2022-09-19 16:50:49 -05:00
Ayaz Hafiz
ac752adc7c
Check in some more work
2022-09-16 16:09:21 -05:00
Ayaz Hafiz
a81d4d4be2
Allow any numeric range to become a float
...
Currently things like `1 / 200` lead to a miscompilation because we type
`200` (and as a result, both `1` and the division result) as a ranged
number with width >= U8. During mono that forces the number to become an
`I64` because our logic was that a ranged number can only become a float
if it's at least as wide as an I8. But this is incorrect; as long as the
type is wrapped in `Frac` constructor and it's a ranged number (and not
a ranged int), it should become a fractional type.
```
» 1 / 200
0.005 : Float *
```
Closes #4047
2022-09-16 10:05:43 -05:00
Ayaz Hafiz
1e49622b61
Clippy
2022-08-31 14:36:44 -05:00
Ayaz Hafiz
3b4b1838b8
Push layout interner further through Layout
2022-08-31 14:33:52 -05:00
Richard Feldman
97e2900bf5
s/rtfeldman/roc-lang/g in links to GitHub repos
2022-08-12 15:24:09 -04:00
Richard Feldman
e685eba42b
fix tests
2022-08-03 19:50:17 -04:00
Ayaz Hafiz
fc9ff928eb
Choose non-recursion var when merging arbitrary variables, when possible.
...
Closes #3669
2022-08-02 08:15:54 -05:00
Ayaz Hafiz
1acb7e0748
Don't add path instructions for newtypes that decay into their args
2022-07-21 14:57:17 -04:00
Ayaz Hafiz
52e15bd344
Reproduce #3560
...
Part of #3560
2022-07-21 12:30:36 -04:00
Ayaz Hafiz
c189f27fb0
Fix mono tests
2022-07-18 22:14:47 -04:00
Richard Feldman
518b21c3f8
Rename Json.format to Json.toUtf8
2022-07-17 15:21:27 -04:00
Richard Feldman
f575807834
Merge remote-tracking branch 'origin/trunk' into outdent-infix
2022-07-16 16:08:36 -04:00
Ayaz Hafiz
2ca86c84dc
Gen derived tag encoders with multiple payloads
2022-07-14 08:49:46 -04:00
Ayaz Hafiz
1cf1e114be
Derive tag union encoders
2022-07-14 08:49:45 -04:00
Richard Feldman
7908e8c176
roc format examples
2022-07-13 23:16:09 -04:00
Ayaz Hafiz
df9bcb1a0c
Use Derived_synth for synthesizing implementations, and Derived_gen for codegen
2022-07-13 08:47:39 -04:00
Ayaz Hafiz
63adb901b4
A couple hacks to get deriving of records working.. but it's working?
2022-07-13 08:47:38 -04:00
Ayaz Hafiz
9826253785
Deriving string encoders works
2022-07-13 08:47:37 -04:00
Ayaz Hafiz
6e1698775f
Make sure to update uls_of_var when importing variables directly to a usage site
2022-07-13 08:47:34 -04:00
Richard Feldman
c45e3ec4b4
Merge remote-tracking branch 'origin/trunk' into fix-nested-imports
2022-07-10 08:52:38 -04:00
Richard Feldman
f45e3dbb46
Fix tests
2022-07-08 18:16:08 -04:00
Ayaz Hafiz
532b2ff403
Support specialization of naked tag unions at toplevel
2022-07-08 17:50:52 -04:00
Ayaz Hafiz
808d19b01b
Correctly compile unified recursive tag unions
2022-07-08 17:35:14 -04:00
Ayaz
22f02984d3
Merge branch 'trunk' into 3378
2022-07-06 20:37:32 -05:00
ayazhafiz
aa90c3dfb6
Unresolved type var for list map unbound function
2022-07-06 12:49:02 -04:00
ayazhafiz
937b73b797
Compile lambdas that have an empty lambda set
...
Closes #3224
This should also fix a number of other issues often observed when a
lambda is never actually called, but we fail to codegen because it has
an empty lambda set.
2022-07-06 12:49:01 -04:00
Ayaz Hafiz
b868e0e469
Handle recursive calls to capturing function
2022-07-06 09:10:31 -04:00
Ayaz Hafiz
15afa36344
Push bound var down
2022-07-05 22:16:53 -04:00
Ayaz Hafiz
2492fba9f9
Gen tests for promoted num layouts
2022-07-05 22:16:52 -04:00
Ayaz Hafiz
ba450367ca
Choose i128/u128 num layouts when necessary
2022-07-05 22:16:52 -04:00
Ayaz Hafiz
c154a337a9
Get deep range numbers working
2022-07-05 22:16:52 -04:00
ayazhafiz
3385c708c6
Deduplicate capture niches
2022-07-03 10:37:40 -04:00
Ayaz Hafiz
d08aecf55f
Rename multimorphic tests to capture niche
2022-07-03 10:37:34 -04:00
Ayaz Hafiz
019ebd93f7
Put the capture niche in the lambda name instead of generating new names
2022-07-03 10:37:29 -04:00
Ayaz Hafiz
28c1cf46a3
Multimorphic lambdas capture another lambda
2022-07-03 10:37:28 -04:00
Ayaz Hafiz
806e2f5096
Make sure to properly preserve lambda set ordering
2022-07-03 10:37:27 -04:00
Ayaz Hafiz
8be230695b
Get multimorphic lambda captures working
2022-07-03 10:37:26 -04:00
Ayaz Hafiz
51978e08ed
First pass at supporting multimorphic lambdas in lambda sets
2022-07-03 10:37:26 -04:00
Anton-4
eee85fa45d
moved all crates into seperate folder + related path fixes
2022-07-01 17:37:43 +02:00