pub(crate) fn explain_generated_rule_diagnostics( source_program: &Program, analysis_program: &Program, source_path: Option<&Path>, ) -> Result<Vec<GeneratedRuleDiagnostic>>