From 4b05128114a45fafb459fc6538f1255c84ec52cf Mon Sep 17 00:00:00 2001 From: Vitaly _Vi Shukela Date: Sat, 15 Sep 2018 15:03:02 +0300 Subject: [PATCH] Attach Applicability to multipart_suggestion and span_suggestions --- src/librustc_typeck/check/compare_method.rs | 6 ++++-- src/librustc_typeck/check/demand.rs | 6 ++++-- src/librustc_typeck/check/op.rs | 6 ++++-- src/libsyntax_ext/format.rs | 3 ++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/librustc_typeck/check/compare_method.rs b/src/librustc_typeck/check/compare_method.rs index 2c3abb47cff5..75b9d2831600 100644 --- a/src/librustc_typeck/check/compare_method.rs +++ b/src/librustc_typeck/check/compare_method.rs @@ -801,7 +801,7 @@ fn compare_synthetic_generics<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, .span_to_snippet(trait_m.generics.span) .ok()?; - err.multipart_suggestion( + err.multipart_suggestion_with_applicability( "try changing the `impl Trait` argument to a generic parameter", vec![ // replace `impl Trait` with `T` @@ -811,6 +811,7 @@ fn compare_synthetic_generics<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, // of the generics, but it works for the common case (generics_span, new_generics), ], + Applicability::Unspecified, ); Some(()) })(); @@ -872,7 +873,7 @@ fn compare_synthetic_generics<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, .span_to_snippet(bounds) .ok()?; - err.multipart_suggestion( + err.multipart_suggestion_with_applicability( "try removing the generic parameter and using `impl Trait` instead", vec![ // delete generic parameters @@ -880,6 +881,7 @@ fn compare_synthetic_generics<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, // replace param usage with `impl Trait` (span, format!("impl {}", bounds)), ], + Applicability::Unspecified, ); Some(()) })(); diff --git a/src/librustc_typeck/check/demand.rs b/src/librustc_typeck/check/demand.rs index 4e22ead8db98..13f3bdbb10f0 100644 --- a/src/librustc_typeck/check/demand.rs +++ b/src/librustc_typeck/check/demand.rs @@ -132,9 +132,11 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { let expr_text = print::to_string(print::NO_ANN, |s| s.print_expr(expr)); let suggestions = compatible_variants.iter() .map(|v| format!("{}({})", v, expr_text)).collect::>(); - err.span_suggestions(expr.span, + err.span_suggestions_with_applicability(expr.span, "try using a variant of the expected type", - suggestions); + suggestions, + Applicability::Unspecified, + ); } } diff --git a/src/librustc_typeck/check/op.rs b/src/librustc_typeck/check/op.rs index a678981cf011..f029ae2d954e 100644 --- a/src/librustc_typeck/check/op.rs +++ b/src/librustc_typeck/check/op.rs @@ -464,10 +464,12 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { is_assign, ) { (Ok(l), Ok(r), false) => { - err.multipart_suggestion(msg, vec![ + err.multipart_suggestion_with_applicability(msg, vec![ (lhs_expr.span, format!("{}.to_owned()", l)), (rhs_expr.span, format!("&{}", r)), - ]); + ], + Applicability::Unspecified, + ); } _ => { err.help(msg); diff --git a/src/libsyntax_ext/format.rs b/src/libsyntax_ext/format.rs index efe9c2cefdeb..b4ad777e6d7b 100644 --- a/src/libsyntax_ext/format.rs +++ b/src/libsyntax_ext/format.rs @@ -996,9 +996,10 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt, )); } if suggestions.len() > 0 { - diag.multipart_suggestion( + diag.multipart_suggestion_with_applicability( "format specifiers use curly braces", suggestions, + Applicability::Unspecified, ); } }};