/* Ċ Ġ* Ġ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 . Declaration Descriptor Ċ import Ġorg . jetbrains . kotlin . descriptors . Source Element Ċ import Ġorg . jetbrains . kotlin . descriptors . Sup ertype Loop Checker Ċ import Ġorg . jetbrains . kotlin . descriptors . annotations . Annotations Ċ import Ġorg . jetbrains . kotlin . descriptors . common izer . merge dt ree . ir . C ir Type Ċ import Ġorg . jetbrains . kotlin . descriptors . impl . Abstract Lazy Type Parameter Descriptor Ċ import Ġorg . jetbrains . kotlin . name . Name Ċ import Ġorg . jetbrains . kotlin . types . Kotlin Type Ċ import Ġorg . jetbrains . kotlin . types . Un wrapped Type Ċ import Ġorg . jetbrains . kotlin . types . Variance Ċ Ċ class ĠCommon ized Type Parameter Descriptor ( ĊĠĠĠ Ġprivate Ġval Ġtarget Components : ĠTarget Declarations Builder Components , ĊĠĠĠ Ġprivate Ġval Ġtype Parameter Resolver : ĠType Parameter Resolver , ĊĠĠĠ Ġcontaining Declaration : ĠDeclaration Descriptor , ĊĠĠĠ Ġoverride Ġval Ġannotations : ĠAn notations , ĊĠĠĠ Ġname : ĠName , ĊĠĠĠ Ġvariance : ĠVari ance , ĊĠĠĠ Ġis Re ified : ĠBoolean , ĊĠĠĠ Ġindex : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġcir Upper Bounds : ĠList < C ir Type > Ċ ) Ġ: ĠAbstract Lazy Type Parameter Descriptor ( ĊĠĠĠ Ġtarget Components . storage Manager , ĊĠĠĠ Ġcontaining Declaration , ĊĠĠĠ Ġname , ĊĠĠĠ Ġvariance , ĊĠĠĠ Ġis Re ified , ĊĠĠĠ Ġindex , ĊĠĠĠ ĠSource Element . NO _ SOURCE , ĊĠĠĠ ĠSup ertype Loop Checker . EMPTY Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġresolve Upper Bounds (): ĠList < Un wrapped Type > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( cir Upper Bounds . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( target Components . built Ins . default Bound ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcir Upper Bounds . map Ġ{ Ġit . build Type ( target Components , Ġtype Parameter Resolver ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreport Sup ertype Loop Error ( type : ĠKotlin Type ) Ġ= ĊĠĠĠĠĠĠĠ Ġerror (" There Ġshould Ġbe Ġno Ġcycles Ġfor Ġcommon ized Ġtype Ġparameters , Ġbut Ġfound Ġfor : Ġ$ type Ġin Ġ$ this ") Ċ } Ċ