/* Ċ Ġ* Ġ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 . ir . persistent Ir Generator Ċ Ċ internal Ġfun ĠPersistent Ir Generator . generate Field () Ġ{ ĊĠĠĠ Ġval Ġinitializer Field Ġ= ĠField (" initializer ", ĠIr Expression Body Ġ+ Ġ"? ") ĊĠĠĠ Ġval Ġcorresponding Property Symbol Field Ġ= ĠField (" corre sponding Property Symbol ", ĠIr Property Symbol Ġ+ Ġ"? ") ĊĠĠĠ Ġval Ġmetadata Field Ġ= ĠField (" metadata ", ĠMetadata Source Ġ+ Ġ"? ") ĊĠĠĠ Ġval Ġtype Field Ġ= ĠField (" type ", ĠIr Type ) ĊĊĠĠĠ Ġwrite File (" Persistent Ir Field . kt ", Ġrender File (" org . jetbrains . kotlin . ir . declarations . persistent ") Ġ{ ĊĠĠĠĠĠĠĠ Ġlines ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+" internal Ġclass ĠPersistent Ir Field (", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Offset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Offset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" override Ġval Ġsymbol : Ġ" Ġ+ Ġir Symbol (" Ir Field Symbol "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" type : Ġ" Ġ+ ĠIr Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" override Ġvar Ġ" Ġ+ Ġvisibility , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Final , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis External , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Static , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġir Factory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). join ( separator Ġ= Ġ", \ n "). indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ ") Ġ: Ġ" Ġ+ Ġbase Classes (" Field ") Ġ+ Ġ" Ġ" Ġ+ Ġblock Sp aced ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Block , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommon Fields , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptor ( descriptor Type (" Property Descriptor ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitializer Field . to Body (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcorresponding Property Symbol Field . to Persistent Field ( +" null "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Field . to Persistent Field ( +" null "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Field . to Persistent Field ( +" type "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠ Ġ) () ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġwrite File (" car riers / Field Carrier . kt ", Ġrender File (" org . jetbrains . kotlin . ir . declarations . persistent . car riers ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcar riers ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Field ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitializer Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcorresponding Property Symbol Field , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Field , ĊĠĠĠĠĠĠĠ Ġ) () ĊĠĠĠ Ġ}) Ċ }