@@ -211,9 +211,8 @@ fn current_op(p: &Parser<'_>) -> (u8, SyntaxKind, Associativity) {
211
211
T ! [ >] if p. at ( T ! [ >>] ) => ( 9 , T ! [ >>] , Left ) ,
212
212
T ! [ >] if p. at ( T ! [ >=] ) => ( 5 , T ! [ >=] , Left ) ,
213
213
T ! [ >] => ( 5 , T ! [ >] , Left ) ,
214
- T ! [ =] if p. at ( T ! [ =>] ) => NOT_AN_OP ,
215
214
T ! [ =] if p. at ( T ! [ ==] ) => ( 5 , T ! [ ==] , Left ) ,
216
- T ! [ =] => ( 1 , T ! [ =] , Right ) ,
215
+ T ! [ =] if !p . at ( T ! [ => ] ) => ( 1 , T ! [ =] , Right ) ,
217
216
T ! [ <] if p. at ( T ! [ <=] ) => ( 5 , T ! [ <=] , Left ) ,
218
217
T ! [ <] if p. at ( T ! [ <<=] ) => ( 1 , T ! [ <<=] , Right ) ,
219
218
T ! [ <] if p. at ( T ! [ <<] ) => ( 9 , T ! [ <<] , Left ) ,
@@ -247,7 +246,7 @@ fn current_op(p: &Parser<'_>) -> (u8, SyntaxKind, Associativity) {
247
246
fn expr_bp (
248
247
p : & mut Parser < ' _ > ,
249
248
m : Option < Marker > ,
250
- mut r : Restrictions ,
249
+ r : Restrictions ,
251
250
bp : u8 ,
252
251
) -> Option < ( CompletedMarker , BlockLike ) > {
253
252
let m = m. unwrap_or_else ( || {
@@ -295,10 +294,6 @@ fn expr_bp(
295
294
let m = lhs. precede ( p) ;
296
295
p. bump ( op) ;
297
296
298
- // test binop_resets_statementness
299
- // fn f() { v = {1}&2; }
300
- r = Restrictions { prefer_stmt : false , ..r } ;
301
-
302
297
if is_range {
303
298
// test postfix_range
304
299
// fn foo() {
@@ -319,6 +314,9 @@ fn expr_bp(
319
314
Associativity :: Left => op_bp + 1 ,
320
315
Associativity :: Right => op_bp,
321
316
} ;
317
+
318
+ // test binop_resets_statementness
319
+ // fn f() { v = {1}&2; }
322
320
expr_bp ( p, None , Restrictions { prefer_stmt : false , ..r } , op_bp) ;
323
321
lhs = m. complete ( p, if is_range { RANGE_EXPR } else { BIN_EXPR } ) ;
324
322
}
@@ -345,7 +343,7 @@ fn lhs(p: &mut Parser<'_>, r: Restrictions) -> Option<(CompletedMarker, BlockLik
345
343
T ! [ & ] => {
346
344
m = p. start ( ) ;
347
345
p. bump ( T ! [ & ] ) ;
348
- if p. at_contextual_kw ( T ! [ raw] ) && ( p . nth_at ( 1 , T ! [ mut ] ) || p . nth_at ( 1 , T ! [ const ] ) ) {
346
+ if p. at_contextual_kw ( T ! [ raw] ) && [ T ! [ mut ] , T ! [ const ] ] . contains ( & p . nth ( 1 ) ) {
349
347
p. bump_remap ( T ! [ raw] ) ;
350
348
p. bump_any ( ) ;
351
349
} else {
0 commit comments