/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 1 Ġ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 . common izer . core Ċ Ċ import Ġorg . jetbrains . kotlin . common izer . cir . C ir Regular Type Projection Ċ import Ġorg . jetbrains . kotlin . common izer . cir . C ir Star Type Projection Ċ import Ġorg . jetbrains . kotlin . common izer . cir . C ir Type Projection Ċ import Ġorg . jetbrains . kotlin . common izer . utils . safe Cast Values Ċ import Ġorg . jetbrains . kotlin . common izer . utils . single Distinct Value OrNull Ċ Ċ class ĠType Argument Common izer ( ĊĠĠĠ Ġprivate Ġval Ġtype Common izer : ĠType Common izer Ċ ) Ġ: ĠNullable Single Invocation Common izer < C ir Type Projection > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġinvoke ( values : ĠList < C ir Type Projection >): ĠC ir Type Projection ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠAll Ġvalues Ġare Ġstar Ġprojection s Ġ*/ ĊĠĠĠĠĠĠĠ Ġvalues . safe Cast Values < C ir Type Projection , ĠC ir Star Type Projection >() ?. let Ġ{ Ġreturn ĠC ir Star Type Projection Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/* ĠAll Ġvalues Ġare Ġregular Ġtype Ġprojection s Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġprojection s Ġ= Ġvalues . safe Cast Values < C ir Type Projection , ĠC ir Regular Type Projection >() Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠC ir Regular Type Projection ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprojection Kind Ġ= Ġprojection s . single Distinct Value OrNull Ġ{ Ġit . projection Kind Ġ} Ġ?: Ġreturn Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġtype Common izer ( projection s . map Ġ{ Ġit . type Ġ}) Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ