@@ -18,7 +18,7 @@ use crate::{
1818 common_fs:: { get_line_cols_from_offset, FileObj } ,
1919} ;
2020
21- #[ derive( Debug , Clone , Deserialize ) ]
21+ #[ derive( Debug , Clone , Deserialize , PartialEq , Eq ) ]
2222pub struct FormatAdvice {
2323 /// A list of [`Replacement`]s that clang-tidy wants to make.
2424 #[ serde( rename( deserialize = "replacement" ) ) ]
@@ -38,25 +38,25 @@ impl MakeSuggestions for FormatAdvice {
3838}
3939
4040/// A single replacement that clang-format wants to make.
41- #[ derive( Debug , PartialEq , Default , Clone , Copy , Deserialize ) ]
41+ #[ derive( Debug , PartialEq , Eq , Default , Clone , Copy , Deserialize ) ]
4242pub struct Replacement {
4343 /// The byte offset where the replacement will start.
4444 #[ serde( rename = "@offset" ) ]
45- pub offset : usize ,
45+ pub offset : u32 ,
4646
4747 /// The line number described by the [`Replacement::offset`].
4848 ///
4949 /// This value is not provided by the XML output, but we calculate it after
5050 /// deserialization.
5151 #[ serde( default ) ]
52- pub line : usize ,
52+ pub line : u32 ,
5353
5454 /// The column number on the line described by the [`Replacement::offset`].
5555 ///
5656 /// This value is not provided by the XML output, but we calculate it after
5757 /// deserialization.
5858 #[ serde( default ) ]
59- pub cols : usize ,
59+ pub cols : u32 ,
6060}
6161
6262/// Get a string that summarizes the given `--style`
@@ -163,8 +163,7 @@ pub fn run_clang_format(
163163 if !format_advice. replacements . is_empty ( ) {
164164 let original_contents = fs:: read ( & file. name ) . with_context ( || {
165165 format ! (
166- "Failed to cache file's original content before applying clang-tidy changes: {}" ,
167- file_name. clone( )
166+ "Failed to read file's original content before translating byte offsets: {file_name}" ,
168167 )
169168 } ) ?;
170169 // get line and column numbers from format_advice.offset
@@ -175,7 +174,7 @@ pub fn run_clang_format(
175174 replacement. line = line_number;
176175 replacement. cols = columns;
177176 for range in & ranges {
178- if range. contains ( & line_number. try_into ( ) . unwrap_or ( 0 ) ) {
177+ if range. contains ( & line_number) {
179178 filtered_replacements. push ( * replacement) ;
180179 break ;
181180 }
@@ -208,37 +207,20 @@ mod tests {
208207 . to_vec ( ) ;
209208
210209 let expected = FormatAdvice {
211- replacements : vec ! [
212- Replacement {
213- offset: 113 ,
210+ replacements : [ 113 , 147 , 161 , 165 ]
211+ . iter ( )
212+ . map ( |offset| Replacement {
213+ offset : * offset,
214214 ..Default :: default ( )
215- } ,
216- Replacement {
217- offset: 147 ,
218- ..Default :: default ( )
219- } ,
220- Replacement {
221- offset: 161 ,
222- ..Default :: default ( )
223- } ,
224- Replacement {
225- offset: 165 ,
226- ..Default :: default ( )
227- } ,
228- ] ,
215+ } )
216+ . collect ( ) ,
229217 patched : None ,
230218 } ;
231219
232220 let xml = String :: from_utf8 ( xml_raw) . unwrap ( ) ;
233221
234222 let document = quick_xml:: de:: from_str :: < FormatAdvice > ( & xml) . unwrap ( ) ;
235- assert_eq ! ( expected. replacements. len( ) , document. replacements. len( ) ) ;
236- for i in 0 ..expected. replacements . len ( ) {
237- assert_eq ! (
238- expected. replacements[ i] . offset,
239- document. replacements[ i] . offset
240- ) ;
241- }
223+ assert_eq ! ( expected, document) ;
242224 }
243225
244226 fn formalize_style ( style : & str , expected : & str ) {
0 commit comments