package Ġorg . jetbrains . kotlin . util Ċ Ċ import Ġorg . jetbrains . kotlin . incremental . Kotlin Lookup Location Ċ import Ġorg . jetbrains . kotlin . incremental . components . Lookup Tracker Ċ import Ġorg . jetbrains . kotlin . incremental . get Scope Kind Ċ import Ġorg . jetbrains . kotlin . incremental . record Ċ import Ġorg . jetbrains . kotlin . psi . Kt Expression Ċ import Ġorg . jetbrains . kotlin . resolve . Descriptor Utils Ċ import Ġorg . jetbrains . kotlin . types . Kotlin Type Ċ import Ġorg . jetbrains . kotlin . types . type Util . is Unit Ċ Ċ fun ĠLookup Tracker . record ( expression : ĠK t Expression , Ġtype : ĠKotlin Type ) Ġ{ ĊĠĠĠ Ġif Ġ( type . isError Ġ|| Ġtype . is Unit ()) Ġreturn ĊĊĠĠĠ Ġval Ġtype Descriptor Ġ= Ġtype . constructor . declaration Descriptor Ġ?: Ġreturn ĊĠĠĠ Ġval Ġscope Descriptor Ġ= Ġtype Descriptor . containing Declaration ĊĊĠĠĠ Ġ// ĠScope Ġdescriptor Ġis Ġfunction Ġdescriptor Ġonly Ġwhen Ġtype Ġis Ġlocal ĊĠĠĠ Ġ// ĠLook ups Ġfor Ġlocal Ġtypes Ġare Ġnot Ġneeded Ġsince Ġall Ġusage s Ġare Ġcompiled Ġwith Ġthe Ġtype ĊĠĠĠ Ġif Ġ( get Scope Kind ( scope Descriptor ) Ġ!= Ġnull Ġ&& Ġ! Descriptor Utils . is Local ( type Descriptor )) Ġ{ ĊĠĠĠĠĠĠĠ Ġrecord ( Kotlin Lookup Location ( expression ), Ġscope Descriptor , Ġtype Descriptor . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfor Ġ( type Argument Ġin Ġtype . arguments ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! type Argument . is Star Projection ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecord ( expression , Ġtype Argument . type ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ