Ayaz Hafiz
13b0ce7ca0
Make sure to apply "is-open" constraints at the very end of pattern constraining
...
Closes #3298
2022-07-22 12:57:27 -04:00
Ayaz Hafiz
613606a67d
Support inference options in solve tests
2022-07-22 12:57:26 -04:00
Ayaz Hafiz
7fbdbca4c6
Add multi-branch bound pattern solve test
2022-07-21 12:22:27 -04:00
Ayaz Hafiz
78dc82867a
Report errors for identifiers not bound in all patterns of a branch
2022-07-21 12:15:05 -04:00
Ayaz Hafiz
ce8b50caea
Support bound variables in multiple patterns
2022-07-21 11:40:09 -04:00
Ayaz Hafiz
bf8fc0d0de
Permit binding variables multiple itmes in when branches
2022-07-21 11:06:40 -04:00
Ayaz Hafiz
b4f45215ea
Fix solve tests
2022-07-19 15:02:52 -04:00
Ayaz Hafiz
d2da395619
Syntactic ability links in solve
2022-07-18 18:33:28 -04:00
Ayaz Hafiz
4d0c1e6a9c
Use insta for inferred queried tests
2022-07-18 17:55:02 -04:00
Ayaz Hafiz
17f53a23a5
Update tests
2022-07-18 17:55:02 -04:00
Folkert de Vries
ca38ec4eb5
Merge pull request #3541 from rtfeldman/rocasync
...
Changes to get roc-async working
2022-07-18 19:22:07 +02:00
Richard Feldman
518b21c3f8
Rename Json.format to Json.toUtf8
2022-07-17 15:21:27 -04:00
Ayaz Hafiz
eb2012dcad
Typos
2022-07-15 10:39:10 -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
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
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
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
1cf1e114be
Derive tag union encoders
2022-07-14 08:49:45 -04:00
Folkert
88a9fab865
clippy
2022-07-14 08:56:23 +02:00
Ayaz Hafiz
2a963ca3ba
Merge branch 'assoc-list-dict' of https://github.com/rtfeldman/roc into assoc-list-dict
2022-07-13 16:18:52 -04:00
Ayaz Hafiz
71b078d2dc
Clone delayed type alias when there are equivalent type variables
2022-07-13 16:18:03 -04:00
Folkert
5763248b44
Merge remote-tracking branch 'origin/trunk' into assoc-list-dict
2022-07-13 20:44:28 +02:00
Ayaz Hafiz
fe63140047
Clippy
2022-07-13 08:47:40 -04:00
Ayaz Hafiz
76f7843c93
Enforce some simplifications
2022-07-13 08:47:40 -04:00
Ayaz Hafiz
7ff180c1a5
Remove stale comments
2022-07-13 08:47:40 -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
719c774acf
Fix errors
2022-07-13 08:47:38 -04:00
Ayaz Hafiz
8d90f2c13e
Fix some compile errors
2022-07-13 08:47:38 -04:00
Ayaz Hafiz
91e3bfbd01
Fix tests
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
445d922f3b
Compact lambda sets with structural derived ability impls
2022-07-13 08:47:37 -04:00
Ayaz Hafiz
d8bee6cd18
Perfom derives from global derives module, not just symbol table
2022-07-13 08:47:36 -04:00
Ayaz Hafiz
088b443e05
Refactor lambda set compaction so it's better split up
2022-07-13 08:47:35 -04:00
Ayaz Hafiz
f1a6ea6a40
Typecheck and compile opaque wrapping functions
...
This enables you to write something like
```
A := U8
List.map [1, 2, 3] @A
```
which will be compiled as if it was `List.map [1, 2, 3] \x -> @A x`.
Closes #3499
2022-07-12 18:38:03 -04:00
Folkert
f9d8e01561
implement Dict/Set completely in roc
2022-07-13 00:35:20 +02:00
ayazhafiz
699c4d7fff
Move Solved to roc_solve
2022-07-10 19:42:41 -04:00
Folkert de Vries
f1aae6f480
Merge pull request #3476 from rtfeldman/i3469
...
Remove more builtins code
2022-07-10 23:06:50 +02:00
Ayaz Hafiz
7722601504
Remove stray dbg
2022-07-10 14:40:06 -04:00
Ayaz Hafiz
c211ec9790
Don't include DelayedAlias in illegal cycle checks
2022-07-10 13:53:41 -04:00
Ayaz Hafiz
98287e7670
Remove imported_builtins from load
2022-07-10 10:41:06 -04:00
Richard Feldman
c45e3ec4b4
Merge remote-tracking branch 'origin/trunk' into fix-nested-imports
2022-07-10 08:52:38 -04:00
Ayaz
7b308d9efe
Merge pull request #3404 from rtfeldman/ambient-lset-specialization
...
The ambient lambda set specialization algorithm
2022-07-09 17:23:27 -05:00
Richard Feldman
f45e3dbb46
Fix tests
2022-07-08 18:16:08 -04:00
Ayaz Hafiz
808d19b01b
Correctly compile unified recursive tag unions
2022-07-08 17:35:14 -04:00
Ayaz Hafiz
d9edb4d1bb
Support unification of recursion vars in opaques
2022-07-08 15:31:29 -04:00
Ayaz Hafiz
640ca78bc5
Simplify the lambda set instantiation process
2022-07-06 13:08:59 -04:00