/* Ċ Ġ* Ġ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 . merge dt ree . mer gers Ċ Ċ import Ġkotlinx . metadata . Km Property Ċ import Ġorg . jetbrains . kotlin . common izer . merge dt ree .* Ċ import Ġorg . jetbrains . kotlin . common izer . merge dt ree . C ir Target Mer ging Context Ċ import Ġorg . jetbrains . kotlin . common izer . merge dt ree . build Property Node Ċ import Ġorg . jetbrains . kotlin . common izer . metadata . C ir Deserial izers Ċ import Ġorg . jetbrains . kotlin . common izer . utils . is Fake Override Ċ Ċ internal Ġobject ĠProperty Mer ger Ġ{ ĊĠĠĠ Ġfun Ġprocess Property ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠC ir Target Mer ging Context , ĊĠĠĠĠĠĠĠ Ġowner Node : ĠC ir Node With Members < *, Ġ* >, ĊĠĠĠĠĠĠĠ Ġproperty : ĠK m Property ĊĠĠĠ Ġ) Ġ= Ġwith ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( property . is Fake Override ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġmaybe Class Owner Node : ĠC ir Class Node ? Ġ= Ġowner Node Ġas ? ĠC ir Class Node ĊĊĠĠĠĠĠĠĠ Ġval Ġapproximation Key Ġ= ĠProperty Approx imation Key ( property , Ġcontext . type Resolver ) ĊĠĠĠĠĠĠĠ Ġval Ġproperty Node : ĠC ir Property Node Ġ= Ġowner Node . properties . get Or Put ( approx imation Key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Property Node ( storage Manager , Ġtargets , Ġclassifiers , Ġmaybe Class Owner Node ?. common Declaration ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġproperty Node . target Declarations [ context . target Index ] Ġ= ĠC ir Deserial izers . property ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġapproximation Key . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġproperty , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontaining Class Ġ= Ġmaybe Class Owner Node ?. target Declarations ?. get ( context . target Index ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Resolver Ġ= Ġcontext . type Resolver ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ