Commit graph

882 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
34e566965d
implement can crate 2022-03-17 19:04:24 +01:00
Folkert
b38ff78422
make extension check work again 2022-03-16 22:19:48 +01:00
Folkert
f868410a91
also skip opaque aliases for now 2022-03-16 22:09:39 +01:00
Folkert
48b6cd09c7
conditionally use a DelayedAlias 2022-03-16 18:29:40 +01:00
Folkert
7f63e09272
remember recursion variable when making alias recursive 2022-03-16 14:52:34 +01:00
Folkert
1dacf29879
make sure aliases are not forgotten 2022-03-16 14:36:24 +01:00
Folkert
b3dce7317d
hook up aliases 2022-03-15 22:23:40 +01:00
ayazhafiz
8aaf614481 Improve error message 2022-03-15 11:18:02 -05:00
ayazhafiz
787c8ee3a5 s/occurence/occurrence/g 2022-03-14 17:50:55 -05:00
ayazhafiz
8810a48a52 fmt 2022-03-14 17:47:29 -05:00
ayazhafiz
3da34fc843 Report unbound type variables in aliases, opaques
Closes #2726
2022-03-14 17:42:45 -05:00
Folkert
6baae55980
add equal_types_with_storage helper 2022-03-13 22:46:41 +01:00
Folkert
e8bf5fa378
prevent clone for all function signatures 2022-03-13 22:35:56 +01:00
Folkert
15ac77567a
make rigid variable introducion more obvious 2022-03-13 18:27:42 +01:00
Folkert
d31ea3e71f
clarify import constraint 2022-03-13 17:59:33 +01:00
Folkert
b3f7b3a337
record referenced types 2022-03-13 17:52:31 +01:00
Folkert
4ef6cba23a
Merge branch 'split-types-values' into type-checking-storage-subs 2022-03-13 17:43:24 +01:00
Folkert
563ba6acbb
incorporate referenced types 2022-03-13 16:57:42 +01:00
Folkert
8bc31e82c3
try to keep type and value symbols separate 2022-03-13 16:50:32 +01:00
Folkert
ed247c9da3
Merge remote-tracking branch 'origin/trunk' into type-checking-storage-subs 2022-03-13 13:43:00 +01:00
Folkert
a9849a6ffc
add clarifying comments to Constraints 2022-03-13 13:42:49 +01:00
Richard Feldman
0b3fb576d4
Merge remote-tracking branch 'origin/trunk' into abilities-parsing 2022-03-12 23:43:52 -05:00
Richard Feldman
da64cc0a1d
cargo fmt 2022-03-12 23:43:45 -05:00
ayazhafiz
d7abc3897b Parse abilities 2022-03-12 21:29:06 -06:00
Folkert
8b2c1707d4
don't even create a type if we only need a variable 2022-03-13 02:12:45 +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
e3e9215578
Merge remote-tracking branch 'origin/trunk' into type-checking-storage-subs 2022-03-12 14:10:43 +01:00
Folkert
401b3fd5ad
improve Constraint Debug impl 2022-03-12 13:31:58 +01:00
Folkert
8b92401d01
document let_import_constraint 2022-03-12 13:28:24 +01:00
hafiz
28a3ae85e3
Merge pull request #2704 from rtfeldman/num-to-nat
Add `Num.toNat`
2022-03-11 18:46:43 -06:00
hafiz
5bc29c9b88
Merge pull request #2700 from rtfeldman/optimize-instantiate-alias
improve `correct_mutual_recursive_type_alias`
2022-03-11 17:29:51 -06:00
ayazhafiz
6a71358431 Get rid of more clones when resolving recursive aliases and use fast ImMap 2022-03-11 14:59:19 -06:00
Brendan Hansknecht
d681062c63 add Num.toNat 2022-03-11 11:17:42 -08:00
Folkert
aebb3a162e
it's alive! 2022-03-11 17:27:44 +01:00
Folkert
fc5e09a9e3
use Vec instead of ImSet 2022-03-11 09:52:44 +01:00
Folkert
3510bad1d5
add scaffolding 2022-03-07 20:55:40 +01:00
ayazhafiz
01255a17d5 Remove unnecessary reference 2022-03-06 22:19:45 -05:00
ayazhafiz
47e4904075 Chase aliases when checking for valid extension types 2022-03-06 22:17:58 -05:00
ayazhafiz
aae5a46034 Fmt 2022-03-06 22:17:22 -05:00
ayazhafiz
eed7e3df71 Report invalid extension types during canonicalization
Closes #2541
2022-03-06 22:17:22 -05: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
ayazhafiz
0692caf7ba Consolidate Accessor data 2022-03-06 11:07:31 -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
c7c9a90d65
restructure how def_types are stored in Constraints 2022-03-05 21:47:49 +01:00
Folkert
dc8a077fff
constraint.rs tweaks 2022-03-05 21:32:13 +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
Folkert
fc4212310f
Merge remote-tracking branch 'origin/trunk' into solve-fully-tail-recursive 2022-03-05 18:34:09 +01:00
Folkert
0285a1b0ea
cleanup 2022-03-05 16:41:29 +01:00