Add hir::Attribute
This commit is contained in:
parent
53b2c7cc95
commit
d50c0a5480
89 changed files with 1144 additions and 659 deletions
|
@ -1,4 +1,4 @@
|
|||
use rustc_ast::Attribute;
|
||||
use rustc_hir::Attribute;
|
||||
use rustc_hir::def::DefKind;
|
||||
use rustc_hir::def_id::LocalDefId;
|
||||
use rustc_middle::span_bug;
|
||||
|
|
|
@ -7,17 +7,15 @@
|
|||
use std::cell::Cell;
|
||||
use std::collections::hash_map::Entry;
|
||||
|
||||
use rustc_ast::{
|
||||
AttrKind, AttrStyle, Attribute, LitKind, MetaItemInner, MetaItemKind, MetaItemLit, ast,
|
||||
};
|
||||
use rustc_ast::{AttrStyle, LitKind, MetaItemInner, MetaItemKind, MetaItemLit, ast};
|
||||
use rustc_data_structures::fx::FxHashMap;
|
||||
use rustc_errors::{Applicability, DiagCtxtHandle, IntoDiagArg, MultiSpan, StashKey};
|
||||
use rustc_feature::{AttributeDuplicates, AttributeType, BUILTIN_ATTRIBUTE_MAP, BuiltinAttribute};
|
||||
use rustc_hir::def_id::LocalModDefId;
|
||||
use rustc_hir::intravisit::{self, Visitor};
|
||||
use rustc_hir::{
|
||||
self as hir, self, AssocItemKind, CRATE_HIR_ID, CRATE_OWNER_ID, FnSig, ForeignItem, HirId,
|
||||
Item, ItemKind, MethodKind, Safety, Target, TraitItem,
|
||||
self as hir, self, AssocItemKind, AttrKind, Attribute, CRATE_HIR_ID, CRATE_OWNER_ID, FnSig,
|
||||
ForeignItem, HirId, Item, ItemKind, MethodKind, Safety, Target, TraitItem,
|
||||
};
|
||||
use rustc_macros::LintDiagnostic;
|
||||
use rustc_middle::hir::nested_filter;
|
||||
|
@ -1176,10 +1174,8 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
|
|||
specified_inline: &mut Option<(bool, Span)>,
|
||||
aliases: &mut FxHashMap<String, Span>,
|
||||
) {
|
||||
if let Some(mi) = attr.meta()
|
||||
&& let Some(list) = mi.meta_item_list()
|
||||
{
|
||||
for meta in list {
|
||||
if let Some(list) = attr.meta_item_list() {
|
||||
for meta in &list {
|
||||
if let Some(i_meta) = meta.meta_item() {
|
||||
match i_meta.name_or_empty() {
|
||||
sym::alias => {
|
||||
|
@ -1279,7 +1275,7 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
|
|||
AttrStyle::Inner => "!",
|
||||
AttrStyle::Outer => "",
|
||||
},
|
||||
sugg: (attr.meta().unwrap().span, applicability),
|
||||
sugg: (attr.span, applicability),
|
||||
},
|
||||
);
|
||||
} else if i_meta.has_name(sym::passes)
|
||||
|
@ -2141,10 +2137,7 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
|
|||
fn check_confusables(&self, attr: &Attribute, target: Target) {
|
||||
match target {
|
||||
Target::Method(MethodKind::Inherent) => {
|
||||
let Some(meta) = attr.meta() else {
|
||||
return;
|
||||
};
|
||||
let ast::MetaItem { kind: MetaItemKind::List(ref metas), .. } = meta else {
|
||||
let Some(metas) = attr.meta_item_list() else {
|
||||
return;
|
||||
};
|
||||
|
||||
|
@ -2602,7 +2595,7 @@ fn check_invalid_crate_level_attr(tcx: TyCtxt<'_>, attrs: &[Attribute]) {
|
|||
|
||||
if let AttrKind::Normal(ref p) = attr.kind {
|
||||
tcx.dcx().try_steal_replace_and_emit_err(
|
||||
p.item.path.span,
|
||||
p.path.span,
|
||||
StashKey::UndeterminedMacroResolution,
|
||||
err,
|
||||
);
|
||||
|
|
|
@ -9,9 +9,8 @@
|
|||
//!
|
||||
//! * Compiler internal types like `Ty` and `TyCtxt`
|
||||
|
||||
use rustc_ast as ast;
|
||||
use rustc_hir::OwnerId;
|
||||
use rustc_hir::diagnostic_items::DiagnosticItems;
|
||||
use rustc_hir::{Attribute, OwnerId};
|
||||
use rustc_middle::query::{LocalCrate, Providers};
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
use rustc_span::def_id::{DefId, LOCAL_CRATE};
|
||||
|
@ -55,7 +54,7 @@ fn report_duplicate_item(
|
|||
}
|
||||
|
||||
/// Extract the first `rustc_diagnostic_item = "$name"` out of a list of attributes.
|
||||
fn extract(attrs: &[ast::Attribute]) -> Option<Symbol> {
|
||||
fn extract(attrs: &[Attribute]) -> Option<Symbol> {
|
||||
attrs.iter().find_map(|attr| {
|
||||
if attr.has_name(sym::rustc_diagnostic_item) { attr.value_str() } else { None }
|
||||
})
|
||||
|
|
|
@ -500,7 +500,7 @@ impl<'v> hir_visit::Visitor<'v> for StatCollector<'v> {
|
|||
hir_visit::walk_assoc_item_constraint(self, constraint)
|
||||
}
|
||||
|
||||
fn visit_attribute(&mut self, attr: &'v ast::Attribute) {
|
||||
fn visit_attribute(&mut self, attr: &'v hir::Attribute) {
|
||||
self.record("Attribute", None, attr);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use rustc_abi::{HasDataLayout, TargetDataLayout};
|
||||
use rustc_ast::Attribute;
|
||||
use rustc_hir::Attribute;
|
||||
use rustc_hir::def::DefKind;
|
||||
use rustc_hir::def_id::LocalDefId;
|
||||
use rustc_middle::span_bug;
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
//! but are not declared in one single location (unlike lang features), which means we need to
|
||||
//! collect them instead.
|
||||
|
||||
use rustc_ast::Attribute;
|
||||
use rustc_attr::VERSION_PLACEHOLDER;
|
||||
use rustc_hir::Attribute;
|
||||
use rustc_hir::intravisit::Visitor;
|
||||
use rustc_middle::hir::nested_filter;
|
||||
use rustc_middle::middle::lib_features::{FeatureStability, LibFeatures};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue