Update mentions to rustc_metadata::rmeta::Lazy
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
This commit is contained in:
parent
ff693dc7b8
commit
645a88374a
@ -83,7 +83,7 @@ pub(crate) struct CrateMetadata {
|
||||
|
||||
// --- Some data pre-decoded from the metadata blob, usually for performance ---
|
||||
/// NOTE(eddyb) we pass `'static` to a `'tcx` parameter because this
|
||||
/// lifetime is only used behind `Lazy`, and therefore acts like a
|
||||
/// lifetime is only used behind `LazyValue`, `LazyArray`, or `LazyTable`, and therefore acts like a
|
||||
/// universal (`for<'tcx>`), that is paired up with whichever `TyCtxt`
|
||||
/// is being used to decode those values.
|
||||
root: CrateRoot,
|
||||
|
@ -66,13 +66,13 @@ pub(crate) fn rustc_version() -> String {
|
||||
///
|
||||
/// Metadata is effective a tree, encoded in post-order,
|
||||
/// and with the root's position written next to the header.
|
||||
/// That means every single `Lazy` points to some previous
|
||||
/// That means every single `LazyValue` points to some previous
|
||||
/// location in the metadata and is part of a larger node.
|
||||
///
|
||||
/// The first `Lazy` in a node is encoded as the backwards
|
||||
/// The first `LazyValue` in a node is encoded as the backwards
|
||||
/// distance from the position where the containing node
|
||||
/// starts and where the `Lazy` points to, while the rest
|
||||
/// use the forward distance from the previous `Lazy`.
|
||||
/// starts and where the `LazyValue` points to, while the rest
|
||||
/// use the forward distance from the previous `LazyValue`.
|
||||
/// Distances start at 1, as 0-byte nodes are invalid.
|
||||
/// Also invalid are nodes being referred in a different
|
||||
/// order than they were encoded in.
|
||||
@ -94,12 +94,12 @@ fn from_position(position: NonZeroUsize) -> LazyValue<T> {
|
||||
|
||||
/// A list of lazily-decoded values.
|
||||
///
|
||||
/// Unlike `Lazy<Vec<T>>`, the length is encoded next to the
|
||||
/// Unlike `LazyValue<Vec<T>>`, the length is encoded next to the
|
||||
/// position, not at the position, which means that the length
|
||||
/// doesn't need to be known before encoding all the elements.
|
||||
///
|
||||
/// If the length is 0, no position is encoded, but otherwise,
|
||||
/// the encoding is that of `Lazy`, with the distinction that
|
||||
/// the encoding is that of `LazyArray`, with the distinction that
|
||||
/// the minimal distance the length of the sequence, i.e.
|
||||
/// it's assumed there's no 0-byte element in the sequence.
|
||||
struct LazyArray<T> {
|
||||
@ -167,17 +167,17 @@ fn clone(&self) -> Self {
|
||||
}
|
||||
}
|
||||
|
||||
/// Encoding / decoding state for `Lazy`.
|
||||
/// Encoding / decoding state for `Lazy`s (`LazyValue`, `LazyArray`, and `LazyTable`).
|
||||
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
|
||||
enum LazyState {
|
||||
/// Outside of a metadata node.
|
||||
NoNode,
|
||||
|
||||
/// Inside a metadata node, and before any `Lazy`.
|
||||
/// Inside a metadata node, and before any `Lazy`s.
|
||||
/// The position is that of the node itself.
|
||||
NodeStart(NonZeroUsize),
|
||||
|
||||
/// Inside a metadata node, with a previous `Lazy`.
|
||||
/// Inside a metadata node, with a previous `Lazy`s.
|
||||
/// The position is where that previous `Lazy` would start.
|
||||
Previous(NonZeroUsize),
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ impl FixedSizeEncoding for Option<$ty> {
|
||||
}
|
||||
}
|
||||
|
||||
// We directly encode `DefPathHash` because a `Lazy` would encur a 25% cost.
|
||||
// We directly encode `DefPathHash` because a `LazyValue` would incur a 25% cost.
|
||||
impl FixedSizeEncoding for Option<DefPathHash> {
|
||||
type ByteArray = [u8; 16];
|
||||
|
||||
@ -159,7 +159,7 @@ impl FixedSizeEncoding for Option<DefPathHash> {
|
||||
}
|
||||
}
|
||||
|
||||
// We directly encode RawDefId because using a `Lazy` would incur a 50% overhead in the worst case.
|
||||
// We directly encode RawDefId because using a `LazyValue` would incur a 50% overhead in the worst case.
|
||||
impl FixedSizeEncoding for Option<RawDefId> {
|
||||
type ByteArray = [u8; 8];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user