Commit graph

559 commits

Author SHA1 Message Date
Ayaz Hafiz
42614d30ed
Add test for instantiating unspecialized lambda sets 2022-06-02 11:24:41 -05:00
Ayaz Hafiz
3cd60e15d0
Add instantiation of unspecialized lambda sets for abilities 2022-06-02 11:01:27 -05:00
Ayaz Hafiz
af38860f07
Add Type::UnspecializedLambdaSet variant 2022-06-02 10:12:44 -05:00
Ayaz Hafiz
873271b02d
Remove unused impl 2022-06-02 09:44:39 -05:00
Ayaz Hafiz
7421e444b1
Remove unnecessary SubsFmtContent 2022-06-02 09:44:38 -05:00
Ayaz Hafiz
bde107da49
Remove TagName in favor of explicit TagName or Closure
Note that we still need a `TagOrClosure` enum for phases past mono, but
at least we get rid of the branches in the front end.
2022-06-02 09:44:34 -05:00
Ayaz Hafiz
2c62f9b5ba
s/occurence/occurrence 2022-06-01 13:18:55 -05:00
Ayaz Hafiz
5b7f4ef5ec
Clippy 2022-06-01 13:18:55 -05:00
Ayaz Hafiz
0fa4aa8cbd
Simplify maybe_mark_union_recursive 2022-06-01 13:18:55 -05:00
Ayaz Hafiz
591528d8a3
Handle case where lambda set is unbound 2022-06-01 13:18:55 -05:00
Ayaz Hafiz
c66f989467
Recursive closure layout working again in effect test 2022-06-01 13:18:54 -05:00
Ayaz Hafiz
2e70c9aba4
Getting closer. Checking in for a break. 2022-06-01 13:18:53 -05:00
Ayaz Hafiz
790eb8e20c
Lambda sets don't need extension vars 2022-06-01 13:18:03 -05:00
Ayaz Hafiz
c2a2ce690c
Lift lambda sets as their own type
This prepares for unspecialized lambda set in the type system in
general.
2022-06-01 13:17:22 -05:00
Ayaz Hafiz
3fc95bad90
Remove unused lambda set struct 2022-06-01 13:14:00 -05:00
Folkert
9540aa5b70
make deep_copy_var non-recursive 2022-06-01 17:59:35 +02:00
Folkert
d72ebf4b74
formatting for Defs 2022-05-25 14:58:36 +02:00
Richard Feldman
4eec34becf
Update to use new square brace formatting 2022-05-22 23:15:54 -04:00
Richard Feldman
a4a5f438e6
Update type pretty-printing 2022-05-22 18:35:56 -04:00
Folkert
fb37d925dc
deal with aliases around number types 2022-05-21 21:28:31 +02:00
Folkert
99a879d795
cleanup 2022-05-21 20:56:56 +02:00
Folkert
d43bda83b4
cleanup 2022-05-21 20:50:06 +02:00
Folkert
98ce9f4d09
remove the snapshots 2022-05-21 20:42:19 +02:00
Folkert
cb40aab21f
refactor number bounds 2022-05-21 18:53:50 +02:00
Folkert
8c44661bc2
use set_content_unchecked; replace modify with a single set 2022-05-21 14:06:43 +02:00
Folkert
f1e1c45f2f
some more unchecked operations 2022-05-21 13:52:44 +02:00
Folkert
a1894195d3
refactoring trivial copy detection 2022-05-21 13:48:28 +02:00
Folkert
a705d6a6e8
unchecked in making the rank table 2022-05-20 23:28:56 +02:00
Folkert
e20ac3f38f
use unchecked operations in generalization 2022-05-20 23:18:27 +02:00
Folkert
6bedf126ae
unchecked variants of functions (don't check the rootness of the key 2022-05-20 23:06:47 +02:00
Folkert
a99489fb57
implement get_rank_set_mark natively 2022-05-20 22:54:51 +02:00
Folkert
afedc4ab01
implement .modify() natively 2022-05-20 22:54:33 +02:00
Folkert
ac30ec5489
inline OptVariable functions 2022-05-20 22:53:56 +02:00
Folkert
e9bdf0e5de
re-enable builtin module caching 2022-05-20 22:24:21 +02:00
Folkert
2b94eeed60
switch to new unification table 2022-05-20 21:54:22 +02:00
Folkert
22ca51c881
get/set copy 2022-05-20 21:14:33 +02:00
Folkert
4489a308e4
use modify over getting a mutable reference 2022-05-20 21:02:53 +02:00
Folkert
39c156b970
add our own custom unification table 2022-05-20 18:39:26 +02:00
Ayaz Hafiz
bb0777c3c8
Revert "Add a content visitor"
This reverts commit 70b923e3fe8307275f6a0de422e6d35d91afb1eb.
2022-05-19 18:23:02 -04:00
Ayaz Hafiz
83a8d360c1
Add a content visitor 2022-05-19 18:23:02 -04:00
Ayaz Hafiz
d499c06678
Remove unused function 2022-05-19 18:23:01 -04:00
Richard Feldman
226fe40069
cargo fmt 2022-05-16 12:13:18 -04:00
Anton-4
0f59f3097a
cargo fix --edition 2022-05-16 17:04:17 +02:00
Folkert
69e7d0a378
use opt var in cycle marks 2022-05-15 13:14:18 +02:00
Ayaz Hafiz
710a10a29c
Check for invalid cycles after type solving recursive defs
Disallow cycles that pass through a non-function value. Since we
evaluate eagerly, having one such cycle means there is at least one path
in the program that (likely) has unbounded recursion. Of course we can't
be certain (halting problem), but it's very likely, and avoids stuff
like #1926. Also, mono (as it's done today) won't work if things in a
cycle aren't functions.

Closes #1926
2022-05-11 14:57:01 -04:00
Richard Feldman
11e2faa87a
Merge pull request #3050 from rtfeldman/bindgen-tag-payloads
Bindgen single-tag unions
2022-05-10 19:27:25 -04:00
Folkert de Vries
89c6f55288
Merge pull request #3048 from rtfeldman/i/2389
Type solving paper cuts
2022-05-10 20:45:45 +02:00
Ayaz Hafiz
4339d50480
Improve cycle error message
Closes #2513
2022-05-10 12:11:32 -04:00
Ayaz Hafiz
1fb6718c00
Improve error type context field name 2022-05-10 11:32:45 -04:00
Ayaz Hafiz
3ddb14184d
Move dead code removal 2022-05-10 11:29:10 -04:00