/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . Ġ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 . analyze Ċ import Ġorg . jetbrains . kotlin . idea . project . platform Ċ import Ġorg . jetbrains . kotlin . js . resolve . Js Platform Ċ import Ġorg . jetbrains . kotlin . lexer . Kt Tokens Ċ import Ġorg . jetbrains . kotlin . psi . Kt Binary Expression WithType RHS Ċ import Ġorg . jetbrains . kotlin . psi . Kt Psi Factory Ċ import Ġorg . jetbrains . kotlin . psi . create Expression By Pattern Ċ import Ġorg . jetbrains . kotlin . resolve . Binding Context Ċ import Ġorg . jetbrains . kotlin . resolve . lazy . Body Resolve Mode Ċ import Ġorg . jetbrains . kotlin . types . Type Utils Ċ Ċ class ĠConvert Unsafe Cast To Unsafe Cast Call Int ention Ġ: ĠSelf Target ing Int ention < Kt Binary Expression WithType RHS >( ĊĠĠĠ ĠK t Binary Expression WithType RHS :: class . java , Ġ" Convert Ġto Ġunsafe Cast () Ġcall " Ċ ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġis Applicable To ( element : ĠK t Binary Expression WithType RHS , Ġcaret Offset : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( element . platform Ġ!= ĠJs Platform ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( element . operation Reference . get Referenced Name ElementType () Ġ!= ĠK t Tokens . AS _ KEYWORD ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġelement . right Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġright . analyze ( Body Resolve Mode . PAR TIAL ) ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġcontext [ Binding Context . TYPE , Ġright ] Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( Type Utils . is Nullable Type ( type )) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Convert Ġto Ġ'${ element . left . text }. unsafe Cast < ${ right . text }> () '" ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapply To ( element : ĠK t Binary Expression WithType RHS , Ġeditor : ĠEditor ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġelement . right Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġnew Expression Ġ= ĠK t Psi Factory ( element ). create Expression By Pattern ("$ 0 . unsafe Cast <$ 1 >() ", Ġelement . left , Ġright ) ĊĠĠĠĠĠĠĠ Ġelement . replace ( new Expression ) ĊĠĠĠ Ġ} Ċ Ċ }