Address nits, rename enclosing_scope => parent_label
This commit is contained in:
parent
c23fe81764
commit
edba0c92de
7 changed files with 141 additions and 65 deletions
|
@ -349,7 +349,7 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
|
|||
message,
|
||||
label,
|
||||
note,
|
||||
enclosing_scope,
|
||||
parent_label,
|
||||
append_const_msg,
|
||||
} = self.on_unimplemented_note(trait_ref, &obligation);
|
||||
let have_alt_message = message.is_some() || label.is_some();
|
||||
|
@ -515,7 +515,7 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
|
|||
// If it has a custom `#[rustc_on_unimplemented]` note, let's display it
|
||||
err.note(s.as_str());
|
||||
}
|
||||
if let Some(ref s) = enclosing_scope {
|
||||
if let Some(ref s) = parent_label {
|
||||
let body = tcx
|
||||
.hir()
|
||||
.opt_local_def_id(obligation.cause.body_id)
|
||||
|
@ -524,11 +524,7 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
|
|||
hir_id: obligation.cause.body_id,
|
||||
})
|
||||
});
|
||||
|
||||
let enclosing_scope_span =
|
||||
tcx.hir().span(tcx.hir().local_def_id_to_hir_id(body));
|
||||
|
||||
err.span_label(enclosing_scope_span, s);
|
||||
err.span_label(tcx.def_span(body), s);
|
||||
}
|
||||
|
||||
self.suggest_floating_point_literal(&obligation, &mut err, &trait_ref);
|
||||
|
|
|
@ -22,7 +22,7 @@ pub struct OnUnimplementedDirective {
|
|||
pub message: Option<OnUnimplementedFormatString>,
|
||||
pub label: Option<OnUnimplementedFormatString>,
|
||||
pub note: Option<OnUnimplementedFormatString>,
|
||||
pub enclosing_scope: Option<OnUnimplementedFormatString>,
|
||||
pub parent_label: Option<OnUnimplementedFormatString>,
|
||||
pub append_const_msg: Option<Option<Symbol>>,
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ pub struct OnUnimplementedNote {
|
|||
pub message: Option<String>,
|
||||
pub label: Option<String>,
|
||||
pub note: Option<String>,
|
||||
pub enclosing_scope: Option<String>,
|
||||
pub parent_label: Option<String>,
|
||||
/// Append a message for `~const Trait` errors. `None` means not requested and
|
||||
/// should fallback to a generic message, `Some(None)` suggests using the default
|
||||
/// appended message, `Some(Some(s))` suggests use the `s` message instead of the
|
||||
|
@ -74,7 +74,7 @@ impl<'tcx> OnUnimplementedDirective {
|
|||
let mut message = None;
|
||||
let mut label = None;
|
||||
let mut note = None;
|
||||
let mut enclosing_scope = None;
|
||||
let mut parent_label = None;
|
||||
let mut subcommands = vec![];
|
||||
let mut append_const_msg = None;
|
||||
|
||||
|
@ -94,9 +94,9 @@ impl<'tcx> OnUnimplementedDirective {
|
|||
note = parse_value(note_)?;
|
||||
continue;
|
||||
}
|
||||
} else if item.has_name(sym::enclosing_scope) && enclosing_scope.is_none() {
|
||||
if let Some(enclosing_scope_) = item.value_str() {
|
||||
enclosing_scope = parse_value(enclosing_scope_)?;
|
||||
} else if item.has_name(sym::parent_label) && parent_label.is_none() {
|
||||
if let Some(parent_label_) = item.value_str() {
|
||||
parent_label = parse_value(parent_label_)?;
|
||||
continue;
|
||||
}
|
||||
} else if item.has_name(sym::on)
|
||||
|
@ -135,7 +135,7 @@ impl<'tcx> OnUnimplementedDirective {
|
|||
message,
|
||||
label,
|
||||
note,
|
||||
enclosing_scope,
|
||||
parent_label,
|
||||
append_const_msg,
|
||||
})
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ impl<'tcx> OnUnimplementedDirective {
|
|||
attr.span,
|
||||
)?),
|
||||
note: None,
|
||||
enclosing_scope: None,
|
||||
parent_label: None,
|
||||
append_const_msg: None,
|
||||
}))
|
||||
} else {
|
||||
|
@ -181,7 +181,7 @@ impl<'tcx> OnUnimplementedDirective {
|
|||
let mut message = None;
|
||||
let mut label = None;
|
||||
let mut note = None;
|
||||
let mut enclosing_scope = None;
|
||||
let mut parent_label = None;
|
||||
let mut append_const_msg = None;
|
||||
info!("evaluate({:?}, trait_ref={:?}, options={:?})", self, trait_ref, options);
|
||||
|
||||
|
@ -217,8 +217,8 @@ impl<'tcx> OnUnimplementedDirective {
|
|||
note = Some(note_.clone());
|
||||
}
|
||||
|
||||
if let Some(ref enclosing_scope_) = command.enclosing_scope {
|
||||
enclosing_scope = Some(enclosing_scope_.clone());
|
||||
if let Some(ref parent_label_) = command.parent_label {
|
||||
parent_label = Some(parent_label_.clone());
|
||||
}
|
||||
|
||||
append_const_msg = command.append_const_msg;
|
||||
|
@ -228,7 +228,7 @@ impl<'tcx> OnUnimplementedDirective {
|
|||
label: label.map(|l| l.format(tcx, trait_ref, &options_map)),
|
||||
message: message.map(|m| m.format(tcx, trait_ref, &options_map)),
|
||||
note: note.map(|n| n.format(tcx, trait_ref, &options_map)),
|
||||
enclosing_scope: enclosing_scope.map(|e_s| e_s.format(tcx, trait_ref, &options_map)),
|
||||
parent_label: parent_label.map(|e_s| e_s.format(tcx, trait_ref, &options_map)),
|
||||
append_const_msg,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue