about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-11-04 16:19:55 -0800
committerEsteban Küber <esteban@kuber.com.ar>2019-11-04 16:19:55 -0800
commit3bbfc7320ba0f23541f94a84cf5281a210a546cd (patch)
treef79009e4076006d5682dedd46994ad1827604d66 /src/libsyntax/parse/parser
parentd3d28a49209a21628fda0245b631e5fc3465be1a (diff)
downloadrust-3bbfc7320ba0f23541f94a84cf5281a210a546cd.tar.gz
rust-3bbfc7320ba0f23541f94a84cf5281a210a546cd.zip
Detect `::` -> `:` typo when involving turbofish
Diffstat (limited to 'src/libsyntax/parse/parser')
-rw-r--r--src/libsyntax/parse/parser/diagnostics.rs3
-rw-r--r--src/libsyntax/parse/parser/stmt.rs1
2 files changed, 3 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser/diagnostics.rs b/src/libsyntax/parse/parser/diagnostics.rs
index ab2b4519cb7..ad479e6278b 100644
--- a/src/libsyntax/parse/parser/diagnostics.rs
+++ b/src/libsyntax/parse/parser/diagnostics.rs
@@ -354,7 +354,7 @@ impl<'a> Parser<'a> {
     }
 
     pub fn maybe_annotate_with_ascription(
-        &self,
+        &mut self,
         err: &mut DiagnosticBuilder<'_>,
         maybe_expected_semicolon: bool,
     ) {
@@ -395,6 +395,7 @@ impl<'a> Parser<'a> {
                 err.note("for more information, see \
                           https://github.com/rust-lang/rust/issues/23416");
             }
+            self.last_type_ascription = None;
         }
     }
 
diff --git a/src/libsyntax/parse/parser/stmt.rs b/src/libsyntax/parse/parser/stmt.rs
index 4f51fefe66f..12c530f3cbb 100644
--- a/src/libsyntax/parse/parser/stmt.rs
+++ b/src/libsyntax/parse/parser/stmt.rs
@@ -397,6 +397,7 @@ impl<'a> Parser<'a> {
             }
             let stmt = match self.parse_full_stmt(false) {
                 Err(mut err) => {
+                    self.maybe_annotate_with_ascription(&mut err, false);
                     err.emit();
                     self.recover_stmt_(SemiColonMode::Ignore, BlockMode::Ignore);
                     Some(Stmt {