/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 8 Ġ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 . fir . types . impl Ċ Ċ import Ġorg . jetbrains . kotlin . fir . symbols . Con e Class Like Lookup Tag Ċ import Ġorg . jetbrains . kotlin . fir . types . Con e Class Like Type Ċ import Ġorg . jetbrains . kotlin . fir . types . Con e Kotlin Type Projection Ċ import Ġorg . jetbrains . kotlin . fir . types . Con e Null ability Ċ Ċ class ĠC one Class Like Type Impl ( ĊĠĠĠ Ġoverride Ġval Ġlookup Tag : ĠC one Class Like Lookup Tag , ĊĠĠĠ Ġoverride Ġval Ġtype Arguments : ĠArray < out ĠC one Kotlin Type Projection >, ĊĠĠĠ Ġis Nullable : ĠBoolean Ċ ) Ġ: ĠC one Class Like Type () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġnull ability : ĠC one Null ability Ġ= ĠC one Null ability . create ( is Nullable ) ĊĊĠĠĠ Ġ// ĠCached Ġexpanded Ġtype Ġand Ġthe Ġrelevant Ġsession ĊĠĠĠ Ġvar Ġcached Expanded Type : ĠPair < *, ĠC one Class Like Type >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠC one Class Like Type Impl ĊĊĠĠĠĠĠĠĠ Ġif Ġ( lookup Tag Ġ!= Ġother . lookup Tag ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! type Arguments . content Equals ( other . type Arguments )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( null ability Ġ!= Ġother . null ability ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġlookup Tag . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtype Arguments . content HashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġnull ability . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ