/* Ċ Ġ* ĠCopyright Ġ 2 0 0 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 . idea . intent ions Ċ Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġorg . jetbrains . kotlin . idea . cache s . resolve . resolve To Call Ċ import Ġorg . jetbrains . kotlin . idea . project . platform Ċ import Ġorg . jetbrains . kotlin . psi . Kt Call Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt Dot Qualified Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt Psi Factory Ċ import Ġorg . jetbrains . kotlin . psi . create Expression By Pattern Ċ import Ġorg . jetbrains . kotlin . resolve . descriptor Util . fq Name OrNull Ċ import Ġorg . jetbrains . kotlin . platform . js . is Js Ċ Ċ class ĠConvert Unsafe Cast Call To Unsafe Cast Int ention Ġ: ĠSelf Target ing Int ention < Kt Dot Qualified Expression >( ĊĠĠĠ ĠK t Dot Qualified Expression :: class . java , Ġ" Convert Ġto Ġunsafe Ġcast " Ċ ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġis Applicable To ( element : ĠK t Dot Qualified Expression , Ġcaret Offset : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! element . platform . is Js ()) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(( element . selector Expression Ġas ? ĠK t Call Expression )?. callee Expression ?. text Ġ!= Ġ" unsafe Cast ") Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġfq Name Ġ= Ġelement . resolve To Call ()?. result ing Descriptor ?. fq Name OrNull ()?. asString () Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( fq Name Ġ!= Ġ" kotlin . js . unsafe Cast ") Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġelement . call Expression ?. type Arguments ?. single OrNull () Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Convert Ġto Ġ'${ element . receiver Expression . text } Ġas Ġ${ type . text } '" ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapply To ( element : ĠK t Dot Qualified Expression , Ġeditor : ĠEditor ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġelement . call Expression ?. type Arguments ?. single OrNull () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġnew Expression Ġ= ĠK t Psi Factory ( element ). create Expression By Pattern ("$ 0 Ġas Ġ$ 1 ", Ġelement . receiver Expression , Ġtype . text ) ĊĠĠĠĠĠĠĠ Ġelement . replace ( new Expression ) ĊĠĠĠ Ġ} Ċ Ċ }