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