/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 6 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . idea . quick fix Ċ Ċ import Ġcom . intellij . code Insight . int ention . Int ention Action Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġorg . jetbrains . kotlin . builtins . get ReturnType From FunctionType Ċ import Ġorg . jetbrains . kotlin . builtins . is Extension FunctionType Ċ import Ġorg . jetbrains . kotlin . diagnostics . Diagnostic Ċ import Ġorg . jetbrains . kotlin . diagnostics . Errors Ċ import Ġorg . jetbrains . kotlin . idea . Kotlin Bundle Ċ import Ġorg . jetbrains . kotlin . idea . cache s . resolve . analyze Ċ import Ġorg . jetbrains . kotlin . idea . core . Short en References Ċ import Ġorg . jetbrains . kotlin . idea . core . re placed Ċ import Ġorg . jetbrains . kotlin . idea . util . Ide Descriptor Render ers Ċ import Ġorg . jetbrains . kotlin . psi . Kt File Ċ import Ġorg . jetbrains . kotlin . psi . Kt Psi Factory Ċ import Ġorg . jetbrains . kotlin . psi . Kt Type Reference Ċ import Ġorg . jetbrains . kotlin . renderer . Descriptor Renderer Ċ import Ġorg . jetbrains . kotlin . resolve . Binding Context Ċ import Ġorg . jetbrains . kotlin . resolve . lazy . Body Resolve Mode Ċ import Ġorg . jetbrains . kotlin . types . Kotlin Type Ċ Ċ class ĠConvert Extension To FunctionType Fix ( element : ĠK t Type Reference , Ġtype : ĠKotlin Type ) Ġ: ĠKotlin Quick Fix Action < Kt Type Reference >( element ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtarget TypeString Short Ġ= Ġtype . render Type ( Ide Descriptor Render ers . SOURCE _ CODE _ SHORT _ NAMES _ NO _ AN NOT ATIONS ) ĊĠĠĠ Ġprivate Ġval Ġtarget TypeString Long Ġ= Ġtype . render Type ( Ide Descriptor Render ers . SOURCE _ CODE ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetText () Ġ= ĠKotlin Bundle . message (" convert . sup ertype . to . 0 ", Ġtarget TypeString Short ) ĊĠĠĠ Ġoverride Ġfun Ġget Family Name () Ġ= ĠKotlin Bundle . message (" convert . extension . function . type . to . regular . function . type ") ĊĊĠĠĠ Ġoverride Ġfun Ġinvoke ( project : ĠProject , Ġeditor : ĠEditor ?, Ġfile : ĠK t File ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġelement Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġreplaced Ġ= Ġelement . re placed ( Kt Psi Factory ( project ). create Type ( target TypeString Long )) ĊĠĠĠĠĠĠĠ ĠShort en References . DEFAULT . process ( re placed ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠKotlin Type . render Type ( renderer : ĠDescriptor Renderer ) Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠ Ġappend (' (' ) ĊĠĠĠĠĠĠĠ Ġarguments . drop Last ( 1 ). join To ( this @ build String , Ġ", Ġ") Ġ{ Ġrenderer . render Type ( it . type ) Ġ} ĊĠĠĠĠĠĠĠ Ġappend (" ) Ġ-> Ġ") ĊĠĠĠĠĠĠĠ Ġappend ( renderer . render Type ( this @ render Type . get ReturnType From FunctionType ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject ĠFactory Ġ: ĠKotlin Int ention Actions Factory () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo Create Actions ( diagnostic : ĠDiagnostic ): ĠList < Int ention Action > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcast ed Ġ= ĠErrors . SUPER TYPE _ IS _ EXTENSION _ FUNCTION _ TYPE . cast ( diagnostic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġcast ed . psi Element ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġelement . analyze ( Body Resolve Mode . PAR TIAL ). get ( Binding Context . TYPE , Ġelement ) Ġ?: Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! type . is Extension FunctionType ) Ġreturn Ġempty List () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Convert Extension To FunctionType Fix ( element , Ġtype )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ