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