1
Fork 0

Point to the empty trait alias.

This commit is contained in:
Camille GILLOT 2022-05-09 19:03:37 +02:00
parent 1d43b4d59c
commit e947fad68c
5 changed files with 19 additions and 1 deletions

View file

@ -1370,7 +1370,13 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
}
if regular_traits.is_empty() && auto_traits.is_empty() {
tcx.sess.emit_err(TraitObjectDeclaredWithNoTraits { span });
let trait_alias_span = bounds
.trait_bounds
.iter()
.map(|&(trait_ref, _, _)| trait_ref.def_id())
.find(|&trait_ref| tcx.is_trait_alias(trait_ref))
.map(|trait_ref| tcx.def_span(trait_ref));
tcx.sess.emit_err(TraitObjectDeclaredWithNoTraits { span, trait_alias_span });
return tcx.ty_error();
}

View file

@ -103,6 +103,8 @@ pub struct CopyImplOnNonAdt {
pub struct TraitObjectDeclaredWithNoTraits {
#[primary_span]
pub span: Span,
#[label = "alias-span"]
pub trait_alias_span: Option<Span>,
}
#[derive(SessionDiagnostic)]