// templates #[doc(hidden)] pub(super) use rustc_feature::{AttributeTemplate, template}; // data structures #[doc(hidden)] pub(super) use rustc_hir::attrs::AttributeKind; #[doc(hidden)] pub(super) use rustc_hir::lints::AttributeLintKind; #[doc(hidden)] pub(super) use rustc_hir::{MethodKind, Target}; #[doc(hidden)] pub(super) use rustc_span::{DUMMY_SP, Ident, Span, Symbol, sym}; #[doc(hidden)] pub(super) use thin_vec::ThinVec; #[doc(hidden)] pub(super) use crate::attributes::{ AcceptMapping, AttributeOrder, AttributeParser, CombineAttributeParser, ConvertFn, NoArgsAttributeParser, OnDuplicate, SingleAttributeParser, }; // contexts #[doc(hidden)] pub(super) use crate::context::{AcceptContext, FinalizeContext, Stage}; #[doc(hidden)] pub(super) use crate::parser::*; // target checking #[doc(hidden)] pub(super) use crate::target_checking::Policy::{Allow, Error, Warn}; #[doc(hidden)] pub(super) use crate::target_checking::{ALL_TARGETS, AllowedTargets};