-
-impl<'a, 'tcx> Context<'a, 'tcx> {
- fn register(&mut self, name: Symbol, span: Span) {
- if let Some(&item) = WEAK_ITEMS_REFS.get(&name) {
- if self.items.require(item).is_err() {
- self.items.missing.push(item);
- }
- } else {
- struct_span_err!(self.tcx.sess, span, E0264, "unknown external lang item: `{}`", name)
- .emit();
- }
- }
-}
-
-impl<'a, 'tcx, 'v> Visitor<'v> for Context<'a, 'tcx> {
- fn visit_foreign_item(&mut self, i: &hir::ForeignItem<'_>) {
- let attrs = self.tcx.hir().attrs(i.hir_id());
- if let Some((lang_item, _)) = lang_items::extract(attrs) {
- self.register(lang_item, i.span);
- }
- intravisit::walk_foreign_item(self, i)
- }
-}