From 7e382132a57953e09bbb4e41152107032d69a2cf Mon Sep 17 00:00:00 2001 From: Flavio Percoco Date: Sat, 7 Feb 2015 11:10:19 +0100 Subject: [PATCH] Make default_trait_impls private and add accessor --- src/librustc/middle/traits/select.rs | 2 +- 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 3d331e6f2fed..e729b678c322 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 2fcee3d62138..782f0b198149 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>>>>, /// Maps a trait onto a list of *default* trait implementations - pub default_trait_impls: RefCell, + default_trait_impls: RefCell, /// 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 { || 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) {