Rollup merge of #61173 - fabric-and-ink:minor-cleanup, r=varkor
Auto-derive Encode and Decode implementations of DefPathTable See https://github.com/rust-lang/rust/pull/60647#discussion_r283394682
This commit is contained in:
commit
f530f90b56
|
@ -10,7 +10,6 @@ use crate::ich::Fingerprint;
|
||||||
use rustc_data_structures::fx::FxHashMap;
|
use rustc_data_structures::fx::FxHashMap;
|
||||||
use rustc_data_structures::indexed_vec::{IndexVec};
|
use rustc_data_structures::indexed_vec::{IndexVec};
|
||||||
use rustc_data_structures::stable_hasher::StableHasher;
|
use rustc_data_structures::stable_hasher::StableHasher;
|
||||||
use serialize::{Encodable, Decodable, Encoder, Decoder};
|
|
||||||
use crate::session::CrateDisambiguator;
|
use crate::session::CrateDisambiguator;
|
||||||
use std::borrow::Borrow;
|
use std::borrow::Borrow;
|
||||||
use std::fmt::Write;
|
use std::fmt::Write;
|
||||||
|
@ -25,14 +24,13 @@ use crate::util::nodemap::NodeMap;
|
||||||
/// Internally the DefPathTable holds a tree of DefKeys, where each DefKey
|
/// Internally the DefPathTable holds a tree of DefKeys, where each DefKey
|
||||||
/// stores the DefIndex of its parent.
|
/// stores the DefIndex of its parent.
|
||||||
/// There is one DefPathTable for each crate.
|
/// There is one DefPathTable for each crate.
|
||||||
#[derive(Clone, Default)]
|
#[derive(Clone, Default, RustcDecodable, RustcEncodable)]
|
||||||
pub struct DefPathTable {
|
pub struct DefPathTable {
|
||||||
index_to_key: Vec<DefKey>,
|
index_to_key: Vec<DefKey>,
|
||||||
def_path_hashes: Vec<DefPathHash>,
|
def_path_hashes: Vec<DefPathHash>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DefPathTable {
|
impl DefPathTable {
|
||||||
|
|
||||||
fn allocate(&mut self,
|
fn allocate(&mut self,
|
||||||
key: DefKey,
|
key: DefKey,
|
||||||
def_path_hash: DefPathHash)
|
def_path_hash: DefPathHash)
|
||||||
|
@ -86,28 +84,6 @@ impl DefPathTable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
impl Encodable for DefPathTable {
|
|
||||||
fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error> {
|
|
||||||
// Index to key
|
|
||||||
self.index_to_key.encode(s)?;
|
|
||||||
|
|
||||||
// DefPath hashes
|
|
||||||
self.def_path_hashes.encode(s)?;
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Decodable for DefPathTable {
|
|
||||||
fn decode<D: Decoder>(d: &mut D) -> Result<DefPathTable, D::Error> {
|
|
||||||
Ok(DefPathTable {
|
|
||||||
index_to_key: Decodable::decode(d)?,
|
|
||||||
def_path_hashes : Decodable::decode(d)?,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// The definition table containing node definitions.
|
/// The definition table containing node definitions.
|
||||||
/// It holds the `DefPathTable` for local `DefId`s/`DefPath`s and it also stores a
|
/// It holds the `DefPathTable` for local `DefId`s/`DefPath`s and it also stores a
|
||||||
/// mapping from `NodeId`s to local `DefId`s.
|
/// mapping from `NodeId`s to local `DefId`s.
|
||||||
|
|
Loading…
Reference in New Issue