Revert "pre-expansion gate exclusive_range_pattern"

This reverts commit 665a876e30.
This commit is contained in:
Eduard-Mihai Burtescu 2019-10-31 18:30:25 +02:00
parent 8645ac4218
commit 4c48355c69
6 changed files with 26 additions and 23 deletions

View File

@ -3,8 +3,9 @@ use super::accepted::ACCEPTED_FEATURES;
use super::removed::{REMOVED_FEATURES, STABLE_REMOVED_FEATURES};
use super::builtin_attrs::{AttributeGate, BUILTIN_ATTRIBUTE_MAP};
use crate::ast::{self, NodeId, PatKind, VariantData};
use crate::ast::{self, NodeId, PatKind, RangeEnd, VariantData};
use crate::attr::{self, check_builtin_attribute};
use crate::source_map::Spanned;
use crate::edition::{ALL_EDITIONS, Edition};
use crate::visit::{self, FnKind, Visitor};
use crate::parse::token;
@ -551,6 +552,10 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
}
}
}
PatKind::Range(_, _, Spanned { node: RangeEnd::Excluded, .. }) => {
gate_feature_post!(&self, exclusive_range_pattern, pattern.span,
"exclusive range pattern syntax is experimental");
}
_ => {}
}
visit::walk_pat(self, pattern)

View File

@ -1,10 +1,6 @@
#[cfg(FALSE)]
fn foo() {
pub fn main() {
match 22 {
0 .. 3 => {} //~ ERROR exclusive range pattern syntax is experimental
PATH .. 3 => {} //~ ERROR exclusive range pattern syntax is experimental
_ => {}
}
}
fn main() {}

View File

@ -1,21 +1,12 @@
error[E0658]: exclusive range pattern syntax is experimental
--> $DIR/feature-gate-exclusive-range-pattern.rs:4:11
--> $DIR/feature-gate-exclusive-range-pattern.rs:3:9
|
LL | 0 .. 3 => {}
| ^^
| ^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/37854
= help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
error[E0658]: exclusive range pattern syntax is experimental
--> $DIR/feature-gate-exclusive-range-pattern.rs:5:14
|
LL | PATH .. 3 => {}
| ^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/37854
= help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
error: aborting due to 2 previous errors
error: aborting due to previous error
For more information about this error, try `rustc --explain E0658`.

View File

@ -4,6 +4,7 @@ fn main() {
match 0 {
(.. PAT) => {}
//~^ ERROR `..X` range patterns are not supported
//~| ERROR exclusive range pattern syntax is experimental
}
}

View File

@ -4,8 +4,17 @@ error: `..X` range patterns are not supported
LL | (.. PAT) => {}
| ^^^^^^ help: try using the minimum value for the type: `MIN..PAT`
error[E0658]: exclusive range pattern syntax is experimental
--> $DIR/pat-tuple-4.rs:5:10
|
LL | (.. PAT) => {}
| ^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/37854
= help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
error[E0308]: mismatched types
--> $DIR/pat-tuple-4.rs:10:30
--> $DIR/pat-tuple-4.rs:11:30
|
LL | const RECOVERY_WITNESS: () = 0;
| ^ expected (), found integer
@ -13,6 +22,7 @@ LL | const RECOVERY_WITNESS: () = 0;
= note: expected type `()`
found type `{integer}`
error: aborting due to 2 previous errors
error: aborting due to 3 previous errors
For more information about this error, try `rustc --explain E0308`.
Some errors have detailed explanations: E0308, E0658.
For more information about an error, try `rustc --explain E0308`.

View File

@ -5,10 +5,10 @@ LL | (PAT ..) => {}
| ^^^^^^ help: try using the maximum value for the type: `PAT..MAX`
error[E0658]: exclusive range pattern syntax is experimental
--> $DIR/pat-tuple-5.rs:5:14
--> $DIR/pat-tuple-5.rs:5:10
|
LL | (PAT ..) => {}
| ^^
| ^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/37854
= help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable