@@ -865,9 +865,11 @@ impl ChangeClassifier {
865865
866866 // Add complexity from signature changes
867867 if let ( Some ( src_sig) , Some ( tgt_sig) ) = ( source_signature, target_signature) {
868- let sig_complexity_change = ( tgt_sig. complexity_metrics . cyclomatic_complexity as f64
869- - src_sig. complexity_metrics . cyclomatic_complexity as f64 ) . abs ( ) ;
870- complexity += sig_complexity_change * 0.1 ;
868+ if let ( Some ( src_metrics) , Some ( tgt_metrics) ) = ( & src_sig. complexity_metrics , & tgt_sig. complexity_metrics ) {
869+ let sig_complexity_change = ( tgt_metrics. cyclomatic_complexity as f64
870+ - src_metrics. cyclomatic_complexity as f64 ) . abs ( ) ;
871+ complexity += sig_complexity_change * 0.1 ;
872+ }
871873 }
872874
873875 complexity
@@ -886,12 +888,14 @@ impl ChangeClassifier {
886888
887889 // Assess based on element type and complexity
888890 if let Some ( signature) = target_signature {
889- let complexity = signature. complexity_metrics . cyclomatic_complexity ;
891+ if let Some ( metrics) = & signature. complexity_metrics {
892+ let complexity = metrics. cyclomatic_complexity ;
890893
891- if complexity > 10 {
892- impact_level = ImpactLevel :: Medium ;
893- effort_level = EffortLevel :: Medium ;
894- risk_level = RiskLevel :: Medium ;
894+ if complexity > 10 {
895+ impact_level = ImpactLevel :: Medium ;
896+ effort_level = EffortLevel :: Medium ;
897+ risk_level = RiskLevel :: Medium ;
898+ }
895899 }
896900
897901 if complexity > 20 {
0 commit comments