- self.def_path_str(type_def_id)
- ));
- err
- }
-
- pub fn report_object_safety_error(
- self,
- span: Span,
- trait_def_id: DefId,
- violations: Vec<ObjectSafetyViolation>,
- ) -> DiagnosticBuilder<'tcx> {
- let trait_str = self.def_path_str(trait_def_id);
- let span = self.sess.source_map().def_span(span);
- let mut err = struct_span_err!(
- self.sess,
- span,
- E0038,
- "the trait `{}` cannot be made into an object",
- trait_str
- );
- err.span_label(span, format!("the trait `{}` cannot be made into an object", trait_str));
-
- let mut reported_violations = FxHashSet::default();
- for violation in violations {
- if reported_violations.insert(violation.clone()) {
- match violation.span() {
- Some(span) => err.span_label(span, violation.error_msg()),
- None => err.note(&violation.error_msg()),
- };
- }
- }