X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibrustc%2Fmiddle%2Fweak_lang_items.rs;h=6059d7ee74e390416f43a3f5eabc739990bd880a;hb=e6f0f7d52d69d0c4f290ac32c6eebf92bbf6dd81;hp=43b7943fd2096f88bf999fa5d5583574a01269b6;hpb=2727a8e1c06f27169be6a414623880f118551dbd;p=rust.git diff --git a/src/librustc/middle/weak_lang_items.rs b/src/librustc/middle/weak_lang_items.rs index 43b7943fd20..6059d7ee74e 100644 --- a/src/librustc/middle/weak_lang_items.rs +++ b/src/librustc/middle/weak_lang_items.rs @@ -12,13 +12,14 @@ use session::config; use session::Session; -use metadata::csearch; +use middle::cstore::CrateStore; use middle::lang_items; +use syntax::ast; use syntax::codemap::Span; use syntax::parse::token::InternedString; -use rustc_front::visit::Visitor; -use rustc_front::visit; +use rustc_front::intravisit::Visitor; +use rustc_front::intravisit; use rustc_front::hir; use std::collections::HashSet; @@ -49,12 +50,12 @@ pub fn check_crate(krate: &hir::Crate, { let mut cx = Context { sess: sess, items: items }; - visit::walk_crate(&mut cx, krate); + krate.visit_all_items(&mut cx); } verify(sess, items); } -pub fn link_name(attrs: &[hir::Attribute]) -> Option { +pub fn link_name(attrs: &[ast::Attribute]) -> Option { lang_items::extract(attrs).and_then(|name| { $(if &name[..] == stringify!($name) { Some(InternedString::new(stringify!($sym))) @@ -78,11 +79,11 @@ fn verify(sess: &Session, items: &lang_items::LanguageItems) { if !needs_check { return } let mut missing = HashSet::new(); - sess.cstore.iter_crate_data(|cnum, _| { - for item in &csearch::get_missing_lang_items(&sess.cstore, cnum) { - missing.insert(*item); + for cnum in sess.cstore.crates() { + for item in sess.cstore.missing_lang_items(cnum) { + missing.insert(item); } - }); + } $( if missing.contains(&lang_items::$item) && items.$name().is_none() { @@ -101,8 +102,8 @@ fn register(&mut self, name: &str, span: Span) { } } else)* { span_err!(self.sess, span, E0264, - "unknown external lang item: `{}`", - name); + "unknown external lang item: `{}`", + name); } } } @@ -113,7 +114,7 @@ fn visit_foreign_item(&mut self, i: &hir::ForeignItem) { None => {} Some(lang_item) => self.register(&lang_item, i.span), } - visit::walk_foreign_item(self, i) + intravisit::walk_foreign_item(self, i) } }