use syntax::ast;
use syntax::attr;
use syntax::source_map;
-use syntax::edition::Edition;
use syntax::parse::source_file_to_stream;
use syntax::parse::parser::emit_unclosed_delims;
use syntax::source_map::Spanned;
let ($def_id, $other) = def_id_arg.into_args();
assert!(!$def_id.is_local());
- let $cdata = $tcx.crate_data_as_rc_any($def_id.krate);
+ let $cdata = $tcx.crate_data_as_any($def_id.krate);
let $cdata = $cdata.downcast_ref::<cstore::CrateMetadata>()
.expect("CrateStore created data is not a CrateMetadata");
}
}
- pub fn crate_edition_untracked(&self, cnum: CrateNum) -> Edition {
- self.get_crate_data(cnum).root.edition
- }
-
pub fn struct_field_names_untracked(&self, def: DefId, sess: &Session) -> Vec<Spanned<Symbol>> {
self.get_crate_data(def.krate).get_struct_field_names(def.index, sess)
}
LoadedMacro::MacroDef(ast::Item {
// FIXME: cross-crate hygiene
- ident: ast::Ident::with_dummy_span(name.as_symbol()),
+ ident: ast::Ident::with_dummy_span(name),
id: ast::DUMMY_NODE_ID,
span: local_span,
attrs: attrs.iter().cloned().collect(),
}),
vis: source_map::respan(local_span.shrink_to_lo(), ast::VisibilityKind::Inherited),
tokens: None,
- })
+ }, data.root.edition)
}
pub fn associated_item_cloned_untracked(&self, def: DefId) -> ty::AssocItem {
}
impl CrateStore for cstore::CStore {
- fn crate_data_as_rc_any(&self, krate: CrateNum) -> Lrc<dyn Any> {
- self.get_crate_data(krate)
+ fn crate_data_as_any(&self, cnum: CrateNum) -> &dyn Any {
+ self.get_crate_data(cnum)
}
fn item_generics_cloned_untracked(&self, def: DefId, sess: &Session) -> ty::Generics {
self.get_crate_data(def.krate).def_path_hash(def.index)
}
- fn def_path_table(&self, cnum: CrateNum) -> Lrc<DefPathTable> {
- self.get_crate_data(cnum).def_path_table.clone()
+ fn def_path_table(&self, cnum: CrateNum) -> &DefPathTable {
+ &self.get_crate_data(cnum).def_path_table
}
fn crates_untracked(&self) -> Vec<CrateNum>