Further HashStable_Generic derives.
This commit is contained in:
parent
1dd5133dce
commit
efcb695f4c
4 changed files with 11 additions and 53 deletions
|
@ -17,13 +17,6 @@ use crate::hir::def_id::{DefId, CrateNum, CRATE_DEF_INDEX};
|
||||||
use smallvec::SmallVec;
|
use smallvec::SmallVec;
|
||||||
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
|
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
|
||||||
|
|
||||||
impl_stable_hash_for!(enum ::syntax_pos::hygiene::MacroKind {
|
|
||||||
Bang,
|
|
||||||
Attr,
|
|
||||||
Derive,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
impl_stable_hash_for!(enum ::rustc_target::spec::abi::Abi {
|
impl_stable_hash_for!(enum ::rustc_target::spec::abi::Abi {
|
||||||
Cdecl,
|
Cdecl,
|
||||||
Stdcall,
|
Stdcall,
|
||||||
|
@ -47,57 +40,17 @@ impl_stable_hash_for!(enum ::rustc_target::spec::abi::Abi {
|
||||||
Unadjusted
|
Unadjusted
|
||||||
});
|
});
|
||||||
|
|
||||||
impl_stable_hash_for!(struct ::syntax::attr::Deprecation { since, note });
|
|
||||||
impl_stable_hash_for!(struct ::syntax::attr::Stability {
|
|
||||||
level,
|
|
||||||
feature,
|
|
||||||
rustc_depr,
|
|
||||||
promotable,
|
|
||||||
allow_const_fn_ptr,
|
|
||||||
const_stability
|
|
||||||
});
|
|
||||||
|
|
||||||
impl_stable_hash_for!(enum ::syntax::edition::Edition {
|
impl_stable_hash_for!(enum ::syntax::edition::Edition {
|
||||||
Edition2015,
|
Edition2015,
|
||||||
Edition2018,
|
Edition2018,
|
||||||
});
|
});
|
||||||
|
|
||||||
impl<'a> HashStable<StableHashingContext<'a>>
|
|
||||||
for ::syntax::attr::StabilityLevel {
|
|
||||||
fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHasher) {
|
|
||||||
mem::discriminant(self).hash_stable(hcx, hasher);
|
|
||||||
match *self {
|
|
||||||
::syntax::attr::StabilityLevel::Unstable { ref reason, ref issue, ref is_soft } => {
|
|
||||||
reason.hash_stable(hcx, hasher);
|
|
||||||
issue.hash_stable(hcx, hasher);
|
|
||||||
is_soft.hash_stable(hcx, hasher);
|
|
||||||
}
|
|
||||||
::syntax::attr::StabilityLevel::Stable { ref since } => {
|
|
||||||
since.hash_stable(hcx, hasher);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl_stable_hash_for!(struct ::syntax::attr::RustcDeprecation { since, reason, suggestion });
|
|
||||||
|
|
||||||
impl_stable_hash_for!(struct ::syntax::ast::Lit {
|
impl_stable_hash_for!(struct ::syntax::ast::Lit {
|
||||||
kind,
|
kind,
|
||||||
token,
|
token,
|
||||||
span
|
span
|
||||||
});
|
});
|
||||||
|
|
||||||
impl_stable_hash_for!(enum ::syntax::ast::LitKind {
|
|
||||||
Str(value, style),
|
|
||||||
ByteStr(value),
|
|
||||||
Byte(value),
|
|
||||||
Char(value),
|
|
||||||
Int(value, lit_int_type),
|
|
||||||
Float(value, lit_float_type),
|
|
||||||
Bool(value),
|
|
||||||
Err(value)
|
|
||||||
});
|
|
||||||
|
|
||||||
impl_stable_hash_for_spanned!(::syntax::ast::LitKind);
|
impl_stable_hash_for_spanned!(::syntax::ast::LitKind);
|
||||||
|
|
||||||
impl_stable_hash_for!(struct ::syntax::ast::Lifetime { id, ident });
|
impl_stable_hash_for!(struct ::syntax::ast::Lifetime { id, ident });
|
||||||
|
|
|
@ -1474,7 +1474,7 @@ pub enum LitFloatType {
|
||||||
///
|
///
|
||||||
/// E.g., `"foo"`, `42`, `12.34`, or `bool`.
|
/// E.g., `"foo"`, `42`, `12.34`, or `bool`.
|
||||||
// Clippy uses Hash and PartialEq
|
// Clippy uses Hash and PartialEq
|
||||||
#[derive(Clone, RustcEncodable, RustcDecodable, Debug, Hash, PartialEq)]
|
#[derive(Clone, RustcEncodable, RustcDecodable, Debug, Hash, PartialEq, HashStable_Generic)]
|
||||||
pub enum LitKind {
|
pub enum LitKind {
|
||||||
/// A string literal (`"foo"`).
|
/// A string literal (`"foo"`).
|
||||||
Str(Symbol, StrStyle),
|
Str(Symbol, StrStyle),
|
||||||
|
|
|
@ -141,7 +141,8 @@ pub fn find_unwind_attr(diagnostic: Option<&Handler>, attrs: &[Attribute]) -> Op
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Represents the #[stable], #[unstable], #[rustc_{deprecated,const_unstable}] attributes.
|
/// Represents the #[stable], #[unstable], #[rustc_{deprecated,const_unstable}] attributes.
|
||||||
#[derive(RustcEncodable, RustcDecodable, Copy, Clone, Debug, PartialEq, Eq, Hash)]
|
#[derive(RustcEncodable, RustcDecodable, Copy, Clone, Debug,
|
||||||
|
PartialEq, Eq, Hash, HashStable_Generic)]
|
||||||
pub struct Stability {
|
pub struct Stability {
|
||||||
pub level: StabilityLevel,
|
pub level: StabilityLevel,
|
||||||
pub feature: Symbol,
|
pub feature: Symbol,
|
||||||
|
@ -157,7 +158,8 @@ pub struct Stability {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The available stability levels.
|
/// The available stability levels.
|
||||||
#[derive(RustcEncodable, RustcDecodable, PartialEq, PartialOrd, Copy, Clone, Debug, Eq, Hash)]
|
#[derive(RustcEncodable, RustcDecodable, PartialEq, PartialOrd,
|
||||||
|
Copy, Clone, Debug, Eq, Hash, HashStable_Generic)]
|
||||||
pub enum StabilityLevel {
|
pub enum StabilityLevel {
|
||||||
// Reason for the current stability level and the relevant rust-lang issue
|
// Reason for the current stability level and the relevant rust-lang issue
|
||||||
Unstable { reason: Option<Symbol>, issue: Option<NonZeroU32>, is_soft: bool },
|
Unstable { reason: Option<Symbol>, issue: Option<NonZeroU32>, is_soft: bool },
|
||||||
|
@ -181,7 +183,8 @@ impl StabilityLevel {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(RustcEncodable, RustcDecodable, PartialEq, PartialOrd, Copy, Clone, Debug, Eq, Hash)]
|
#[derive(RustcEncodable, RustcDecodable, PartialEq, PartialOrd,
|
||||||
|
Copy, Clone, Debug, Eq, Hash, HashStable_Generic)]
|
||||||
pub struct RustcDeprecation {
|
pub struct RustcDeprecation {
|
||||||
pub since: Symbol,
|
pub since: Symbol,
|
||||||
pub reason: Symbol,
|
pub reason: Symbol,
|
||||||
|
@ -636,7 +639,7 @@ pub fn eval_condition<F>(cfg: &ast::MetaItem, sess: &ParseSess, eval: &mut F)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(RustcEncodable, RustcDecodable, Clone)]
|
#[derive(RustcEncodable, RustcDecodable, Clone, HashStable_Generic)]
|
||||||
pub struct Deprecation {
|
pub struct Deprecation {
|
||||||
pub since: Option<Symbol>,
|
pub since: Option<Symbol>,
|
||||||
pub note: Option<Symbol>,
|
pub note: Option<Symbol>,
|
||||||
|
|
|
@ -30,6 +30,7 @@ use crate::{Span, DUMMY_SP};
|
||||||
use crate::edition::Edition;
|
use crate::edition::Edition;
|
||||||
use crate::symbol::{kw, sym, Symbol};
|
use crate::symbol::{kw, sym, Symbol};
|
||||||
|
|
||||||
|
use rustc_macros::HashStable_Generic;
|
||||||
use rustc_serialize::{Encodable, Decodable, Encoder, Decoder};
|
use rustc_serialize::{Encodable, Decodable, Encoder, Decoder};
|
||||||
use rustc_data_structures::fx::FxHashMap;
|
use rustc_data_structures::fx::FxHashMap;
|
||||||
use rustc_data_structures::sync::Lrc;
|
use rustc_data_structures::sync::Lrc;
|
||||||
|
@ -707,7 +708,8 @@ impl ExpnKind {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The kind of macro invocation or definition.
|
/// The kind of macro invocation or definition.
|
||||||
#[derive(Clone, Copy, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)]
|
#[derive(Clone, Copy, PartialEq, Eq, RustcEncodable, RustcDecodable,
|
||||||
|
Hash, Debug, HashStable_Generic)]
|
||||||
pub enum MacroKind {
|
pub enum MacroKind {
|
||||||
/// A bang macro `foo!()`.
|
/// A bang macro `foo!()`.
|
||||||
Bang,
|
Bang,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue