/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 Ġ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 . descriptors . common izer . builder Ċ Ċ import Ġorg . jetbrains . kotlin . descriptors .* Ċ import Ġorg . jetbrains . kotlin . descriptors . common izer . merge dt ree . ir . Extension Receiver Ċ import Ġorg . jetbrains . kotlin . descriptors . common izer . merge dt ree . ir . Type Parameter Ċ import Ġorg . jetbrains . kotlin . descriptors . common izer . merge dt ree . ir . Value Parameter Ċ import Ġorg . jetbrains . kotlin . descriptors . impl . Type Parameter Descriptor Impl Ċ import Ġorg . jetbrains . kotlin . descriptors . impl . Value Parameter Descriptor Impl Ċ import Ġorg . jetbrains . kotlin . resolve . Descriptor Factory Ċ import Ġorg . jetbrains . kotlin . resolve . Descriptor Utils Ċ Ċ internal Ġfun ĠList < Type Parameter >. build Descriptors ( ĊĠĠĠ Ġcontaining Declaration : ĠDeclaration Descriptor Ċ ): ĠList < Type Parameter Descriptor > Ġ{ ĊĠĠĠ Ġreturn Ġmap Indexed Ġ{ Ġindex , Ġparam Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġdescriptor Ġ= ĠType Parameter Descriptor Impl . create For Further Modification ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontaining Declaration , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . annotations , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . is Re ified , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . variance , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSource Element . NO _ SOURCE ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġparam . upper Bounds . forEach ( descriptor :: add Upper Bound ) ĊĠĠĠĠĠĠĠ Ġdescriptor . set Initialized () ĊĊĠĠĠĠĠĠĠ Ġdescriptor ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun ĠList < Value Parameter >. build Descriptors ( ĊĠĠĠ Ġcontaining Declaration : ĠCallable Descriptor Ċ ) Ġ= Ġmap Indexed Ġ{ Ġindex , Ġparam Ġ-> ĊĠĠĠ ĠValue Parameter Descriptor Impl ( ĊĠĠĠĠĠĠĠ Ġcontaining Declaration , ĊĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠ Ġindex , ĊĠĠĠĠĠĠĠ Ġparam . annotations , ĊĠĠĠĠĠĠĠ Ġparam . name , ĊĠĠĠĠĠĠĠ Ġparam . returnType , ĊĠĠĠĠĠĠĠ Ġparam . decl ares DefaultValue , ĊĠĠĠĠĠĠĠ Ġparam . is Cross inline , ĊĠĠĠĠĠĠĠ Ġparam . is N oin line , ĊĠĠĠĠĠĠĠ Ġparam . var arg ElementType , ĊĠĠĠĠĠĠĠ ĠSource Element . NO _ SOURCE ĊĠĠĠ Ġ) Ċ } Ċ Ċ internal Ġfun ĠExtension Receiver . build Extension Receiver ( ĊĠĠĠ Ġcontaining Declaration : ĠCallable Descriptor Ċ ) Ġ= ĠDescriptor Factory . create Extension Receiver Parameter For Callable ( ĊĠĠĠ Ġcontaining Declaration , ĊĠĠĠ Ġtype , ĊĠĠĠ Ġannotations Ċ ) Ċ Ċ internal Ġfun Ġbuild Dispatch Receiver ( callable Descriptor : ĠCallable Descriptor ) Ġ= ĊĠĠĠ ĠDescriptor Utils . get Dispatch Receiver Parameter IfNeeded ( callable Descriptor . containing Declaration ) Ċ