about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-08-26 22:14:31 +0200
committerMazdak Farrokhzad <twingoow@gmail.com>2019-08-26 22:14:31 +0200
commit2bd27fbdfe309f3f6abd76f72f379247d49048b7 (patch)
tree448aebcbf11a933e47906549f0f56952ee12d018 /src
parentacb11305e8d7298750797d45324c0ecb3cc6c256 (diff)
downloadrust-2bd27fbdfe309f3f6abd76f72f379247d49048b7.tar.gz
rust-2bd27fbdfe309f3f6abd76f72f379247d49048b7.zip
parser: fix span for leading vert.
Diffstat (limited to 'src')
-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