about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/parser
diff options
context:
space:
mode:
authorNoah Lev <camelidcamel@gmail.com>2022-02-17 14:58:46 -0800
committerNoah Lev <camelidcamel@gmail.com>2022-03-23 22:31:57 -0700
commit073010d425d7b6ff5e79fd41f209e4915daa6066 (patch)
tree2f4ed899247b67791a8b39e160b04721ed1a07ed /compiler/rustc_parse/src/parser
parent62b8ea67b79de77fca36ca82de4b934307b6de30 (diff)
downloadrust-073010d425d7b6ff5e79fd41f209e4915daa6066.tar.gz
rust-073010d425d7b6ff5e79fd41f209e4915daa6066.zip
Improve handling of `tmp` variable name conflicts
Diffstat (limited to 'compiler/rustc_parse/src/parser')
-rw-r--r--compiler/rustc_parse/src/parser/diagnostics.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs
index 26ca018685e..dcb150f18aa 100644
--- a/compiler/rustc_parse/src/parser/diagnostics.rs
+++ b/compiler/rustc_parse/src/parser/diagnostics.rs
@@ -1325,13 +1325,17 @@ 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)");
+        }
         err.multipart_suggestion(
-            &format!("use `{}= 1` instead", kind.op.chr()),
+            &msg,
             vec![
                 (pre_span, "{ let tmp = ".to_string()),
                 (post_span, format!("; {} {}= 1; tmp }}", base_src, kind.op.chr())),
             ],
-            Applicability::MachineApplicable,
+            Applicability::HasPlaceholders,
         );
     }