about summary refs log tree commit diff
path: root/compiler/rustc_parse/src
diff options
context:
space:
mode:
authorCatherine Flores <catherine.3.flores@gmail.com>2023-07-25 18:37:56 +0000
committerCatherine Flores <catherine.3.flores@gmail.com>2023-07-25 18:37:56 +0000
commitfaa73953c07530bc02c9a89e4d719beb3f4a376e (patch)
treeee2fa372fe64c445ef47977be9488ad0b9c5ce99 /compiler/rustc_parse/src
parent16481807f5b106a6dcc627075fbdcd14add9495d (diff)
downloadrust-faa73953c07530bc02c9a89e4d719beb3f4a376e.tar.gz
rust-faa73953c07530bc02c9a89e4d719beb3f4a376e.zip
Remove unnecessary `maybe_ternary_lo` field
Diffstat (limited to 'compiler/rustc_parse/src')
-rw-r--r--compiler/rustc_parse/src/parser/diagnostics.rs10
-rw-r--r--compiler/rustc_parse/src/parser/mod.rs9
-rw-r--r--compiler/rustc_parse/src/parser/stmt.rs4
3 files changed, 5 insertions, 18 deletions
diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs
index 8f422d90175..ef5581e1efe 100644
--- a/compiler/rustc_parse/src/parser/diagnostics.rs
+++ b/compiler/rustc_parse/src/parser/diagnostics.rs
@@ -501,10 +501,8 @@ impl<'a> Parser<'a> {
         // Special-case "expected `;`" errors
         if expected.contains(&TokenType::Token(token::Semi)) {
             if self.prev_token.kind == token::Question {
-                self.maybe_ternary_lo = Some(self.prev_token.span.lo());
-                let result = self.maybe_recover_from_ternary_operator().map(|_| true);
-                self.maybe_ternary_lo = None;
-                return result;
+                self.maybe_recover_from_ternary_operator();
+                return Ok(true);
             }
 
             if self.token.span == DUMMY_SP || self.prev_token.span == DUMMY_SP {
@@ -1339,7 +1337,7 @@ impl<'a> Parser<'a> {
 
     /// Rust has no ternary operator (`cond ? then : else`). Parse it and try
     /// to recover from it if `then` and `else` are valid expressions.
-    pub(super) fn maybe_recover_from_ternary_operator(&mut self) -> PResult<'a, ()> {
+    pub(super) fn maybe_recover_from_ternary_operator(&mut self) {
         let snapshot = self.create_snapshot_for_diagnostic();
         let lo = self.prev_token.span.lo();
 
@@ -1368,8 +1366,6 @@ impl<'a> Parser<'a> {
         } else {
             self.restore_snapshot(snapshot);
         };
-
-        Ok(())
     }
 
     pub(super) fn maybe_recover_from_bad_type_plus(&mut self, ty: &Ty) -> PResult<'a, ()> {
diff --git a/compiler/rustc_parse/src/parser/mod.rs b/compiler/rustc_parse/src/parser/mod.rs
index 20515b36fa1..2e1a61e634e 100644
--- a/compiler/rustc_parse/src/parser/mod.rs
+++ b/compiler/rustc_parse/src/parser/mod.rs
@@ -37,7 +37,6 @@ use rustc_errors::{
 use rustc_session::parse::ParseSess;
 use rustc_span::source_map::{Span, DUMMY_SP};
 use rustc_span::symbol::{kw, sym, Ident, Symbol};
-use rustc_span::BytePos;
 use std::ops::Range;
 use std::{cmp, mem, slice};
 use thin_vec::ThinVec;
@@ -158,17 +157,12 @@ pub struct Parser<'a> {
     /// Whether the parser is allowed to do recovery.
     /// This is disabled when parsing macro arguments, see #103534
     pub recovery: Recovery,
-    /// The low part of a ternary operator (`cond ? then : else`).
-    /// FIXME(Centri3): This is currently only used so that type ascription is
-    /// not mentioned in the error. Once the error in `stmt.rs` is removed, this
-    /// can be removed.
-    maybe_ternary_lo: Option<BytePos>,
 }
 
 // This type is used a lot, e.g. it's cloned when matching many declarative macro rules with nonterminals. Make sure
 // it doesn't unintentionally get bigger.
 #[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
-rustc_data_structures::static_assert_size!(Parser<'_>, 280);
+rustc_data_structures::static_assert_size!(Parser<'_>, 272);
 
 /// Stores span information about a closure.
 #[derive(Clone)]
@@ -481,7 +475,6 @@ impl<'a> Parser<'a> {
             },
             current_closure: None,
             recovery: Recovery::Allowed,
-            maybe_ternary_lo: None,
         };
 
         // Make parser point to the first token.
diff --git a/compiler/rustc_parse/src/parser/stmt.rs b/compiler/rustc_parse/src/parser/stmt.rs
index 5a7f3aa53dc..9fcf51a04ec 100644
--- a/compiler/rustc_parse/src/parser/stmt.rs
+++ b/compiler/rustc_parse/src/parser/stmt.rs
@@ -576,9 +576,7 @@ impl<'a> Parser<'a> {
                                 Applicability::MaybeIncorrect,
                             );
                         }
-                        if self.sess.unstable_features.is_nightly_build()
-                            && self.maybe_ternary_lo.is_none()
-                        {
+                        if self.sess.unstable_features.is_nightly_build() {
                             // FIXME(Nilstrieb): Remove this again after a few months.
                             err.note("type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728>");
                         }