@@ -182,7 +182,7 @@ impl<'a> Parser<'a> {
182
182
LhsExpr :: AttributesParsed ( attrs) => Some ( attrs) ,
183
183
_ => None ,
184
184
} ;
185
- if [ token :: DotDot , token :: DotDotDot , token :: DotDotEq ] . contains ( & self . token . kind ) {
185
+ if self . token . is_range_separator ( ) {
186
186
return self . parse_prefix_range_expr ( attrs) ;
187
187
} else {
188
188
self . parse_prefix_expr ( attrs) ?
@@ -514,7 +514,7 @@ impl<'a> Parser<'a> {
514
514
}
515
515
516
516
debug_assert ! (
517
- [ token :: DotDot , token :: DotDotDot , token :: DotDotEq ] . contains ( & self . token. kind ) ,
517
+ self . token. is_range_separator ( ) ,
518
518
"parse_prefix_range_expr: token {:?} is not DotDot/DotDotEq" ,
519
519
self . token
520
520
) ;
@@ -899,7 +899,11 @@ impl<'a> Parser<'a> {
899
899
let has_lifetime = self . token . is_lifetime ( ) && self . look_ahead ( 1 , |t| t != & token:: Colon ) ;
900
900
let lifetime = has_lifetime. then ( || self . expect_lifetime ( ) ) ; // For recovery, see below.
901
901
let ( borrow_kind, mutbl) = self . parse_borrow_modifiers ( lo) ;
902
- let expr = self . parse_prefix_expr ( None ) ;
902
+ let expr = if self . token . is_range_separator ( ) {
903
+ self . parse_prefix_range_expr ( None )
904
+ } else {
905
+ self . parse_prefix_expr ( None )
906
+ } ;
903
907
let ( hi, expr) = self . interpolated_or_expr_span ( expr) ?;
904
908
let span = lo. to ( hi) ;
905
909
if let Some ( lt) = lifetime {
0 commit comments