File tree 1 file changed +19
-0
lines changed
compiler/rustc_parse/src/parser
1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -929,6 +929,25 @@ impl<'a> Parser<'a> {
929
929
return looker ( & self . token ) ;
930
930
}
931
931
932
+ let frame = & self . token_cursor . frame ;
933
+ if frame. delim != DelimToken :: NoDelim {
934
+ let all_normal = ( 0 ..dist) . all ( |i| {
935
+ let token = frame. tree_cursor . look_ahead ( i) ;
936
+ !matches ! ( token, Some ( TokenTree :: Delimited ( _, DelimToken :: NoDelim , _) ) )
937
+ } ) ;
938
+ if all_normal {
939
+ return match frame. tree_cursor . look_ahead ( dist - 1 ) {
940
+ Some ( tree) => match tree {
941
+ TokenTree :: Token ( token) => looker ( token) ,
942
+ TokenTree :: Delimited ( dspan, delim, _) => {
943
+ looker ( & Token :: new ( token:: OpenDelim ( * delim) , dspan. open ) )
944
+ }
945
+ } ,
946
+ None => looker ( & Token :: new ( token:: CloseDelim ( frame. delim ) , frame. span . close ) ) ,
947
+ } ;
948
+ }
949
+ }
950
+
932
951
let mut cursor = self . token_cursor . clone ( ) ;
933
952
let mut i = 0 ;
934
953
let mut token = Token :: dummy ( ) ;
You can’t perform that action at this time.
0 commit comments