File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change @@ -135,9 +135,12 @@ pub fn span_to_line_number(span: Span) -> usize {
135
135
#[ inline]
136
136
// this function computes the relative pos range of two spans which could be generated from two dirrerent files or not intersect with each other
137
137
pub unsafe fn relative_pos_range ( span : Span , sub_span : Span ) -> Range < usize > {
138
- let start_pos = span. lo ( ) ;
139
- let lo = ( sub_span. lo ( ) - start_pos) . to_usize ( ) ; //unsafe: overflow
140
- let hi = ( sub_span. hi ( ) - start_pos) . to_usize ( ) ;
138
+ if sub_span. lo ( ) < span. lo ( ) || sub_span. hi ( ) > span. hi ( ) {
139
+ return 0 ..0 ;
140
+ }
141
+ let offset = span. lo ( ) ;
142
+ let lo = ( sub_span. lo ( ) - offset) . to_usize ( ) ;
143
+ let hi = ( sub_span. hi ( ) - offset) . to_usize ( ) ;
141
144
lo..hi
142
145
}
143
146
You can’t perform that action at this time.
0 commit comments