Commit graph

263 commits

Author SHA1 Message Date
Ayaz Hafiz
19233e08c2
Consolidate IsOpen solve 2022-04-25 19:04:10 -04:00
Ayaz Hafiz
1de67fe19a
Nested Eq constraint in Exhaustive behind SoA 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
17e7b10267
Fought against clippy and lost 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
372b12bec9
Typo 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
85e3373d8b
Move exhaustiveness checking to type checking 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
356616d834
Move exhaustiveness checking to type solving phase with solve tests 2022-04-25 19:04:08 -04:00
Ayaz Hafiz
b6383f81ee
Numbers are opaques 2022-04-25 10:59:42 -04:00
Ayaz Hafiz
87245def0a
Clippy vs McGregor 2047 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
504c3f9b49
Delay add "is open" constraint until we know a type variable 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
8b144c446d
remove PartialEq for a bunch of types that we should not compare 2022-04-20 16:58:30 +02:00
Ayaz Hafiz
ceea194db4
Make sure "is open" constraints add flex vars at the right rank 2022-04-18 12:56:22 -04:00
Ayaz Hafiz
b79b351136
The first ability... compiles 2022-04-14 16:50:41 -04:00
Ayaz Hafiz
6b4294307f
Start saving ability signature on designated variable again 2022-04-14 16:22:54 -04:00
Ayaz Hafiz
d630562d99
forgive me clippy 2022-04-13 15:30:02 -04:00
Ayaz Hafiz
8eec930260
More and smarter checking and error reporting for abilities 2022-04-13 15:25:19 -04:00
Ayaz Hafiz
25b3aa7ca7
Typed body specializations solve 2022-04-13 10:42:46 -04:00
Ayaz Hafiz
a1c1dc1a9f
Ask rustc to please always inline 2022-04-13 08:49:27 -04:00
Ayaz Hafiz
0336b6ad27
Clippy 2022-04-12 19:02:58 -04:00
Ayaz Hafiz
67b5ab7fe7
Add test for when specialization types conflict 2022-04-12 19:01:36 -04:00
Ayaz Hafiz
d94556d807
Report overly general specializations 2022-04-12 18:52:49 -04:00
Ayaz Hafiz
16d0060824
Report errors for type errors in specializations outside of ability impl 2022-04-12 18:41:20 -04:00
Ayaz Hafiz
127d435ff2
Report incomplete ability implementations 2022-04-12 18:26:19 -04:00
Ayaz Hafiz
462f443956
Comment 2022-04-12 17:23:03 -04:00
Ayaz Hafiz
64b559073d
Clippy 2022-04-12 16:18:07 -04:00
Ayaz Hafiz
15a040ec87
Basic type inference and solving for abilities
Note that is still pretty limited. We only permit opaque types to
implement abilities, abilities cannot have type arguments, and also no
other functions may depend on abilities
2022-04-12 16:18:07 -04:00
Folkert
38c2710fc5
intern common tag names 2022-03-20 15:30:47 +01:00
hafiz
418e71e95c
Merge pull request #2755 from rtfeldman/dense-let-constraints
Constraint gen tweaks
2022-03-19 20:39:55 -04:00
Folkert
7f92de69ab
some comments 2022-03-19 23:44:28 +01:00
Folkert
21a51464f3
various small type-related changes 2022-03-18 22:35:12 +01:00
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
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
6bb8bcb5a2
cleanup 2022-03-12 14:02:34 +01: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