Commit graph

3114 commits

Author SHA1 Message Date
Ahmad Sattar
bbd4c9886c
Add NumSubWrap as a NumSub copy 2023-01-19 09:19:20 +01:00
Ayaz Hafiz
59eb980fb2
Fix gen tests 2023-01-18 10:14:19 -06:00
Ayaz Hafiz
e6ab8dcf60
Fix mono test 2023-01-18 10:06:14 -06:00
Ayaz
ed7123ed5b
Merge pull request #4887 from roc-lang/weakening-5
Finish weakening let-bindings
2023-01-17 12:47:12 -06:00
Ayaz
c5788e62c6
Merge branch 'main' into tag-union-ext
Signed-off-by: Ayaz <20735482+ayazhafiz@users.noreply.github.com>
2023-01-16 16:32:02 -06:00
Ayaz Hafiz
ff625397ed
Fix wasm sizeof 2023-01-16 14:26:50 -06:00
Ayaz Hafiz
1c8cef2547
Update mono 2023-01-16 12:46:40 -06:00
Ayaz Hafiz
ec8c6bdfc5
Add gen tests for #4734
Closes #4734
2023-01-16 12:45:09 -06:00
Ayaz Hafiz
011c2ffd47
Add mono tests for function-specialization information preserved in lambda sets 2023-01-16 12:45:08 -06:00
Ayaz Hafiz
3109b2b00f
Store args/return layout in the lambda set specialization layout 2023-01-16 12:45:08 -06:00
Ayaz Hafiz
237bb6bcd5
Use env when constructing lambda sets rather than clearing their envs 2023-01-16 12:45:08 -06:00
Ayaz Hafiz
81d2d2923d
Remove lambda set recursion var as appropriate after construction 2023-01-16 12:45:08 -06:00
Ayaz Hafiz
8dc2a5daa7
Store args, return type on lambda set 2023-01-16 12:45:07 -06:00
Ayaz Hafiz
56d14b8b32
Fix load tests 2023-01-16 11:17:59 -06:00
Ayaz Hafiz
20d0d62af7
Allow extending Openness constraints when doing specializations 2023-01-16 10:54:39 -06:00
Ayaz Hafiz
1d75934659
Don't match empty tag union in openness constraint 2023-01-16 10:54:39 -06:00
Ayaz Hafiz
f08a8aa8c7
Fix release build 2023-01-16 10:54:39 -06:00
Ayaz Hafiz
91d61424ad
Lints 2023-01-16 10:54:39 -06:00
Ayaz Hafiz
2f74d0b1b9
Do not permit inferred-open-in-output-position extension variables to grow
Closes #4852
Closes #4845
2023-01-16 10:54:38 -06:00
Ayaz Hafiz
c9460ecf3f
Rename IsImplicitOpennessVar 2023-01-16 10:52:23 -06:00
Ayaz Hafiz
5fceb9ceb7
Push implicit openness vars through 2023-01-16 10:52:23 -06:00
Ayaz Hafiz
96b2b7a0c5
Fix comment 2023-01-16 10:52:23 -06:00
Ayaz Hafiz
a47841d426
Generalize tag openness extension variables 2023-01-16 10:52:23 -06:00
Ayaz Hafiz
281b71cf94
Unification of Any and Openness tag extensions 2023-01-16 10:52:23 -06:00
Ayaz Hafiz
1c93727822
Add a notion of "openness" tag extensions suitable only for size-polymorphism 2023-01-16 10:52:23 -06:00
Ayaz Hafiz
5f5d6a42d1
Add debug assertion for shape of tag union extension variables
When we have a tag union type, outside of special cases in the middle of
unification, its extension type should either be (1) the closed tag
union or (2) a flex/rigid var. This adds an assertion for that.
2023-01-16 10:52:23 -06:00
Ayaz Hafiz
1c58118dc7
Strip _new from tag unification functions 2023-01-16 10:52:22 -06:00
Ayaz Hafiz
95dae5036a
Weaken top-level mutually recursive let bindings as appropriate 2023-01-16 10:49:17 -06:00
Ayaz Hafiz
a77f04cd19
Weaken mutually-recursive let bindings as appropriate 2023-01-16 10:49:17 -06:00
Ayaz Hafiz
58081ada19
Weaken aliased variable names 2023-01-16 10:49:17 -06:00
Ayaz Hafiz
c3f1646274
Weaken ability members behind let-bindings 2023-01-16 10:49:17 -06:00
Ayaz Hafiz
48049ed956
Weaken tags behind let bindings 2023-01-16 10:49:17 -06:00
Ayaz Hafiz
52c2f3a054
Weaken zero-argument tags in let bindings 2023-01-16 10:49:16 -06:00
Joshua Warner
3b51d7cd13
Fix multi-backpassing in top-level defs
Fixes #4821
2023-01-15 10:39:21 -08:00
Ayaz
545e6bc989
Merge pull request #4884 from joshuawarner32/fmt-fuzzing-fixes
Fix approximately a bajillion fmt and parsing bugs
2023-01-14 19:45:30 -06:00
Ayaz
616d699e59
Merge pull request #4894 from roc-lang/list-reserve-zst
handle zero-sized types in list decrement
2023-01-14 19:44:31 -06:00
Folkert de Vries
43a8d1e610
Merge pull request #4885 from roc-lang/weakening-4
Weakening 4
2023-01-14 17:23:40 +01:00
Folkert de Vries
9a86e7e080
Merge pull request #4896 from roc-lang/expect-crash
reproduce crash in `expect` with Lists of different length
2023-01-14 16:53:52 +01:00
Ayaz Hafiz
d9da945283
Allow generalization of annotations with no implementation 2023-01-14 15:33:54 +01:00
Ayaz Hafiz
beb7e79830
Print extension vars that are ability-bound 2023-01-14 15:33:54 +01:00
Ayaz Hafiz
3d0a0a4a99
Update more dict/set references 2023-01-14 15:33:54 +01:00
Ayaz Hafiz
ab796d93ff
Format 2023-01-14 15:33:54 +01:00
Ayaz Hafiz
df90baa0fc
Weaken runtime errors 2023-01-14 15:33:53 +01:00
Ayaz Hafiz
e525726be6
Weaken typed holes 2023-01-14 15:33:53 +01:00
Ayaz Hafiz
20b4f290ce
Weaken expect/dbg behind let bindings 2023-01-14 15:33:53 +01:00
Ayaz Hafiz
354765afca
Explain why opaque wrap functions need not be weakened behind lets 2023-01-14 15:33:52 +01:00
Ayaz Hafiz
6dca92e420
Weaken record updates behind let bindings 2023-01-14 15:33:52 +01:00
Ayaz Hafiz
2e36e2f418
Don't weaken accessor functions
Accessor functions are equivalent to closures and hence obey function
semantics, no need to weaken them
2023-01-14 15:33:52 +01:00
Ayaz Hafiz
0a9155d9d8
Weaken record accesses 2023-01-14 15:33:51 +01:00
Ayaz Hafiz
b5cce17822
Weaken crash 2023-01-14 15:33:51 +01:00