File tree 3 files changed +14
-2
lines changed
compiler/rustc_parse/src/parser
src/test/ui/parser/diff-markers
3 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -2579,12 +2579,16 @@ impl<'a> Parser<'a> {
2579
2579
} ;
2580
2580
let mut spans = Vec :: with_capacity ( 3 ) ;
2581
2581
spans. push ( start) ;
2582
+ let mut middlediff3 = None ;
2582
2583
let mut middle = None ;
2583
2584
let mut end = None ;
2584
2585
loop {
2585
2586
if self . token . kind == TokenKind :: Eof {
2586
2587
break ;
2587
2588
}
2589
+ if let Some ( span) = self . diff_marker ( & TokenKind :: OrOr , & TokenKind :: BinOp ( token:: Or ) ) {
2590
+ middlediff3 = Some ( span) ;
2591
+ }
2588
2592
if let Some ( span) = self . diff_marker ( & TokenKind :: EqEq , & TokenKind :: Eq ) {
2589
2593
middle = Some ( span) ;
2590
2594
}
@@ -2597,6 +2601,9 @@ impl<'a> Parser<'a> {
2597
2601
}
2598
2602
let mut err = self . struct_span_err ( spans, "encountered diff marker" ) ;
2599
2603
err. span_label ( start, "after this is the code before the merge" ) ;
2604
+ if let Some ( middle) = middlediff3 {
2605
+ err. span_label ( middle, "" ) ;
2606
+ }
2600
2607
if let Some ( middle) = middle {
2601
2608
err. span_label ( middle, "" ) ;
2602
2609
}
Original file line number Diff line number Diff line change @@ -2,8 +2,10 @@ enum E {
2
2
Foo {
3
3
<<<<<<< HEAD //~ ERROR encountered diff marker
4
4
x : u8 ,
5
+ |||||||
6
+ z : ( ) ,
5
7
=======
6
- x : i8 ,
8
+ y : i8 ,
7
9
>>>>>>> branch
8
10
}
9
11
}
Original file line number Diff line number Diff line change @@ -4,9 +4,12 @@ error: encountered diff marker
4
4
LL | <<<<<<< HEAD
5
5
| ^^^^^^^ after this is the code before the merge
6
6
LL | x: u8,
7
+ LL | |||||||
8
+ | -------
9
+ LL | z: (),
7
10
LL | =======
8
11
| -------
9
- LL | x : i8,
12
+ LL | y : i8,
10
13
LL | >>>>>>> branch
11
14
| ^^^^^^^ above this are the incoming code changes
12
15
|
You can’t perform that action at this time.
0 commit comments