/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 5 Ġ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 . codegen Ċ Ċ import Ġorg . jetbrains . kotlin . descriptors .* Ċ import Ġorg . jetbrains . kotlin . descriptors . annotations . Annotations Ċ import Ġorg . jetbrains . kotlin . descriptors . impl . Simple Function Descriptor Impl Ċ import Ġorg . jetbrains . kotlin . descriptors . impl . Type Parameter Descriptor Impl Ċ import Ġorg . jetbrains . kotlin . name . Name Ċ import Ġorg . jetbrains . kotlin . resolve . Descriptor Utils Ċ import Ġjava . util .* Ċ Ċ open Ġclass ĠAbstract Accessor For Function Descriptor ( ĊĠĠĠĠĠĠĠ Ġcontaining Declaration : ĠDeclaration Descriptor , ĊĠĠĠĠĠĠĠ Ġname : ĠName Ċ ) Ġ: ĠSimple Function Descriptor Impl ( containing Declaration , Ġnull , ĠAn notations . EMPTY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĠCallable Member Descriptor . Kind . DECL AR ATION , ĠSource Element . NO _ SOURCE ) Ġ{ ĊĊĠĠĠ Ġprotected Ġfun Ġcopy Type Parameters ( descriptor : ĠFunction Descriptor ): ĠList < Type Parameter Descriptor > Ġ= Ġdescriptor . type Parameters . map Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcopy Ġ= ĠType Parameter Descriptor Impl . create For Further Modification ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġit . annotations , Ġit . is Re ified , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . variance , Ġit . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . index , ĠSource Element . NO _ SOURCE ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( upper Bound Ġin Ġit . upper Bounds ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy . add Upper Bound ( upper Bound ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcopy . set Initialized () ĊĠĠĠĠĠĠĠ Ġcopy ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġcopy Value Parameters ( descriptor : ĠFunction Descriptor ): ĠList < Value Parameter Descriptor > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptor . value Parameters . map Ġ{ Ġit . copy ( this , Ġit . name , Ġit . index ) Ġ} Ċ } Ċ