Commit graph

263 commits

Author SHA1 Message Date
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
Folkert
a79f6c6cdd
restructure and add comments 2022-03-05 01:29:21 +01:00
Folkert
c7d8ae6c79
make complex case tail-recursive 2022-03-05 01:02:27 +01:00
Folkert
3a1add6ce8
add LocalDefVarsVec::from_def_types 2022-03-05 00:53:27 +01:00
Folkert
41df04184e
make the simple case tail-recursive 2022-03-05 00:26:03 +01:00
Folkert
4ca9ea0b89
refactor After 2022-03-04 23:57:41 +01:00
Folkert
546afc9661
drop soa suffix 2022-03-02 21:21:37 +01:00
Folkert
0eb98a4c59
move over constraint 2022-03-02 21:19:58 +01:00
Folkert
c52029c2d1
the debugging begins 2022-03-02 20:30:42 +01:00
Folkert
fe48bdf5b1
make solve that uses new constraint 2022-03-02 19:43:03 +01:00
Folkert
19d7f7ce09
make vars-by-symbol a vector 2022-03-01 21:51:25 +01:00
Folkert
8b457a56c5
reduce cloning of Env 2022-03-01 00:08:56 +01:00
Folkert
d3bbf6d504
struct of arrays! 2022-03-01 00:00:50 +01:00
Folkert
1ef9546391
use Vec instead of MutMap 2022-02-28 23:54:35 +01:00
Folkert
9d82f795b7
make it abstract 2022-02-28 23:43:58 +01:00
Folkert
751ae125a5
remove aliases from solve Env 2022-02-28 23:41:07 +01:00
Folkert
c18befeccf
short-circuit aliases 2022-02-28 23:37:33 +01:00
ayazhafiz
01da425851 Simplify solve worklist substantially 2022-02-27 16:41:31 -05:00
ayazhafiz
56d4dc3480 Transition solve to use a worklist rather than always recursing
This should unblock some of @folkertdev's work on transitioning builtins
to pure Roc code. It's not perfect yet (we still make some recursions),
but it's a step, and it should avoid recursing on `Let`
`ret_constraint`s, which caused stack overflows when they became really
long before.
2022-02-27 15:51:19 -05:00
ayazhafiz
07b1829732 Improve error reporting for patterns not matching opaques 2022-02-27 00:11:11 -05:00
ayazhafiz
059c324268 Error reporting for type mismatches involving opaques 2022-02-27 00:10:12 -05:00
ayazhafiz
90de82e295 Validation of opaques during canonicalization 2022-02-21 18:25:19 -05:00
ayazhafiz
6b53692aac Canonicalize opaque types 2022-02-20 13:47:01 -05:00
ayazhafiz
909fae5b6c Generalize recursion variables properly
Closes #2379
Closes #2481
2022-02-18 00:07:38 -05:00
ayazhafiz
0d241f3c3c Only expand ErrorType::Range's type range when range unification fails 2022-02-06 15:04:13 -05:00
ayazhafiz
680bf8e0b7 Treat rigids as flex vars when checking number range types 2022-02-06 15:04:12 -05:00
ayazhafiz
8dc92ccd97 Second pass 2022-02-06 15:04:12 -05:00
ayazhafiz
5e0d90ac53 First pass 2022-02-06 15:04:12 -05:00
ayazhafiz
d10eb0f9a3 Fix Apply usage 2022-01-31 23:00:37 -05:00
ayazhafiz
409ced0ef2 Simply constraint matching in solve 2021-12-23 20:22:42 -06:00
ayazhafiz
1f81a598f7 Presence constraint flag -> Enum 2021-12-23 19:40:18 -06:00