use session::Session;
use lint;
use middle::cstore::{CrateStore, LOCAL_CRATE};
-use middle::def;
+use middle::def::Def;
use middle::def_id::{CRATE_DEF_INDEX, DefId};
use middle::ty;
use middle::privacy::AccessLevels;
parent_depr: Option<Deprecation>,
access_levels: &'a AccessLevels,
in_trait_impl: bool,
- in_enum: bool,
}
impl<'a, 'tcx: 'a> Annotator<'a, 'tcx> {
fn visit_item(&mut self, i: &Item) {
let orig_in_trait_impl = self.in_trait_impl;
- let orig_in_enum = self.in_enum;
let mut kind = AnnotationKind::Required;
match i.node {
// Inherent impls and foreign modules serve only as containers for other items,
self.in_trait_impl = true;
}
hir::ItemStruct(ref sd, _) => {
- self.in_enum = false;
if !sd.is_struct() {
self.annotate(sd.id(), &i.attrs, i.span, AnnotationKind::Required, |_| {})
}
}
- hir::ItemEnum(..) => {
- self.in_enum = true;
- }
_ => {}
}
intravisit::walk_item(v, i)
});
self.in_trait_impl = orig_in_trait_impl;
- self.in_enum = orig_in_enum;
}
fn visit_trait_item(&mut self, ti: &hir::TraitItem) {
}
fn visit_struct_field(&mut self, s: &StructField) {
- // FIXME: This is temporary, can't use attributes with tuple variant fields until snapshot
- let kind = if self.in_enum && s.node.kind.is_unnamed() {
- AnnotationKind::Prohibited
- } else {
- AnnotationKind::Required
- };
- self.annotate(s.node.id, &s.node.attrs, s.span, kind, |v| {
+ self.annotate(s.node.id, &s.node.attrs, s.span, AnnotationKind::Required, |v| {
intravisit::walk_struct_field(v, s);
});
}
parent_depr: None,
access_levels: access_levels,
in_trait_impl: false,
- in_enum: false,
};
annotator.annotate(ast::CRATE_NODE_ID, &krate.attrs, krate.span, AnnotationKind::Required,
|v| intravisit::walk_crate(v, krate));
pub fn check_path(tcx: &ty::ctxt, path: &hir::Path, id: ast::NodeId,
cb: &mut FnMut(DefId, Span, &Option<&Stability>, &Option<Deprecation>)) {
match tcx.def_map.borrow().get(&id).map(|d| d.full_def()) {
- Some(def::DefPrimTy(..)) => {}
- Some(def::DefSelfTy(..)) => {}
+ Some(Def::PrimTy(..)) => {}
+ Some(Def::SelfTy(..)) => {}
Some(def) => {
maybe_do_stability_check(tcx, def.def_id(), path.span, cb);
}
pub fn check_path_list_item(tcx: &ty::ctxt, item: &hir::PathListItem,
cb: &mut FnMut(DefId, Span, &Option<&Stability>, &Option<Deprecation>)) {
match tcx.def_map.borrow().get(&item.node.id()).map(|d| d.full_def()) {
- Some(def::DefPrimTy(..)) => {}
+ Some(Def::PrimTy(..)) => {}
Some(def) => {
maybe_do_stability_check(tcx, def.def_id(), item.span, cb);
}