Commit graph

14920 commits

Author SHA1 Message Date
Richard Feldman
122a1d57a0
Merge remote-tracking branch 'origin/trunk' into sqrt-unchecked 2022-04-23 15:40:30 -04:00
Richard Feldman
adb3c3ca2a
Revert breakout back to a working state.
This should be un-reverted when enough compiler bugs are fixed
that it can run again!
2022-04-23 15:35:55 -04:00
Richard Feldman
ed336af17b
Test roc build on breakout example 2022-04-23 15:34:28 -04:00
Richard Feldman
af213d266c
Merge remote-tracking branch 'origin/trunk' into breakout 2022-04-23 15:33:01 -04:00
Richard Feldman
04f2ad914e
Merge pull request #2923 from rtfeldman/bugfix-opaques-codegen
Reuse symbol when opaque type wraps a known symbol
2022-04-23 15:32:24 -04:00
Folkert
ea15203ff9
clarify 2022-04-23 21:20:49 +02:00
Folkert
44c08779c3
simplify pattern match 2022-04-23 21:19:24 +02:00
Folkert
4668cf506b
be smarter about returning References 2022-04-23 21:15:54 +02:00
Folkert
9866feeb5d
stop putting the references into the env.closures map with the def name 2022-04-23 21:01:50 +02:00
Folkert
a4ea4acacf
pass closure references along via TempOutput 2022-04-23 20:59:34 +02:00
Folkert
8936cb9463
remove use of env.closures in later steps 2022-04-23 20:46:26 +02:00
Folkert
29493d2fd0
use matrix-based recursivity check 2022-04-23 20:43:08 +02:00
Folkert
31fc223517
add recursivity checker 2022-04-23 20:42:41 +02:00
Ayaz Hafiz
5d1dd81e93
Reuse symbol when opaque type wraps a known symbol
Opaques decay immediately into their argument during codegen, so we need
to handle something that's effectively variable aliasing correctly.

This bug popped up while migrating all current private tags to opaques.
2022-04-23 14:37:52 -04:00
Folkert
9bc00321b6
cleanup 2022-04-23 20:08:04 +02:00
Folkert
f7d604f3ef
move def ordering creation into canonicalize_defs 2022-04-23 20:06:05 +02:00
Folkert
bf4462c79a
consider _ = someDef definitions, where there is no symbol 2022-04-23 19:16:06 +02:00
Ayaz
b417cc6c18
Merge pull request #2820 from rtfeldman/i/2810
Deal with recursive pointers that pass through non-recursive layouts
2022-04-23 11:25:21 -04:00
Folkert
002327e275
don't clone the defs 2022-04-23 17:14:02 +02:00
Ayaz Hafiz
6422c55899
Fix mono test 2022-04-23 10:57:31 -04:00
Ayaz Hafiz
27a421fce6
Fix reporting test 2022-04-23 10:57:30 -04:00
Ayaz Hafiz
5ebae63c0f
Fix mono test 2022-04-23 10:57:30 -04:00
Ayaz Hafiz
c624969286
Turn repl test back on 2022-04-23 10:57:29 -04:00
Folkert
5840693743
use vectors instead of maps 2022-04-23 16:57:28 +02:00
Ayaz Hafiz
9a341e3d75
Improve non-exhaustive typechecking errors
We will replace this with proper exhaustiveness checking when we have
that in the typechecking phase, but for now this should do.
2022-04-23 10:56:54 -04:00
Ayaz Hafiz
87245def0a
Clippy vs McGregor 2047 2022-04-23 10:56:54 -04:00
Ayaz Hafiz
935a484c71
Fix compile error 2022-04-23 10:56:54 -04:00
Ayaz Hafiz
435781aa5b
Static assertions that certain types implement Copy 2022-04-23 10:56:54 -04:00
Ayaz Hafiz
188bd33f1f
Make sure we only open up closed tag unions 2022-04-23 10:56:54 -04:00
Ayaz Hafiz
633bdd5520
Fix failing reporting tests 2022-04-23 10:56:54 -04:00
Ayaz Hafiz
101ce7c6e8
Disable mono test for now 2022-04-23 10:56:54 -04:00
Ayaz Hafiz
44aa1fca1c
s/constriants/constraints/g 2022-04-23 10:56:53 -04:00
Ayaz Hafiz
fd5b682e48
Disable reporting tests for CI checking 2022-04-23 10:56:53 -04:00
Ayaz Hafiz
627d73e4c0
Clippy 2022-04-23 10:56:53 -04:00
Ayaz Hafiz
7c0c0ef02a
Add test from #2899 2022-04-23 10:56:53 -04:00
Ayaz Hafiz
504c3f9b49
Delay add "is open" constraint until we know a type variable 2022-04-23 10:56:53 -04:00
Ayaz Hafiz
7b2b41869f
Add a way to view solved types of arbitrary expressions/patterns in a program 2022-04-23 10:56:53 -04:00
Ayaz Hafiz
115cd2ba75
IsOpen constraints should always open up all nested tag unions 2022-04-23 10:56:52 -04:00
Folkert
7b37727175
cleanup the old implementation 2022-04-23 16:13:26 +02:00
Folkert
7042584559
clippy 2022-04-23 15:34:24 +02:00
Folkert
32edd55d3d
sanity check 2022-04-23 15:32:15 +02:00
Folkert
2037133882
refactor how global defs are registered 2022-04-23 13:49:14 +02:00
Folkert
c396ad6705
set up a def order (unpopulated for now) 2022-04-23 13:36:47 +02:00
Folkert
890bec1b0c
refactor 2022-04-23 13:17:58 +02:00
Ayaz Hafiz
3eb7824c7a
Typos 2022-04-22 17:57:02 -04:00
Ayaz Hafiz
bb06bcd7f1
Fix compile error 2022-04-22 17:57:02 -04:00
ayazhafiz
939f413569
Don't try to fix recursion vars if there are other errors 2022-04-22 17:57:02 -04:00
Ayaz Hafiz
1e1ffb2f62
Bugfix use root var 2022-04-22 17:57:01 -04:00
Ayaz Hafiz
5dfe44c72d
Render nullable wrapped tag unions that pass through aliases 2022-04-22 17:57:01 -04:00
Ayaz
3906c5c200
Clippy 2022-04-22 17:57:01 -04:00