/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 7 Ġ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 Ġkotlin Ċ Ċ /** Ċ Ġ* ĠAn Ġexception Ġis Ġthrown Ġto Ġindicate Ġthat Ġa Ġmethod Ġbody Ġremains Ġto Ġbe Ġimplemented . Ċ Ġ*/ Ċ public Ġclass ĠNotImplementedError ( message : ĠString ) Ġ: ĠError ( message ) Ċ Ċ /** Ċ Ġ* ĠAlways Ġthrows Ġ[ NotImplemented Error ] Ġst ating Ġthat Ġoperation Ġis Ġnot Ġimplemented . Ċ Ġ*/ Ċ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun ĠTODO (): ĠNothing Ġ= Ġthrow ĠNotImplementedError (" An Ġoperation Ġis Ġnot Ġimplemented .") Ċ Ċ /** Ċ Ġ* ĠAlways Ġthrows Ġ[ NotImplemented Error ] Ġst ating Ġthat Ġoperation Ġis Ġnot Ġimplemented . Ċ Ġ* Ċ Ġ* Ġ@ param Ġreason Ġa Ġstring Ġexplaining Ġwhy Ġthe Ġimplementation Ġis Ġmissing . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun ĠTODO ( reason : ĠString ): ĠNothing Ġ= Ġthrow ĠNotImplementedError (" An Ġoperation Ġis Ġnot Ġimplemented : Ġ$ reason ") ĊĊ Ċ /** Ċ Ġ* ĠCalls Ġthe Ġspecified Ġfunction Ġ[ block ] Ġand Ġreturns Ġits Ġresult . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun Ġ< R > Ġrun ( block : Ġ() Ġ-> ĠR ): ĠR Ġ= Ġblock () Ċ Ċ /** Ċ Ġ* ĠCalls Ġthe Ġspecified Ġfunction Ġ[ block ] Ġwith Ġ` this ` Ġvalue Ġas Ġits Ġreceiver Ġand Ġreturns Ġits Ġresult . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun Ġ< T , ĠR > ĠT . run ( block : ĠT . () Ġ-> ĠR ): ĠR Ġ= Ġblock () Ċ Ċ /** Ċ Ġ* ĠCalls Ġthe Ġspecified Ġfunction Ġ[ block ] Ġwith Ġthe Ġgiven Ġ[ receiver ] Ġas Ġits Ġreceiver Ġand Ġreturns Ġits Ġresult . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun Ġ< T , ĠR > Ġwith ( receiver : ĠT , Ġblock : ĠT . () Ġ-> ĠR ): ĠR Ġ= Ġreceiver . block () Ċ Ċ /** Ċ Ġ* ĠCalls Ġthe Ġspecified Ġfunction Ġ[ block ] Ġwith Ġ` this ` Ġvalue Ġas Ġits Ġreceiver Ġand Ġreturns Ġ` this ` Ġvalue . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun Ġ< T > ĠT . apply ( block : ĠT . () Ġ-> ĠUnit ): ĠT Ġ{ Ġblock (); Ġreturn Ġthis Ġ} Ċ Ċ /** Ċ Ġ* ĠCalls Ġthe Ġspecified Ġfunction Ġ[ block ] Ġwith Ġ` this ` Ġvalue Ġas Ġits Ġargument Ġand Ġreturns Ġ` this ` Ġvalue . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ @ Since Kotlin (" 1 . 1 ") Ċ public Ġinline Ġfun Ġ< T > ĠT . also ( block : Ġ( T ) Ġ-> ĠUnit ): ĠT Ġ{ Ġblock ( this ); Ġreturn Ġthis Ġ} Ċ Ċ /** Ċ Ġ* ĠCalls Ġthe Ġspecified Ġfunction Ġ[ block ] Ġwith Ġ` this ` Ġvalue Ġas Ġits Ġargument Ġand Ġreturns Ġits Ġresult . Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun Ġ< T , ĠR > ĠT . let ( block : Ġ( T ) Ġ-> ĠR ): ĠR Ġ= Ġblock ( this ) Ċ Ċ /** Ċ Ġ* ĠExec utes Ġthe Ġgiven Ġfunction Ġ[ action ] Ġspecified Ġnumber Ġof Ġ[ times ]. Ċ Ġ* Ċ Ġ* ĠA Ġzero - based Ġindex Ġof Ġcurrent Ġiteration Ġis Ġpassed Ġas Ġa Ġparameter Ġto Ġ[ action ]. Ċ Ġ*/ Ċ @ kotlin . internal . Inline Only Ċ public Ġinline Ġfun Ġrepeat ( times : ĠInt , Ġaction : Ġ( Int ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor Ġ( index Ġin Ġ 0 .. times Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaction ( index ) ĊĠĠĠ Ġ} Ċ }