/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 5 Ġ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 . refactor ing . change Signature Ċ Ċ import Ġcom . intellij . code Insight . Target Element Util Ċ import Ġcom . intellij . code Insight . Target Element Util . ELEMENT _ NAME _ ACCEPT ED Ċ import Ġcom . intellij . code Insight . Target Element Util . REFER ENC ED _ ELEMENT _ ACCEPT ED Ċ import Ġcom . intellij . openapi . util . text . StringUtil Ċ import Ġcom . intellij . psi .* Ċ import Ġcom . intellij . psi . impl . java . stubs . index . Java Full ClassName Index Ċ import Ġcom . intellij . refactor ing . Base Ref actor ing Processor Ċ import Ġcom . intellij . refactor ing . change Signature . Change Signature Processor Ċ import Ġcom . intellij . refactor ing . change Signature . Parameter Info Impl Ċ import Ġcom . intellij . refactor ing . util . Canonical Types Ċ import Ġcom . intellij . refactor ing . util . Common Ref actor ing Util Ċ import Ġcom . intellij . test Framework . Light Project Descriptor Ċ import Ġcom . intellij . test Framework . Use ful TestCase Ċ import Ġcom . intellij . util . Visibility Util Ċ import Ġjunit . framework . Comparison Failure Ċ import Ġjunit . framework . TestCase Ċ import Ġorg . jetbrains . kotlin . as Java . get Represent ative Light Method Ċ import Ġorg . jetbrains . kotlin . as Java . to Light Methods Ċ import Ġorg . jetbrains . kotlin . builtins . Default Built Ins Ċ import Ġorg . jetbrains . kotlin . descriptors . Vis ibilities Ċ import Ġorg . jetbrains . kotlin . idea . cache s . resolve . analyze Ċ import Ġorg . jetbrains . kotlin . idea . refactor ing . change Signature . ui . Kotlin Method Node Ċ import Ġorg . jetbrains . kotlin . idea . refactor ing . change Signature . ui . Kotlin Change Signature Dialog . Companion . getType Info Ċ import Ġorg . jetbrains . kotlin . idea . refactor ing . change Signature . ui . Kotlin Change Signature Dialog . Companion . getType Code Fragment Context Ċ import Ġorg . jetbrains . kotlin . idea . search . all Scope Ċ import Ġorg . jetbrains . kotlin . idea . stub index . Kotlin Full ClassName Index Ċ import Ġorg . jetbrains . kotlin . idea . stub index . Kotlin TopLevel Function F qn Name Index Ċ import Ġorg . jetbrains . kotlin . idea . test . Directive Based Action Utils Ċ import Ġorg . jetbrains . kotlin . idea . test . Kotlin Light Code Insight Fixture TestCase Ċ import Ġorg . jetbrains . kotlin . idea . test . Kotlin With J dk And Runtime Light Project Descriptor Ċ import Ġorg . jetbrains . kotlin . idea . test . Plugin TestCase Base Ċ import Ġorg . jetbrains . kotlin . psi . Kt Element Ċ import Ġorg . jetbrains . kotlin . psi . Kt File Ċ import Ġorg . jetbrains . kotlin . psi . Kt Named Function Ċ import Ġorg . jetbrains . kotlin . psi . Kt Psi Factory Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . get Non Strict Parent OfType Ċ import Ġorg . jetbrains . kotlin . resolve . lazy . Body Resolve Mode Ċ import Ġorg . jetbrains . kotlin . test . In Text Directives Utils Ċ import Ġorg . jetbrains . kotlin . test . Kotlin TestUtils Ċ import Ġorg . jetbrains . kotlin . types . type Util . make Nullable Ċ import Ġorg . jetbrains . kotlin . utils . sure Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ Ċ class ĠKotlin Change Signature Test Ġ: ĠKotlin Light Code Insight Fixture TestCase () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġval ĠBU IL T _ INS Ġ= ĠDefault Built Ins . Instance ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠEXT ENSION S Ġ= ĠarrayOf (". kt ", Ġ". java ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget TestData Path () Ġ= ĠFile ( Plugin TestCase Base . get TestData Path Base (), Ġ"/ refactor ing / change Signature "). path Ġ+ ĠFile . separator ĊĊĠĠĠ Ġoverride Ġfun Ġget Project Descriptor (): ĠLight Project Descriptor Ġ= ĠKotlin With J dk And Runtime Light Project Descriptor . INSTANCE ĊĊĠĠĠ Ġoverride Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġfiles Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġpsi Files Ġ= ĠPsi File . EMPTY _ ARRAY ĊĠĠĠĠĠĠĠ Ġsuper . te ar Down () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġfiles : ĠList < String > ĊĠĠĠ Ġlateinit Ġvar Ġpsi Files : ĠArray < Psi File > ĊĊĠĠĠ Ġprivate Ġfun Ġfind Call ers ( method : ĠPsi Method ): ĠLinked HashSet < Psi Method > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= ĠKotlin Method Node ( method , ĠHashSet (), Ġproject , ĠRunnable Ġ{ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġ( 0 .. root . child Count Ġ- Ġ 1 ). flatMap To ( Linked HashSet < Psi Method >()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( root . getChild At ( it ) Ġas ĠKotlin Method Node ). method . to Light Methods () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Files () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile List Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġindex Loop @ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( extension Ġin ĠEXT ENSION S ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextra FileName Ġ= Ġget Test Name ( false ) Ġ+ Ġ" Before " Ġ+ Ġ( if Ġ( i Ġ> Ġ 0 ) Ġ"." Ġ+ Ġi Ġelse Ġ"") Ġ+ Ġextension ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextra File Ġ= ĠFile ( testData Path Ġ+ Ġextra FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( extra File . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile List . add ( extra FileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue @ index Loop ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpsi Files Ġ= Ġmy Fixture . configure By Files (* file List . to Typed Array ()) ĊĠĠĠĠĠĠĠ Ġfiles Ġ= Ġfile List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Change Info (): ĠKotlin Change Info Ġ{ ĊĠĠĠĠĠĠĠ Ġconfigure Files () ĊĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġ( Kotlin Change Signature Handler (). find Target Member ( file , Ġeditor ) Ġas ĠK t Element ?). sure Ġ{ Ġ" Target Ġelement Ġis Ġnull " Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findElement At ( editor . caret Model . offset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . get Non Strict Parent OfType < Kt Element >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sure Ġ{ Ġ" Context Ġelement Ġis Ġnull " Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbinding Context Ġ= Ġelement . analyze ( Body Resolve Mode . FULL ) ĊĠĠĠĠĠĠĠ Ġval Ġcallable Descriptor Ġ= ĠKotlin Change Signature Handler ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Descriptor ( element , Ġproject , Ġeditor , Ġbinding Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sure Ġ{ Ġ" Target Ġdescriptor Ġis Ġnull " Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate Change Info ( project , Ġcallable Descriptor , ĠKotlin Change Signature Configuration . Empty , Ġcontext ) !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Test ( configure : ĠKotlin Change Info . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠ ĠKotlin Change Signature Processor ( project , Ġcreate Change Info (). apply Ġ{ Ġconfigure () Ġ}, Ġ" Change Ġsignature "). run () ĊĊĠĠĠĠĠĠĠ Ġcompare Editor sWith Expected Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrun And Check Conflict s ( test Action : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Action () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestCase . fail (" No Ġconflicts Ġfound ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Ġis ĠBase Ref actor ing Processor . Conflict s In Tests Exception Ġ-> ĠString Util . join ( e . messages . sorted (), Ġ"\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Ġis ĠCommon Ref actor ing Util . Ref actor ing Error Hint Exception Ġ-> Ġe . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Ġis ĠRuntimeException Ġ&& Ġe . message !!. startsWith (" Ref actor ing Ġcannot Ġbe Ġperformed ") Ġ-> Ġe . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconflicts File Ġ= ĠFile ( testData Path Ġ+ Ġget Test Name ( false ) Ġ+ Ġ" Messages . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUseful TestCase . assertSame Lines With File ( conflict s File . absolute Path , Ġmessage !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Test Conflict ( configure : ĠKotlin Change Info . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= Ġrun And Check Conflict s Ġ{ Ġdo Test ( configure ) Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Test Un modifiable ( configure : ĠKotlin Change Info . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Test ( configure ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestCase . fail (" No Ġconflicts Ġfound ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( e . message Ġ?: Ġ""). contains (" Cannot Ġmodify Ġfile ")) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Ġis ĠBase Ref actor ing Processor . Conflict s In Tests Exception Ġ-> ĠString Util . join ( e . messages . sorted (), Ġ"\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Ġis ĠCommon Ref actor ing Util . Ref actor ing Error Hint Exception Ġ-> Ġe . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . message !!. startsWith (" Ref actor ing Ġcannot Ġbe Ġperformed ") Ġ-> Ġe . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconflicts File Ġ= ĠFile ( testData Path Ġ+ Ġget Test Name ( false ) Ġ+ Ġ" Messages . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUseful TestCase . assertSame Lines With File ( conflict s File . absolute Path , Ġmessage !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠJava Ref actor ing Configuration ( val Ġmethod : ĠPsi Method ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġmethod . project ĊĊĠĠĠĠĠĠĠ Ġvar ĠnewName Ġ= Ġmethod . name ĊĠĠĠĠĠĠĠ Ġvar Ġnew ReturnType Ġ= Ġmethod . returnType Ġ?: ĠPsi Type . VOID ĊĠĠĠĠĠĠĠ Ġval Ġnew Parameters Ġ= ĠArrayList < Parameter Info Impl >() ĊĠĠĠĠĠĠĠ Ġval Ġparameter Propagation Targets Ġ= ĠLinked HashSet < Psi Method >() ĊĊĠĠĠĠĠĠĠ Ġval Ġpsi Factory : ĠPsi Element Factory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠJava Psi Facade . getInstance ( project ). element Factory ĊĊĠĠĠĠĠĠĠ Ġval Ġobject Psi Type : ĠPsi Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠPsi Type . get Java Lang Object ( method . manager , Ġproject . all Scope ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġstring Psi Type : ĠPsi Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠPsi Type . get Java Lang String ( method . manager , Ġproject . all Scope ()) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod . parameter List . parameters ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Index () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map To ( new Parameters ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( i , Ġparam ) Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParameter Info Impl ( i , Ġparam . name , Ġparam . type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate Processor (): ĠChange Signature Processor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠChange Signature Processor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVisibility Util . get Visibility Modifier ( method . modifier List ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnewName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCan onical Types . create Type Wrapper ( new ReturnType ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Parameters . to Typed Array (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter Propagation Targets , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Set < Psi Method >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Java Test ( configure : ĠJava Ref actor ing Configuration . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconfigure Files () ĊĊĠĠĠĠĠĠĠ Ġval Ġtarget Element Ġ= ĠTarget Element Util . find Target Element ( editor , ĠELEMENT _ NAME _ ACCEPT ED Ġor ĠREFER ENC ED _ ELEMENT _ ACCEPT ED ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Method Ġ= Ġ( target Element Ġas ? ĠPsi Method ). sure Ġ{ Ġ"< caret > Ġis Ġnot Ġon Ġmethod Ġname " Ġ} ĊĊĠĠĠĠĠĠĠ ĠJava Ref actor ing Configuration ( target Method ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġconfigure () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Processor () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. run () ĊĊĠĠĠĠĠĠĠ Ġcompare Editor sWith Expected Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Java Test Conflict ( configure : ĠJava Ref actor ing Configuration . () Ġ-> ĠUnit ) Ġ= Ġrun And Check Conflict s Ġ{ Ġdo Java Test ( configure ) Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcompare Editor sWith Expected Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// no inspection ĠConstant Conditions ĊĠĠĠĠĠĠĠ Ġval Ġcheck Errors After Ġ= ĠIn Text Directives Utils . is Directive Defined ( file !!. text , Ġ"// ĠCHECK _ ERRORS _ AFTER ") ĊĠĠĠĠĠĠĠ Ġfor Ġ(( file , Ġpsi File ) Ġin Ġfiles Ġzip Ġpsi Files ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġafter FilePath Ġ= Ġfile . replace (" Before .", Ġ" After .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Fixture . check Result By File ( file , Ġafter FilePath , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠComparison Failure ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TestUtils . assertEquals ToFile ( File ( testData Path Ġ+ Ġafter FilePath ), Ġpsi File . text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( check Errors After Ġ&& Ġpsi File Ġis ĠK t File ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirective Based Action Utils . check For Unexpected Errors ( psi File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠKotlin Change Info . swap Parameters ( i : ĠInt , Ġj : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Parameters Ġ= Ġnew Parameters ĊĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġnew Parameters [ i ] ĊĠĠĠĠĠĠĠ Ġset New Parameter ( i , Ġnew Parameters [ j ]) ĊĠĠĠĠĠĠĠ Ġset New Parameter ( j , Ġtemp ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠKotlin Change Info . resolve Type ( text : ĠString , Ġis Co variant : ĠBoolean , Ġfor Preview : ĠBoolean ): ĠKotlin TypeInfo Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcode Fragment Ġ= ĠK t Psi Factory ( project ). create TypeCode Fragment ( text , ĠgetType Code Fragment Context ( context )) ĊĠĠĠĠĠĠĠ Ġreturn Ġcode Fragment . getType Info ( is Co variant , Ġfor Preview ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ-------------------------------- - ĠTests Ġ-------------------------------- - ĊĊĠĠĠ Ġfun Ġtest Bad Selection () Ġ{ ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By File ( getTest Name ( false ) Ġ+ Ġ" Before . kt ") ĊĠĠĠĠĠĠĠ ĠTestCase . assertNull ( Kotlin Change Signature Handler (). find Target Member ( file , Ġeditor )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Synt hesized () Ġ= Ġdo Test Conflict () ĊĊĠĠĠ Ġfun Ġtest Prefer Cont ained In Class () Ġ= ĠTestCase . assertEquals (" param ", Ġcreate Change Info (). new Parameters [ 0 ]. name ) ĊĊĠĠĠ Ġfun Ġtest Rename Function () Ġ= Ġdo Test Ġ{ ĠnewName Ġ= Ġ" after " Ġ} ĊĊĠĠĠ Ġfun Ġtest Change ReturnType () Ġ= Ġdo Test Ġ{ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , ĠBU IL T _ INS . float Type ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Add ReturnType () Ġ= Ġdo Test Ġ{ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , ĠBU IL T _ INS . float Type ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove ReturnType () Ġ= Ġdo Test Ġ{ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , ĠBU IL T _ INS . unit Type ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Change Constructor Visibility () Ġ= Ġdo Test Ġ{ Ġnew Visibility Ġ= ĠVis ibilities . PROTECT ED Ġ} ĊĊĠĠĠ Ġfun Ġtest Add Constructor Visibility () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Visibility Ġ= ĠVis ibilities . PROTECT ED ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Parameter Ġ= ĠKotlin Parameter Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallable Descriptor Ġ= Ġoriginal Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" x ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . any Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" 1 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Or Var Ġ= ĠKotlin Val Var . Val ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġadd Parameter ( new Parameter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Constructor () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Visibility Ġ= ĠVis ibilities . PUBLIC ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. val Or Var Ġ= ĠKotlin Val Var . Var ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. val Or Var Ġ= ĠKotlin Val Var . None ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 2 ]. val Or Var Ġ= ĠKotlin Val Var . Val ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ"_ x 1 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. name Ġ= Ġ"_ x 2 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 2 ]. name Ġ= Ġ"_ x 3 " ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . float Type . make Nullable ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Generic Constructor () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Visibility Ġ= ĠVis ibilities . PUBLIC ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. val Or Var Ġ= ĠKotlin Val Var . Var ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. val Or Var Ġ= ĠKotlin Val Var . None ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 2 ]. val Or Var Ġ= ĠKotlin Val Var . Val ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ"_ x 1 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. name Ġ= Ġ"_ x 2 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 2 ]. name Ġ= Ġ"_ x 3 " ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . double Type . make Nullable ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Constructor Swap Arguments () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ"_ x 1 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. name Ġ= Ġ"_ x 2 " ĊĊĠĠĠĠĠĠĠ Ġswap Parameters ( 0 , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Functions () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Visibility Ġ= ĠVis ibilities . PUBLIC ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ"_ x 1 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. name Ġ= Ġ"_ x 2 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 2 ]. name Ġ= Ġ"_ x 3 " ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . float Type . make Nullable ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Generic Functions () Ġ= Ġdo Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Visibility Ġ= ĠVis ibilities . PUBLIC ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ"_ x 1 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. name Ġ= Ġ"_ x 2 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 2 ]. name Ġ= Ġ"_ x 3 " ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . double Type . make Nullable ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Expression Function () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ" x 1 " ĊĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" y 1 ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Functions Add Remove Arguments () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Visibility Ġ= ĠVis ibilities . INTERNAL ĊĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" null ") ĊĠĠĠĠĠĠĠ Ġval Ġnew Parameters Ġ= Ġnew Parameters ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 2 , Ġnew Parameters [ 1 ]) ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 1 , Ġnew Parameters [ 0 ]) ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 0 , ĠKotlin Parameter Info ( original Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" x 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . nullable Any Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue For Call )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Fake Override () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" i ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Function Literal () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. name Ġ= Ġ" y 1 " ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" x ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . any Type ))) ĊĊĠĠĠĠĠĠĠ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , ĠBU IL T _ INS . int Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Var args () Ġ= Ġdo Test Conflict () ĊĊĠĠĠ Ġfun Ġtest Un modifiable From Library () Ġ= Ġdo Test Un modifiable () ĊĊĠĠĠ Ġfun Ġtest Un modifiable From Built ins () Ġ= Ġdo Test Un modifiable () ĊĊĠĠĠ Ġfun Ġtest Inner Functions Conflict () Ġ= Ġdo Test Conflict Ġ{ ĊĠĠĠĠĠĠĠ ĠnewName Ġ= Ġ" inner 2 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ" y " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Member Functions Conflict () Ġ= Ġdo Test Conflict Ġ{ ĊĠĠĠĠĠĠĠ ĠnewName Ġ= Ġ" inner 2 " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ" y " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest TopLevel Functions Conflict () Ġ= Ġdo Test Conflict Ġ{ ĠnewName Ġ= Ġ" fun 2 " Ġ} ĊĊĠĠĠ Ġfun Ġtest Construct ors Conflict () Ġ= Ġdo Test Conflict Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ"_ x " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. name Ġ= Ġ"_ y " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 2 ]. name Ġ= Ġ"_ z " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest No Default Values In Overrides () Ġ= Ġdo Test Ġ{ Ġswap Parameters ( 0 , Ġ 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Overrides In Enum Entries () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" s ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Enum Entries Without Super Calls () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" 1 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" n ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue For Call )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Parameter Change In Overrides () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ" n " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Constructor Java Usage s () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression ("\" abc \" ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue For Call )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Function Java Usage s And Overrides Add Param () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpsi Factory Ġ= ĠK t Psi Factory ( project ) ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call 1 Ġ= Ġpsi Factory . create Expression ("\" abc \" ") ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call 2 Ġ= Ġpsi Factory . create Expression ("\" def \" ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue For Call 1 )) ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" o ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . nullable Any Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue For Call 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Function Java Usage s And Overrides Change Null ability () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type . make Nullable ()) ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 2 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . any Type ) ĊĊĠĠĠĠĠĠĠ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , ĠBU IL T _ INS . string Type . make Nullable ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Function Java Usage s And Overrides Change Types () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type . make Nullable ()) ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ) ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 2 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . long Type . make Nullable ()) ĊĊĠĠĠĠĠĠĠ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , ĠBU IL T _ INS . nullable Any Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Gener ics With Overrides () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" List < C >") ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" A ?") ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 2 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" U < B >") ĊĊĠĠĠĠĠĠĠ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , Ġnull , Ġ" U < C >? ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Add Receiver To Gener ics With Overrides () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparameter Info Ġ= Ġnew Parameters [ 0 ] ĊĠĠĠĠĠĠĠ Ġparameter Info . current TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" U < A >") ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= Ġparameter Info ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Java Method Kotlin Usage s () Ġ= Ġdo Java Test Ġ{ ĊĠĠĠĠĠĠĠ ĠnewName Ġ= Ġ" bar " ĊĠĠĠĠĠĠĠ Ġnew Parameters . remove At ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Java Constructor Kotlin Usage s () Ġ= Ġdo Java Test Ġ{ Ġnew Parameters . remove At ( 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest SAM AddTo Empty Param List () Ġ= Ġdo Java Test Ġ{ Ġnew Parameters . add ( Parameter Info Impl (- 1 , Ġ" s ", Ġstring Psi Type )) Ġ} ĊĊĠĠĠ Ġfun Ġtest SAM AddTo Singleton Param List () Ġ= Ġdo Java Test Ġ{ Ġnew Parameters . add ( 0 , ĠParameter Info Impl (- 1 , Ġ" n ", ĠPsi Type . INT )) Ġ} ĊĊĠĠĠ Ġfun Ġtest SAM AddTo Non Empty Param List () Ġ= Ġdo Java Test Ġ{ Ġnew Parameters . add ( Parameter Info Impl (- 1 , Ġ" o ", Ġobject Psi Type )) Ġ} ĊĊĠĠĠ Ġfun Ġtest SAM Remove Singleton Param List () Ġ= Ġdo Java Test Ġ{ Ġnew Parameters . clear () Ġ} ĊĊĠĠĠ Ġfun Ġtest SAM Remove Param () Ġ= Ġdo Java Test Ġ{ Ġnew Parameters . remove At ( 0 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest SAM Rename Param () Ġ= Ġdo Java Test Ġ{ Ġnew Parameters [ 0 ]. name Ġ= Ġ" p " Ġ} ĊĊĠĠĠ Ġfun Ġtest SAM Change Param Type () Ġ= Ġdo Java Test Ġ{ Ġnew Parameters [ 0 ]. setType ( object Psi Type ) Ġ} ĊĊĠĠĠ Ġfun Ġtest SAM Rename Method () Ġ= Ġdo Java Test Ġ{ ĠnewName Ġ= Ġ" bar " Ġ} ĊĊĠĠĠ Ġfun Ġtest SAM Change Method ReturnType () Ġ= Ġdo Java Test Ġ{ Ġnew ReturnType Ġ= Ġobject Psi Type Ġ} ĊĊĠĠĠ Ġfun Ġtest Gener ics With SAM Construct ors () Ġ= Ġdo Java Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. setType ( psi Factory . create Type FromText (" java . util . List < X < B >> ", Ġmethod . parameter List )) ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 1 ]. setType ( psi Factory . create Type FromText (" X < java . util . Set < A >> ", Ġmethod . parameter List )) ĊĊĠĠĠĠĠĠĠ Ġnew ReturnType Ġ= Ġpsi Factory . create Type FromText (" X < java . util . List < A >> ", Ġmethod ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Function Rename Java Usage s () Ġ= Ġdo Test Ġ{ ĠnewName Ġ= Ġ" bar " Ġ} ĊĊĠĠĠ Ġfun Ġtest Parameter Modifiers () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Fq Name Short ening () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Parameter Ġ= ĠKotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" s ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . any Type )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" kotlin . String ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Parameter ( new Parameter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Object Member () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 0 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Parameter List Add Param () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" l ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . long Type ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Parameter List Remove Param () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( getNew Parameters Count () Ġ- Ġ 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Parameter List RemoveAll Params () Ġ= Ġdo Test Ġ{ Ġclear Parameters () Ġ} ĊĊĠĠĠ Ġfun Ġtest AddNew Receiver () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" X ( 0 )") ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= ĠKotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ"_ ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . any Type ), Ġnull , ĠdefaultValue For Call ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġcurrent TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" X ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest AddNew Receiver For Member () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" X ( 0 )") ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= ĠKotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ"_ ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . any Type ), Ġnull , ĠdefaultValue For Call ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġcurrent TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" X ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest AddNew Receiver For Member Conflict () Ġ= Ġdo Test Conflict Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" X ( 0 )") ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= ĠKotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ"_ ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . any Type ), Ġnull , ĠdefaultValue For Call ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġcurrent TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" X ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest AddNew Receiver Conflict () Ġ= Ġdo Test Conflict Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" X ( 0 )") ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= ĠKotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ"_ ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . any Type ), Ġnull , ĠdefaultValue For Call ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġcurrent TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" X ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Receiver () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 0 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Receiver For Member () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 0 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Parameter To Receiver 1 () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 0 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Parameter To Receiver 2 () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 1 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Receiver To Parameter 1 () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Receiver To Parameter 2 () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Parameters Ġ= Ġnew Parameters ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 0 , Ġnew Parameters [ 1 ]) ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 1 , Ġnew Parameters [ 0 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Parameter To Receiver For Member 1 () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 0 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Parameter To Receiver For Member 2 () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 1 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Parameter To Receiver For Member Conflict () Ġ= Ġdo Test Conflict Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 0 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Receiver To Parameter For Member 1 () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Receiver To Parameter For Member 2 () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Parameters Ġ= Ġnew Parameters ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 0 , Ġnew Parameters [ 1 ]) ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 1 , Ġnew Parameters [ 0 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Receiver To Parameter WithName Cl ash () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Receiver To Parameter And Change Name () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ" abc " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Change Receiver () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 1 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Change Receiver For Member () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 1 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Change ParameterType With Import () Ġ= Ġdo Test Ġ{ Ġnew Parameters [ 0 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" a . Bar ") Ġ} ĊĊĠĠĠ Ġfun Ġtest Secondary Constructor () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression ("\" foo \" ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" s ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ), Ġnull , ĠdefaultValue For Call )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Java Constructor In Deleg ation Call () Ġ= Ġdo Java Test Ġ{ Ġnew Parameters . add ( Parameter Info Impl (- 1 , Ġ" s ", Ġstring Psi Type , Ġ"\" foo \"" )) Ġ} ĊĊĠĠĠ Ġfun Ġtest Primary Constructor By This Ref () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression ("\" foo \" ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" s ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ), Ġnull , ĠdefaultValue For Call )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Primary Constructor By Super Ref () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression ("\" foo \" ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" s ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ), Ġnull , ĠdefaultValue For Call )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Secondary Constructor By This Ref () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression ("\" foo \" ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" s ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ), Ġnull , ĠdefaultValue For Call )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Secondary Constructor By Super Ref () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression ("\" foo \" ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( method Descriptor . base Descriptor , Ġ- 1 , Ġ" s ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ), Ġnull , ĠdefaultValue For Call )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Java Constructor By Super Ref () Ġ= Ġdo Java Test Ġ{ Ġnew Parameters . add ( Parameter Info Impl (- 1 , Ġ" s ", Ġstring Psi Type , Ġ"\" foo \"" )) Ġ} ĊĊĠĠĠ Ġfun Ġtest No Conflict With Receiver Name () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" 0 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" i ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue For Call )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Parameter Before Lambda () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Move Lambda Parameter () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Parameters Ġ= Ġnew Parameters ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 1 , Ġnew Parameters [ 2 ]) ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 2 , Ġnew Parameters [ 1 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Lambda Parameter To Receiver () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 2 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Lambda Parameter () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 2 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Enum Constructor Parameter () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest RemoveAll Enum Constructor Parameters () Ġ= Ġdo Test Ġ{ Ġclear Parameters () Ġ} ĊĊĠĠĠ Ġfun Ġtest DoNot Apply Primary Signature To Secondary Calls () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Parameters Ġ= Ġnew Parameters ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 0 , Ġnew Parameters [ 1 ]) ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 1 , Ġnew Parameters [ 0 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest ConvertTo Extension And Rename () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 0 ] ĊĠĠĠĠĠĠĠ ĠnewName Ġ= Ġ" foo 1 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Rename Extension Parameter () Ġ= Ġdo Test Ġ{ Ġnew Parameters [ 1 ]. name Ġ= Ġ" b " Ġ} ĊĊĠĠĠ Ġfun Ġtest Convert Parameter To Receiver Add P are ns () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 0 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest This Replacement () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġtest Primary Constructor By Ref () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" 1 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue For Call )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Receiver To Parameter Explicit Receiver () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġtest Receiver To Parameter Implicit Re ceiv ers () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġtest Parameter To Receiver Explicit Receiver () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 0 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Parameter To Receiver Implicit Re ceiv ers () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 0 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Java Method Overrides Replace Param () Ġ= Ġdo Java Test Conflict Ġ{ ĊĠĠĠĠĠĠĠ Ġnew ReturnType Ġ= Ġstring Psi Type ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ] Ġ= ĠParameter Info Impl (- 1 , Ġ" x ", ĠPsi Type . INT , Ġ" 1 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Java Method Overrides Change Param () Ġ= Ġdo Java Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew ReturnType Ġ= Ġstring Psi Type ĊĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ" x " ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. setType ( Psi Type . INT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Change Property () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ ĠnewName Ġ= Ġ" s " ĊĠĠĠĠĠĠĠ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , ĠBU IL T _ INS . string Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Add Property Receiver Conflict () Ġ= Ġdo Test Conflict Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression ("\" \" ") ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= ĠKotlin Parameter Info ( original Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" receiver ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue For Call ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Add Property Receiver () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression ("\" \" ") ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= ĠKotlin Parameter Info ( original Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" receiver ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue For Call ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Change Property Receiver () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info !!. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Property Receiver () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġtest Add TopLevel Property Receiver () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" A () ") ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= ĠKotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" receiver ", ĠKotlin TypeInfo ( false ), Ġnull , ĠdefaultValue For Call ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġcurrent TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" test . A ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Change TopLevel Property Receiver () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info !!. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove TopLevel Property Receiver () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġtest Change Class Parameter () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ ĠnewName Ġ= Ġ" s " ĊĠĠĠĠĠĠĠ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , ĠBU IL T _ INS . string Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Parameter Propagation () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpsi Factory Ġ= ĠK t Psi Factory ( project ) ĊĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call 1 Ġ= Ġpsi Factory . create Expression (" 1 ") ĊĠĠĠĠĠĠĠ Ġval Ġnew Parameter 1 Ġ= ĠKotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false ), Ġnull , ĠdefaultValue For Call 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġcurrent TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ) Ġ} ĊĠĠĠĠĠĠĠ Ġadd Parameter ( new Parameter 1 ) ĊĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call 2 Ġ= Ġpsi Factory . create Expression ("\" abc \" ") ĊĠĠĠĠĠĠĠ Ġval Ġnew Parameter 2 Ġ= ĠKotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" s ", ĠKotlin TypeInfo ( false ), Ġnull , ĠdefaultValue For Call 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġcurrent TypeInfo Ġ= ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . string Type ) Ġ} ĊĠĠĠĠĠĠĠ Ġadd Parameter ( new Parameter 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġclass A Ġ= ĠKotlin Full ClassName Index . getInstance (). get (" A ", Ġproject , Ġproject . all Scope ()). first () ĊĠĠĠĠĠĠĠ Ġval Ġfunction Bar Ġ= Ġclass A . declarations . first Ġ{ Ġit Ġis ĠK t Named Function Ġ&& Ġit . name Ġ== Ġ" bar " Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġfunction Test Ġ= ĠKotlin TopLevel Function F qn Name Index . getInstance (). get (" test ", Ġproject , Ġproject . all Scope ()). first () ĊĊĠĠĠĠĠĠĠ Ġprimary Propagation Targets Ġ= ĠlistOf ( function Bar , Ġfunction Test ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Java Parameter Propagation () Ġ= Ġdo Java Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters . add ( Parameter Info Impl (- 1 , Ġ" n ", ĠPsi Type . INT , Ġ" 1 ")) ĊĠĠĠĠĠĠĠ Ġnew Parameters . add ( Parameter Info Impl (- 1 , Ġ" s ", Ġstring Psi Type , Ġ"\" abc \"" )) ĊĊĠĠĠĠĠĠĠ Ġval Ġclass A Ġ= ĠJava Full ClassName Index . getInstance (). get (" A ". hashCode (), Ġproject , Ġproject . all Scope ()). first Ġ{ Ġit . name Ġ== Ġ" A " Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmethod Bar Ġ= Ġclass A . methods . first Ġ{ Ġit . name Ġ== Ġ" bar " Ġ} ĊĠĠĠĠĠĠĠ Ġparameter Propagation Targets . add ( method Bar ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfunction Test Ġ= ĠKotlin TopLevel Function F qn Name Index . getInstance (). get (" test ", Ġproject , Ġproject . all Scope ()). first () ĊĠĠĠĠĠĠĠ Ġparameter Propagation Targets . add ( function Test . get Represent ative Light Method () !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Propag ate With Parameter Dup lication () Ġ= Ġdo Test Conflict Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" 1 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue For Call )) ĊĊĠĠĠĠĠĠĠ Ġprimary Propagation Targets Ġ= ĠlistOf ( Kotlin TopLevel Function F qn Name Index . getInstance (). get (" bar ", Ġproject , Ġproject . all Scope ()). first ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Propag ate With Variable Dup lication () Ġ= Ġdo Test Conflict Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" 1 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue For Call )) ĊĊĠĠĠĠĠĠĠ Ġprimary Propagation Targets Ġ= ĠlistOf ( Kotlin TopLevel Function F qn Name Index . getInstance (). get (" bar ", Ġproject , Ġproject . all Scope ()). first ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Propag ate With This Qual ification In Class Member () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" 1 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue For Call )) ĊĊĠĠĠĠĠĠĠ Ġval Ġclass A Ġ= ĠKotlin Full ClassName Index . getInstance (). get (" A ", Ġproject , Ġproject . all Scope ()). first () ĊĠĠĠĠĠĠĠ Ġval Ġfunction Bar Ġ= Ġclass A . declarations . first Ġ{ Ġit Ġis ĠK t Named Function Ġ&& Ġit . name Ġ== Ġ" bar " Ġ} ĊĠĠĠĠĠĠĠ Ġprimary Propagation Targets Ġ= ĠlistOf ( function Bar ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Propag ate With This Qual ification In Extension () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" 1 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue For Call )) ĊĊĠĠĠĠĠĠĠ Ġprimary Propagation Targets Ġ= ĠlistOf ( Kotlin TopLevel Function F qn Name Index . getInstance (). get (" bar ", Ġproject , Ġproject . all Scope ()). first ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Java Constructor Parameter Propagation () Ġ= Ġdo Java Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters . add ( Parameter Info Impl (- 1 , Ġ" n ", ĠPsi Type . INT , Ġ" 1 ")) ĊĠĠĠĠĠĠĠ Ġparameter Propagation Targets . addAll ( find Call ers ( method )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Primary Constructor Parameter Propagation () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" 1 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue For Call )) ĊĊĠĠĠĠĠĠĠ Ġprimary Propagation Targets Ġ= Ġfind Call ers ( method . get Represent ative Light Method () !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Secondary Constructor Parameter Propagation () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" 1 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue For Call )) ĊĊĠĠĠĠĠĠĠ Ġprimary Propagation Targets Ġ= Ġfind Call ers ( method . get Represent ative Light Method () !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Java Method Overrides O mit Unit Type () Ġ= Ġdo Java Test Ġ{} ĊĊĠĠĠ Ġfun Ġtest Override In Anonymous Object WithType Parameters () Ġ= Ġdo Test Ġ{ ĠnewName Ġ= Ġ" bar " Ġ} ĊĊĠĠĠ Ġfun Ġtest Make Primary Constructor Private No Params () Ġ= Ġdo Test Ġ{ Ġnew Visibility Ġ= ĠVis ibilities . PRIVATE Ġ} ĊĊĠĠĠ Ġfun Ġtest Make Primary Constructor Public () Ġ= Ġdo Test Ġ{ Ġnew Visibility Ġ= ĠVis ibilities . PUBLIC Ġ} ĊĊĠĠĠ Ġfun Ġtest Rename Extension Parameter With Named Args () Ġ= Ġdo Test Ġ{ Ġnew Parameters [ 2 ]. name Ġ= Ġ" bb " Ġ} ĊĊĠĠĠ Ġfun Ġtest Implicit This To Parameter With Changed Type () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info !!. current TypeInfo Ġ= ĠKotlin TypeInfo ( false , Ġnull , Ġ" Ol der ") ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Rename Parameter () Ġ= Ġdo Test Ġ{ Ġnew Parameters [ 0 ]. name Ġ= Ġ" aa " Ġ} ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Swap Params 1 () Ġ= Ġdo Test Ġ{ Ġswap Parameters ( 1 , Ġ 2 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Swap Params 2 () Ġ= Ġdo Test Ġ{ Ġswap Parameters ( 0 , Ġ 2 ) Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Test Jvm Over loaded Add Default ( index : ĠInt ) Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue Ġ= ĠK t Psi Factory ( project ). create Expression (" 2 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), ĠdefaultValue , ĠdefaultValue ), Ġindex ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Test Jvm Over loaded Add Non Default ( index : ĠInt ) Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue Ġ= ĠK t Psi Factory ( project ). create Expression (" 2 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" n ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue ), Ġindex ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Add Default 1 () Ġ= Ġdo Test Jvm Over loaded Add Default ( 0 ) ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Add Default 2 () Ġ= Ġdo Test Jvm Over loaded Add Default ( 1 ) ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Add Default 3 () Ġ= Ġdo Test Jvm Over loaded Add Default (- 1 ) ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Add Non Default 1 () Ġ= Ġdo Test Jvm Over loaded Add Non Default ( 0 ) ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Add Non Default 2 () Ġ= Ġdo Test Jvm Over loaded Add Non Default ( 1 ) ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Add Non Default 3 () Ġ= Ġdo Test Jvm Over loaded Add Non Default (- 1 ) ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Remove Default 1 () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 0 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Remove Default 2 () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Remove Default 3 () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( getNew Parameters Count () Ġ- Ġ 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Remove Non Default 1 () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 0 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Remove Non Default 2 () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Remove Non Default 3 () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( getNew Parameters Count () Ġ- Ġ 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Jvm Over loaded Constructor Swap Params () Ġ= Ġdo Test Ġ{ Ġswap Parameters ( 1 , Ġ 2 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Default After Lambda () Ġ= Ġdo Test Ġ{ Ġswap Parameters ( 0 , Ġ 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Default Parameter Before Lambda () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Add Parameter Keep Format () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpsi Factory Ġ= ĠK t Psi Factory ( project ) ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue 1 Ġ= Ġpsi Factory . create Expression (" 4 ") ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue 2 Ġ= Ġpsi Factory . create Expression (" 5 ") ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" d ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue 1 ), Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , Ġ- 1 , Ġ" e ", ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), Ġnull , ĠdefaultValue 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Parameter Keep Format 1 () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 0 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Parameter Keep Format 2 () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Parameter Keep Format 3 () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 2 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Swap Parameters Keep Format () Ġ= Ġdo Test Ġ{ Ġswap Parameters ( 0 , Ġ 2 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Set Error ReturnType () Ġ= Ġdo Test Ġ{ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , Ġnull , Ġ" XYZ ") Ġ} ĊĊĠĠĠ Ġfun Ġtest Set Error Receiver Type () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info !!. current TypeInfo Ġ= ĠKotlin TypeInfo ( true , Ġnull , Ġ" XYZ ") Ġ} ĊĊĠĠĠ Ġfun Ġtest Set Error ParameterType () Ġ= Ġdo Test Ġ{ Ġnew Parameters [ 1 ]. current TypeInfo Ġ= ĠKotlin TypeInfo ( true , Ġnull , Ġ" XYZ ") Ġ} ĊĊĠĠĠ Ġfun Ġtest Swap Data Class Parameters () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġswap Parameters ( 0 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġswap Parameters ( 1 , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Add Data Class Parameter () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Parameter ( Kotlin Parameter Info ( original Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" c ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t Psi Factory ( project ). create Expression (" 3 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Val Var . Val ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Data Class Parameter () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest RemoveAll Original Data Class Parameters () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpsi Factory Ġ= ĠK t Psi Factory ( project ) ĊĊĠĠĠĠĠĠĠ Ġswap Parameters ( 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġset New Parameter ( 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Parameter Info ( original Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" d ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpsi Factory . create Expression (" 4 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Val Var . Val )) ĊĊĠĠĠĠĠĠĠ Ġset New Parameter ( 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Parameter Info ( original Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" e ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . int Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpsi Factory . create Expression (" 5 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Val Var . Val )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Implicit Receiver In Recursive Call () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġreceiver Parameter Info Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġnew Parameters [ 0 ]. name Ġ= Ġ" a " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Receiver In Safe Call () Ġ= Ġdo Test Conflict Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġtest Remove Parameter Keep Other Comments () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest ReturnType Via Code Fragment () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ ĠnewName Ġ= Ġ" bar " ĊĠĠĠĠĠĠĠ Ġnew Return TypeInfo Ġ= Ġresolve Type (" A < T , ĠU >", Ġtrue , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Change ReturnType To Non Unit () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Return TypeInfo Ġ= ĠKotlin TypeInfo ( true , ĠBU IL T _ INS . int Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Invoke Convention Remove Parameter () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 0 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Invoke Convention Add Parameter () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Parameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Parameter Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" b ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . boolean Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" false ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Invoke Convention Swap Parameters () Ġ= Ġdo Test Ġ{ Ġswap Parameters ( 0 , Ġ 1 ) Ġ} ĊĊĠĠĠ Ġfun Ġtest Invoke Convention Parameter To Receiver () Ġ= Ġdo Test Conflict Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 0 ] Ġ} ĊĊĠĠĠ Ġfun Ġtest Invoke Convention Receiver To Parameter () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġtest Invoke Convention Rename To Foo () Ġ= Ġdo Test Ġ{ ĠnewName Ġ= Ġ" foo " Ġ} ĊĊĠĠĠ Ġfun Ġtest Invoke Convention Rename To Get () Ġ= Ġdo Test Ġ{ ĠnewName Ġ= Ġ" get " Ġ} ĊĊĠĠĠ Ġfun ĠtestGet Convention Remove Parameter () Ġ= Ġdo Test Ġ{ Ġremove Parameter ( 0 ) Ġ} ĊĊĠĠĠ Ġfun ĠtestGet Convention Add Parameter () Ġ= Ġdo Test Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Parameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Parameter Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Base Function Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" b ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin TypeInfo ( false , ĠBU IL T _ INS . boolean Type ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue For Call Ġ= ĠK t Psi Factory ( project ). create Expression (" false ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠtestGet Convention Swap Parameters () Ġ= Ġdo Test Ġ{ Ġswap Parameters ( 0 , Ġ 1 ) Ġ} ĊĊĠĠĠ Ġfun ĠtestGet Convention Parameter To Receiver () Ġ= Ġdo Test Conflict Ġ{ Ġreceiver Parameter Info Ġ= Ġnew Parameters [ 0 ] Ġ} ĊĊĠĠĠ Ġfun ĠtestGet Convention Receiver To Parameter () Ġ= Ġdo Test Ġ{ Ġreceiver Parameter Info Ġ= Ġnull Ġ} ĊĊĠĠĠ Ġfun ĠtestGet Convention Rename To Foo () Ġ= Ġdo Test Ġ{ ĠnewName Ġ= Ġ" foo " Ġ} ĊĊĠĠĠ Ġfun ĠtestGet Convention Rename To Invoke () Ġ= Ġdo Test Ġ{ ĠnewName Ġ= Ġ" invoke " Ġ} ĊĊĠĠĠ Ġfun Ġtest Kotlin Over riding Java With Different ParamName () Ġ= Ġdo Java Test Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Parameters . add ( Parameter Info Impl (- 1 , Ġ" n ", ĠPsi Type . INT )) ĊĠĠĠ Ġ} Ċ }