Auto merge of #92534 - Aaron1011:hash-hir, r=petrochenkov
Hash `Ident` spans in all HIR structures This PR removes all of the `#[stable_hasher(project(name))]` attributes used in HIR structs. While these attributes are not known to be causing any issues in practice, we need to hash these in order for the incremental system to work correctly - a query could be otherwise be incorrectly marked green when a change occures in one of the `Span`s that it uses.
This commit is contained in:
commit
092e1c9d23
2 changed files with 2 additions and 10 deletions
|
@ -205,7 +205,6 @@ impl Path<'_> {
|
||||||
#[derive(Debug, HashStable_Generic)]
|
#[derive(Debug, HashStable_Generic)]
|
||||||
pub struct PathSegment<'hir> {
|
pub struct PathSegment<'hir> {
|
||||||
/// The identifier portion of this path segment.
|
/// The identifier portion of this path segment.
|
||||||
#[stable_hasher(project(name))]
|
|
||||||
pub ident: Ident,
|
pub ident: Ident,
|
||||||
// `id` and `res` are optional. We currently only use these in save-analysis,
|
// `id` and `res` are optional. We currently only use these in save-analysis,
|
||||||
// any path segments without these will not have save-analysis info and
|
// any path segments without these will not have save-analysis info and
|
||||||
|
@ -850,7 +849,6 @@ pub struct PatField<'hir> {
|
||||||
#[stable_hasher(ignore)]
|
#[stable_hasher(ignore)]
|
||||||
pub hir_id: HirId,
|
pub hir_id: HirId,
|
||||||
/// The identifier for the field.
|
/// The identifier for the field.
|
||||||
#[stable_hasher(project(name))]
|
|
||||||
pub ident: Ident,
|
pub ident: Ident,
|
||||||
/// The pattern the field is destructured to.
|
/// The pattern the field is destructured to.
|
||||||
pub pat: &'hir Pat<'hir>,
|
pub pat: &'hir Pat<'hir>,
|
||||||
|
@ -2127,7 +2125,6 @@ pub const FN_OUTPUT_NAME: Symbol = sym::Output;
|
||||||
#[derive(Debug, HashStable_Generic)]
|
#[derive(Debug, HashStable_Generic)]
|
||||||
pub struct TypeBinding<'hir> {
|
pub struct TypeBinding<'hir> {
|
||||||
pub hir_id: HirId,
|
pub hir_id: HirId,
|
||||||
#[stable_hasher(project(name))]
|
|
||||||
pub ident: Ident,
|
pub ident: Ident,
|
||||||
pub gen_args: &'hir GenericArgs<'hir>,
|
pub gen_args: &'hir GenericArgs<'hir>,
|
||||||
pub kind: TypeBindingKind<'hir>,
|
pub kind: TypeBindingKind<'hir>,
|
||||||
|
@ -2515,7 +2512,6 @@ pub struct EnumDef<'hir> {
|
||||||
#[derive(Debug, HashStable_Generic)]
|
#[derive(Debug, HashStable_Generic)]
|
||||||
pub struct Variant<'hir> {
|
pub struct Variant<'hir> {
|
||||||
/// Name of the variant.
|
/// Name of the variant.
|
||||||
#[stable_hasher(project(name))]
|
|
||||||
pub ident: Ident,
|
pub ident: Ident,
|
||||||
/// Id of the variant (not the constructor, see `VariantData::ctor_hir_id()`).
|
/// Id of the variant (not the constructor, see `VariantData::ctor_hir_id()`).
|
||||||
pub id: HirId,
|
pub id: HirId,
|
||||||
|
@ -2605,7 +2601,6 @@ impl VisibilityKind<'_> {
|
||||||
#[derive(Debug, HashStable_Generic)]
|
#[derive(Debug, HashStable_Generic)]
|
||||||
pub struct FieldDef<'hir> {
|
pub struct FieldDef<'hir> {
|
||||||
pub span: Span,
|
pub span: Span,
|
||||||
#[stable_hasher(project(name))]
|
|
||||||
pub ident: Ident,
|
pub ident: Ident,
|
||||||
pub vis: Visibility<'hir>,
|
pub vis: Visibility<'hir>,
|
||||||
pub hir_id: HirId,
|
pub hir_id: HirId,
|
||||||
|
@ -2864,7 +2859,6 @@ impl ItemKind<'_> {
|
||||||
#[derive(Encodable, Debug, HashStable_Generic)]
|
#[derive(Encodable, Debug, HashStable_Generic)]
|
||||||
pub struct TraitItemRef {
|
pub struct TraitItemRef {
|
||||||
pub id: TraitItemId,
|
pub id: TraitItemId,
|
||||||
#[stable_hasher(project(name))]
|
|
||||||
pub ident: Ident,
|
pub ident: Ident,
|
||||||
pub kind: AssocItemKind,
|
pub kind: AssocItemKind,
|
||||||
pub span: Span,
|
pub span: Span,
|
||||||
|
@ -2880,7 +2874,6 @@ pub struct TraitItemRef {
|
||||||
#[derive(Debug, HashStable_Generic)]
|
#[derive(Debug, HashStable_Generic)]
|
||||||
pub struct ImplItemRef {
|
pub struct ImplItemRef {
|
||||||
pub id: ImplItemId,
|
pub id: ImplItemId,
|
||||||
#[stable_hasher(project(name))]
|
|
||||||
pub ident: Ident,
|
pub ident: Ident,
|
||||||
pub kind: AssocItemKind,
|
pub kind: AssocItemKind,
|
||||||
pub span: Span,
|
pub span: Span,
|
||||||
|
@ -2919,7 +2912,6 @@ impl ForeignItemId {
|
||||||
#[derive(Debug, HashStable_Generic)]
|
#[derive(Debug, HashStable_Generic)]
|
||||||
pub struct ForeignItemRef {
|
pub struct ForeignItemRef {
|
||||||
pub id: ForeignItemId,
|
pub id: ForeignItemId,
|
||||||
#[stable_hasher(project(name))]
|
|
||||||
pub ident: Ident,
|
pub ident: Ident,
|
||||||
pub span: Span,
|
pub span: Span,
|
||||||
}
|
}
|
||||||
|
|
|
@ -400,7 +400,7 @@ trait TraitAddUnsafeModifier {
|
||||||
#[cfg(not(any(cfail1,cfail4)))]
|
#[cfg(not(any(cfail1,cfail4)))]
|
||||||
#[rustc_clean(cfg="cfail2")]
|
#[rustc_clean(cfg="cfail2")]
|
||||||
#[rustc_clean(cfg="cfail3")]
|
#[rustc_clean(cfg="cfail3")]
|
||||||
#[rustc_clean(cfg="cfail5")]
|
#[rustc_clean(except="hir_owner", cfg="cfail5")]
|
||||||
#[rustc_clean(cfg="cfail6")]
|
#[rustc_clean(cfg="cfail6")]
|
||||||
trait TraitAddUnsafeModifier {
|
trait TraitAddUnsafeModifier {
|
||||||
#[rustc_clean(except="hir_owner,fn_sig", cfg="cfail2")]
|
#[rustc_clean(except="hir_owner,fn_sig", cfg="cfail2")]
|
||||||
|
@ -425,7 +425,7 @@ trait TraitAddExternModifier {
|
||||||
#[cfg(not(any(cfail1,cfail4)))]
|
#[cfg(not(any(cfail1,cfail4)))]
|
||||||
#[rustc_clean(cfg="cfail2")]
|
#[rustc_clean(cfg="cfail2")]
|
||||||
#[rustc_clean(cfg="cfail3")]
|
#[rustc_clean(cfg="cfail3")]
|
||||||
#[rustc_clean(cfg="cfail5")]
|
#[rustc_clean(except="hir_owner", cfg="cfail5")]
|
||||||
#[rustc_clean(cfg="cfail6")]
|
#[rustc_clean(cfg="cfail6")]
|
||||||
trait TraitAddExternModifier {
|
trait TraitAddExternModifier {
|
||||||
#[rustc_clean(except="hir_owner,fn_sig", cfg="cfail2")]
|
#[rustc_clean(except="hir_owner,fn_sig", cfg="cfail2")]
|
||||||
|
|
Loading…
Add table
Reference in a new issue