diff options
| -rw-r--r-- | src/librustc/middle/traits/select.rs | 2 | ||||
| -rw-r--r-- | src/librustc/middle/ty.rs | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/librustc/middle/traits/select.rs b/src/librustc/middle/traits/select.rs index 3d331e6f2fe..e729b678c32 100644 --- a/src/librustc/middle/traits/select.rs +++ b/src/librustc/middle/traits/select.rs @@ -1149,7 +1149,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> { }); } - if self.tcx().default_trait_impls.borrow().contains(&def_id) { + if ty::trait_has_default_impl(self.tcx(), def_id) { candidates.vec.push(DefaultTraitCandidate(def_id.clone())) } diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 2fcee3d6213..782f0b19814 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -758,7 +758,7 @@ pub struct ctxt<'tcx> { pub trait_impls: RefCell<DefIdMap<Rc<RefCell<Vec<ast::DefId>>>>>, /// Maps a trait onto a list of *default* trait implementations - pub default_trait_impls: RefCell<DefIdSet>, + default_trait_impls: RefCell<DefIdSet>, /// Maps a DefId of a type to a list of its inherent impls. /// Contains implementations of methods that are inherent to a type. @@ -5999,6 +5999,10 @@ pub fn item_variances(tcx: &ctxt, item_id: ast::DefId) -> Rc<ItemVariances> { || Rc::new(csearch::get_item_variances(&tcx.sess.cstore, item_id))) } +pub fn trait_has_default_impl(tcx: &ctxt, trait_def_id: DefId) -> bool { + tcx.default_trait_impls.borrow().contains(&trait_def_id) +} + /// Records a trait-to-implementation mapping. pub fn record_default_trait_implementation(tcx: &ctxt, trait_def_id: DefId) { |
