1
Fork 0

Derive HashStable for TokenKind.

This commit is contained in:
Camille GILLOT 2019-11-23 14:47:31 +01:00
parent 4d1674f620
commit 782cc9f65c
3 changed files with 12 additions and 79 deletions

View file

@ -19,6 +19,7 @@ use rustc_data_structures::sync::Lrc;
use rustc_macros::HashStable_Generic;
#[derive(Clone, PartialEq, RustcEncodable, RustcDecodable, Hash, Debug, Copy)]
#[derive(HashStable_Generic)]
pub enum BinOpToken {
Plus,
Minus,
@ -192,7 +193,7 @@ fn ident_can_begin_type(name: ast::Name, span: Span, is_raw: bool) -> bool {
].contains(&name)
}
#[derive(Clone, PartialEq, RustcEncodable, RustcDecodable, Debug)]
#[derive(Clone, PartialEq, RustcEncodable, RustcDecodable, Debug, HashStable_Generic)]
pub enum TokenKind {
/* Expression-operator symbols. */
Eq,
@ -264,14 +265,6 @@ pub enum TokenKind {
#[cfg(target_arch = "x86_64")]
rustc_data_structures::static_assert_size!(TokenKind, 16);
impl<CTX> HashStable<CTX> for TokenKind
where CTX: crate::HashStableContext
{
fn hash_stable(&self, hcx: &mut CTX, hasher: &mut StableHasher) {
hcx.hash_stable_tokenkind(self, hasher)
}
}
#[derive(Clone, PartialEq, RustcEncodable, RustcDecodable, Debug, HashStable_Generic)]
pub struct Token {
pub kind: TokenKind,
@ -735,3 +728,11 @@ impl fmt::Debug for Nonterminal {
}
}
}
impl<CTX> HashStable<CTX> for Nonterminal
where CTX: crate::HashStableContext
{
fn hash_stable(&self, _hcx: &mut CTX, _hasher: &mut StableHasher) {
panic!("interpolated tokens should not be present in the HIR")
}
}