Ayaz Hafiz
350d9cd59b
Simplify opportunistic resolution
...
We don't need to unify the type state anymore because resolved able
variables are determined only by one type variable.
2022-07-29 08:43:18 -04:00
Ayaz Hafiz
403b2b14b7
Add remove_dependent_unspecialized_lambda_sets to UlsOfVar
2022-07-29 08:43:18 -04:00
Ayaz Hafiz
5a42acc11c
Debug specialization keys
2022-07-29 08:43:18 -04:00
Ayaz Hafiz
240a48bc1c
De-duplicate unspecialized lambda sets by root var
2022-07-29 08:43:17 -04:00
Ayaz Hafiz
76fe397aa1
Consolidate exposed types and derived module in a derived environment
2022-07-29 08:43:17 -04:00
Ayaz Hafiz
0ec92c12f7
Move lambda set specialization to its own module in solve
2022-07-29 08:43:16 -04:00
Ayaz Hafiz
c0e976f544
Wrap unification subs in Env
2022-07-28 08:57:33 -04:00
Ayaz Hafiz
0989b2cb82
Move solve problems to their own crate
2022-07-28 08:57:32 -04:00
Ayaz Hafiz
ae4916ceb7
Remove unused variables
2022-07-28 08:57:14 -04:00
Ayaz Hafiz
753d12e912
Eagerly resolve obligations during solving
...
Replaces the previously-used `DeferredObligations` structure used for
accumulating and then acting over ability obligations during module
solving in favor of just the `ObligationCache`. The `ObligationCache`
stays alive for the entirety of a module solving and provides a
convenient mechanism for answering obligation queries with a backed
cache.
2022-07-28 08:57:13 -04:00
Folkert de Vries
01eb161ffe
Merge pull request #3637 from rtfeldman/can-abilities4
...
Syntactic abilities: Part 4 - simplify obligation solving procedure
2022-07-28 11:32:11 +02:00
Folkert de Vries
66365fba6e
Merge pull request #3649 from rtfeldman/3640-str-split-edge-case
...
Fix `Str.split` edge case when string and delimiter are equal
2022-07-28 11:30:40 +02:00
Folkert de Vries
21fe0ca559
Merge pull request #3639 from rtfeldman/expect-lists
...
Tests for expect output
2022-07-28 08:53:58 +02:00
raleng
c7997c7c38
Fix formatting
2022-07-28 01:57:01 +02:00
raleng
17fc1a297c
Fix Str.split when string equals delimiter
...
countSegments and strSplitHelp check whether the length of the string is
strictly greater-than the length of the delimiter, skipping most of the
logic when this is not the case.
Changing the check to a greater-than-or-equal allows for the case when
the string and the delimiter are equal, giving the expected result of
["", ""].
2022-07-28 01:36:02 +02:00
raleng
71e83746cc
add countSegments test case
...
The test ensures countSegments returns a count of two when the string
and the delimiter are equal. The expected result of Str.split in that
case is ["", ""].
2022-07-28 01:35:08 +02:00
raleng
261ff3224d
Add strSplitHelp test cases
...
Add a test for the case when the string starts with the delimiter, and
when the string and the delimiter are equal.
2022-07-28 01:34:20 +02:00
Folkert
8e5b0daa94
figured out how to serialize nested structures
2022-07-27 23:52:11 +02:00
Folkert
fc01a0ee44
ignore if set_shared_buffer is not defined
2022-07-27 23:50:06 +02:00
Folkert
e62a0ee39a
make string clone return where next extra bytes should be written
2022-07-27 22:48:41 +02:00
Folkert
283539d61a
stop updating offset in repl_expect inner functions
2022-07-27 22:42:58 +02:00
Folkert
71e9835504
add another test
2022-07-27 22:38:33 +02:00
Folkert
da1bcfc8b0
get rid of bytes_read
2022-07-27 21:34:37 +02:00
Folkert
631c642950
store the start of the value for each variable in a table
2022-07-27 21:32:49 +02:00
Richard Feldman
c2865e39ff
Fix stack overflow in reporting
2022-07-27 15:22:36 -04:00
Folkert
9920184232
clippy
2022-07-27 21:03:08 +02:00
Folkert
9bdf1f733f
Wasm32Sized for isize
2022-07-27 20:10:47 +02:00
Folkert
da74585786
switch to load/store instead of phi because of weird bug
2022-07-27 19:27:55 +02:00
Folkert
e67e968ba1
use stack/heap memory instead of mmap for roc test
2022-07-27 17:28:44 +02:00
Folkert
f7452b8889
pass the shared buffer to zig directly
2022-07-27 17:16:12 +02:00
Folkert
a60a49bce6
dev backend cannot compare floats
2022-07-27 14:46:46 +02:00
Folkert
b132b1fa89
fix non-recursive tag unions in expects
2022-07-27 14:44:43 +02:00
Folkert
66f9ff1d58
fix bug with dynamic size calls (copy structs now work)
2022-07-27 14:29:44 +02:00
Folkert
e19b272a9e
test expect reporting
2022-07-27 13:51:12 +02:00
Folkert
b24c9e33d7
make test_gen a package
2022-07-27 13:49:23 +02:00
Folkert
498004c554
clean up expect code when not running tests
2022-07-27 12:26:03 +02:00
Folkert
91ea71c7aa
give mmap creation permissions
2022-07-27 12:15:27 +02:00
Folkert
eefb23e433
DCE expect helper for non-expect code gen
2022-07-27 12:07:51 +02:00
Richard Feldman
fa5bd442f8
Merge pull request #3635 from rtfeldman/joshuawarner32/multiline
...
Strip indents and the first/last newline from multiline strings
2022-07-26 22:09:58 -04:00
Ayaz Hafiz
bb14b649a2
Don't re-report obligations that we know were seen elsewhere
2022-07-26 20:46:35 -04:00
Ayaz Hafiz
6b9c1cb690
Check whether opaque implements ability using store
2022-07-26 20:46:35 -04:00
Ayaz Hafiz
8659ddc684
Remove dominated derive errors
2022-07-26 20:46:35 -04:00
Ayaz Hafiz
3fbf4e228b
Remove dominated derives from obligation checking
2022-07-26 20:46:34 -04:00
Ayaz Hafiz
ad3eb959e9
Don't mark dominated derives anymore
2022-07-26 20:46:34 -04:00
Ayaz Hafiz
04ee74542d
Rename IncompleteAbility
2022-07-26 20:46:34 -04:00
Ayaz Hafiz
c0d26226dd
Remove deferred obligation for opaques during solving
2022-07-26 20:46:34 -04:00
Ayaz Hafiz
c1dbffdad9
Make sure wrong specializations become error types
2022-07-26 20:46:34 -04:00
Ayaz Hafiz
3703940da9
Report specializations that target the unexpected type
2022-07-26 20:46:34 -04:00
Ayaz Hafiz
968bd468a8
Use proper members in checking derive keys
2022-07-26 20:46:33 -04:00
Ayaz Hafiz
f2cf7405df
Revert "Use abilities ImplKey in solve"
...
This reverts commit b7cb0003134f1b0c657d7173db6965b4247500aa.
2022-07-26 20:46:33 -04:00