/* Ċ Ġ* Ġ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 Ġorg . jetbrains . kotlin . diagnostics . rendering . Diagnostic Parameter Renderer Ċ import Ġorg . jetbrains . kotlin . diagnostics . rendering . Rendering Context Ċ import Ġorg . jetbrains . kotlin . diagnostics . rendering . render Parameter Ċ import Ġjava . text . Message Format Ċ Ċ sealed Ġinterface ĠF ir Diagnostic Renderer Ġ{ ĊĠĠĠ Ġfun Ġrender ( diagnostic : ĠF ir Diagnostic ): ĠString ĊĠĠĠ Ġfun Ġrender Parameters ( diagnostic : ĠF ir Diagnostic ): ĠArray < out ĠAny ?> Ċ } Ċ Ċ class ĠSimple F ir Diagnostic Renderer ( private Ġval Ġmessage : ĠString ) Ġ: ĠF ir Diagnostic Renderer Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrender ( diagnostic : ĠF ir Diagnostic ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( diagnostic Ġis ĠF ir Simple Diagnostic ) ĊĠĠĠĠĠĠĠ Ġreturn Ġmessage ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender Parameters ( diagnostic : ĠF ir Diagnostic ): ĠArray < out ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( diagnostic Ġis ĠF ir Simple Diagnostic ) ĊĠĠĠĠĠĠĠ Ġreturn Ġempty Array () ĊĠĠĠ Ġ} Ċ } Ċ Ċ sealed Ġclass ĠAbstract F ir Diagnostic With Parameters Renderer ( ĊĠĠĠ Ġprotected Ġval Ġmessage : ĠString Ċ ) Ġ: ĠF ir Diagnostic Renderer Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmessage Format Ġ= ĠMessage Format ( message ) ĊĊĠĠĠ Ġfinal Ġoverride Ġfun Ġrender ( diagnostic : ĠF ir Diagnostic ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmessage Format . format ( render Parameters ( diagnostic )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠF ir Diagnostic With Parameters 1 Renderer < A >( ĊĠĠĠ Ġmessage : ĠString , ĊĠĠĠ Ġprivate Ġval Ġrenderer For A : ĠDiagnostic Parameter Renderer < A > ?, Ċ ) Ġ: ĠAbstract F ir Diagnostic With Parameters Renderer ( message ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrender Parameters ( diagnostic : ĠF ir Diagnostic ): ĠArray < out ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( diagnostic Ġis ĠF ir Diagnostic With Parameters 1 <* >) ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠRendering Context . of ( diagnostic . a ) ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( render Parameter ( diagnostic . a Ġas ĠA , Ġrenderer For A , Ġcontext )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠF ir Diagnostic With Parameters 2 Renderer < A , ĠB >( ĊĠĠĠ Ġmessage : ĠString , ĊĠĠĠ Ġprivate Ġval Ġrenderer For A : ĠDiagnostic Parameter Renderer < A > ?, ĊĠĠĠ Ġprivate Ġval Ġrenderer For B : ĠDiagnostic Parameter Renderer < B > ?, Ċ ) Ġ: ĠAbstract F ir Diagnostic With Parameters Renderer ( message ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrender Parameters ( diagnostic : ĠF ir Diagnostic ): ĠArray < out ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( diagnostic Ġis ĠF ir Diagnostic With Parameters 2 < *, Ġ* >) ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠRendering Context . of ( diagnostic . a , Ġdiagnostic . b ) ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Parameter ( diagnostic . a Ġas ĠA , Ġrenderer For A , Ġcontext ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Parameter ( diagnostic . b Ġas ĠB , Ġrenderer For B , Ġcontext ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠF ir Diagnostic With Parameters 3 Renderer < A , ĠB , ĠC >( ĊĠĠĠ Ġmessage : ĠString , ĊĠĠĠ Ġprivate Ġval Ġrenderer For A : ĠDiagnostic Parameter Renderer < A > ?, ĊĠĠĠ Ġprivate Ġval Ġrenderer For B : ĠDiagnostic Parameter Renderer < B > ?, ĊĠĠĠ Ġprivate Ġval Ġrenderer For C : ĠDiagnostic Parameter Renderer < C > ?, Ċ ) Ġ: ĠAbstract F ir Diagnostic With Parameters Renderer ( message ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrender Parameters ( diagnostic : ĠF ir Diagnostic ): ĠArray < out ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( diagnostic Ġis ĠF ir Diagnostic With Parameters 3 < *, Ġ*, Ġ* >) ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠRendering Context . of ( diagnostic . a , Ġdiagnostic . b , Ġdiagnostic . c ) ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Parameter ( diagnostic . a Ġas ĠA , Ġrenderer For A , Ġcontext ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Parameter ( diagnostic . b Ġas ĠB , Ġrenderer For B , Ġcontext ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Parameter ( diagnostic . c Ġas ĠC , Ġrenderer For C , Ġcontext ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠF ir Diagnostic With Parameters 4 Renderer < A , ĠB , ĠC , ĠD >( ĊĠĠĠ Ġmessage : ĠString , ĊĠĠĠ Ġprivate Ġval Ġrenderer For A : ĠDiagnostic Parameter Renderer < A > ?, ĊĠĠĠ Ġprivate Ġval Ġrenderer For B : ĠDiagnostic Parameter Renderer < B > ?, ĊĠĠĠ Ġprivate Ġval Ġrenderer For C : ĠDiagnostic Parameter Renderer < C > ?, ĊĠĠĠ Ġprivate Ġval Ġrenderer For D : ĠDiagnostic Parameter Renderer < D > ?, Ċ ) Ġ: ĠAbstract F ir Diagnostic With Parameters Renderer ( message ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrender Parameters ( diagnostic : ĠF ir Diagnostic ): ĠArray < out ĠAny ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( diagnostic Ġis ĠF ir Diagnostic With Parameters 4 < *, Ġ*, Ġ*, Ġ* >) ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠRendering Context . of ( diagnostic . a , Ġdiagnostic . b , Ġdiagnostic . c , Ġdiagnostic . d ) ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Parameter ( diagnostic . a Ġas ĠA , Ġrenderer For A , Ġcontext ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Parameter ( diagnostic . b Ġas ĠB , Ġrenderer For B , Ġcontext ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Parameter ( diagnostic . c Ġas ĠC , Ġrenderer For C , Ġcontext ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Parameter ( diagnostic . d Ġas ĠD , Ġrenderer For D , Ġcontext ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ