/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . fir . analysis . diagnostics Ċ Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġorg . jetbrains . kotlin . fir . F ir Source Element Ċ import Ġorg . jetbrains . kotlin . fir . analysis . check ers . context . Checker Context Ċ Ċ abstract Ġclass ĠDiagnostic Reporter Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġreport ( diagnostic : ĠF ir Diagnostic < *> ?, Ġcontext : ĠCheck er Context ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠF ir Source Element , ĠP Ġ: ĠPsi Element > ĠDiagnostic Reporter . report On ( ĊĠĠĠ Ġsource : ĠT ?, ĊĠĠĠ Ġfactory : ĠF ir Diagnostic Factory 0 < T , ĠP >, ĊĠĠĠ Ġcontext : ĠCheck er Context Ċ ) Ġ{ ĊĠĠĠ Ġsource ?. let Ġ{ Ġreport ( factory . on ( it ), Ġcontext ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠF ir Source Element , ĠP Ġ: ĠPsi Element , ĠA Ġ: ĠAny > ĠDiagnostic Reporter . report On ( ĊĠĠĠ Ġsource : ĠT ?, ĊĠĠĠ Ġfactory : ĠF ir Diagnostic Factory 1 < T , ĠP , ĠA >, ĊĠĠĠ Ġa : ĠA , ĊĠĠĠ Ġcontext : ĠCheck er Context Ċ ) Ġ{ ĊĠĠĠ Ġsource ?. let Ġ{ Ġreport ( factory . on ( it , Ġa ), Ġcontext ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠF ir Source Element , ĠP Ġ: ĠPsi Element , ĠA Ġ: ĠAny , ĠB Ġ: ĠAny > ĠDiagnostic Reporter . report On ( ĊĠĠĠ Ġsource : ĠT ?, ĊĠĠĠ Ġfactory : ĠF ir Diagnostic Factory 2 < T , ĠP , ĠA , ĠB >, ĊĠĠĠ Ġa : ĠA , ĊĠĠĠ Ġb : ĠB , ĊĠĠĠ Ġcontext : ĠCheck er Context Ċ ) Ġ{ ĊĠĠĠ Ġsource ?. let Ġ{ Ġreport ( factory . on ( it , Ġa , Ġb ), Ġcontext ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠF ir Source Element , ĠP Ġ: ĠPsi Element , ĠA Ġ: ĠAny , ĠB Ġ: ĠAny , ĠC Ġ: ĠAny > ĠDiagnostic Reporter . report On ( ĊĠĠĠ Ġsource : ĠT ?, ĊĠĠĠ Ġfactory : ĠF ir Diagnostic Factory 3 < T , ĠP , ĠA , ĠB , ĠC >, ĊĠĠĠ Ġa : ĠA , ĊĠĠĠ Ġb : ĠB , ĊĠĠĠ Ġc : ĠC , ĊĠĠĠ Ġcontext : ĠCheck er Context Ċ ) Ġ{ ĊĠĠĠ Ġsource ?. let Ġ{ Ġreport ( factory . on ( it , Ġa , Ġb , Ġc ), Ġcontext ) Ġ} Ċ } ĊĊ