about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libsyntax/parse/parser/pat.rs3
-rw-r--r--src/test/ui/or-patterns/feature-gate-or_patterns-leading-for.stderr4
-rw-r--r--src/test/ui/or-patterns/feature-gate-or_patterns-leading-let.stderr4
3 files changed, 6 insertions, 5 deletions
diff --git a/src/libsyntax/parse/parser/pat.rs b/src/libsyntax/parse/parser/pat.rs
index f2e269e03ba..78c9a289b37 100644
--- a/src/libsyntax/parse/parser/pat.rs
+++ b/src/libsyntax/parse/parser/pat.rs
@@ -50,6 +50,7 @@ impl<'a> Parser<'a> {
     pub(super) fn parse_top_pat(&mut self, gate_or: GateOr) -> PResult<'a, P<Pat>> {
         // Allow a '|' before the pats (RFCs 1925, 2530, and 2535).
         let gated_leading_vert = self.eat_or_separator() && gate_or == GateOr::Yes;
+        let leading_vert_span = self.prev_span;
 
         // Parse the possibly-or-pattern.
         let pat = self.parse_pat_with_or(None, gate_or, RecoverComma::Yes)?;
@@ -61,7 +62,7 @@ impl<'a> Parser<'a> {
         if gated_leading_vert {
             let mut or_pattern_spans = self.sess.gated_spans.or_patterns.borrow_mut();
             if or_pattern_spans.is_empty() {
-                or_pattern_spans.push(self.prev_span);
+                or_pattern_spans.push(leading_vert_span);
             }
         }
 
diff --git a/src/test/ui/or-patterns/feature-gate-or_patterns-leading-for.stderr b/src/test/ui/or-patterns/feature-gate-or_patterns-leading-for.stderr
index 83804d564f3..f520409e8ba 100644
--- a/src/test/ui/or-patterns/feature-gate-or_patterns-leading-for.stderr
+++ b/src/test/ui/or-patterns/feature-gate-or_patterns-leading-for.stderr
@@ -1,8 +1,8 @@
 error[E0658]: or-patterns syntax is experimental
-  --> $DIR/feature-gate-or_patterns-leading-for.rs:7:11
+  --> $DIR/feature-gate-or_patterns-leading-for.rs:7:9
    |
 LL |     for | A in 0 {}
-   |           ^
+   |         ^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/54883
    = help: add `#![feature(or_patterns)]` to the crate attributes to enable
diff --git a/src/test/ui/or-patterns/feature-gate-or_patterns-leading-let.stderr b/src/test/ui/or-patterns/feature-gate-or_patterns-leading-let.stderr
index f7954ad7a8c..30fd6a1a95e 100644
--- a/src/test/ui/or-patterns/feature-gate-or_patterns-leading-let.stderr
+++ b/src/test/ui/or-patterns/feature-gate-or_patterns-leading-let.stderr
@@ -1,8 +1,8 @@
 error[E0658]: or-patterns syntax is experimental
-  --> $DIR/feature-gate-or_patterns-leading-let.rs:7:11
+  --> $DIR/feature-gate-or_patterns-leading-let.rs:7:9
    |
 LL |     let | A;
-   |           ^
+   |         ^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/54883
    = help: add `#![feature(or_patterns)]` to the crate attributes to enable