use syntax::ast;
use syntax::ast_util;
use syntax::ast_map;
+use syntax::attr;
use syntax::attr::AttrMetaMethods;
use syntax::codemap::Span;
+use rustc::middle::stability;
+
use std::gc::{Gc, GC};
use core;
}
}
+ fn stability(&self, id: ast::NodeId) -> Option<attr::Stability> {
+ let tcx = match self.cx.maybe_typed {
+ core::Typed(ref tcx) => tcx,
+ core::NotTyped(_) => return None
+ };
+ stability::lookup(tcx, ast_util::local_def(id))
+ }
+
pub fn visit(&mut self, krate: &ast::Crate) {
self.attrs = krate.attrs.iter().map(|x| (*x).clone()).collect();
struct_type: struct_type,
name: item.ident,
vis: item.vis,
+ stab: self.stability(item.id),
attrs: item.attrs.iter().map(|x| *x).collect(),
generics: generics.clone(),
fields: sd.fields.iter().map(|x| (*x).clone()).collect(),
name: x.node.name,
attrs: x.node.attrs.iter().map(|x| *x).collect(),
vis: x.node.vis,
+ stab: self.stability(x.node.id),
id: x.node.id,
kind: x.node.kind.clone(),
where: x.span,
name: it.ident,
variants: vars,
vis: it.vis,
+ stab: self.stability(it.id),
generics: params.clone(),
attrs: it.attrs.iter().map(|x| *x).collect(),
id: it.id,
Function {
id: item.id,
vis: item.vis,
+ stab: self.stability(item.id),
attrs: item.attrs.iter().map(|x| *x).collect(),
decl: fd.clone(),
name: item.ident,
om.where_inner = m.inner;
om.attrs = attrs;
om.vis = vis;
+ om.stab = self.stability(id);
om.id = id;
for i in m.items.iter() {
self.visit_item(&**i, &mut om);
attrs: item.attrs.iter().map(|x| *x).collect(),
where: item.span,
vis: item.vis,
+ stab: self.stability(item.id),
};
om.typedefs.push(t);
},
attrs: item.attrs.iter().map(|x| *x).collect(),
where: item.span,
vis: item.vis,
+ stab: self.stability(item.id),
};
om.statics.push(s);
},
attrs: item.attrs.iter().map(|x| *x).collect(),
where: item.span,
vis: item.vis,
+ stab: self.stability(item.id),
};
om.traits.push(t);
},
id: item.id,
where: item.span,
vis: item.vis,
+ stab: self.stability(item.id),
};
om.impls.push(i);
},
attrs: item.attrs.iter().map(|x| *x).collect(),
name: item.ident,
where: item.span,
+ stab: self.stability(item.id),
})
}
}