Expand description
This module implements some validity checks for attributes.
In particular it verifies that #[inline] and #[repr] attributes are
attached to items that actually support them and if there are
conflicts between multiple such attributes attached to the same
item.
Re-exportsยง
use std::cell::Cell;๐use std::slice;๐use rustc_attr_ir::diagnostic::Directive;๐use rustc_attr_ir::lang_items::LangItem;๐use rustc_attr_ir::lint::LintCheck;๐use rustc_attr_ir::target::AssocCtxt;๐use rustc_attr_ir::target::MethodKind;๐use rustc_attr_ir::target::Target;๐use rustc_attr_ir::Attribute;๐use rustc_attr_ir::AttributeKind;๐use rustc_attr_ir::DocAttribute;๐use rustc_attr_ir::EiiDecl;๐use rustc_attr_ir::EiiImpl;๐use rustc_attr_ir::EiiImplResolution;๐use rustc_attr_ir::InlineAttr;๐use rustc_attr_ir::OptimizeAttr;๐use rustc_attr_ir::ReprAttr;๐use rustc_attr_ir::RustcAssertVarianceKind;๐use rustc_attr_ir::find_attr;๐use rustc_attr_parsing::AttributeParser;๐use rustc_data_structures::thin_vec::ThinVec;๐use rustc_errors::DiagCtxtHandle;๐use rustc_errors::IntoDiagArg;๐use rustc_feature::BUILTIN_ATTRIBUTE_SET;๐use rustc_hir::def::DefKind;๐use rustc_hir::def_id::LocalModId;๐use rustc_hir::intravisit;๐use rustc_hir::intravisit::Visitor;๐use rustc_hir as hir;๐use rustc_hir::CRATE_HIR_ID;๐use rustc_hir::Constness;๐use rustc_hir::ForeignItem;๐use rustc_hir::GenericParam;๐use rustc_hir::GenericParamKind;๐use rustc_hir::HirId;๐use rustc_hir::Item;๐use rustc_hir::ItemKind;๐use rustc_hir::Mod;๐use rustc_hir::Node;๐use rustc_hir::ParamName;๐use rustc_hir::TraitItem;๐use rustc_lint_defs::builtin::CONFLICTING_REPR_HINTS;๐use rustc_lint_defs::builtin::INVALID_DOC_ATTRIBUTES;๐use rustc_lint_defs::builtin::MALFORMED_DIAGNOSTIC_ATTRIBUTES;๐use rustc_lint_defs::builtin::MALFORMED_DIAGNOSTIC_FORMAT_LITERALS;๐use rustc_lint_defs::builtin::MISPLACED_DIAGNOSTIC_ATTRIBUTES;๐use rustc_lint_defs::builtin::REPEATED_REPRS;๐use rustc_lint_defs::builtin::UNUSED_ATTRIBUTES;๐use rustc_macros::Diagnostic;๐use rustc_middle::hir::nested_filter;๐use rustc_middle::query::Providers;๐use rustc_middle::traits::ObligationCause;๐use rustc_middle::ty::error::ExpectedFound;๐use rustc_middle::ty::error::TypeError;๐use rustc_middle::ty;๐use rustc_middle::ty::TyCtxt;๐use rustc_middle::ty::TypingMode;๐use rustc_middle::ty::Unnormalized;๐use rustc_middle::ty::Variance;๐use rustc_span::edition::Edition;๐use rustc_span::DUMMY_SP;๐use rustc_span::Ident;๐use rustc_span::Span;๐use rustc_span::Symbol;๐use rustc_span::bug;๐use rustc_span::span_bug;๐use rustc_span::sym;๐use rustc_structures::CrateType;๐use rustc_trait_selection::error_reporting::InferCtxtErrorExt;๐use rustc_trait_selection::infer::TyCtxtInferExt;๐use rustc_trait_selection::infer::ValuePairs;๐use rustc_trait_selection::traits::ObligationCtxt;๐use rustc_trait_selection::traits::TraitErrors;๐use crate::diagnostics;๐
Structsยง
Enumsยง
- Proc
Macro ๐Kind
Functionsยง
- check_
mod_ ๐attrs - check_
non_ ๐exported_ macro_ for_ invalid_ attrs - doc_
fake_ ๐variadic_ is_ allowed_ self_ ty - is_
c_ ๐like_ enum - provide ๐
- target_
from_ ๐impl_ item