//! Used by `rustc` when compiling a plugin crate.
-use syntax::attr;
-use syntax::symbol::sym;
-use syntax_pos::Span;
-use rustc::hir::itemlikevisit::ItemLikeVisitor;
-use rustc::hir;
-use rustc::hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
-use rustc::ty::TyCtxt;
use rustc::ty::query::Providers;
+use rustc::ty::TyCtxt;
+use rustc_hir as hir;
+use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
+use rustc_hir::itemlikevisit::ItemLikeVisitor;
+use rustc_span::symbol::sym;
+use rustc_span::Span;
+use syntax::attr;
struct RegistrarFinder {
- registrars: Vec<(hir::HirId, Span)> ,
+ registrars: Vec<(hir::HirId, Span)>,
}
impl<'v> ItemLikeVisitor<'v> for RegistrarFinder {
}
}
- fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem) {
- }
+ fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) {}
- fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) {
- }
+ fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) {}
}
/// Finds the function marked with `#[plugin_registrar]`, if any.
1 => {
let (hir_id, _) = finder.registrars.pop().unwrap();
Some(tcx.hir().local_def_id(hir_id))
- },
+ }
_ => {
let diagnostic = tcx.sess.diagnostic();
let mut e = diagnostic.struct_err("multiple plugin registration functions found");
}
}
-
pub fn provide(providers: &mut Providers<'_>) {
- *providers = Providers {
- plugin_registrar_fn,
- ..*providers
- };
+ *providers = Providers { plugin_registrar_fn, ..*providers };
}