Commit graph

91 commits

Author SHA1 Message Date
Anton-4
eee85fa45d
moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
Folkert de Vries
413025013f
Merge pull request #3209 from rtfeldman/pending-abilities-store
Distinguish between pending and resolved ability stores, and resolve external lambda set vars
2022-06-11 15:44:18 +02:00
Ayaz Hafiz
aa9b70a7c8
Distinguish between pending and resolved ability stores
Now that we have unspecialized lambda sets, we need to properly copy
their specialization variables when a module imports another modules'
ability store. I think it will be easier to ensure the correctness if
we distinguish between a "pending" ability store (which may contain
imports whose variables have not been added to subs yet) and "resolved"
abilities stores, which are what we care about for solve and later on.

There is a cost to this since `PendingAbilitiesStore#resolve` destroys
and collects all of the ability member data, rather than in-place
mutating as we did before. However, the resulting `AbilitiesStore` is
now much smaller, so the memory footprint will be better, and also
every field besides `ability_members` will be moved rather than copied.
2022-06-09 12:52:40 -04:00
Folkert
acf1f9c5c4
fix tests 2022-06-08 16:31:11 +02:00
Ayaz Hafiz
312cdd0b70
Correct imports of Encode and abilities across modules 2022-05-19 18:21:40 -04:00
Folkert
95bf8bb505
scope.lookup_str 2022-05-17 20:48:20 +02:00
Ayaz Hafiz
2e57bf0b6a Permit able variables in aliases, and thread them through 2022-05-08 15:08:14 -04:00
Folkert
be6006bbab
refactor 2022-04-30 21:22:47 +02:00
Folkert
d3f00c8c6d
use vec![] 2022-04-30 21:21:14 +02:00
Folkert
76754e4d2a
use &str instead of Ident in some key places 2022-04-30 20:43:12 +02:00
Folkert
15f860e6d7
search imports first; they are likely to be small, andl likely to contain used types 2022-04-30 19:58:09 +02:00
Folkert
c3ef37d1bd
refactor 2022-04-30 19:11:51 +02:00
Folkert
ec99d61953
skip generated symbols when looking for an ident 2022-04-30 17:11:46 +02:00
Folkert
45197779ae
re-use idents more aggressively 2022-04-30 15:47:15 +02:00
Folkert
c1d9c63e37
flip the order of loops to make lookups much faster 2022-04-30 12:27:50 +02:00
Folkert
a78aff0f2f
clippy 2022-04-30 01:54:16 +02:00
Folkert
4ad5e532c1
even more cleanup 2022-04-30 01:35:15 +02:00
Folkert
6fb014baba
more cleanup 2022-04-30 01:25:27 +02:00
Folkert
953369e0d8
cleanup 2022-04-30 00:57:21 +02:00
Folkert
8fe3e24c8b
step 4: new scope with passing reporting tests 2022-04-30 00:51:32 +02:00
Folkert
76a9d25f55
step 3 2022-04-29 21:21:32 +02:00
Folkert
c725c27c1b
step 2 2022-04-29 20:44:42 +02:00
Folkert
9906623e34
scoped locals step 1 2022-04-29 20:28:32 +02:00
Folkert
b8217bf9de
separate imports from local symbols 2022-04-29 18:42:57 +02:00
Ayaz
3b64fe59b5
Update compiler/can/src/scope.rs 2022-04-28 20:14:39 -04:00
Folkert
42d74199e5
limit cost of inner_scope 2022-04-28 23:43:24 +02:00
Folkert
6dc07c6ea4
add some basic scope tests 2022-04-28 23:23:55 +02:00
Folkert
f17cf9d02b
remove var_store argument 2022-04-28 22:30:27 +02:00
Folkert
572bd66fb7
remove exosed_ident_ids 2022-04-28 21:34:58 +02:00
Folkert
7fb5b23fb0
move identids into Scope 2022-04-28 21:08:28 +02:00
Folkert
37cb9279f5
prepare for all_ident_ids 2022-04-28 20:42:00 +02:00
Folkert
65e534b2b1
rename 2022-04-28 20:34:55 +02:00
Folkert
fb9d60226d
store `exposed_ident_ids in the scope itself 2022-04-28 20:30:02 +02:00
Folkert
5a613db7b6
use snapshots for inner scopes 2022-04-28 20:01:01 +02:00
Folkert
70844b1218
add snapshot functionality 2022-04-28 19:49:44 +02:00
Folkert
2844be4383
move IdentStore to the bottom 2022-04-27 21:03:18 +02:00
Folkert
d09036bb4f
don't have shadowing overwrite our data 2022-04-27 20:59:40 +02:00
Folkert
1372825ebb
refactor 2022-04-27 20:53:00 +02:00
Folkert
08c8968236
use interner in Scope + fix shadowing being reported incorrectly 2022-04-27 20:40:58 +02:00
Folkert
7af2bb343c
remove unused Scope functions 2022-04-27 19:53:30 +02:00
Folkert
34d77cffdb
Merge branch 'refactor-closure-can' into scope-smarter-storage 2022-04-27 19:46:02 +02:00
Folkert
622c6f3248
Merge remote-tracking branch 'origin/trunk' into scope-smarter-storage 2022-04-27 19:45:09 +02:00
Folkert
2d0a9c8531
stop scope diffing in when canonicalization 2022-04-27 17:57:42 +02:00
Folkert
d3ef35d935
rename 2022-04-26 11:33:26 +02:00
Folkert
af6c3231f3
Improved IdentIds 2022-04-25 23:15:57 +02:00
Folkert
6028507dff
Merge remote-tracking branch 'origin/trunk' into scope-smarter-storage 2022-04-25 21:33:20 +02:00
Ayaz Hafiz
f1dc9c8298
Opaques take @ : %s/\$\([A-Z]\)/@\1/g 2022-04-25 12:26:38 -04:00
Ayaz Hafiz
b6383f81ee
Numbers are opaques 2022-04-25 10:59:42 -04:00
Folkert
7b234911ac
do the work 2022-04-22 23:47:43 +02:00
Folkert
894e5bdd5c
add code for more efficient identifier store 2022-04-22 22:06:00 +02:00