package Ġcom . bn orm . react Ċ Ċ import Ġorg . jetbrains . kotlin . backend . common . ir . copy To Ċ import Ġorg . jetbrains . kotlin . backend . common . ir . create Implicit Parameter Declaration With Wrapped Descriptor Ċ import Ġorg . jetbrains . kotlin . backend . common . lower . Declaration Ir Builder Ċ import Ġorg . jetbrains . kotlin . descriptors . Class Kind Ċ import Ġorg . jetbrains . kotlin . descriptors . Descriptor Vis ibilities Ċ import Ġorg . jetbrains . kotlin . descriptors . Descriptor Visibility Ċ import Ġorg . jetbrains . kotlin . descriptors . Modal ity Ċ import Ġorg . jetbrains . kotlin . ir . UNDEFINED _ OFFSET Ċ import Ġorg . jetbrains . kotlin . ir . builders . Ir Builder With Scope Ċ import Ġorg . jetbrains . kotlin . ir . builders . Ir Generator Context Ċ import Ġorg . jetbrains . kotlin . ir . builders . declarations . Ir Function Builder Ċ import Ġorg . jetbrains . kotlin . ir . builders . declarations . add Getter Ċ import Ġorg . jetbrains . kotlin . ir . builders . declarations . addProperty Ċ import Ġorg . jetbrains . kotlin . ir . builders . declarations . add Value Parameter Ċ import Ġorg . jetbrains . kotlin . ir . builders . declarations . build Class Ċ import Ġorg . jetbrains . kotlin . ir . builders . declarations . build Field Ċ import Ġorg . jetbrains . kotlin . ir . builders . declarations . build Fun Ċ import Ġorg . jetbrains . kotlin . ir . builders . declarations . build Property Ċ import Ġorg . jetbrains . kotlin . ir . builders . ir Block Body Ċ import Ġorg . jetbrains . kotlin . ir . builders . ir GetField Ċ import Ġorg . jetbrains . kotlin . ir . builders . ir Return Ċ import Ġorg . jetbrains . kotlin . ir . builders . parent Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Class Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Declaration Origin Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Declaration Parent Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Factory Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Property Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Simple Function Ċ import Ġorg . jetbrains . kotlin . ir . declarations . lazy . Ir Lazy Function Ċ import Ġorg . jetbrains . kotlin . ir . descriptors . Wrapped Function Descriptor With Container Source Ċ import Ġorg . jetbrains . kotlin . ir . descriptors . Wrapped Simple Function Descriptor Ċ import Ġorg . jetbrains . kotlin . ir . expressions . Ir Expression Body Ċ import Ġorg . jetbrains . kotlin . ir . expressions . Ir Function Expression Ċ import Ġorg . jetbrains . kotlin . ir . expressions . Ir Statement Origin Ċ import Ġorg . jetbrains . kotlin . ir . expressions . impl . Ir Function Expression Impl Ċ import Ġorg . jetbrains . kotlin . ir . symbols . Ir Symbol Ċ import Ġorg . jetbrains . kotlin . ir . symbols . impl . Ir Simple Function Symbol Impl Ċ import Ġorg . jetbrains . kotlin . ir . types . Ir Type Ċ import Ġorg . jetbrains . kotlin . name . Name Ċ Ċ fun ĠIr Generator Context . ir Builder ( ĊĠ Ġsymbol : ĠIr Symbol , ĊĠ Ġstart Offset : ĠInt Ġ= ĠUN DEFINED _ OFFSET , ĊĠ Ġend Offset : ĠInt Ġ= ĠUN DEFINED _ OFFSET Ċ ) Ġ= ĠDeclaration Ir Builder ( this , Ġsymbol , Ġstart Offset , Ġend Offset ) Ċ Ċ fun ĠIr Generator Context . build External Interface ( ĊĠ Ġname : ĠString , ĊĠ Ġvisibility : ĠDescriptor Visibility Ġ= ĠDescriptor Vis ibilities . PUBLIC , ĊĠ Ġsuper Types : ĠList < Ir Type >? Ġ= ĠlistOf ( ir Built Ins . any Type ) Ċ ): ĠIr Class Ġ{ ĊĠ Ġval Ġir Class Ġ= Ġir Factory . build Class Ġ{ ĊĠĠĠ Ġthis . visibility Ġ= Ġvisibility ĊĠĠĠ Ġkind Ġ= ĠClass Kind . INTERFACE ĊĠĠĠ Ġmod ality Ġ= ĠMod ality . AB STR ACT ĊĠĠĠ Ġis External Ġ= Ġtrue ĊĠĠĠ Ġthis . name Ġ= ĠName . identifier ( name ) ĊĠ Ġ} ĊĠ Ġsuper Types ?. let Ġ{ Ġir Class . super Types Ġ= Ġit Ġ} ĊĠ Ġir Class . create Implicit Parameter Declaration With Wrapped Descriptor () ĊĠ Ġreturn Ġir Class Ċ } Ċ Ċ fun ĠIr Generator Context . add External Var Property ( ĊĠ Ġcontainer : ĠIr Class , ĊĠ Ġname : ĠName , ĊĠ Ġtype : ĠIr Type Ċ ): ĠIr Property Ġ{ ĊĠ Ġ/* Ċ PROPERTY Ġname : name Ġvisibility : public Ġmod ality : AB STR ACT Ġ[ var ] ĊĠ ĠFUN ĠDEFAULT _ PROPERTY _ ACCESS OR Ġname :< get - name > Ġvisibility : public Ġmod ality : AB STR ACT Ġ<> Ġ($ this : test . Home Props ) ĠreturnType : kotlin . String ĊĠĠĠ Ġcorresponding Property : ĠPROPERTY Ġname : name Ġvisibility : public Ġmod ality : AB STR ACT Ġ[ var ] ĊĠĠĠ Ġ$ this : ĠVALUE _ PARAMETER Ġname :< this > Ġtype : test . Home Props ĊĠ ĠFUN ĠDEFAULT _ PROPERTY _ ACCESS OR Ġname :< set - name > Ġvisibility : public Ġmod ality : AB STR ACT Ġ<> Ġ($ this : test . Home Props , Ġ< set - ? >: kotlin . String ) ĠreturnType : kotlin . Unit ĊĠĠĠ Ġcorresponding Property : ĠPROPERTY Ġname : name Ġvisibility : public Ġmod ality : AB STR ACT Ġ[ var ] ĊĠĠĠ Ġ$ this : ĠVALUE _ PARAMETER Ġname :< this > Ġtype : test . Home Props ĊĠĠĠ ĠVALUE _ PARAMETER Ġname :< set - ?> Ġindex : 0 Ġtype : kotlin . String Ċ Ġ*/ ĊĊĠ Ġval Ġir Property Ġ= Ġcontainer . addProperty Ġ{ ĊĠĠĠ Ġthis . name Ġ= Ġname ĊĠĠĠ Ġmod ality Ġ= ĠMod ality . AB STR ACT ĊĠĠĠ Ġis External Ġ= Ġtrue ĊĠĠĠ Ġis Var Ġ= Ġtrue ĊĠ Ġ} ĊĊĠ Ġval Ġir Getter Ġ= Ġir Property . add Getter Ġ{ ĊĠĠĠ Ġmod ality Ġ= ĠMod ality . AB STR ACT ĊĠĠĠ Ġis External Ġ= Ġtrue ĊĠĠĠ ĠreturnType Ġ= Ġtype ĊĠĠĠ Ġorigin Ġ= ĠIr Declaration Origin . DEFAULT _ PROPERTY _ ACCESS OR ĊĠ Ġ} ĊĠ Ġir Getter . dispatch Receiver Parameter Ġ= Ġcontainer . this Receiver !!. copy To ( ir Getter , ĠIr Declaration Origin . DEFINED ) ĊĠ Ġir Getter . corre sponding Property Symbol Ġ= Ġir Property . symbol ĊĊĠ Ġval Ġir Setter Ġ= Ġir Property . add Setter Ġ{ ĊĠĠĠ Ġmod ality Ġ= ĠMod ality . AB STR ACT ĊĠĠĠ Ġis External Ġ= Ġtrue ĊĠĠĠ ĠreturnType Ġ= Ġir Built Ins . unit Type ĊĠĠĠ Ġorigin Ġ= ĠIr Declaration Origin . DEFAULT _ PROPERTY _ ACCESS OR ĊĠ Ġ} ĊĠ Ġir Setter . dispatch Receiver Parameter Ġ= Ġcontainer . this Receiver !!. copy To ( ir Setter , ĠIr Declaration Origin . DEFINED ) ĊĠ Ġir Setter . corre sponding Property Symbol Ġ= Ġir Property . symbol ĊĠ Ġir Setter . add Value Parameter Ġ{ ĊĠĠĠ Ġthis . name Ġ= ĠName . special ("< set - ?> ") ĊĠĠĠ Ġthis . type Ġ= Ġtype ĊĠ Ġ} ĊĊĠ Ġreturn Ġir Property Ċ } ĊĊ Ċ fun ĠIr Generator Context . build Static Property ( parent : ĠIr Declaration Parent , ĠfieldType : ĠIr Type , Ġname : ĠString , Ġinitializer : ĠDeclaration Ir Builder . () Ġ-> ĠIr Expression Body ): ĠIr Property Ġ{ ĊĠ Ġ/* ĊĠ ĠPROPERTY Ġname : HOME _ R FUNC Ġvisibility : private Ġmod ality : FINAL Ġ[ val ] ĊĠĠĠ ĠFIELD ĠPROPERTY _ BACK ING _ FIELD Ġname : HOME _ R FUNC Ġtype : test . R Class < test . Home Func Props > Ġvisibility : private Ġ[ final , static ] ĊĠĠĠĠĠ ĠEXPRESS ION _ BODY ĊĠĠĠĠĠĠĠ ĠCALL Ġ' public Ġfinal Ġfun Ġr Function Ġ< P > Ġ( displayName : Ġkotlin . String , Ġrender : Ġ@ [ Extension FunctionType ] Ġkotlin . Function 2 < test . R Builder , ĠP Ġof Ġtest . r Function , Ġkotlin . Unit >): Ġtest . R Class < P Ġof Ġtest . r Function > Ġ[ inline ] Ġdeclared Ġin Ġtest ' Ġtype = test . R Class < test . Home Func Props > Ġorigin = null ĊĠĠĠĠĠĠĠĠĠ Ġ< P >: Ġtest . Home Func Props ĊĠĠĠĠĠĠĠĠĠ ĠdisplayName : ĠCONST ĠString Ġtype = kotlin . String Ġvalue =" Home " ĊĠĠĠĠĠĠĠĠĠ Ġrender : ĠFUN _ EXPR Ġtype =@ [ Extension FunctionType ] Ġkotlin . Function 2 < test . R Builder , Ġtest . Home Func Props , Ġkotlin . Unit > Ġorigin = L AMBDA ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFUN ĠLOCAL _ FUNCTION _ FOR _ L AMBDA Ġname :< anonymous > Ġvisibility : local Ġmod ality : FINAL Ġ<> Ġ($ receiver : test . R Builder , Ġprops : test . Home Func Props ) ĠreturnType : kotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ receiver : ĠVALUE _ PARAMETER Ġname :< this > Ġtype : test . R Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVALUE _ PARAMETER Ġname : props Ġindex : 0 Ġtype : test . Home Func Props ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*** ĠBLOCK _ BODY Ġ*** ĊĠĠĠ ĠFUN ĠDEFAULT _ PROPERTY _ ACCESS OR Ġname :< get - HOME _ R FUNC > Ġvisibility : private Ġmod ality : FINAL Ġ<> Ġ() ĠreturnType : test . R Class < test . Home Func Props > ĊĠĠĠĠĠ Ġcorresponding Property : ĠPROPERTY Ġname : HOME _ R FUNC Ġvisibility : private Ġmod ality : FINAL Ġ[ val ] ĊĠĠĠĠĠ ĠBLOCK _ BODY ĊĠĠĠĠĠĠĠ ĠRETURN Ġtype = kotlin . Nothing Ġfrom =' private Ġfinal Ġfun Ġ< get - HOME _ R FUNC > Ġ(): Ġtest . R Class < test . Home Func Props > Ġdeclared Ġin Ġtest ' ĊĠĠĠĠĠĠĠĠĠ ĠGET _ FIELD Ġ' FIELD ĠPROPERTY _ BACK ING _ FIELD Ġname : HOME _ R FUNC Ġtype : test . R Class < test . Home Func Props > Ġvisibility : private Ġ[ final , static ]' Ġtype = test . R Class < test . Home Func Props > Ġorigin = null Ċ Ġ*/ ĊĠ Ġval Ġir Property Ġ= Ġir Factory . build Property Ġ{ ĊĠĠĠ Ġthis . name Ġ= ĠName . identifier ( name ) ĊĠĠĠ Ġvisibility Ġ= ĠDescriptor Vis ibilities . PRIVATE ĊĠĠĠ Ġmod ality Ġ= ĠMod ality . FINAL ĊĠ Ġ} ĊĠ Ġir Property . parent Ġ= Ġparent ĊĊĠ Ġval Ġir Getter Ġ= Ġir Property . add Getter Ġ{ ĊĠĠĠ Ġvisibility Ġ= ĠDescriptor Vis ibilities . PRIVATE ĊĠĠĠ Ġmod ality Ġ= ĠMod ality . FINAL ĊĠĠĠ ĠreturnType Ġ= ĠfieldType ĊĠĠĠ Ġorigin Ġ= ĠIr Declaration Origin . DEFAULT _ PROPERTY _ ACCESS OR ĊĠ Ġ} ĊĠ Ġir Getter . corre sponding Property Symbol Ġ= Ġir Property . symbol ĊĊĠ Ġval Ġfield Ġ= Ġir Factory . build Field Ġ{ ĊĠĠĠ Ġvisibility Ġ= ĠDescriptor Vis ibilities . PRIVATE ĊĠĠĠ Ġis Static Ġ= Ġtrue ĊĠĠĠ Ġis Final Ġ= Ġtrue ĊĠĠĠ Ġthis . name Ġ= ĠName . identifier ( name ) ĊĠĠĠ Ġtype Ġ= ĠfieldType ĊĠĠĠ Ġorigin Ġ= ĠIr Declaration Origin . PROPERTY _ BACK ING _ FIELD ĊĠ Ġ} ĊĠ Ġfield . corre sponding Property Symbol Ġ= Ġir Property . symbol ĊĠ Ġfield . parent Ġ= Ġparent ĊĠ Ġfield . initializer Ġ= Ġir Builder ( field . symbol ). run Ġ{ Ġinitializer () Ġ} ĊĊĠ Ġir Getter . body Ġ= Ġir Builder ( ir Getter . symbol ). run Ġ{ ĊĠĠĠ Ġir Block Body Ġ{ ĊĠĠĠĠĠ Ġ+ ir Return ( ir GetField ( null , Ġfield )) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġir Property . back ing Field Ġ= Ġfield ĊĠ Ġreturn Ġir Property Ċ } Ċ Ċ fun ĠIr Builder With Scope . build Lambda ( returnType : ĠIr Type , Ġlambda Type : ĠIr Type , Ġbuilder : ĠIr Simple Function . () Ġ-> ĠUnit ): ĠIr Function Expression Ġ{ ĊĠ Ġval Ġscope Ġ= Ġthis ĊĠ Ġval Ġlambda Ġ= Ġcontext . ir Factory . build Fun Ġ{ ĊĠĠĠ Ġname Ġ= ĠName . special ("< anonymous >") ĊĠĠĠ Ġthis . returnType Ġ= ĠreturnType ĊĠĠĠ Ġvisibility Ġ= ĠDescriptor Vis ibilities . LOCAL ĊĠĠĠ Ġorigin Ġ= ĠIr Declaration Origin . LOCAL _ FUNCTION _ FOR _ L AMBDA ĊĠ Ġ}. apply Ġ{ ĊĠĠĠ Ġbuilder () ĊĠĠĠ Ġthis . parent Ġ= Ġscope . parent ĊĠ Ġ} ĊĠ Ġreturn ĠIr Function Expression Impl (- 1 , Ġ- 1 , Ġlambda Type , Ġlambda , ĠIr Statement Origin . L AMBDA ) Ċ } Ċ Ċ inline Ġfun ĠIr Property . add Setter ( builder : ĠIr Function Builder . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠIr Simple Function Ġ= ĊĠ ĠIr Function Builder (). run Ġ{ ĊĠĠĠ Ġname Ġ= ĠName . special ("< set -${ this @ add Setter . name }> ") ĊĠĠĠ Ġbuilder () ĊĠĠĠ Ġfactory . build Function ( this ). also Ġ{ Ġsetter Ġ-> ĊĠĠĠĠĠ Ġthis @ add Setter . setter Ġ= Ġsetter ĊĠĠĠĠĠ Ġsetter . parent Ġ= Ġthis @ add Setter . parent ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ Ċ @ Published Api Ċ internal Ġfun ĠIr Factory . build Function ( builder : ĠIr Function Builder ): ĠIr Simple Function Ġ= Ġwith ( builder ) Ġ{ ĊĠ Ġval Ġwrapped Descriptor Ġ= Ġif Ġ( original Declaration Ġis ĠIr Lazy Function Ġ|| Ġcontainer Source Ġ!= Ġnull ) ĊĠĠĠ ĠWr apped Function Descriptor With Container Source () ĊĠ Ġelse ĠWr apped Simple Function Descriptor () ĊĠ Ġcreate Function ( ĊĠĠĠ Ġstart Offset , Ġend Offset , Ġorigin , ĊĠĠĠ ĠIr Simple Function Symbol Impl ( wrapped Descriptor ), ĊĠĠĠ Ġname , Ġvisibility , Ġmod ality , ĠreturnType , ĊĠĠĠ Ġis Inline , Ġis External , Ġis Tail rec , Ġis Suspend , Ġis Operator , ĠisIn fix , Ġis Expect , Ġis Fake Override , ĊĠĠĠ Ġcontainer Source ĊĠ Ġ). also Ġ{ ĊĠĠĠ Ġwrapped Descriptor . bind ( it ) ĊĠ Ġ} Ċ } Ċ