@@ -21,7 +21,7 @@ use rustc_errors::{struct_span_err, Applicability, DiagnosticBuilder, FatalError
21
21
use rustc_session:: parse:: ParseSess ;
22
22
use rustc_span:: source_map:: respan;
23
23
use rustc_span:: symbol:: { kw, sym, Symbol } ;
24
- use rustc_span:: { BytePos , FileName , Span , DUMMY_SP } ;
24
+ use rustc_span:: { FileName , Span , DUMMY_SP } ;
25
25
use syntax:: ast:: { self , AttrStyle , AttrVec , CrateSugar , Extern , Ident , Unsafety , DUMMY_NODE_ID } ;
26
26
use syntax:: ast:: { IsAsync , MacArgs , MacDelimiter , Mutability , StrLit , Visibility , VisibilityKind } ;
27
27
use syntax:: ptr:: P ;
@@ -615,8 +615,8 @@ impl<'a> Parser<'a> {
615
615
true
616
616
}
617
617
token:: BinOpEq ( token:: Plus ) => {
618
- let span = self . token . span . with_lo ( self . token . span . lo ( ) + BytePos ( 1 ) ) ;
619
- self . bump_with ( token:: Eq , span) ;
618
+ let start_point = self . sess . source_map ( ) . start_point ( self . token . span ) ;
619
+ self . bump_with ( token:: Eq , self . token . span . with_lo ( start_point . hi ( ) ) ) ;
620
620
true
621
621
}
622
622
_ => false ,
@@ -633,8 +633,9 @@ impl<'a> Parser<'a> {
633
633
Ok ( ( ) )
634
634
}
635
635
token:: AndAnd => {
636
- let span = self . token . span . with_lo ( self . token . span . lo ( ) + BytePos ( 1 ) ) ;
637
- Ok ( self . bump_with ( token:: BinOp ( token:: And ) , span) )
636
+ let start_point = self . sess . source_map ( ) . start_point ( self . token . span ) ;
637
+ Ok ( self
638
+ . bump_with ( token:: BinOp ( token:: And ) , self . token . span . with_lo ( start_point. hi ( ) ) ) )
638
639
}
639
640
_ => self . unexpected ( ) ,
640
641
}
@@ -650,8 +651,9 @@ impl<'a> Parser<'a> {
650
651
Ok ( ( ) )
651
652
}
652
653
token:: OrOr => {
653
- let span = self . token . span . with_lo ( self . token . span . lo ( ) + BytePos ( 1 ) ) ;
654
- Ok ( self . bump_with ( token:: BinOp ( token:: Or ) , span) )
654
+ let start_point = self . sess . source_map ( ) . start_point ( self . token . span ) ;
655
+ Ok ( self
656
+ . bump_with ( token:: BinOp ( token:: Or ) , self . token . span . with_lo ( start_point. hi ( ) ) ) )
655
657
}
656
658
_ => self . unexpected ( ) ,
657
659
}
@@ -671,13 +673,16 @@ impl<'a> Parser<'a> {
671
673
true
672
674
}
673
675
token:: BinOp ( token:: Shl ) => {
674
- let span = self . sess . source_map ( ) . next_point ( self . token . span ) ;
675
- self . bump_with ( token:: Lt , span) ;
676
+ let start_point = self . sess . source_map ( ) . start_point ( self . token . span ) ;
677
+ self . bump_with ( token:: Lt , self . token . span . with_lo ( start_point . hi ( ) ) ) ;
676
678
true
677
679
}
678
680
token:: LArrow => {
679
- let span = self . sess . source_map ( ) . next_point ( self . token . span ) ;
680
- self . bump_with ( token:: BinOp ( token:: Minus ) , span) ;
681
+ let start_point = self . sess . source_map ( ) . start_point ( self . token . span ) ;
682
+ self . bump_with (
683
+ token:: BinOp ( token:: Minus ) ,
684
+ self . token . span . with_lo ( start_point. hi ( ) ) ,
685
+ ) ;
681
686
true
682
687
}
683
688
_ => false ,
@@ -707,16 +712,16 @@ impl<'a> Parser<'a> {
707
712
Some ( ( ) )
708
713
}
709
714
token:: BinOp ( token:: Shr ) => {
710
- let span = self . token . span . with_lo ( self . token . span . lo ( ) + BytePos ( 1 ) ) ;
711
- Some ( self . bump_with ( token:: Gt , span) )
715
+ let start_point = self . sess . source_map ( ) . start_point ( self . token . span ) ;
716
+ Some ( self . bump_with ( token:: Gt , self . token . span . with_lo ( start_point . hi ( ) ) ) )
712
717
}
713
718
token:: BinOpEq ( token:: Shr ) => {
714
- let span = self . token . span . with_lo ( self . token . span . lo ( ) + BytePos ( 1 ) ) ;
715
- Some ( self . bump_with ( token:: Ge , span) )
719
+ let start_point = self . sess . source_map ( ) . start_point ( self . token . span ) ;
720
+ Some ( self . bump_with ( token:: Ge , self . token . span . with_lo ( start_point . hi ( ) ) ) )
716
721
}
717
722
token:: Ge => {
718
- let span = self . token . span . with_lo ( self . token . span . lo ( ) + BytePos ( 1 ) ) ;
719
- Some ( self . bump_with ( token:: Eq , span) )
723
+ let start_point = self . sess . source_map ( ) . start_point ( self . token . span ) ;
724
+ Some ( self . bump_with ( token:: Eq , self . token . span . with_lo ( start_point . hi ( ) ) ) )
720
725
}
721
726
_ => None ,
722
727
} ;
0 commit comments