Allow exclusive range-from patterns

This commit is contained in:
Jubilee Young 2021-04-04 17:59:31 -07:00
parent a7e808ed25
commit 91bc117e53
2 changed files with 1 additions and 3 deletions

View File

@ -548,7 +548,7 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
"box pattern syntax is experimental"
);
}
PatKind::Range(_, _, Spanned { node: RangeEnd::Excluded, .. }) => {
PatKind::Range(_, Some(_), Spanned { node: RangeEnd::Excluded, .. }) => {
gate_feature_post!(
&self,
exclusive_range_pattern,

View File

@ -715,7 +715,6 @@ impl<'a> Parser<'a> {
} else if self.eat(&token::DotDotEq) {
RangeEnd::Included(RangeSyntax::DotDotEq)
} else if self.eat(&token::DotDot) {
self.sess.gated_spans.gate(sym::exclusive_range_pattern, self.prev_token.span);
RangeEnd::Excluded
} else {
return None;
@ -735,7 +734,6 @@ impl<'a> Parser<'a> {
Some(self.parse_pat_range_end()?)
} else {
// Parsing e.g. `X..`.
self.sess.gated_spans.gate(sym::half_open_range_patterns, begin.span.to(re.span));
if let RangeEnd::Included(_) = re.node {
// FIXME(Centril): Consider semantic errors instead in `ast_validation`.
// Possibly also do this for `X..=` in *expression* contexts.