@ file : Suppress (" unused ", Ġ" NOTH ING _ TO _ INLINE ") Ċ Ċ package Ġcs ense . kotlin . extensions Ċ Ċ import Ġcs ense . kotlin .* Ċ import Ġcs ense . kotlin . extensions . primitives .* Ċ import Ġkotlin . contracts .* ĊĊ Ċ /** Ċ Ġ* ĠPerforms Ġthe Ġgiven Ġaction Ġif Ġwe Ġare Ġnull Ċ Ġ* Ġ@ receiver Ġ[ Any ]? Ġthe Ġoptional Ġvalue Ċ Ġ* Ġ@ param Ġaction Ġ[ Empty Function ] Ġthe Ġfunction Ġto Ġrun Ġif Ġthe Ġreceiver Ġis Ġnot Ġnull Ċ Ġ*/ Ċ @ Opt In ( Experimental Contracts :: class ) Ċ public Ġinline Ġfun Ġ< T > ĠT ?. if Null ( action : ĠEmpty Function ) Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġcalls In Place ( action , ĠInvocation Kind . AT _ MO ST _ ON CE ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġthis . isNull . if True ( action ) Ċ } Ċ Ċ /** Ċ Ġ* ĠPerforms Ġthe Ġgiven Ġaction , Ġif Ġwe Ġare Ġnot Ġnull Ċ Ġ* Ġ@ receiver ĠT ? Ġthe Ġoptional Ġvalue Ċ Ġ* Ġ@ param Ġaction Ġ[ Function Unit ]< T > Ġthe Ġaction Ġto Ġcall Ġif Ġthe Ġreceiver Ġis Ġnot Ġnull Ċ Ġ*/ Ċ @ Opt In ( Experimental Contracts :: class ) Ċ public Ġinline Ġfun Ġ< T > ĠT ?. if NotNull ( action : ĠFunction Unit < T >) Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġcalls In Place ( action , ĠInvocation Kind . AT _ MO ST _ ON CE ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġthis ?. let ( action ) Ċ } Ċ Ċ /** Ċ Ġ* Ġreturns Ġtrue Ġif Ġthis Ġis Ġnull Ċ Ġ*/ Ċ public Ġinline Ġval Ġ< T > ĠT ?. isNull : ĠBoolean ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġ== Ġnull ĊĠĠĠ Ġ} Ċ Ċ /** Ċ Ġ* Ġreturns Ġtrue Ġif Ġthis Ġis Ġnot Ġnull . Ċ Ġ*/ Ċ public Ġinline Ġval Ġ< T > ĠT ?. isNotNull : ĠBoolean ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġ!= Ġnull ĊĠĠĠ Ġ} Ċ