package Ġdev . the code war ri or . mirror . impl . type Ċ Ċ import Ġdev . the code war ri or . mirror . impl . Mirror Cache Ċ import Ġdev . the code war ri or . mirror . impl . core types . Core Type Utils Ċ import Ġdev . the code war ri or . mirror . impl . utils . Unt ested Ċ import Ġdev . the code war ri or . mirror . type . Type Mirror Ċ import Ġdev . the code war ri or . mirror . type . Type Variable Mirror Ċ import Ġdev . the code war ri or . mirror . type . Wildcard Mirror Ċ import Ġdev . the code war ri or . mirror . impl . utils . annotation String Ċ import Ġjava . lang . reflect . Annotated Element Ċ import Ġjava . lang . reflect . Annotated Type Variable Ċ import Ġjava . lang . reflect . Type Variable Ċ Ċ internal Ġclass ĠType Variable Mirror Impl Ġinternal Ġconstructor ( ĊĠĠĠ Ġoverride Ġval Ġcache : ĠM irror Cache , ĊĠĠĠ Ġoverride Ġval Ġcore Type : ĠType Variable <* >, ĊĠĠĠ Ġraw : ĠType Variable Mirror ?, ĊĠĠĠ Ġoverride Ġval Ġspecial ization : ĠType Special ization . Common ? Ċ ): ĠType Mirror Impl (), ĠAnnot ated Element Ġby Ġcore Type , ĠType Variable Mirror Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġcore Annotated Type : ĠAnnot ated Type Variable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠCore Type Utils . annotate ( core Type , Ġtype Annotations . to Typed Array ()) Ġas ĠAnnot ated Type Variable ĊĊĠĠĠ Ġoverride Ġval Ġraw : ĠType Variable Mirror Ġ= Ġraw Ġ?: Ġthis ĊĊĠĠĠ Ġoverride Ġval Ġbounds : ĠList < Type Mirror > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġcore Type . annotated Bounds . map Ġ{ Ġcache . types . reflect ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwith Type Annotations ( annotations : ĠList < Annotation >): ĠType Variable Mirror Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Type Annotations Impl ( annotations ) Ġas ĠType Variable Mirror ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdefault Special ization () Ġ= ĠType Special ization . Common . DEFAULT ĊĊĠĠĠ Ġoverride Ġfun Ġapply Special ization ( special ization : ĠType Special ization ): ĠType Mirror Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdefault Apply Special ization < Type Special ization . Common >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspecial ization , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType Variable Mirror Impl ( cache , Ġcore Type , Ġraw , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis AssignableFrom ( other : ĠType Mirror ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( other ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠType Variable Mirror Ġ-> Ġthis Ġin Ġother . bounds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠW ildcard Mirror Ġ-> Ġthis Ġin Ġother . upper Bounds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Unt ested ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġto Java String () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Unt ested ĊĠĠĠ Ġoverride Ġfun Ġto Declaration String (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġto Java Declaration String () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Unt ested ĊĠĠĠ Ġoverride Ġfun Ġto Java String (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstr Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġstr Ġ+= Ġtype Annotations . to Java String ( join er Ġ= Ġ" Ġ", Ġtrailing Ġ= Ġ" Ġ") ĊĠĠĠĠĠĠĠ Ġstr Ġ+= Ġcore Type . name ĊĠĠĠĠĠĠĠ Ġreturn Ġstr ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Unt ested ĊĠĠĠ Ġoverride Ġfun Ġto Kotlin String (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Unt ested ĊĠĠĠ Ġoverride Ġfun Ġto Java Declaration String (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstr Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġstr Ġ+= Ġcore Type . annotations . annotation String () ĊĠĠĠĠĠĠĠ Ġstr Ġ+= Ġcore Type . name ĊĠĠĠĠĠĠĠ Ġif ( bounds . isNotEmpty () Ġ&& Ġ!( bounds . size Ġ== Ġ 1 Ġ&& Ġbounds [ 0 ] Ġ== Ġcache . types . reflect ( Any :: class . java ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstr Ġ+= Ġ" Ġextends Ġ${ bounds . join ToString (" Ġ& Ġ") }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġstr ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Unt ested ĊĠĠĠ Ġoverride Ġfun Ġto Kotlin Declaration String (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} Ċ } Ċ