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
@@ -548,7 +548,7 @@ fn visit_pat(&mut self, pattern: &'a ast::Pat) {
"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,
-2
View File
@@ -715,7 +715,6 @@ fn parse_range_end(&mut self) -> Option<Spanned<RangeEnd>> {
} 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 @@ fn parse_pat_range_begin_with(
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.