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