Ayaz Hafiz
0387eeed23
Make sure we're generating correct code with has annotations
2022-04-20 17:45:41 -04:00
Folkert
8b144c446d
remove PartialEq for a bunch of types that we should not compare
2022-04-20 16:58:30 +02:00
Folkert
8692938fb3
Merge branch 'vecset-references' into builtins-in-roc
2022-04-17 19:39:03 +02:00
Folkert
e112f6ad2c
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-04-16 21:01:51 +02:00
Folkert
1568a57de0
turn panic into runtime error
2022-04-16 19:42:08 +02:00
Ayaz Hafiz
e6b0d9a820
Fix typo
2022-04-15 10:54:35 -04:00
Ayaz Hafiz
95783e03a1
Handle aliasing of ability members
2022-04-15 10:21:35 -04:00
Ayaz Hafiz
b79b351136
The first ability... compiles
2022-04-14 16:50:41 -04:00
Ayaz Hafiz
eb81c68bcb
Pass abilities store to mono
2022-04-14 16:20:55 -04:00
Ayaz Hafiz
41dd7d0b4d
Specialize bodies with body var, not function var
...
I'm surprised code generation worked so well without this, before...
Closes #2818
2022-04-13 18:35:50 -04:00
Folkert
6ef443d1b0
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-04-10 19:14:00 +02:00
Folkert de Vries
7675e0232b
Merge pull request #2819 from rtfeldman/zero-arg-tag
...
Drop unused `arguments` field from `ZeroArgumentTag`
2022-04-10 15:18:03 +02:00
Richard Feldman
cd407e3069
Use rocval in mono::ir
2022-04-09 12:59:43 -04:00
Folkert
166c949c3b
clippy
2022-04-09 12:24:12 +02:00
Richard Feldman
80fc129dd4
Refactor Expect mono::ir generation a bit
2022-04-08 19:53:27 -04:00
Folkert de Vries
5dc8c852e9
Merge pull request #2815 from rtfeldman/i/2811
...
Specialize polymorphic values before binding to pattern
2022-04-08 21:44:11 +02:00
Richard Feldman
af7eda34a0
Store lookups for expect report in Expr::Expect
2022-04-08 12:15:29 -04:00
Richard Feldman
b777b88e1c
Drop unused arguments
field from ZeroArgumentTag
2022-04-08 11:53:16 -04:00
Folkert
1d0f9e9192
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-04-08 15:47:11 +02:00
Ayaz
33a5fc65ce
Update comment
2022-04-08 08:50:31 -04:00
ayazhafiz
94a5cd3559
Improve shadow errors
2022-04-07 22:38:20 -04:00
Ayaz Hafiz
73bfff699f
Handle symbols that shadow ability member definitions
...
Just add the shadowing symbol for now. We'll handle checking that a
specialization's type matches the member's type definition in a later
pass, during typechecking.
2022-04-07 17:21:17 -04:00
Ayaz Hafiz
a12e40a310
Specialize polymorphic values before binding to pattern
...
Closes #2811
2022-04-07 14:03:29 -04:00
Folkert
0dd2cec09a
update with new clippy lints
2022-03-31 19:34:51 +02:00
Folkert
4e1197165b
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc-delayed-alias
2022-03-18 21:25:52 +01:00
Folkert
a3b00fbf55
Merge branch 'explicit-closed-tag-record' into delay-instantiating-aliases
2022-03-17 20:34:52 +01:00
Folkert
7d8409f6a6
write Aliases implementation
2022-03-15 22:02:04 +01:00
ayazhafiz
73396c0607
aliases->references in partial procs
2022-03-15 11:05:59 -05:00
ayazhafiz
93804bb04c
Unnecessary let binding
2022-03-14 17:44:07 -05:00
ayazhafiz
17029cff7e
Link aliased lambdas to the partial procs of the original symbol
...
This ensures that we use the correct specialized variable at the call
site of a function. In #2725 what happened was that a generalized
function was aliased, causing it to undergo generalization again. Then,
we lost the variable used to specialize at the call site. Instead, just
link to the partial proc being aliased directly.
There is an added benefit here, which is that we can avoid the
possibly-quadratic replacement of symbols in the generated statement.
Closes #2725
2022-03-14 16:42:53 -05:00
Folkert
6543c9bbc6
Merge remote-tracking branch 'origin/trunk' into box-all-the-things
2022-03-09 00:00:15 +01:00
Folkert
831a90e310
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-03-08 22:36:06 +01:00
Folkert
92f2927046
initial implementation
2022-03-08 19:09:42 +01:00
Derek Gustafson
c65e3d2bae
Fix how dec is formatted in mono ir.
2022-03-07 16:17:59 -05:00
Derek Gustafson
ba6b225761
Hide RocDec implemntation details.
2022-03-07 15:34:02 -05:00
Folkert
b3b3b8790c
add new Expr variants
2022-03-07 21:13:48 +01:00
ayazhafiz
cc8c945762
Remove stray dbg
2022-03-06 11:16:03 -05:00
ayazhafiz
0692caf7ba
Consolidate Accessor
data
2022-03-06 11:07:31 -05:00
ayazhafiz
3bff99b0a2
Register accessor closures when they are bound
...
Previously we only registered record accessor closures in anonymous
contexts, where we assume they must already be specialized based on the
surrounding contexts. This is not true in general since one might bind
an accessor to a name.
Closes #2567
2022-03-06 10:53:12 -05:00
Folkert
ba70909519
fix more tests
2022-02-28 22:23:11 +01:00
Folkert
db6b5bfd38
get Num to fully work again
2022-02-28 19:40:18 +01:00
Folkert
bd31503855
Merge remote-tracking branch 'origin/trunk' into builtins-in-roc
2022-02-28 18:55:20 +01:00
ayazhafiz
27a50a3e6b
exhaustive_wrap -> exhaustive
2022-02-27 20:30:13 -05:00
ayazhafiz
b9a29bdb16
Make exhaustive checking its own crate
...
Prepares for moving exhaustiveness checking to the closer typechecking
phase. Doing this one step at a time so that git preserves the rename.
2022-02-27 20:28:25 -05:00
Brian Carroll
dcf3c052af
Merge pull request #2594 from rtfeldman/wasm-repl-fixes
...
Wasm REPL bug fixes
2022-02-27 18:40:47 +00:00
ayazhafiz
a7825c34f5
fixup! Exhaustiveness checking opaque patterns
2022-02-27 00:13:27 -05:00
ayazhafiz
4e27cdd21d
Compile opaque patterns all the way, and add repl test
2022-02-27 00:11:10 -05:00
ayazhafiz
68d28349ed
Exhaustiveness checking opaque patterns
2022-02-27 00:10:12 -05:00
ayazhafiz
9d87c605fe
Couple of opaque repl tests
2022-02-27 00:10:12 -05:00
ayazhafiz
059c324268
Error reporting for type mismatches involving opaques
2022-02-27 00:10:12 -05:00