Commit graph

8277 commits

Author SHA1 Message Date
Folkert
0f245ba778
insert type aliases instead of relying on scope check 2022-04-23 22:14:50 +02:00
Richard Feldman
95ca4d48e5
Re-remove divFloor 2022-04-23 16:12:11 -04:00
Folkert
91e4a0636f
enable do_pass_bool_byte_closure_layout only in release mode 2022-04-23 21:58:36 +02:00
Folkert
397d1c1db3
rename 2022-04-23 21:57:17 +02:00
Richard Feldman
122a1d57a0
Merge remote-tracking branch 'origin/trunk' into sqrt-unchecked 2022-04-23 15:40:30 -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
Folkert
002327e275
don't clone the defs 2022-04-23 17:14:02 +02: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
44aa1fca1c
s/constriants/constraints/g 2022-04-23 10:56:53 -04:00
Ayaz Hafiz
627d73e4c0
Clippy 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
Ayaz Hafiz
b61481c6e7
Try another strategy - fix recursion vars during typechecking 2022-04-22 17:57:01 -04:00
Ayaz Hafiz
02d5cd7885
Deal with recursive pointers that pass through non-recursive layouts 2022-04-22 17:57:01 -04:00
Ayaz Hafiz
92dfccedff
Document debugging env variables 2022-04-22 17:57:01 -04:00
Ayaz Hafiz
b0aafd762a
Show more type information in pretty printing 2022-04-22 17:57:01 -04:00
Folkert
7b234911ac
do the work 2022-04-22 23:47:43 +02:00
Folkert
894e5bdd5c
add code for more efficient identifier store 2022-04-22 22:06:00 +02:00
Folkert
8720462839
use more specific function to get symbols/regions 2022-04-22 21:41:17 +02:00
Folkert
6ffe14809f
don't populate Scope with aliases
these are now properly imported. For testing reporting we still need a way
to provide them without resolving imports (just for speed)
2022-04-22 20:49:46 +02:00