/* Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ċ Ġ* Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . rust . lang . core . psi . ext Ċ Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . search . sear ches . References Search Ċ import Ġcom . intellij . psi . util . Psi Tree Util Ċ import Ġcom . intellij . util . Query Ċ import Ġorg . rust . lang . core . psi .* Ċ import Ġorg . rust . lang . core . stubs . common . Rs Meta Item Psi Or Stub Ċ import Ġorg . rust . openapi ext . filter Is Instance Query Ċ import Ġorg . rust . openapi ext . map Query Ċ Ċ interface ĠRs Struct Or Enum Item Element Ġ: ĠRs Qualified Named Element , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRs Item Element , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRs Attr Proc Macro Owner , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRs Generic Declaration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR sType Declaration Element , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRs Name Identifier Owner Ċ Ċ val ĠRs Struct Or Enum Item Element . derived Traits : ĠCollection < Rs Trait Item > ĊĠĠĠ Ġget () Ġ= Ġderive Meta Items ĊĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġit . resolve To Derived Trait () Ġ} ĊĠĠĠĠĠĠĠ Ġ. toList () Ċ Ċ val ĠRs Struct Or Enum Item Element . derived Traits To Meta Items : ĠMap < Rs Trait Item , ĠRs Meta Item > ĊĠĠĠ Ġget () Ġ= Ġderive Meta Items ĊĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġmeta Ġ-> Ġ( meta . resolve To Derived Trait ()) ?. let Ġ{ Ġit Ġto Ġmeta Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ. toMap () Ċ Ċ val ĠRs Struct Or Enum Item Element . derive Meta Items : ĠSequence < Rs Meta Item > ĊĠĠĠ Ġget () Ġ= Ġquery Attributes . derive Meta Items Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ val Ġ< T Ġ: ĠRs Meta Item Psi Or Stub > ĠQuery Attributes < T >. derive Meta Items : ĠSequence < T > ĊĠĠĠ Ġget () Ġ= Ġderive Attributes ĊĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . meta Item Args ?. meta ItemList ?. as Sequence () Ġas ? ĠSequence < T > Ġ?: Ġempty Sequence () Ġ} Ċ Ċ val Ġ< T Ġ: ĠRs Meta Item Psi Or Stub > ĠQuery Attributes < T >. custom Der ive Meta Items : ĠSequence < T > ĊĠĠĠ Ġget () Ġ= Ġderive Meta Items . filter Ġ{ ĠRs Proc Macro Psi Util . can Be Custom Der ive Without Context Check ( it ) Ġ} Ċ Ċ val ĠRs Struct Or Enum Item Element . first Keyword : ĠPsi Element ? ĊĠĠĠ Ġget () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠRs Struct Item Ġ-> Ġvis Ġ?: Ġstruct ĊĠĠĠĠĠĠĠ Ġis ĠRs Enum Item Ġ-> Ġvis Ġ?: Ġenum ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} Ċ Ċ fun ĠRs Struct Or Enum Item Element . search For Implement ations (): ĠQuery < Rs Impl Item > Ġ{ ĊĠĠĠ Ġreturn ĠReferences Search . search ( this , Ġuse Scope ) ĊĠĠĠĠĠĠĠ Ġ. map Query Ġ{ Ġref Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPsi Tree Util . get Top most Parent OfType ( ref . element , ĠR sType Reference :: class . java )?. parent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ. filter Is Instance Query () Ċ } Ċ