package Ġarrow . meta . quotes . expression Ċ Ċ import Ġarrow . meta . ph ases . analysis . Element Scope Ċ import Ġarrow . meta . quotes . Scope Ċ import Ġorg . jetbrains . kotlin . psi . Kt Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt If Expression Ċ Ċ /** Ċ Ġ* Ġ< code > """ if Ġ($ condition ) Ġ$ then Ġelse Ġ$ ` else ` """. ` if ` </ code > Ċ Ġ* Ċ Ġ* ĠA Ġtemplate Ġdestruct uring Ġ[ Scope ] Ġfor Ġa Ġ[ Kt If Expression ]. Ċ Ġ* Ċ Ġ* Ġ``` kotlin : ank : silent Ċ Ġ* Ġimport Ġarrow . meta . Meta Ċ Ġ* Ġimport Ġarrow . meta . Plugin Ċ Ġ* Ġimport Ġarrow . meta . invoke Ċ Ġ* Ġimport Ġarrow . meta . quotes . Transform Ċ Ġ* Ġimport Ġarrow . meta . quotes . if Expression Ċ Ġ* Ċ Ġ* Ġval ĠMeta . re format If : ĠPlugin Ċ Ġ* ĠĠĠ Ġget () Ġ= Ċ Ġ* ĠĠĠĠĠ Ġ" Re format ĠIf ĠExpression " Ġ{ Ċ Ġ* ĠĠĠĠĠĠĠ Ġmeta ( Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġif Expression ({ Ġtrue Ġ}) Ġ{ Ġexpression Ġ-> Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠ ĠTransform . replace ( Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreplacing Ġ= Ġexpression , Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Declaration Ġ= Ġwhen Ġ{ Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ` else `. value Ġ== Ġnull Ġ-> Ġ""" if Ġ($ condition ) Ġ$ then """. ` if ` Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ""" if Ġ($ condition ) Ġ$ then Ġelse Ġ$ ` else ` """. ` if ` Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġ} Ċ Ġ* ĠĠĠĠĠĠĠ Ġ) Ċ Ġ* ĠĠĠĠĠ Ġ} Ċ Ġ* ``` Ċ Ġ*/ Ċ class ĠIf Expression ( ĊĠ Ġoverride Ġval Ġvalue : ĠK t If Expression ?, ĊĠ Ġval Ġcondition : ĠScope < Kt Expression > Ġ= ĠScope ( value ?. condition ), ĊĠ Ġval Ġthen : ĠScope < Kt Expression > Ġ= ĠScope ( value ?. then ), ĊĠ Ġval Ġ` else `: ĠScope < Kt Expression > Ġ= ĠScope ( value ?. ` else `) Ċ ) Ġ: ĠScope < Kt If Expression >( value ) Ġ{ ĊĊĠ Ġoverride Ġfun ĠElement Scope . identity (): ĠIf Expression Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġ` else `. value Ġ== Ġnull Ġ-> Ġ""" if Ġ($ condition ) Ġ$ then """. ` if ` ĊĠĠĠ Ġelse Ġ-> Ġ""" if Ġ($ condition ) Ġ$ then Ġelse Ġ$ ` else ` """. ` if ` ĊĠ Ġ} Ċ } Ċ