Zack M. Davis
1b6c9605e4
use field init shorthand EVERYWHERE
...
Like #43008 (f668999), but _much more aggressive_.
2017-08-15 15:29:17 -07:00
Michael Woerister
8b36d3308e
Allocate DefIndices for global crate metadata.
...
This allows for treating global crate metadata the same as regular metadata with regard to incr. comp.
2017-06-07 12:11:40 +02:00
Michael Woerister
6a5e2a5a9e
incr.comp.: Hash more pieces of crate metadata to detect changes there.
2017-05-08 12:31:26 +02:00
Michael Woerister
ca2dce9b48
ICH: Replace old, transitive metadata hashing with direct hashing approach.
...
Instead of collecting all potential inputs to some metadata entry and
hashing those, we directly hash the values we are storing in metadata.
This is more accurate and doesn't suffer from quadratic blow-up when
many entries have the same dependencies.
2017-04-12 11:47:26 +02:00
Michael Woerister
bc7af816f3
ICH: Hash everything that gets encoded into crate metadata.
2017-04-12 11:42:15 +02:00
Michael Woerister
090767b5ef
Allocate numerical values of DefIndexes from two seperate ranges.
...
This way we can have all item-likes occupy a dense range of
DefIndexes, which is good for making fast, array-based
dictionaries.
2017-03-22 17:07:19 +01:00
Eduard-Mihai Burtescu
45c8c5678a
rustc: rename TyCtxt's map
field to hir
.
2017-01-26 13:41:28 +02:00
Jeffrey Seyfried
872943c317
Improve macro reexports.
2016-11-10 10:04:24 +00:00
Srinivas Reddy Thatiparthy
892a05d694
run rustfmt on librustc_metadata folder
2016-10-25 21:53:11 +05:30
Eduard Burtescu
a96abca2a4
rustc_metadata: replace RBML with a simple and type-safe scheme.
2016-09-20 20:08:05 +03:00
Eduard Burtescu
d2ea3daad1
rustc_metadata: group the tags into root tags and item tags.
2016-09-20 20:08:03 +03:00
Eduard Burtescu
8734aaa33e
rustc_metadata: move more RBML tags to auto-serialization.
2016-09-20 20:08:02 +03:00
Eduard Burtescu
0863012fb9
Remove librbml and the RBML-tagged auto-encoder/decoder.
2016-09-20 20:08:01 +03:00
Eduard Burtescu
82197287a2
rustc_metadata: combine EncodeContext and rbml::writer::Encoder.
2016-09-20 19:21:33 +03:00
Niko Matsakis
6b33f47514
remove usize: DepGraphRead
and add Untracked
...
The idea is that a `usize` is sort of ambiguous: in this case, it
represents indices that do not need tracking, but it could as easily be
some data read out from a tracked location, and hence represent tracked
data. Therefore, we add an `Untracked` type that lets user assert
that value is not tracked.
Also correct various typos.
2016-08-17 15:21:59 -04:00
Niko Matsakis
9daea5b639
Add a comment, remove Deref/DerefMut
...
The comment explains the `index-builder` pattern. We no longer need the
`Deref/DerefMut` relationship, and it seems nicer without it.
2016-08-17 15:21:59 -04:00
Niko Matsakis
f3990feb2e
create a trait to ensure that data is tracked
...
Also write a comment explaining the system.
2016-08-17 15:21:58 -04:00
Niko Matsakis
00e699faf3
change callback for expr/type to a fn pointer
...
The idea is that, this way, we can cleanly isolate ALL state that is
being passed, since it goes as an argument to the fn pointer.
2016-08-17 15:21:45 -04:00
Niko Matsakis
d49e1a9191
move rbml_w into the self struct
2016-08-17 10:25:01 -04:00
Niko Matsakis
baccdc01ae
make record take a closure
2016-08-17 09:24:58 -04:00
Niko Matsakis
6b76932ba8
introduce Deref/DerefMut to model subtype rel
...
The idea is that ItemContentBuilder is a base-type of IndexBuilder.
2016-08-17 09:03:50 -04:00
Niko Matsakis
92f269e665
put ecx into IndexBuilder so we don't have to pass
2016-08-17 08:03:50 -04:00
Niko Matsakis
25bb51d98f
store ecx, not dep-graph
2016-08-17 07:51:12 -04:00
Niko Matsakis
85ac63e9ec
rename CrateIndex to IndexBuilder
2016-08-17 07:51:12 -04:00
Niko Matsakis
b5fa8ab593
move CrateIndex into its own module
2016-08-17 07:39:11 -04:00