Point to the empty trait alias.
This commit is contained in:
parent
1d43b4d59c
commit
e947fad68c
5 changed files with 19 additions and 1 deletions
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue