@@ -154,8 +154,8 @@ async fn perform_comparison(
154154 let diff_engine = DiffEngine :: new ( ) ;
155155
156156 // Detect language
157- let language = language_detector . detect_from_path ( & file1. path )
158- . or_else ( || language_detector . detect_from_content ( & file1. content ) )
157+ let language = LanguageDetector :: detect_from_path ( & file1. path )
158+ . or_else ( || LanguageDetector :: detect_from_content ( & file1. content ) )
159159 . unwrap_or ( Language :: Unknown ) ;
160160
161161 // Parse both files
@@ -205,14 +205,14 @@ async fn perform_comparison(
205205 lines : file1. content . lines ( ) . count ( ) ,
206206 functions : functions1. len ( ) ,
207207 classes : count_classes_from_symbol_table ( & semantic1. symbol_table ) ,
208- complexity : calculate_complexity_from_symbol_table ( & semantic1. symbol_table ) ,
208+ complexity : calculate_complexity_from_symbol_table ( & semantic1. symbol_table ) as f64 ,
209209 } ,
210210 target : FileMetadata {
211211 path : file2. path . clone ( ) ,
212212 lines : file2. content . lines ( ) . count ( ) ,
213213 functions : functions2. len ( ) ,
214214 classes : count_classes_from_symbol_table ( & semantic2. symbol_table ) ,
215- complexity : calculate_complexity_from_symbol_table ( & semantic2. symbol_table ) ,
215+ complexity : calculate_complexity_from_symbol_table ( & semantic2. symbol_table ) as f64 ,
216216 } ,
217217 language : language. to_string ( ) ,
218218 similarity : SimilarityScore {
@@ -431,8 +431,8 @@ async fn perform_multi_file_analysis(
431431
432432 // Analyze each file
433433 for file in files {
434- let language = language_detector . detect_from_path ( & file. path )
435- . or_else ( || language_detector . detect_from_content ( & file. content ) )
434+ let language = LanguageDetector :: detect_from_path ( & file. path )
435+ . or_else ( || LanguageDetector :: detect_from_content ( & file. content ) )
436436 . unwrap_or ( Language :: Unknown ) ;
437437 let parse_result = parser_engine. parse ( & file. content , language) ?;
438438 let semantic = semantic_analyzer. analyze ( & parse_result) ?;
@@ -679,9 +679,15 @@ fn extract_functions_from_symbol_table(symbol_table: &smart_diff_semantic::Symbo
679679 } ;
680680
681681 // Create a simple AST node for the function body
682+ let metadata = smart_diff_parser:: NodeMetadata {
683+ line : 0 ,
684+ column : 0 ,
685+ original_text : String :: new ( ) ,
686+ attributes : std:: collections:: HashMap :: new ( ) ,
687+ } ;
682688 let body = smart_diff_parser:: ASTNode :: new (
683689 smart_diff_parser:: NodeType :: Function ,
684- smart_diff_parser :: ASTMetadata :: default ( ) ,
690+ metadata ,
685691 ) ;
686692
687693 let function = Function {
0 commit comments