/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 6 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . ir . declarations . impl Ċ Ċ import Ġorg . jetbrains . kotlin . descriptors . Variable Descriptor With Accessors Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Declaration Origin Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Function Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Local Deleg ated Property Ċ import Ġorg . jetbrains . kotlin . ir . declarations . Ir Variable Ċ import Ġorg . jetbrains . kotlin . ir . visitor s . Ir Element Transformer Ċ import Ġorg . jetbrains . kotlin . ir . visitor s . Ir Element Visitor Ċ Ċ class ĠIr Local Deleg ated Property Impl ( ĊĠĠĠĠĠĠĠ Ġstart Offset : ĠInt , ĊĠĠĠĠĠĠĠ Ġend Offset : ĠInt , ĊĠĠĠĠĠĠĠ Ġorigin : ĠIr Declaration Origin , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġdescriptor : ĠVariable Descriptor With Accessors Ċ ) Ġ: ĠIr Declaration Base ( start Offset , Ġend Offset , Ġorigin ), ĠIr Local Deleg ated Property Ġ{ ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Offset : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Offset : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorigin : ĠIr Declaration Origin , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptor : ĠVariable Descriptor With Accessors , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate : ĠIr Variable ĊĠĠĠ Ġ) Ġ: Ġthis ( start Offset , Ġend Offset , Ġorigin , Ġdescriptor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . delegate Ġ= Ġdelegate ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Offset : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Offset : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorigin : ĠIr Declaration Origin , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptor : ĠVariable Descriptor With Accessors , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate : ĠIr Variable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgetter : ĠIr Function , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetter : ĠIr Function ? ĊĠĠĠ Ġ) Ġ: Ġthis ( start Offset , Ġend Offset , Ġorigin , Ġdescriptor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . delegate Ġ= Ġdelegate ĊĠĠĠĠĠĠĠ Ġthis . getter Ġ= Ġgetter ĊĠĠĠĠĠĠĠ Ġthis . setter Ġ= Ġsetter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġdelegate : ĠIr Variable ĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġgetter : ĠIr Function ĊĠĠĠ Ġoverride Ġvar Ġsetter : ĠIr Function ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġ< R , ĠD > Ġaccept ( visitor : ĠIr Element Visitor < R , ĠD >, Ġdata : ĠD ): ĠR Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor . visit Local Deleg ated Property ( this , Ġdata ) ĊĊĠĠĠ Ġoverride Ġfun Ġ< D > Ġaccept Children ( visitor : ĠIr Element Visitor < Unit , ĠD >, Ġdata : ĠD ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelegate . accept ( visitor , Ġdata ) ĊĠĠĠĠĠĠĠ Ġgetter . accept ( visitor , Ġdata ) ĊĠĠĠĠĠĠĠ Ġsetter ?. accept ( visitor , Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< D > Ġtransform Children ( transformer : ĠIr Element Transformer < D >, Ġdata : ĠD ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelegate Ġ= Ġdelegate . transform ( transformer , Ġdata ) Ġas ĠIr Variable ĊĠĠĠĠĠĠĠ Ġgetter Ġ= Ġgetter . transform ( transformer , Ġdata ) Ġas ĠIr Function ĊĠĠĠĠĠĠĠ Ġsetter Ġ= Ġsetter ?. transform ( transformer , Ġdata ) Ġas ? ĠIr Function ĊĠĠĠ Ġ} Ċ }