/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 4 Ġ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 Ġorg . jetbrains . jet . lang . resolve . scopes Ċ Ċ import Ġorg . jetbrains . jet . lang . resolve . name . Name Ċ import Ġorg . jetbrains . jet . lang . descriptors .* Ċ import Ġorg . jetbrains . jet . utils . Printer Ċ import Ġjava . util . ArrayList Ċ import Ġkotlin . properties . Deleg ates Ċ import Ġorg . jetbrains . jet . lang . resolve . Descriptor Factory .* Ċ Ċ public Ġclass ĠStatic Scope For Kotlin Class ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontaining Class : ĠClass Descriptor Ċ ) Ġ: ĠJet Scope Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Classifier ( name : ĠName ) Ġ= Ġnull Ġ// ĠTODO ĊĊĠĠĠ Ġprivate Ġval Ġfunctions : ĠList < Function Descriptor > Ġby ĠDeleg ates . lazy Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( containing Class . get Kind () Ġ!= ĠClass Kind . ENUM _ CLASS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf < Function Descriptor >() ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( create Enum ValueOf Method ( containing Class ), Ġcreate Enum Values Method ( containing Class )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll Descriptors () Ġ= Ġfunctions ĊĊĠĠĠ Ġoverride Ġfun Ġget Own Declared Descriptors () Ġ= Ġfunctions ĊĊĠĠĠ Ġoverride Ġfun Ġget Functions ( name : ĠName ) Ġ= Ġfunctions . filter To ( ArrayList < Function Descriptor >( 2 )) Ġ{ Ġit . getName () Ġ== Ġname Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Package ( name : ĠName ) Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġget Properties ( name : ĠName ) Ġ= ĠlistOf < Variable Descriptor >() ĊĠĠĠ Ġoverride Ġfun Ġget Local Variable ( name : ĠName ) Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġget Containing Declaration () Ġ= Ġcontaining Class ĊĠĠĠ Ġoverride Ġfun Ġget Declarations By Label ( label Name : ĠName ) Ġ= ĠlistOf < Declaration Descriptor >() ĊĠĠĠ Ġoverride Ġfun Ġget Implicit Re ceiv ers Hierarchy () Ġ= ĠlistOf < Receiver Parameter Descriptor >() ĊĊĠĠĠ Ġoverride Ġfun Ġprint Scope Structure ( p : ĠPrinter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġp . println (" Static Ġscope Ġfor Ġ$ containing Class ") ĊĠĠĠ Ġ} Ċ } Ċ