use rustc_attr_data_structures::lints::AttributeLint; use rustc_data_structures::fingerprint::Fingerprint; use rustc_macros::HashStable_Generic; use crate::HirId; /// During ast lowering, no lints can be emitted. /// That is because lints attach to nodes either in the AST, or on the built HIR. /// When attached to AST nodes, they're emitted just before building HIR, /// and then there's a gap where no lints can be emitted until HIR is done. /// The variants in this enum represent lints that are temporarily stashed during /// AST lowering to be emitted once HIR is built. #[derive(Clone, Debug, HashStable_Generic)] pub enum DelayedLint { AttributeParsing(AttributeLint), } #[derive(Debug)] pub struct DelayedLints { pub lints: Box<[DelayedLint]>, // Only present when the crate hash is needed. pub opt_hash: Option, }