/* Ċ Ġ* Ġ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 . psi Ċ Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġorg . jetbrains . kotlin . psi . stubs . Kotlin Place Holder Stub Ċ import Ġorg . jetbrains . kotlin . psi . stubs . elements . Kt Stub Element Types Ċ Ċ public Ġclass ĠK t Secondary Constructor Ġ: ĠK t Constructor < Kt Secondary Constructor > Ġ{ ĊĠĠĠ Ġpublic Ġconstructor ( node : ĠAST Node ) Ġ: Ġsuper ( node ) ĊĠĠĠ Ġpublic Ġconstructor ( stub : ĠKotlin Place Holder Stub < Kt Secondary Constructor >) Ġ: Ġsuper ( stub , ĠK t Stub Element Types . SECOND ARY _ CON STRUCTOR ) ĊĊĠĠĠ Ġoverride Ġfun Ġ< R , ĠD > Ġaccept ( visitor : ĠK t Visitor < R , ĠD >, Ġdata : ĠD ) Ġ= Ġvisitor . visit Secondary Constructor ( this , Ġdata ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Containing Class Or Object () Ġ= ĠgetParent (). getParent () Ġas ĠK t Class Or Object ĊĊĠĠĠ Ġoverride Ġfun Ġget Body Expression () Ġ= Ġfind Child By Class ( java Class < Kt Block Expression >()) ĊĊĠĠĠ Ġoverride Ġfun Ġget Constructor Keyword () Ġ= Ġnot Null Child < Psi Element >( super . get Constructor Keyword ()) ĊĊĠĠĠ Ġpublic Ġfun Ġget Deleg ation Call (): ĠK t Constructor Deleg ation Call Ġ= Ġfind NotNull Child By Class ( java Class < Kt Constructor Deleg ation Call >()) ĊĊĠĠĠ Ġpublic Ġfun Ġhas Implicit Deleg ation Call (): ĠBoolean Ġ= Ġget Deleg ation Call (). is Implicit () ĊĊĠĠĠ Ġpublic Ġfun Ġreplace Implicit Deleg ation Call With Explicit ( is This : ĠBoolean ): ĠK t Constructor Deleg ation Call Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpsi Factory Ġ= ĠK t Psi Factory ( getProject ()) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġget Deleg ation Call () ĊĊĠĠĠĠĠĠĠ Ġassert ( current . is Implicit ()) Ġ{ Ġ" Method Ġshould Ġnot Ġbe Ġcalled Ġwith Ġexplicit Ġdeleg ation Ġcall : Ġ" Ġ+ ĠgetText () Ġ} ĊĠĠĠĠĠĠĠ Ġcurrent . delete () ĊĊĠĠĠĠĠĠĠ Ġval Ġcolon Ġ= Ġadd After ( psi Factory . create Colon (), ĠgetValue Parameter List ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġdeleg ation Name Ġ= Ġif Ġ( is This ) Ġ" this " Ġelse Ġ" super " ĊĊĠĠĠĠĠĠĠ Ġreturn Ġadd After ( psi Factory . create Constructor Deleg ation Call ( deleg ation Name Ġ+ Ġ" () "), Ġcolon ) Ġas ĠK t Constructor Deleg ation Call ĊĠĠĠ Ġ} Ċ } Ċ