diff --git a/src/librustc/ich/impls_hir.rs b/src/librustc/ich/impls_hir.rs index 48c9cb619cc4..d849c2d68576 100644 --- a/src/librustc/ich/impls_hir.rs +++ b/src/librustc/ich/impls_hir.rs @@ -119,10 +119,6 @@ impl<'a> HashStable> for hir::ImplItemId { } } -impl_stable_hash_for!(struct ast::Label { - ident -}); - impl<'a> HashStable> for hir::Ty { fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHasher) { hcx.while_hashing_hir_bodies(true, |hcx| { diff --git a/src/librustc/ich/impls_syntax.rs b/src/librustc/ich/impls_syntax.rs index a37e014d2bd9..a30804c76e60 100644 --- a/src/librustc/ich/impls_syntax.rs +++ b/src/librustc/ich/impls_syntax.rs @@ -125,23 +125,6 @@ impl<'ctx> syntax::StableHashingContextLike for StableHashingContext<'ctx> { } } -impl_stable_hash_for!(enum ::syntax::ast::NestedMetaItem { - MetaItem(meta_item), - Literal(lit) -}); - -impl_stable_hash_for!(struct ::syntax::ast::MetaItem { - path, - kind, - span -}); - -impl_stable_hash_for!(enum ::syntax::ast::MetaItemKind { - Word, - List(nested_items), - NameValue(lit) -}); - impl<'a> HashStable> for SourceFile { fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHasher) { let SourceFile { diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 3cc6a043e3b2..57f2104e4a50 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -55,7 +55,7 @@ mod tests; /// ``` /// /// `'outer` is a label. -#[derive(Clone, RustcEncodable, RustcDecodable, Copy)] +#[derive(Clone, RustcEncodable, RustcDecodable, Copy, HashStable_Generic)] pub struct Label { pub ident: Ident, } @@ -483,7 +483,7 @@ pub struct Crate { /// Possible values inside of compile-time attribute lists. /// /// E.g., the '..' in `#[name(..)]`. -#[derive(Clone, RustcEncodable, RustcDecodable, Debug)] +#[derive(Clone, RustcEncodable, RustcDecodable, Debug, HashStable_Generic)] pub enum NestedMetaItem { /// A full MetaItem, for recursive meta items. MetaItem(MetaItem), @@ -496,7 +496,7 @@ pub enum NestedMetaItem { /// A spanned compile-time attribute item. /// /// E.g., `#[test]`, `#[derive(..)]`, `#[rustfmt::skip]` or `#[feature = "foo"]`. -#[derive(Clone, RustcEncodable, RustcDecodable, Debug)] +#[derive(Clone, RustcEncodable, RustcDecodable, Debug, HashStable_Generic)] pub struct MetaItem { pub path: Path, pub kind: MetaItemKind, @@ -506,7 +506,7 @@ pub struct MetaItem { /// A compile-time attribute item. /// /// E.g., `#[test]`, `#[derive(..)]` or `#[feature = "foo"]`. -#[derive(Clone, RustcEncodable, RustcDecodable, Debug)] +#[derive(Clone, RustcEncodable, RustcDecodable, Debug, HashStable_Generic)] pub enum MetaItemKind { /// Word meta item. ///