Commit graph

89 commits

Author SHA1 Message Date
Ayaz Hafiz
d2da395619
Syntactic ability links in solve 2022-07-18 18:33:28 -04:00
Ayaz Hafiz
f8cd56da41
Register specializing symbol in can opaques 2022-07-18 17:55:01 -04:00
Ayaz Hafiz
c2154ac311
Support shorthand ability implementation syntax 2022-07-18 17:55:01 -04:00
Ayaz Hafiz
96b32c36cb
Introdue ability member names before other value names 2022-07-18 17:55:01 -04:00
Ayaz Hafiz
e672ce9ebd
First pass at canonicalizing and reporting syntactic abilities 2022-07-18 17:55:01 -04:00
Ayaz Hafiz
d118e5afbc
More can abilities 2022-07-18 17:55:01 -04:00
Ayaz Hafiz
e798eb3037
Lookup symbols in scope when the module ID is already known 2022-07-18 17:55:00 -04:00
Richard Feldman
c859ce0b23
Use Opaque over Alias 2022-07-18 17:55:00 -04: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
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
Folkert
b6224a3806
ugly hack to make the docs build 2022-07-14 22:15:19 +02: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
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
ad5d6a4f84
Copy patterns 2022-07-14 08:49:45 -04:00
Ayaz
a9243720da
Merge pull request #3496 from rtfeldman/derive-w-mono
Monomorphize and compile derived implementations
2022-07-14 07:45:21 -05:00
Folkert
96414cb03f
cleanup 2022-07-14 08:52:38 +02:00
Folkert
06938429a1
Merge branch 'assoc-list-dict' into pretty-expect-output 2022-07-14 00:39:01 +02:00
Folkert
5763248b44
Merge remote-tracking branch 'origin/trunk' into assoc-list-dict 2022-07-13 20:44:28 +02:00
Folkert
ebce2cf8b2
make expect collector recursive 2022-07-13 18:51:11 +02:00
Richard Feldman
25facfa9c6
Expose capacity builtins 2022-07-13 12:19:37 -04:00
Folkert
fe7882b598
implement expect collector 2022-07-13 16:23:39 +02:00
Folkert
6190fc9f67
trying to gather expects 2022-07-13 15:47:25 +02:00
Ayaz Hafiz
7c2e806a02
Make sure to clone lambda names in can/copy 2022-07-13 08:47:39 -04:00
Ayaz Hafiz
987ebfa9d3
Move expr copying to can 2022-07-13 08:47:39 -04:00
Ayaz Hafiz
9a01117536
Fix compile errors 2022-07-13 08:47:37 -04:00
Ayaz Hafiz
d56d880afb
Option<SpecializationId> rather than SpecializationId = Option<..> 2022-07-13 08:47:34 -04:00
Ayaz Hafiz
2fbe715f9f
Support null specialization ids 2022-07-13 08:47:34 -04:00
Folkert
cbd6052dbb
fix dict/set not being in scope 2022-07-13 14:04:38 +02:00
Folkert
8e21fdcb04
remove dict/set lowlevels 2022-07-13 11:24:07 +02: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
Richard Feldman
c61795197f
Merge pull request #3478 from rtfeldman/toplevel-expect-captures
toplevel expect captures
2022-07-12 08:58:19 -04:00
Richard Feldman
2e038a045c
Merge pull request #3467 from rtfeldman/remove-parse-def 2022-07-10 23:12:26 -04:00
Folkert
239ef9cbe1
my comment is not a code snippet, cargo 2022-07-10 21:31:26 +02:00
Folkert
830dd03b30
add comment 2022-07-10 20:48:57 +02:00
Folkert
67cbe6a590
pipe a list of expects to llvm codegen 2022-07-10 20:04:08 +02:00
Folkert
5df489ba23
turn toplevel expects into inline expects 2022-07-10 19:17:51 +02:00
Folkert
4956fc5ef4
remove transitive builtins 2022-07-10 01:22:30 +02:00
Folkert
3dee90ced8
remove parse::ast::Def 2022-07-10 01:10:37 +02:00
Richard Feldman
4ae91b2084
Fix STR_RESERVE constant 2022-07-08 20:24:22 -04:00
Richard Feldman
55931bca9e
Merge pull request #3452 from rtfeldman/can-builtins-cleanup
Can builtins cleanup
2022-07-08 18:54:59 -04:00
Folkert
a4e1de2f2d
improve names and comments around the new macros 2022-07-08 23:43:36 +02:00
Folkert de Vries
15fee6fc9c
Merge pull request #3455 from rtfeldman/opaque-recursion-var
Support recursion var unification in opaque types
2022-07-08 22:18:26 +02:00
Folkert
e8530eaca5
improve lowlevel unwrapping 2022-07-08 22:13:13 +02:00
Ayaz Hafiz
676d6b3a7f
Sorry clippy, we love long lists 2022-07-08 15:38:50 -04:00
Ayaz Hafiz
d9edb4d1bb
Support unification of recursion vars in opaques 2022-07-08 15:31:29 -04:00
Folkert
d3662c4671
remove the old can/builtins approach 2022-07-08 13:54:45 +02:00