Rollup merge of #119342 - sjwang05:issue-112254, r=wesleywiser
Emit suggestion when trying to write exclusive ranges as `..<` Closes #112254
This commit is contained in:
commit
7f19365560
4 changed files with 117 additions and 7 deletions
|
@ -482,7 +482,11 @@ impl<'a> Parser<'a> {
|
|||
cur_op_span: Span,
|
||||
) -> PResult<'a, P<Expr>> {
|
||||
let rhs = if self.is_at_start_of_range_notation_rhs() {
|
||||
Some(self.parse_expr_assoc_with(prec + 1, LhsExpr::NotYetParsed)?)
|
||||
let maybe_lt = self.token.clone();
|
||||
Some(
|
||||
self.parse_expr_assoc_with(prec + 1, LhsExpr::NotYetParsed)
|
||||
.map_err(|err| self.maybe_err_dotdotlt_syntax(maybe_lt, err))?,
|
||||
)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
@ -531,11 +535,13 @@ impl<'a> Parser<'a> {
|
|||
let attrs = self.parse_or_use_outer_attributes(attrs)?;
|
||||
self.collect_tokens_for_expr(attrs, |this, attrs| {
|
||||
let lo = this.token.span;
|
||||
let maybe_lt = this.look_ahead(1, |t| t.clone());
|
||||
this.bump();
|
||||
let (span, opt_end) = if this.is_at_start_of_range_notation_rhs() {
|
||||
// RHS must be parsed with more associativity than the dots.
|
||||
this.parse_expr_assoc_with(op.unwrap().precedence() + 1, LhsExpr::NotYetParsed)
|
||||
.map(|x| (lo.to(x.span), Some(x)))?
|
||||
.map(|x| (lo.to(x.span), Some(x)))
|
||||
.map_err(|err| this.maybe_err_dotdotlt_syntax(maybe_lt, err))?
|
||||
} else {
|
||||
(lo, None)
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue