Auto merge of #81186 - GuillaumeGomez:rollup-y2d04g9, r=GuillaumeGomez
Rollup of 8 pull requests Successful merges: - #80382 (Improve search result tab handling) - #81112 (Remove unused alloc::std::ops re-export.) - #81115 (BTreeMap: prefer bulk_steal functions over specialized ones) - #81147 (Fix structured suggestion for explicit `drop` call) - #81161 (Remove inline script tags) - #81164 (Fix typo in simplify.rs) - #81166 (remove some outdated comments regarding debug assertions) - #81168 (Fixes #81109 - Typo in pointer::wrapping_sub) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
f09fb488f7
27 changed files with 166 additions and 182 deletions
|
@ -55,7 +55,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
|
|||
// * the bindings from the previous iteration of the loop is prepended to the bindings from
|
||||
// the current iteration (in the implementation this is done by mem::swap and extend)
|
||||
// * after all iterations, these new bindings are then appended to the bindings that were
|
||||
// prexisting (i.e. `candidate.binding` when the function was called).
|
||||
// preexisting (i.e. `candidate.binding` when the function was called).
|
||||
//
|
||||
// example:
|
||||
// candidate.bindings = [1, 2, 3]
|
||||
|
|
|
@ -25,24 +25,24 @@ pub fn check_legal_trait_for_method_call(
|
|||
tcx: TyCtxt<'_>,
|
||||
span: Span,
|
||||
receiver: Option<Span>,
|
||||
expr_span: Span,
|
||||
trait_id: DefId,
|
||||
) {
|
||||
if tcx.lang_items().drop_trait() == Some(trait_id) {
|
||||
let mut err = struct_span_err!(tcx.sess, span, E0040, "explicit use of destructor method");
|
||||
err.span_label(span, "explicit destructor calls not allowed");
|
||||
|
||||
let snippet = receiver
|
||||
let (sp, suggestion) = receiver
|
||||
.and_then(|s| tcx.sess.source_map().span_to_snippet(s).ok())
|
||||
.unwrap_or_default();
|
||||
|
||||
let suggestion =
|
||||
if snippet.is_empty() { "drop".to_string() } else { format!("drop({})", snippet) };
|
||||
.filter(|snippet| !snippet.is_empty())
|
||||
.map(|snippet| (expr_span, format!("drop({})", snippet)))
|
||||
.unwrap_or_else(|| (span, "drop".to_string()));
|
||||
|
||||
err.span_suggestion(
|
||||
span,
|
||||
&format!("consider using `drop` function: `{}`", suggestion),
|
||||
String::new(),
|
||||
Applicability::Unspecified,
|
||||
sp,
|
||||
"consider using `drop` function",
|
||||
suggestion,
|
||||
Applicability::MaybeIncorrect,
|
||||
);
|
||||
|
||||
err.emit();
|
||||
|
|
|
@ -1163,7 +1163,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||
debug!("instantiate_value_path: def_id={:?} container={:?}", def_id, container);
|
||||
match container {
|
||||
ty::TraitContainer(trait_did) => {
|
||||
callee::check_legal_trait_for_method_call(tcx, span, None, trait_did)
|
||||
callee::check_legal_trait_for_method_call(tcx, span, None, span, trait_did)
|
||||
}
|
||||
ty::ImplContainer(impl_def_id) => {
|
||||
if segments.len() == 1 {
|
||||
|
|
|
@ -508,6 +508,7 @@ impl<'a, 'tcx> ConfirmContext<'a, 'tcx> {
|
|||
self.tcx,
|
||||
self.span,
|
||||
Some(self.self_expr.span),
|
||||
self.call_expr.span,
|
||||
trait_def_id,
|
||||
),
|
||||
ty::ImplContainer(..) => {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue