/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ċ Ġ* Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . script ing . shared . resolve Ċ Ċ import Ġorg . jetbrains . kotlin . descriptors .* Ċ import Ġorg . jetbrains . kotlin . descriptors . impl . Mutable Class Descriptor Ċ import Ġorg . jetbrains . kotlin . diagnostics . Errors Ċ import Ġorg . jetbrains . kotlin . incremental . components . Lookup Location Ċ import Ġorg . jetbrains . kotlin . name . Name Ċ import Ġorg . jetbrains . kotlin . resolve . scopes . Descriptor Kind Filter Ċ import Ġorg . jetbrains . kotlin . resolve . scopes . Member Scope Ċ import Ġorg . jetbrains . kotlin . resolve . scopes . Member Scope Impl Ċ import Ġorg . jetbrains . kotlin . storage . Lock Based Storage Manager Ċ import Ġorg . jetbrains . kotlin . utils . Printer Ċ Ċ class ĠScript Provided Properties Descriptor ( script : ĠLazy Script Descriptor ) Ġ: ĊĠĠĠ ĠMutable Class Descriptor ( ĊĠĠĠĠĠĠĠ Ġscript , ĊĠĠĠĠĠĠĠ ĠClass Kind . CLASS , Ġfalse , Ġfalse , ĊĠĠĠĠĠĠĠ ĠName . special ("< synt hetic Ġscript Ġprovided Ġproperties Ġfor Ġ${ script . name }> "), ĊĠĠĠĠĠĠĠ ĠSource Element . NO _ SOURCE , ĊĠĠĠĠĠĠĠ ĠLock Based Storage Manager . NO _ LOCK S ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġmod ality Ġ= ĠMod ality . FINAL ĊĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠVis ibilities . PUBLIC ĊĠĠĠĠĠĠĠ Ġset Type Parameter Descriptors ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġcreate Type Constructor () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmember Scope : Ġ() Ġ-> ĠScript Provided Properties Member Scope Ġ= Ġscript . resolve Session . storage Manager . create Lazy Value Ġ{ ĊĠĠĠĠĠĠĠ ĠScript Provided Properties Member Scope ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscript . name . identifier , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Un subst it uted Member Scope (): ĠMember Scope Ġ= Ġmember Scope () ĊĊĠĠĠ Ġval Ġproperties : Ġ() Ġ-> ĠList < Script Provided Property Descriptor > Ġ= Ġscript . resolve Session . storage Manager . create Lazy Value Ġ{ ĊĠĠĠĠĠĠĠ Ġscript . script Definition (). provided Properties . map NotNull Ġ{ Ġ( name , Ġtype ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscript . find TypeDescriptor ( type , ĠErrors . MISSING _ SCRIPT _ PROVIDED _ PROPERTY _ CLASS )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġto Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ Ġ( name , Ġclass Descriptor ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠScript Provided Property Descriptor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName . identifier ( name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass Descriptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis As Receiver Parameter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscript ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠScript Provided Properties Member Scope ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġscript Id : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġprovided Properties : ĠList < Property Descriptor > ĊĠĠĠ Ġ) Ġ: ĠMember Scope Impl () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Cont ributed Descriptors ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkind Filter : ĠDescriptor Kind Filter , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Filter : Ġ( Name ) Ġ-> ĠBoolean ĊĠĠĠĠĠĠĠ Ġ): ĠCollection < Declaration Descriptor > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovided Properties ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Cont ributed Variables ( name : ĠName , Ġlocation : ĠLookup Location ): ĠCollection < Property Descriptor > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovided Properties . filter Ġ{ Ġit . name Ġ== Ġname Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprint Scope Structure ( p : ĠPrinter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . println (" Scope Ġof Ġscript Ġprovided Ġproperties : Ġ$ script Id ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }