/* Ċ Ġ* Ġ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 . descriptors . common izer . cir Ċ Ċ import Ġorg . jetbrains . kotlin . descriptors . common izer . cir . factory . C ir Type Factory Ċ import Ġorg . jetbrains . kotlin . types . Abbre vi ated Type Ċ import Ġorg . jetbrains . kotlin . types . Variance Ċ Ċ type alias ĠC ir Type Signature Ġ= ĠString Ċ Ċ sealed Ġclass ĠC ir Type Ċ Ċ /** Ċ Ġ* ĠAll Ġattributes Ġare Ġread Ġfrom Ġthe Ġabbre viation Ġtype : Ġ[ Abbre vi ated Type . abbre viation ]. Ċ Ġ* Ċ Ġ* ĠThis Ġis Ġnecessary Ġto Ġproperly Ġcompare Ġtypes Ġfor Ġtype Ġaliases , Ġwhere Ġabbre viation Ġtype Ġrepresents Ġthe Ġtype Ġalias Ġitself Ġwhile Ċ Ġ* Ġexpanded Ġtype Ġrepresents Ġright - hand Ġside Ġdeclaration Ġthat Ġshould Ġbe Ġprocessed Ġseparately . Ċ Ġ* Ċ Ġ* ĠThere Ġis Ġno Ġdifference Ġbetween Ġ" abbre viation " Ġand Ġ" expanded " Ġfor Ġtypes Ġrepresenting Ġclasses Ġand Ġtype Ġparameters . Ċ Ġ* ĠFor Ġdetails , Ġsee Ġ[ C ir Type Factory ]. Ċ Ġ* Ċ Ġ* ĠNote : ĠAn notations Ġat Ġsimple Ġtypes Ġare Ġnot Ġpreserved . ĠAfter Ġcommon ization Ġall Ġannotations Ġassigned Ġto Ġtypes Ġwill Ġbe Ġlost . Ċ Ġ*/ Ċ abstract Ġclass ĠC ir Simple Type Ġ: ĠC ir Type (), ĠC ir Has Visibility Ġ{ ĊĠĠĠ Ġabstract Ġval Ġclassifier Id : ĠC ir Classifier Id ĊĠĠĠ Ġabstract Ġval Ġarguments : ĠList < C ir Type Projection > ĊĠĠĠ Ġabstract Ġval Ġis Marked Nullable : ĠBoolean ĊĠĠĠ Ġabstract Ġval Ġis Def initely NotNull Type : ĠBoolean Ċ } Ċ Ċ data Ġclass ĠC ir Flex ible Type ( val Ġlower Bound : ĠC ir Simple Type , Ġval Ġupper Bound : ĠC ir Simple Type ) Ġ: ĠC ir Type () Ċ Ċ data Ġclass ĠC ir Type Projection ( val Ġprojection Kind : ĠVari ance , Ġval Ġis Star Projection : ĠBoolean , Ġval Ġtype : ĠC ir Type ) Ċ