Folkert
397d1c1db3
rename
2022-04-23 21:57:17 +02:00
Folkert
ea15203ff9
clarify
2022-04-23 21:20:49 +02:00
Folkert
44c08779c3
simplify pattern match
2022-04-23 21:19:24 +02:00
Folkert
4668cf506b
be smarter about returning References
2022-04-23 21:15:54 +02:00
Folkert
9866feeb5d
stop putting the references into the env.closures map with the def name
2022-04-23 21:01:50 +02:00
Folkert
a4ea4acacf
pass closure references along via TempOutput
2022-04-23 20:59:34 +02:00
Folkert
8936cb9463
remove use of env.closures in later steps
2022-04-23 20:46:26 +02:00
Folkert
29493d2fd0
use matrix-based recursivity check
2022-04-23 20:43:08 +02:00
Folkert
9bc00321b6
cleanup
2022-04-23 20:08:04 +02:00
Folkert
f7d604f3ef
move def ordering creation into canonicalize_defs
2022-04-23 20:06:05 +02:00
Folkert
bf4462c79a
consider _ = someDef
definitions, where there is no symbol
2022-04-23 19:16:06 +02:00
Folkert
002327e275
don't clone the defs
2022-04-23 17:14:02 +02:00
Folkert
5840693743
use vectors instead of maps
2022-04-23 16:57:28 +02:00
Folkert
7b37727175
cleanup the old implementation
2022-04-23 16:13:26 +02:00
Folkert
7042584559
clippy
2022-04-23 15:34:24 +02:00
Folkert
32edd55d3d
sanity check
2022-04-23 15:32:15 +02:00
Folkert
2037133882
refactor how global defs are registered
2022-04-23 13:49:14 +02:00
Folkert
c396ad6705
set up a def order (unpopulated for now)
2022-04-23 13:36:47 +02:00
Folkert
890bec1b0c
refactor
2022-04-23 13:17:58 +02:00
Folkert
28cb9bf36e
use custom type for TopologicalSort result
2022-04-22 19:28:46 +02:00
Folkert
a40483a2ec
cleanup
2022-04-22 16:17:21 +02:00
Folkert
9f7c7b56a1
use ReferenceMatrix in DefOrdering
2022-04-22 15:49:32 +02:00
Folkert
0c10fa31f5
rename
2022-04-22 15:41:21 +02:00
Folkert
e40e4ae846
rename
2022-04-22 15:17:43 +02:00
Folkert
8837eb2c19
remove old def sorting code
2022-04-22 15:09:45 +02:00
Folkert
c763d51551
use new sccs in error case too
2022-04-22 15:04:16 +02:00
Folkert
887acb7519
be smarter about when a function is recursive
2022-04-22 14:41:42 +02:00
Folkert
8c08c63151
faster strongly-connected components
2022-04-22 14:10:46 +02:00
Folkert
45567a591c
rename
2022-04-22 13:42:57 +02:00
Folkert
141f88365d
use extra bitvec to spot faulty recursion
2022-04-22 12:56:50 +02:00
Folkert
b6ccd9c8fb
use bitvec-based topological sort
2022-04-22 11:35:08 +02:00
Folkert de Vries
2cc8e95198
Merge pull request #2901 from rtfeldman/vec-map
...
VecMap
2022-04-21 09:16:38 +02:00
Ayaz Hafiz
4bbc1d3a2b
Clippy
2022-04-20 17:46:19 -04:00
Ayaz Hafiz
b9f79fdd31
Able variables through different functions compile
2022-04-20 17:43:17 -04:00
Ayaz Hafiz
a07323fb40
Typecheck annotations with able variables outside ability members
2022-04-20 17:43:16 -04:00
Folkert
e87ca7e4b7
create and union fewer Output's
2022-04-20 21:20:59 +02:00
Folkert
9d17a075d9
halve the number of lookups into References
2022-04-20 20:22:52 +02:00
Folkert
ec43d7d770
clippy
2022-04-20 18:05:06 +02:00
Folkert
b92c28b237
make calls private
2022-04-20 17:43:18 +02:00
Folkert
c531191e49
make value_lookups private
2022-04-20 17:34:08 +02:00
Folkert
e740bbe529
make some of References' fields private
2022-04-20 17:25:22 +02:00
Folkert
8b144c446d
remove PartialEq for a bunch of types that we should not compare
2022-04-20 16:58:30 +02:00
Folkert
b59d33a1d5
refactor roc_collections
2022-04-19 23:00:05 +02:00
Ayaz Hafiz
f129777115
Explicitly disallow ability definitions in nested scopes
...
Abilities can only be defined on the toplevel of a module. There is a
technical reason to this, which is that during type solving we must
introduce all abilities at the very beginning, and we need to make sure
ranks are correct. But there is a practical reason as well, which is
that nested ability definitions don't seem to be very useful.
Note that specializations can be nested, and are allowed to be. Also, we
can revisit this in the future. I just don't want experiments to break
right now because someone uses an ability in a nested scope where we
don't expect.
Closes #2878
2022-04-18 18:04:46 -04:00
Folkert
7f3ca4458a
use VecSet in IntroducedVariables
2022-04-17 20:50:41 +02:00
Folkert
dda4f46e67
use VecSet in References
2022-04-17 19:37:10 +02:00
Ayaz Hafiz
6b4294307f
Start saving ability signature on designated variable again
2022-04-14 16:22:54 -04:00
Ayaz Hafiz
0792ccbbe8
Calling ability with non-specialized type is an error
2022-04-13 11:49:33 -04:00
Ayaz Hafiz
d110fbde6c
Annotation specializes ability
2022-04-13 10:44:34 -04:00
Ayaz Hafiz
25b3aa7ca7
Typed body specializations solve
2022-04-13 10:42:46 -04:00