/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 0 Ġ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 . ir . backend . js . lower Ċ Ċ import Ġorg . jetbrains . kotlin . backend . common . Scope With Ir Ċ import Ġorg . jetbrains . kotlin . backend . common . lower . Single Abstract Method Lower ing Ċ import Ġorg . jetbrains . kotlin . descriptors . Vis ibilities Ċ import Ġorg . jetbrains . kotlin . descriptors . Visibility Ċ import Ġorg . jetbrains . kotlin . ir . backend . js . Js Ir Backend Context Ċ import Ġorg . jetbrains . kotlin . ir . expressions . Ir Type Operator Call Ċ import Ġorg . jetbrains . kotlin . ir . types . Ir Type Ċ import Ġorg . jetbrains . kotlin . ir . types . class OrNull Ċ import Ġorg . jetbrains . kotlin . ir . types . default Type Ċ import Ġorg . jetbrains . kotlin . ir . util . render Ċ Ċ class ĠJs Single Abstract Method Lower ing ( context : ĠJs Ir Backend Context ) Ġ: ĠSingle Abstract Method Lower ing ( context ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Wrapper Visibility ( expression : ĠIr Type Operator Call , Ġscopes : ĠList < Scope With Ir >): ĠVisibility Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠVis ibilities . PRIVATE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Super Type For Wrapper ( type Operand : ĠIr Type ): ĠIr Type Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠFE Ġdoesn 't Ġallow Ġtype Ġparameters Ġfor Ġnow . ĊĠĠĠĠĠĠĠ Ġ// ĠAnd Ġsince Ġthere Ġis Ġa Ġto - do Ġin Ġcommon ĠSingle Abstract Method Lower ing Ġ( at Ġfunction Ġvisit Type Operator ), ĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġdon 't Ġhave Ġto Ġbe Ġmore Ġs aint Ġthan Ġa Ġpo pe Ġhere . ĊĠĠĠĠĠĠĠ Ġreturn Ġtype Operand . class OrNull ?. default Type Ġ?: Ġerror (" Unsupported ĠSAM Ġconversion : Ġ${ type Operand . render () }") ĊĠĠĠ Ġ} Ċ }