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
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
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
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
Folkert
1b66247303
renaming
2022-03-05 19:30:15 +01:00
Folkert
fc4212310f
Merge remote-tracking branch 'origin/trunk' into solve-fully-tail-recursive
2022-03-05 18:34:09 +01:00
Folkert
d158702e1a
Merge remote-tracking branch 'origin/trunk' into take-scratchpad-bug
2022-03-05 02:15:46 +01:00
Folkert
8c321c1aa4
fix a bug with taking a scratchpad arena
2022-03-05 02:12:10 +01:00