package Ġgod ot . entry generator . generator . property . default value . extractor Ċ Ċ import Ġcom . squareup . kotlin po et . ClassName Ċ import Ġcom . squareup . kotlin po et . Member Name Ċ import Ġorg . jetbrains . kotlin . js . resolve . diagnostics . find Psi Ċ import Ġorg . jetbrains . kotlin . psi . Kt Class Ċ import Ġorg . jetbrains . kotlin . psi . Kt Dot Qualified Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt String Template Expression Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . reference Expression Ċ import Ġorg . jetbrains . kotlin . resolve . Binding Context Ċ import Ġorg . jetbrains . kotlin . resolve . binding Context Util . getReference Targets Ċ import Ġorg . jetbrains . kotlin . resolve . descriptor Util . fq Name Safe Ċ import Ġorg . jetbrains . kotlin . resolve . descriptor Util . is Companion Object Ċ Ċ object ĠK t Dot Qualified Expression Extractor Ġ{ ĊĊĠĠĠ Ġfun Ġextract ( binding Context : ĠBinding Context , Ġexpression : ĠK t Dot Qualified Expression ): ĠPair < String , ĠArray < out ĠAny >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreceiver Ġ= Ġexpression . receiver Expression ĊĠĠĠĠĠĠĠ Ġval Ġreceiver Ref Ġ= Ġreceiver . getReference Targets ( binding Context ). first OrNull () ĊĊĠĠĠĠĠĠĠ Ġ// Enums ĊĠĠĠĠĠĠĠ Ġif Ġ( receiver Ref Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpsi Ġ= Ġreceiver Ref . find Psi () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġreceiver Ġref Ġmight Ġbe Ġa Ġdeserialized Ġdescriptor , Ġfix Ġthis Ġonce Ġwe Ġhave Ġcore Ġclasses ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( psi Ġis ĠK t Class Ġ&& Ġpsi . is Enum ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfq Name Ġ= Ġpsi . fq Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( fq Name Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpkg Ġ= Ġfq Name . parent (). asString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠclassName Ġ= Ġfq Name . short Name (). asString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"% T .% L " Ġto ĠarrayOf ( ClassName ( pkg , ĠclassName ), Ġexpression . selector Expression !!. text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( receiver Ref . is Companion Object ()) Ġ{ Ġ// static Ġref Ġlike ĠVector 3 . UP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Path Ġ= Ġrequire NotNull ( receiver Ref . containing Declaration ). fq Name Safe . asString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpr Ġ= Ġexpression . text . substring After (".") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"% T .% L " Ġto ĠarrayOf ( ClassName ( package Path . substring Before Last (". "), Ġpackage Path . substring After Last (". ")), Ġexpr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// mult iline Ġstrings ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( receiver Ġis ĠK t String Template Expression ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselector Expression Ġ= Ġexpression ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. selector Expression ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . reference Expression () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . getReference Targets ( binding Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . first OrNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selector Expression ?. fq Name Safe ?. asString () Ġ== Ġ" kotlin . text . trim Indent ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Path Ġ= Ġselector Expression ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fq Name Safe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. asString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (". ${ selector Expression . name }", Ġ"") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"% L .% M ()" Ġto ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver . text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMember Name ( package Path , Ġselector Expression . name . asString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Kt Dot Qualified Expression Extractor Ġcould Ġnot Ġhandle Ġexpression : Ġ$ expression ") ĊĠĠĠ Ġ} Ċ }