/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 5 Ġ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 . kotlin . jvm . compiler Ċ Ċ import Ġorg . jetbrains . kotlin . resolve . scopes . Kt Scope Ċ import Ġorg . jetbrains . kotlin . serialization . de serialization . descriptors . Deserial ized Member Scope Ċ import Ġorg . jetbrains . kotlin . descriptors . Declaration Descriptor Ċ import Ġcom . intellij . test Framework . Use ful TestCase Ċ import Ġorg . jetbrains . kotlin . descriptors . Callable Member Descriptor Ċ import Ġorg . jetbrains . kotlin . test . util . Descriptor Validator Ċ import Ġorg . jetbrains . kotlin . test . util . Descriptor Validator . Validation Visitor Ċ import Ġorg . jetbrains . kotlin . descriptors . Package View Descriptor Ċ import Ġorg . jetbrains . kotlin . descriptors . Class Descriptor Ċ import Ġorg . jetbrains . kotlin . resolve . Member Comparator Ċ Ċ class ĠDeserial ized Scope Validation Visitor Ġ: ĠValidation Visitor () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġvalidate Scope ( scope : ĠK t Scope , Ġcollector : ĠDescriptor Validator . Diagnostic Collector ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . validate Scope ( scope , Ġcollector ) ĊĠĠĠĠĠĠĠ Ġvalidate Deserial ized Scope ( scope ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġvalidate Deserial ized Scope ( scope : ĠK t Scope ) Ġ{ ĊĠĠĠ Ġval Ġis Package View Scope Ġ= Ġscope . safe Get Containing Declaration () Ġis ĠPackage View Descriptor ĊĠĠĠ Ġif Ġ( scope Ġis ĠDeserial ized Member Scope Ġ|| Ġis Package View Scope ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrelevant Descriptors Ġ= Ġscope . getAll Descriptors (). filter Ġ{ Ġmember Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmember Ġis ĠCallable Member Descriptor Ġ&& Ġmember . get Kind (). is Real () Ġ|| Ġ(! is Package View Scope Ġ&& Ġmember Ġis ĠClass Descriptor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcheck Sorted ( relevant Descriptors , Ġscope . get Containing Declaration ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ // NOTE : Ġsee ĠType Utils # Intersection Scope # get Containing Declaration () Ċ private Ġfun ĠK t Scope . safe Get Containing Declaration (): ĠDeclaration Descriptor ? Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġget Containing Declaration () ĊĠĠĠ Ġ} ĊĠĠĠ Ġcatch Ġ( e : ĠUnsupportedOperationException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġcheck Sorted ( descriptors : ĠCollection < Declaration Descriptor >, Ġdeclaration : ĠDeclaration Descriptor ) Ġ{ ĊĠĠĠ ĠUseful TestCase . assert Ordered Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Members Ġof Ġ$ declaration Ġshould Ġbe Ġsorted Ġby Ġserialization .", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptors , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptors . sorted With ( Member Comparator . INSTANCE ) ĊĠĠĠ Ġ) Ċ } Ċ