Commit graph

498 commits

Author SHA1 Message Date
Folkert
a3b00fbf55
Merge branch 'explicit-closed-tag-record' into delay-instantiating-aliases 2022-03-17 20:34:52 +01:00
Folkert
f8a73e0baa
use unreachable! 2022-03-17 19:50:16 +01:00
Folkert
426bfe3ff1
implement solve crate 2022-03-17 19:31:54 +01:00
Folkert
c5fb4f2e47
rewrite and fix builtin alias instantiation 2022-03-16 22:10:04 +01:00
Folkert
7fd420bb95
optimize instantiation of builtins 2022-03-16 21:15:54 +01:00
Folkert
ad6fd18b05
optimizations for known aliases and identity substitutions 2022-03-16 18:33:53 +01:00
Folkert
b3dce7317d
hook up aliases 2022-03-15 22:23:40 +01:00
Folkert
7d8409f6a6
write Aliases implementation 2022-03-15 22:02:04 +01:00
Folkert
9059e09dca
thread through Aliases 2022-03-14 21:20:35 +01:00
Folkert
f9bd46ecb8
fake implementation of type_to_var for DelayedAlias 2022-03-14 20:22:38 +01:00
Folkert
00f3eaf2a1
thread through DelayedAlias 2022-03-14 19:47:19 +01:00
ayazhafiz
5670fe06cd Deal with destructuring tag unions behind opaques correctly
Closes #2702
2022-03-13 18:44:38 -05:00
Folkert
15ac77567a
make rigid variable introducion more obvious 2022-03-13 18:27:42 +01:00
Folkert
523032c6c9
more comments 2022-03-13 14:05:53 +01:00
Folkert
ed247c9da3
Merge remote-tracking branch 'origin/trunk' into type-checking-storage-subs 2022-03-13 13:43:00 +01:00
Folkert
eccb461b01
get fancy, store variable directly in the index 2022-03-13 01:59:28 +01:00
Folkert
b3d9f9c2de
use EitherIndex<Type, Variable> to halve number of types stored 2022-03-13 01:46:49 +01:00
Folkert
da03b0c2b3
add either_type_index_to_var 2022-03-13 01:45:23 +01:00
Folkert
e3e9215578
Merge remote-tracking branch 'origin/trunk' into type-checking-storage-subs 2022-03-12 14:10:43 +01:00
Folkert
6bb8bcb5a2
cleanup 2022-03-12 14:02:34 +01:00
Folkert
d9c3a7ddd9
get rid of unneeded field on SolvedModule 2022-03-12 14:00:51 +01:00
Folkert
c64f768abe
more comments 2022-03-12 13:52:13 +01:00
Folkert
01b810266b
test cleanup 2022-03-11 22:15:36 +01:00
Folkert
364bc81dc4
stop making solved types for non-builtins 2022-03-11 21:08:24 +01:00
Brendan Hansknecht
d681062c63 add Num.toNat 2022-03-11 11:17:42 -08:00
Folkert
30e7d94c95
clarify old constraint gen is now just for the builtins 2022-03-11 19:25:42 +01:00
Folkert
aebb3a162e
it's alive! 2022-03-11 17:27:44 +01:00
Folkert
9054546d27
move things in place to go storage_subs -> subs 2022-03-11 10:49:22 +01:00
Folkert
28abf5b1b8
store exposed values as storage subs 2022-03-11 10:12:25 +01:00
Folkert de Vries
ce1839133b
Merge pull request #2661 from rtfeldman/i/2541
Report invalid extension types during canonicalization
2022-03-07 16:12:04 +01:00
ayazhafiz
47e4904075 Chase aliases when checking for valid extension types 2022-03-06 22:17:58 -05:00
Folkert
ba2f9ba779
Merge remote-tracking branch 'origin/trunk' into content-flattype-copy 2022-03-06 20:52:04 +01:00
Folkert de Vries
27f367ec23
Merge pull request #2656 from rtfeldman/type-to-var-tco
Optimize type_to_variable
2022-03-06 20:44:14 +01:00
Folkert
a9c8e2dc3e
copy instead of clone Content 2022-03-06 19:07:18 +01:00
hafiz
de9da2d8a5
Merge pull request #2657 from rtfeldman/i/2567
Register accessor closures when they are bound
2022-03-06 12:59:55 -05:00
Folkert
29bf4195a1
make FlatType Copy 2022-03-06 18:15:26 +01:00
Folkert
41e56519ef
prevent a subs lookup by reserving a Variable 2022-03-06 18:00:25 +01:00
Richard Feldman
2a6a197fdf
Merge pull request #2653 from rtfeldman/def-types-tweaks
Def types tweaks
2022-03-06 11:25:37 -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
0f5c339b4f
and roc_result_to_var 2022-03-06 15:29:23 +01:00
Folkert
eec92204f1
optimize type_to_union_tags 2022-03-06 15:13:39 +01:00
Folkert
8b526e4f58
clippy 2022-03-06 14:54:19 +01:00
Folkert
592a5ace19
optimize recursive call 2022-03-06 14:14:47 +01:00
Folkert
a37a895016
optimize tag name cache 2022-03-06 14:11:33 +01:00
Folkert
7ad55d67e2
Make type_to_variable manually tail-recursive
by using a work stack and reserving variables. fun stuff
2022-03-06 13:15:50 +01:00
Folkert
4806dc378f
add comment and assert back 2022-03-05 23:49:21 +01:00
Folkert
0351b9fce7
improvements to adjust_rank 2022-03-05 23:45:07 +01:00
Folkert
97d9027271
improve pool_to_rank_table 2022-03-05 23:44:57 +01:00
Folkert
c7c9a90d65
restructure how def_types are stored in Constraints 2022-03-05 21:47:49 +01:00
hafiz
cad02d878c
Merge pull request #2645 from rtfeldman/solve-fully-tail-recursive
make solve fully tail recursive
2022-03-05 14:35:39 -05:00