Give name to extra Span
in LiveDrop
error
This commit is contained in:
parent
c3607bd7dd
commit
e4edc161f2
3 changed files with 6 additions and 4 deletions
|
@ -148,7 +148,9 @@ pub struct InlineAsm;
|
|||
impl NonConstOp for InlineAsm {}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct LiveDrop(pub Option<Span>);
|
||||
pub struct LiveDrop {
|
||||
pub dropped_at: Option<Span>,
|
||||
}
|
||||
impl NonConstOp for LiveDrop {
|
||||
fn emit_error(&self, ccx: &ConstCx<'_, '_>, span: Span) {
|
||||
let mut diagnostic = struct_span_err!(
|
||||
|
@ -158,7 +160,7 @@ impl NonConstOp for LiveDrop {
|
|||
"destructors cannot be evaluated at compile-time"
|
||||
);
|
||||
diagnostic.span_label(span, format!("{}s cannot evaluate destructors", ccx.const_kind()));
|
||||
if let Some(span) = self.0 {
|
||||
if let Some(span) = self.dropped_at {
|
||||
diagnostic.span_label(span, "value is dropped here");
|
||||
}
|
||||
diagnostic.emit();
|
||||
|
|
|
@ -52,7 +52,7 @@ impl std::ops::Deref for CheckLiveDrops<'mir, 'tcx> {
|
|||
|
||||
impl CheckLiveDrops<'mir, 'tcx> {
|
||||
fn check_live_drop(&self, span: Span) {
|
||||
ops::non_const(self.ccx, ops::LiveDrop(None), span);
|
||||
ops::non_const(self.ccx, ops::LiveDrop { dropped_at: None }, span);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -576,7 +576,7 @@ impl Visitor<'tcx> for Validator<'mir, 'tcx> {
|
|||
|
||||
if needs_drop {
|
||||
self.check_op_spanned(
|
||||
ops::LiveDrop(Some(terminator.source_info.span)),
|
||||
ops::LiveDrop { dropped_at: Some(terminator.source_info.span) },
|
||||
err_span,
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue