// empty.
}
+impl Send for .. { }
+
impl<T> !Send for *const T { }
impl<T> !Send for *mut T { }
impl !Send for Managed { }
// Empty
}
+impl Sync for .. { }
+
impl<T> !Sync for *const T { }
impl<T> !Sync for *mut T { }
impl !Sync for Managed { }
pub fn trait_has_default_impl(tcx: &ctxt, trait_def_id: DefId) -> bool {
populate_implementations_for_trait_if_necessary(tcx, trait_def_id);
- match tcx.lang_items.to_builtin_kind(trait_def_id) {
- Some(BoundSend) | Some(BoundSync) => true,
- _ => tcx.traits_with_default_impls.borrow().contains_key(&trait_def_id),
- }
+ tcx.traits_with_default_impls.borrow().contains_key(&trait_def_id)
}
/// Records a trait-to-implementation mapping.