package Ġru . spb stu Ċ Ċ import Ġkotlin . reflect . K Class Ċ Ċ interface ĠM ixin < out ĠSelf > Ġ{ ĊĠĠĠ Ġval Ġself : ĠSelf Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠD , Ġre ified ĠM : ĠM ixin < D >> Ġmixin ( k class : ĠK Class < M >): ĠD Ġ= ĊĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ Ġnot Ġvalid Ġkotlin , Ġbut Ġroughly Ġequivalent Ġto , Ġgiven Ġdelegate e Ġclass ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠD Ġby Ġthis @ delegate e , ĠM () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġself Ġ= Ġthis @ delegate e ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġfor Ġeach Ġmember Ġof ĠM Ġoverriding ĠD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġf () Ġ= Ġsuper < M >. f () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġthrow ĠIllegalStateException (" mixin () Ġshould Ġnever Ġbe Ġcalled , Ġplease Ġconfigure Ġyour Ġplugin Ġcorrectly ") Ċ inline Ġfun Ġ< re ified ĠM : ĠM ixin <* >> Ġmixin (): ĠM Ġ= Ġmixin < Any ?, ĠM >( M :: class ) Ġas ĠM Ċ