package Ġru . spb stu Ċ Ċ import Ġorg . jetbrains . kotlin . backend . common . deep CopyWith Variables Ċ import Ġorg . jetbrains . kotlin . backend . common . extensions . Ir Plugin Context Ċ import Ġorg . jetbrains . kotlin . cli . common . messages . Compiler Message Severity Ċ import Ġorg . jetbrains . kotlin . cli . common . messages . Message Collector Ċ import Ġorg . jetbrains . kotlin . ir . Ir Statement Ċ import Ġorg . jetbrains . kotlin . ir . builders . declarations . add Value Parameter Ċ import Ġorg . jetbrains . kotlin . ir . builders . ir Call Ċ import Ġorg . jetbrains . kotlin . ir . builders . ir GetField Ċ import Ġorg . jetbrains . kotlin . ir . builders . ir Set Field Ċ import Ġorg . jetbrains . kotlin . ir . builders . parent Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Property Ċ import Ġorg . jetbrains . kotlin . ir . expressions . Ir Call Ċ import Ġorg . jetbrains . kotlin . ir . types . Ir Simple Type Ċ import Ġorg . jetbrains . kotlin . ir . types . type OrNull Ċ import Ġorg . jetbrains . kotlin . ir . types . type With Ċ import Ġorg . jetbrains . kotlin . ir . util .* Ċ import Ġorg . jetbrains . kotlin . name . Name Ċ Ċ class ĠE ras able Delegate In liner ( val Ġcontext : ĠIr Plugin Context , Ġval Ġmessage Collector : ĠMessage Collector ) Ġ{ ĊĊĠĠĠ Ġoperator Ġfun Ġinvoke ( declaration : ĠIr Property ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdelegate Class Ġ= Ġdeclaration . back ing Field !!. type . class OrFail ĊĠĠĠĠĠĠĠ Ġval Ġdelegate Field Ġ= Ġdelegate Class . owner . properties . single (). back ing Field !! ĊĊĠĠĠĠĠĠĠ Ġval Ġorig Type Ġ= Ġdeclaration . back ing Field ?. type !! ĊĊĠĠĠĠĠĠĠ Ġval Ġsubs Map Ġ= Ġdelegate Class . owner . type Parameters . zip (( orig Type Ġas ĠIr Simple Type ). arguments ) Ġ{ Ġk , Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġk . symbol Ġto Ġv . type OrNull !! ĊĠĠĠĠĠĠĠ Ġ}. toMap () ĊĊĠĠĠĠĠĠĠ Ġdeclaration . back ing Field ?. type Ġ= Ġdelegate Field . type . substitute ( subs Map ) ĊĊĠĠĠĠĠĠĠ Ġdeclaration . back ing Field ?. initializer Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Field . initializer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . deep CopyWith Variables () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . patch Declaration Parents ( declaration . parent ) ĊĊĠĠĠĠĠĠĠ Ġval ĠgetValue Impl Ġ= Ġdelegate Class . getSimple Function (" getValue - impl ") ?. owner !! ĊĊĠĠĠĠĠĠĠ Ġval Ġoriginal Call Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeclaration . getter !!. findFirst Child < Ir Call > Ġ{ Ġit . symbol . owner . name Ġ== ĠName . identifier (" getValue ") Ġ} !! ĊĊĠĠĠĠĠĠĠ Ġdeclaration . getter ?. build Expression Body ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgetter Ġ= Ġparent . containing Function () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġir Call ( getValue Impl . symbol , Ġdeclaration . type ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Type Arguments ( 0 , Ġtype Argument Ġ= Ġoriginal Call . all Type Arguments (). to Typed Array ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Type Arguments ( 0 , Ġtype Argument Ġ= Ġorig Type . arguments . map Ġ{ Ġit . type OrNull Ġ}. to Typed Array ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcopy Value Arguments From ( original Call , ĠgetValue Impl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Receiver Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgetter Arg Type Ġ= Ġcontext . ir Built Ins . function ( 0 ). type With ( declaration . type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsetter Arg Type Ġ= Ġcontext . ir Built Ins . function ( 1 ). type With ( declaration . type , Ġcontext . ir Built Ins . unit Type ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgetter Lambda Ġ= Ġir Lambda ( getter Arg Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Expression Body ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġir GetField ( ir This ( getter ), Ġdeclaration . back ing Field !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsetter Lambda Ġ= Ġir Lambda ( setter Arg Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Value Parameter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠName . identifier (" value ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġdelegate Field . type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Block Body ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ ir Set Field ( ir This ( getter ), Ġdeclaration . back ing Field !! , Ġir Arg ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Value Arguments ( original Call . value Arguments Count , Ġgetter Lambda , Ġsetter Lambda ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmessage Collector . report ( Compiler Message Severity . STRONG _ WARNING , Ġdeclaration . dump Kotlin Like ()) ĊĠĠĠ Ġ} Ċ } Ċ