From ef74796178edd2cf28f17109083cbd235808f88d Mon Sep 17 00:00:00 2001 From: Noah Lev Date: Fri, 18 Feb 2022 15:32:46 -0800 Subject: Change temporary variable name if it would conflict --- compiler/rustc_parse/src/parser/diagnostics.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'compiler/rustc_parse/src/parser') diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs index 162982ebbe2..9590f26a76f 100644 --- a/compiler/rustc_parse/src/parser/diagnostics.rs +++ b/compiler/rustc_parse/src/parser/diagnostics.rs @@ -1337,15 +1337,12 @@ impl<'a> Parser<'a> { kind: IncDecRecovery, (pre_span, post_span): (Span, Span), ) { - let mut msg = format!("use `{}= 1` instead", kind.op.chr()); - if base_src.trim() == "tmp" { - msg.push_str(" (rename `tmp` so it doesn't conflict with your variable)"); - } + let tmp_var = if base_src.trim() == "tmp" { "tmp_" } else { "tmp" }; err.multipart_suggestion( - &msg, + &format!("use `{}= 1` instead", kind.op.chr()), vec![ - (pre_span, "{ let tmp = ".to_string()), - (post_span, format!("; {} {}= 1; tmp }}", base_src, kind.op.chr())), + (pre_span, format!("{{ let {} = ", tmp_var)), + (post_span, format!("; {} {}= 1; {} }}", base_src, kind.op.chr(), tmp_var)), ], Applicability::HasPlaceholders, ); -- cgit 1.4.1-3-g733a5