diff --git a/compiler/rustc_middle/src/ich/impls_syntax.rs b/compiler/rustc_middle/src/ich/impls_syntax.rs index d932bfdee6ef6..45e9e1c9d09d5 100644 --- a/compiler/rustc_middle/src/ich/impls_syntax.rs +++ b/compiler/rustc_middle/src/ich/impls_syntax.rs @@ -3,9 +3,6 @@ use rustc_ast as ast; use rustc_data_structures::stable_hasher::{HashStable, StableHasher}; -use rustc_hir as hir; -use rustc_span::{Symbol, sym}; -use smallvec::SmallVec; use super::StableHashingContext; @@ -16,44 +13,6 @@ impl<'a> HashStable> for ast::NodeId { } } -impl<'a> HashStable> for [hir::Attribute] { - fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHasher) { - if self.is_empty() { - self.len().hash_stable(hcx, hasher); - return; - } - - // Some attributes are always ignored during hashing. - let filtered: SmallVec<[&hir::Attribute; 8]> = self - .iter() - .filter(|attr| { - attr.is_doc_comment().is_none() - // FIXME(jdonszelmann) have a better way to handle ignored attrs - && !attr.name().is_some_and(|ident| is_ignored_attr(ident)) - }) - .collect(); - - filtered.len().hash_stable(hcx, hasher); - for attr in filtered { - attr.hash_stable(hcx, hasher); - } - } -} - -#[inline] -fn is_ignored_attr(name: Symbol) -> bool { - const IGNORED_ATTRIBUTES: &[Symbol] = &[ - sym::cfg_trace, // FIXME(#138844) should this really be ignored? - sym::rustc_if_this_changed, - sym::rustc_then_this_would_need, - sym::rustc_clean, - sym::rustc_partition_reused, - sym::rustc_partition_codegened, - sym::rustc_expected_cgu_reuse, - ]; - IGNORED_ATTRIBUTES.contains(&name) -} - impl<'tcx> HashStable> for rustc_feature::Features { fn hash_stable(&self, hcx: &mut StableHashingContext<'tcx>, hasher: &mut StableHasher) { // Unfortunately we cannot exhaustively list fields here, since the